Sequential File
Pertemuan 14-15
Overview
Deskripsi
Tujuan Instruksional
Referensi
Konsep Record/Struktur dan Pointer
Konsep File
Pengelolaan File
Studi Kasus
Jurusan Teknik Informatika XIV/XV - 3 Universitas Widyatama
Deskripsi
Pada materi ini, akan dipelajari tentang
Konsep Record/Struktur dan Pointer
Definisi
&
Manfaat
File
terutama
Sequential File
Pengelolaan
Sequential
File
menggunakan Bahasa C/C++
Input
Data dalam File
Baca Data dalam File
Jurusan Teknik Informatika XIV/XV - 4 Universitas Widyatama
Tujuan Instruksional
Mahasiswa diharapkan dapat :
Menjelaskan
pengertian
dan
manfaat
Record/Struktur
&
Pointer,
serta
cara
penulisannya dalam program
Menjelaskan pengertian dan manfaat File,
serta cara penulisannya dalam program
Menjelaskan
pengelolaan
Sequential
File
(Input data dan baca data)
Menjelaskan penggunaan Sequential File
(Input data dan baca data) dalam C/C++
Menggunakan Sequential File (Input data dan
baca data) dalam C/C++
Jurusan Teknik Informatika XIV/XV - 5 Universitas Widyatama
Referensi
1.
Hartono,
Jogiyanto,
“Konsep
Dasar
Pemorgraman Bahasa C”. Andi, Yogyakarta,
2000
2.
Hartanto,
Budi,
“Memahami
Logika
Pembuatan Program C Secara Mudah”, Andi,
Yogyakarta, 2004
3.
Yatini
B.,
Indra;
Nasution,
Erliansyah,
“Algoritma & Struktur Data dengan C++”,
Graha Ilmu,Yogyakarta, 2005
4.
Deitel,
“C
How
To
Program
4
thEdition
”,Pearson-Prentice Hill, 2004
5.
Solichin, Achmad, “Pemrograman Bahasa C
dengan Turbo C”, IlmuKomputer.com,2003
Konsep Record / Struktur
Konsep Pointer
Jurusan Teknik Informatika XIV/XV - 7 Universitas Widyatama
Definisi Record/Struktur
Collections of related variables under one
name. Structures may contain variables of
many diferent data types. Structures are
commonly used to defines records to be stored
in files
[4]Pengelompokan dari variable-variable (yang
memungkinkan untuk memiliki tipe data yang
berbeda) yang bernaung dalam satu nama.
Variable-variable yang membentuk
suatu
struktur selanjutnya disebut sebagai elemen
atau anggota struktur
[1]Pengelompokan sekumpulan data dengan tipe
yang sama dan/atau berbeda yang saling
terkait dalam satu blok data
[2]Jurusan Teknik Informatika XIV/XV - 8 Universitas Widyatama
Deklarasi Record/Struktur
struct
{
tipe_data1 nama_variabel-1;
tipe_data2 nama_variabel-2;
…dst
} nama_tipe_data_struktur;
Ex : struct { char Kode_Barang[7]; char Nama_Barang[25]; int Jumlah_Barang; float Harga_Satuan; } Data_Barang; Harga_Satuan Jumlah_Barang Data_Barang Nama_Barang[25] Kode_Barang[7]Jurusan Teknik Informatika XIV/XV - 9 Universitas Widyatama
Mengakses Record/Struktur
Dikarenakan struktur terdiri dari lebih dari
satu variabel dengan tipe data yang berbeda,
hal ini mengakibatkan terdapat penanganan
khusus
untuk
mengakses
variabel
dalam
struktur, yaitu :
nama_tipe_data_struktur.nama_variabel-x
Ex :
Data_Barang.Kode_Barang[7]
scanf(“%s”, &Data_Barang.Kode_Barang[7]);
printf(“Kode Barang : %s”, Data_Barang.Kode_Barang[7]);
Definisi Pointer
Variables whose values are memory
addresses/contains an address of a
variable that contaon a specific value
[4]Suatu Variabel yang berisi alamat lokasi
suatu memori untuk data tertentu
[1]Jurusan Teknik Informatika XIV/XV - 11 Universitas Widyatama
Deklarasi Pointer
tipe_data *nama_variabel_Pointer;
Ex : float *Ptr_Nilai; float Nilai = 12.12; PtrNilai NilaiLihat file : Pointer.C
12.12
Jurusan Teknik Informatika XIV/XV - 13 Universitas Widyatama
Definisi File
Storage of data (all such data not lost
when a programs terminates)
[4]Data yang disimpan
pada
external
memory dan bersifat permanen
[1]Tempat penyimpanan data dalam disk
[2]Jenis File :
1.Berdasarkan Jenis Data yang disimpan
[2]File Teks : semua data yang disimpan dalam file
akan diubah menjadi teks
File Biner : semua data yang disimpan dalam file
akan disimpan berdasarkan nilai binernya
Perbedaan
Hanya oleh programmer yang mengetahui tipe dari data yang disimpan
Semua program pengolah kata Pengaksesan 3 Lebih Cepat Lebih lambat Kecepatan Akses 2 Bilangan Biner Teks Jenis Penyimpanan 1 File Biner File Teks Kategori No
Jurusan Teknik Informatika XIV/XV - 15 Universitas Widyatama
Jenis File :
2.Berdasarkan Operasi Input/Output
[1]File berpenyangga (buffered files) atau file arus
(stream file) atau file standar (standards file) :
menggunakan penyangga (buffer) untuk menampung
sementara data yang akan dipindahkan dari memori
internal komputer ke dan/atau dari file. Menyediakan
fasilitas untuk melakukan format data yang akan
dibaca dan/atau dimasukan pada file, sehingga lebih
cocok digunakan untuk operasi input/output pada file
teks.
File tidak berpenyangga (unbuffered files) : tidak
menggunakan penyangga (buffer), sehingga data
langsung dibaca dari dalam file dan/atau dimasukan
ke dalam file. Tidak menyediakan format data khusus ,
sehingga
lebih
cocok
digunakan
untuk
operasi
input/output pada file biner.
Jurusan Teknik Informatika XIV/XV - 16 Universitas Widyatama
Jenis File :
3.Berdasarkan Cara Pengaksesan
[4]File Sekuensial (Sequential File) : Data dalam
file diakses
secara
sekuensial/berurutan
mulai dari urutan pertama sampai dengan
akhir file.
File Random (Random File) : Data dalam file
diakses
secara
random/acak
tergantung
kebutuhan.
Pengelolaan File
Mengaktifkan atau Membuka File (1)
Header File : stdio.h Sintaks :
FILE *Pointer_File; (Buffer untuk file)
Pointer_File=fopen(char *Nama_File, char *Mode) atau Pointer_File=fopen(”<Nama File>”,”<Mode File>”);
Mode File : r, w, a, t, b, r+, w+, a+, rb, wb, ab, rb+, wb+, ab+ (penjelasan masing-masing fungsi mode file lihat slide 24-25) ex : FILE *File_Coba
Jurusan Teknik Informatika XIV/XV - 19 Universitas Widyatama
Mengaktifkan atau Membuka File (2)
Header File : fstream.h
Sintaks :
ofstream Pointer_File;atau (Buffer ofstream Pointer_File(“<Nama_File>”, <Mode File>); file) Pointer_File.open(“<Nama_File>”) atau
Pointer_File.open(”<Nama File>”, <Mode File>);
Mode File : ios::app, ios::ate, ios::in, ios::out, ios::nocreate ios::noreplace, ios::true, ios::binary
ex : ofstream File_Coba
File_Coba.open(“Coba.Dat”,ios::app); atau bisa juga File_Coba.open(“Coba.Dat”,ios::app | ios::out);
Catt: Coba cari fungsi dari mode file di atas !!!
Jurusan Teknik Informatika XIV/XV - 20 Universitas Widyatama
Memproses file (1)
Header File : stdio.h
Menyimpan MenyimpanMenyimpan
Menyimpan data data data kedata kekeke dalamdalamdalamdalam filefilefilefile
Perintah yang digunakan : fputc(), fgetc(), putw(), getw(), fputs(), fgets(), fscanf(), fprintf(), fwrite(), fread()
ex : fprintf(File_Coba, “%d %s %5.2f”,Nomor, Nama, Nilai); fscanf(stdin, “%d %s %f”,&Nomor, &Nama, &Nilai);
Membaca MembacaMembaca Membaca datadatadatadata
Perintah yang digunakan : rewind(), fseek(), ftell(), fread(), fscanf()
ex : fread(File_Coba, “%d %s %5.2f”,Nomor, Nama, Nilai); fscanf(File_Coba, “%d %s %5.2f”,Nomor, Nama, Nilai);
Jurusan Teknik Informatika XIV/XV - 21 Universitas Widyatama
Memproses file (2)
Header File : fstream.hMenyimpan MenyimpanMenyimpan
Menyimpan data data data data kekeke dalamkedalamdalam filedalamfilefilefile
Sintaks :
ofstream Pointer_File; atau (Buffer ofstream Pointer_File(“<Nama_File>”, <Mode File>); file) Pointer_File.put(); atau
Pointer_File<<Nama_Data; atau
Pointer_File.write((char*)&Rekaman, sizeof(Rekaman)); ex : FILE *File_Coba
File_Coba=fopen(“Coba.Dat”,”w”);
Catt : Cari apa perbedaan perintah put(), <<,write() di atas !!!
Memproses file (3)
Header File : fstream.hMembaca MembacaMembaca Membaca datadatadatadata
Sintaks :
int Max=<Jumlah max karakter per baris>; char penyangga[Max];
ifstream Pointer_File; atau (Buffer ifstream Pointer_File(“<Nama_File>”, <Mode File>); file) Pointer_File.get(); atau
Pointer_File.getline(penyangga, Max); atau
Pointer_File.read((char *)&Rekaman, sizeof(Rekaman)); ex : ifstream File_Coba (“Coba.Dat”,ios::app | ios::out);
File_Coba.getline(penyangga, Max); atau
File_Coba.read((char *)&Mahasiswa, sizeof(Mahasiswa));
Jurusan Teknik Informatika XIV/XV - 23 Universitas Widyatama
Menutup File
Header File : stdio.h Sintaks :
fclose(Pointer_File); {Menutup sebuah file yang aktif} atau fcloseall(Pointer_File); {Menutup semua file yang aktif} ex : fcose(File_Coba);
fcloseall();
Header File : fstream.h Sintaks :
offstream Pointer_File; (Buffer untuk file) Pointer_File.close()
Jurusan Teknik Informatika XIV/XV - 24 Universitas Widyatama
Konsep Pengelolaan File (3)
Modus Open file
[4]Open a file for reading in binary mode rb
Append; open or create a file for update; writing is done at the end of the file
a+
Create a file for update. If the file already exist, discard the current contents
w+
Open a file for update (reading and writing) r+
Append; open or create a file for writing at the end of the file
a
Create a file for writing. If the file already exist, discard the current contents
w
Open a file for reading r
Description Mode
Jurusan Teknik Informatika XIV/XV - 25 Universitas Widyatama
Konsep Pengelolaan File (4)
Modus Open file
[4]Append; open or create a file for update in binary mode; writing is done at the end of the file
ab+
Create a file for update in binary mode. If the file already exist, discard the current contents
wb+
Open a file for update (reading and writing) in binary mode
rb+
Append; open or create a file for writing at the end of the file in binary mode
ab
Create a file for writing in binary mode. If the file already exists, discard the current contents
wb
Description Mode
Konsep Pengelolaan File (5)
Operasi file Berpenyangga
[1]Meletakan sebuah nilai integer ke buffer untuk direkam ke file
putw()
Membaca sebuah nilai karakter dari file untuk diletakan di buffer
fgetc()
Meletakan sebuah nilai karakter ke buffer untuk direkam ke file
fputc()
Meletakan sebuah nilai string ke buffer untuk direkam ke file
fputs()
Membaca sebuah nilai integer dari file untuk diletakan di buffer
getw()
Kegunaan Operasi
Jurusan Teknik Informatika XIV/XV - 27 Universitas Widyatama
Konsep Pengelolaan File (6)
Operasi file Berpenyangga
[1]Membaca sebuah blok data dari file untuk diletakan di buffer
fread()
Meletakan sebuah blok data ke buffer untuk direkam ke file
fwrite()
Membaca sekumpulan data terformat dari file untuk diletakan di buffer
fscanf()
Meletakan sekumpulan data terformat ke buffer untuk direkam ke file
fprintf()
Membaca sebuah nilai string dari file untuk diletakan di buffer
fgets()
Kegunaan Operasi
Jurusan Teknik Informatika XIV/XV - 28 Universitas Widyatama
Konsep Pengelolaan File (7)
Operasi file Berpenyangga
[1]Menyimpan data di buffer ke file fflush()
Mendapatkan posisi pembacaan atau perekaman di file pada saat tertentu.
fgetpos()
1. SEEK_SET/0 : Pembacaan data mulai dari awal file 2. SEEK_CUR/1 : Pembacaan data mulai dari posisi saat ini
pada file
3. SEEK_END/2 : Pembacaan data mulai dari akhir file
Menempatkan pembacaan atau perekaman suatu data ke posisi tertentu di file. Terdiri dari 3 buah konstanta pencarian :
fseek()
Mendapatkan posisi pembacaan atau perekaman di suatu posisi tertentu di file.
ftell()
Kegunaan Operasi
Jurusan Teknik Informatika XIV/XV - 29 Universitas Widyatama
Konsep Pengelolaan File (8)
Operasi file Berpenyangga
[1]Menghapus semua status kesalahan di flags clearerr()
Menutup suatu file dan membuka file yang lain dengan menggunakan pointer yang sama
freopen()
Menampilkan kesalahan yang terjadi perror()
Mengembalikan posisi pembacaan atau perekaman di file pada saat tertentu (mirip dengan operasi fseek())
fsetpos()
Mendeteksi kesalahan yang terjadi ferror()
Kegunaan Operasi
Konsep Pengelolaan File (9)
Operasi File Tidak Berpenyangga
[1]Membaca data dari file read()
Membuka file yang ada atau membuat file baru open()
Menyimpan data ke file write()
Menempatkan pembacaan/menutup file rekaman ke posisi byte tertentu
lseek()
Menutup file close()
Membuat file baru creat()
Kegunaan Operasi
Jurusan Teknik Informatika XIV/XV - 31 Universitas Widyatama
Konsep Pengelolaan File (10)
Operasi File
[1]Mendapatkan nomor pengenal file fileno()
Menghapus file unlink()
Mendapatkan ukuran file filelength()
Mengganti nama file rename()
Mengoperasikan file yang dibuat dengan operasi tidak berpenyangga, dengan menggunakan operasi file berpenyangga
fdopen()
Mengecek keberadaan suatu file access()
Kegunaan Operasi