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 - 2
Universitas Widyatama
1
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 - 3
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 - 4
Universitas Widyatama
2
Referensi 1.
2.
3.
4. 5.
Hartono, Jogiyanto, “Konsep Dasar Pemorgraman Bahasa C”. Andi, Yogyakarta, 2000 Hartanto, Budi, “Memahami Logika Pembuatan Program C Secara Mudah”, Andi, Yogyakarta, 2004 Yatini B., Indra; Nasution, Erliansyah, “Algoritma & Struktur Data dengan C++”, Graha Ilmu,Yogyakarta, 2005 Deitel, “C How To Program 4thEdition”,Pearson-Prentice Hill, 2004 Solichin, Achmad, “Pemrograman Bahasa C dengan Turbo C”, IlmuKomputer.com,2003
Jurusan Teknik Informatika
XIV/XV - 5
Universitas Widyatama
Konsep Record / Struktur Konsep Pointer
3
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 - 7
Universitas Widyatama
Deklarasi Record/Struktur struct { tipe_data1 nama_variabel-1; tipe_data2 nama_variabel-2; …dst } nama_tipe_data_struktur; Isi Memori untuk pendeklarasian Data_Barang
Ex : struct { char Kode_Barang[7]; char Nama_Barang[25]; Data_Barang int Jumlah_Barang; float Harga_Satuan; } Data_Barang;
Jurusan Teknik Informatika
XIV/XV - 8
Kode_Barang[7] Nama_Barang[25] Jumlah_Barang Harga_Satuan Universitas Widyatama
4
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]);
Jurusan Teknik Informatika
XIV/XV - 9
Universitas Widyatama
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 - 10
Universitas Widyatama
5
Deklarasi Pointer tipe_data *nama_variabel_Pointer; Ex : float *Ptr_Nilai; float Nilai = 12.12; PtrNilai
Nilai 12.12
Lihat file : Pointer.C
Jurusan Teknik Informatika
XIV/XV - 11
Universitas Widyatama
Konsep File
6
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]
Jurusan Teknik Informatika
XIV/XV - 13
Universitas Widyatama
Jenis File : [2] 1.Berdasarkan Jenis Data yang disimpan 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 No
Kategori
1
Jenis Penyimpanan
Teks
Bilangan Biner
2
Kecepatan Akses
Lebih lambat
Lebih Cepat
3
Pengaksesan
Semua program Hanya oleh programmer pengolah kata yang mengetahui tipe dari data yang disimpan
Jurusan Teknik Informatika
File Teks
XIV/XV - 14
File Biner
Universitas Widyatama
7
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 - 15
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.
Jurusan Teknik Informatika
XIV/XV - 16
Universitas Widyatama
8
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(”
”,”<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 File_Coba=fopen(“Coba.Dat”,”w”);
Jurusan Teknik Informatika
XIV/XV - 18
Universitas Widyatama
9
Mengaktifkan atau Membuka File (2) Header File : fstream.h Sintaks : ofstream Pointer_File;atau (Buffer ofstream Pointer_File(“”, <Mode File>); file) Pointer_File.open(“”) atau Pointer_File.open(””, <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 - 19
Universitas Widyatama
Memproses file (1) Header File : stdio.h Menyimpan data ke dalam file 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 data 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); Catt: Fungsi dari perintah di atas dapat dilihat pada slide 26-27
Jurusan Teknik Informatika
XIV/XV - 20
Universitas Widyatama
10
Memproses file (2) Header File : fstream.h
Menyimpan data ke dalam file Sintaks : ofstream Pointer_File; atau (Buffer ofstream Pointer_File(“”, <Mode File>); file) Pointer_File.put(); atau Pointer_File<
Jurusan Teknik Informatika
XIV/XV - 21
Universitas Widyatama
Memproses file (3) Header File : fstream.h
Membaca data Sintaks : int Max=<Jumlah max karakter per baris>; char penyangga[Max]; ifstream Pointer_File; atau (Buffer ifstream Pointer_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)); Catt : Cari apa perbedaan get(), getline(), read() di atas !!!
Jurusan Teknik Informatika
XIV/XV - 22
Universitas Widyatama
11
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; Pointer_File.close()
Jurusan Teknik Informatika
(Buffer untuk file)
XIV/XV - 23
Universitas Widyatama
Konsep Pengelolaan File (3) Modus Open file
[4]
Mode Description r Open a file for reading w Create a file for writing. If the file already exist, discard the current contents a Append; open or create a file for writing at the end of the file r+ Open a file for update (reading and writing) w+ Create a file for update. If the file already exist, discard the current contents a+ Append; open or create a file for update; writing is done at the end of the file rb Open a file for reading in binary mode Jurusan Teknik Informatika
XIV/XV - 24
Universitas Widyatama
12
Konsep Pengelolaan File (4) Modus Open file
[4]
Mode Description wb Create a file for writing in binary mode. If the file already exists, discard the current contents ab Append; open or create a file for writing at the end of the file in binary mode rb+ Open a file for update (reading and writing) in binary mode wb+
Create a file for update in binary mode. If the file already exist, discard the current contents
ab+
Append; open or create a file for update in binary mode; writing is done at the end of the file
Jurusan Teknik Informatika
XIV/XV - 25
Universitas Widyatama
Konsep Pengelolaan File (5) Operasi file Berpenyangga Operasi fputc() fgetc() putw() getw() fputs()
[1]
Kegunaan Meletakan sebuah nilai karakter ke buffer untuk direkam ke file Membaca sebuah nilai karakter dari file untuk diletakan di buffer Meletakan sebuah nilai integer ke buffer untuk direkam ke file Membaca sebuah nilai integer dari file untuk diletakan di buffer Meletakan sebuah nilai string ke buffer untuk direkam ke file
Jurusan Teknik Informatika
XIV/XV - 26
Universitas Widyatama
13
Konsep Pengelolaan File (6) Operasi file Berpenyangga
[1]
Operasi fgets()
Kegunaan Membaca sebuah nilai string dari file untuk diletakan di buffer
fprintf()
Meletakan sekumpulan data terformat ke buffer untuk direkam ke file
fscanf()
Membaca sekumpulan data terformat dari file untuk diletakan di buffer Meletakan sebuah blok data ke buffer untuk direkam ke file Membaca sebuah blok data dari file untuk diletakan di buffer
fwrite() fread()
Jurusan Teknik Informatika
XIV/XV - 27
Universitas Widyatama
Konsep Pengelolaan File (7) Operasi file Berpenyangga Operasi fseek()
Kegunaan Menempatkan pembacaan atau perekaman suatu data ke posisi tertentu di file. Terdiri dari 3 buah konstanta pencarian : 1. 2. 3.
ftell() fflush() fgetpos()
[1]
SEEK_SET/0 : Pembacaan data mulai dari awal file SEEK_CUR/1 : Pembacaan data mulai dari posisi saat ini pada file SEEK_END/2 : Pembacaan data mulai dari akhir file
Mendapatkan posisi pembacaan perekaman di suatu posisi tertentu di file. Menyimpan data di buffer ke file Mendapatkan posisi pembacaan perekaman di file pada saat tertentu.
Jurusan Teknik Informatika
XIV/XV - 28
atau
atau
Universitas Widyatama
14
Konsep Pengelolaan File (8) Operasi file Berpenyangga Operasi fsetpos()
ferror()
[1]
Kegunaan Mengembalikan posisi pembacaan atau perekaman di file pada saat tertentu (mirip dengan operasi fseek()) Mendeteksi kesalahan yang terjadi
perror() clearerr()
Menampilkan kesalahan yang terjadi Menghapus semua status kesalahan di flags
freopen()
Menutup suatu file dan membuka file yang lain dengan menggunakan pointer yang sama
Jurusan Teknik Informatika
XIV/XV - 29
Universitas Widyatama
Konsep Pengelolaan File (9) Operasi File Tidak Berpenyangga Operasi close() creat() lseek() open() read() write()
[1]
Kegunaan Menutup file Membuat file baru Menempatkan pembacaan/menutup file rekaman ke posisi byte tertentu Membuka file yang ada atau membuat file baru Membaca data dari file Menyimpan data ke file
Jurusan Teknik Informatika
XIV/XV - 30
Universitas Widyatama
15
Konsep Pengelolaan File (10) Operasi File
[1]
Operasi fdopen()
Kegunaan Mengoperasikan file yang dibuat dengan operasi tidak berpenyangga, dengan menggunakan operasi file berpenyangga access() Mengecek keberadaan suatu file rename() Mengganti nama file unlink() Menghapus file fileno() Mendapatkan nomor pengenal file filelength() Mendapatkan ukuran file
Jurusan Teknik Informatika
XIV/XV - 31
Universitas Widyatama
16