Download - Pertemuan 23-24 File
![Page 1: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/1.jpg)
1
Pertemuan 23-24File
Matakuliah : T0616 / Algoritma dan Pemrograman
Tahun : 2007
Versi : 1/0
![Page 2: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/2.jpg)
2
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mendemonstrasikan penyimpanan data menggunakan tipe data file (C3)
![Page 3: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/3.jpg)
3
Outline Materi
File
• Definisi file
• Tipe file
• File teks dan biner
• Fungsi Input Output file
![Page 4: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/4.jpg)
4
Definisi File
• Definisi File
• File adalah kumpulan record
• Record adalah kumpulan field
• Field kumpulan byte
• Byte dalah kumpulan bit
![Page 5: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/5.jpg)
5
Tipe File
• Bahasa C mengenal dua tipe file yaitu stream oriented (standard) dan system oriented (low level).
• Stream oriented terdiri dari dua kategori yaitu file yang terdiri dari karakter individual atau bagian dari string dan unformatted file yang menyusun data dalam blok-blok untuk mewakili array atau struktur.
• System oriented lebih rumit daripada stream oriented karena lebih dekat ke sistem komputer.
![Page 6: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/6.jpg)
6
Mode File
• Data yang disimpan di file disajikan dalam dua mode yaitu mode teks dan mode biner.
• Dalam mode teks data disimpan sebagai deretan karakter sedangkan dalam mode biner data disimpan seperti halnya penyimpanan data di memori yaitu sebagai sekuen bit.
• Stream oriented menggunaka mode teks sedangkan system oriented menggunakan mode biner.
![Page 7: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/7.jpg)
7
Buffer Area
• Buffer area adalah bagian dari memori yang digunakan sebagai tempat penampungan sementara sebelum data dipindahkan ke file.
• Sintaks pembentukan buffer areaFile *pt_var;
Dimana pt_var adalah variabel pointer yang digunakan untuk menunjuk awal buffer area.
• Dikenal juga dengan nama stream pointer.
![Page 8: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/8.jpg)
8
Membuka File
• Sesudah membentuk buffer area file dibuka dengan pernyataan:
pt_var = fopen(nama-file, mode operasi);
• Fungsi fopen() mengembalikan pointer ke awal buffer area. Nilai null dikembalikan jika berkas tidak dapat dibuka.
![Page 9: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/9.jpg)
9
Membuka File
• Nilai mode operasi yang mungkin adalahMode Makna
“r” Membuka file utuk dibaca.
“w” Membentuk file baru untuk ditulisi.
“a” Membuka file untuk tambah data.
“r+” Membuka file untuk dibaca/ditulisi.
“w+” Membentuk file untuk dibaca/ditulisi.
“a+” Membuka file untuk dibaca dan ditambah isinya
![Page 10: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/10.jpg)
10
Menutup File
File ditutup dengan pernyataan :
fclose(pt_var);
• Yang akan membebaskan buffer agar dapat digunakan oleh file lain dan mengirim data yang masih tertinggal di buffer agar segera dikirim ke file.
• Sebagai catatan, isi buffer akan dikirim ke file jika buffer penuh, file ditutup atau program selesai.
![Page 11: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/11.jpg)
11
Fungsi Input Output File
• fgetc– Membaca satu karakter dari file– fgetc( stdin ) ekuivalen dengan getchar()
• fputc– Menulis satu karakter ke file– fputc( 'a', stdout ) ekuivalen dengan putchar( 'a' )
• fgets– Membaca satu baris dari file
• fputs– Menulis satu baris ke file
• fscanf / fprintf– Ekuivalen dengan scanf dan printf
• fwrite/fread – Menulis byte dari suatu lokasi di memori ke file / sebaliknya
![Page 12: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/12.jpg)
12
Fungsi Input Output File
• Contoh :fwrite( &mhs, sizeof( mhs ), 1, myPtr );
– &mhs = lokasi asal data (struct)– sizeof( mhs ) = mengembalikan nilai ukuran struct
mhs– 1 = untuk array, jumlah elemen yang akan ditransfer,
dalam hal ini hanya satu elemen array yang ditransfer– myPtr = buffer file
![Page 13: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/13.jpg)
13
File Karakter
• Contoh ://bentuk file karakter
void main() { FILE *fPt; char c; fPt = fopen(“contoh.dat”, “w”); do putc(toupper(c=getchar()),fPt); while (c!=‘\n’); fclose(fPt);}
![Page 14: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/14.jpg)
14
File Karakter
• Contoh :
//buka file karakter
void main() {
FILE *fPt;
char c;
if((fPt=fopen(“contoh.dat”,”r”) == NULL)
printf(“\nEROR”);
else
do
putchar(c=getc(fPt));
while(c!=‘\n’);
fclose(fPt);
}
![Page 15: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/15.jpg)
15
File String
• Contoh :
//bentuk file string
void main() { FILE *fPt; char s[81]; fPt = fopen(“contoh.dat”, “w”); while(strlen(gets(s))>0) { fputs(s,fPt); fputs(“\n”,fPt); } fclose(fPt);}
![Page 16: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/16.jpg)
16
File String
• Contoh :
//baca file string
void main() {
FILE *fPt;
char s[81];
fPt = fopen(“contoh.dat”,”r”);
while(fgets(s,80,fPt)!=NULL)
printf(“%s”, s);
fclose(fPt);
}
![Page 17: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/17.jpg)
17
File Unformatted
• Contoh ://bentuk file unformatted
typedef struct { int nim; char nama[31]; float ipk;} record;
void main() { record mhs; FILE *fPt; if((fPt=fopen(“mhs.dat”,”w”))==
NULL){ printf(“EROR”); break; }
do {
printf(“\nNIM :”);
scanf(“%d”,&mhs.nim);
printf(“\nNama:”);
gets(mhs.nama);
printf(“\nIPK:”);
scanf(“%f”, &mhs.ipk);
fflush(stdin);
fwrite(&mhs,sizeof(mhs),1,fPt);
printf(“\nTambah data Y/N?”);
} while(getche() == ‘y’);
fclose(fPt);
}
![Page 18: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/18.jpg)
18
Fiel Unformatted
• Contoh ://buka file unformatted
typedef struct { int nim; char nama[31]; float ipk;} record;
void main() { record mhs; FILE *fPt; if((fPt=fopen(“mhs.dat”,”r”))==
NULL){ printf(“EROR”); exit(); }
while(fread(&mhs,sizeof(mhs),1,fPt) == 1) {
printf(“\nNIM :%d”,mhs.nim);
printf(“\nNama:%s”,mhs.nama);
printf(“\nIPK :%f”, mhs.ipk);
}
fclose(fPt);
}
![Page 19: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/19.jpg)
19
Latihan
• Buatlah pendataan menggunakan file karakter/string untuk data berikut :
Account Name Balance100 Jones 24.98200 Doe 345.67300 White 0.00400 Stone -42.16500 Rich 224.62
![Page 20: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/20.jpg)
20
Latihan
• Berdasarkan pendataan soal sebelumnya, buat program Inquiry :
Enter request 1 - List accounts with zero balances 2 - List accounts with credit balances 3 - List accounts with debit balances 4 - End of run? 1 Accounts with zero balances:300 White 0.00 ? 2 Accounts with credit balances:400 Stone -42.16 ? 3 Accounts with debit balances:100 Jones 24.98200 Doe 345.67500 Rich 224.62? 4End of run.
![Page 21: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/21.jpg)
21
Latihan
• Buat soal sebelumnya menggunakan file Unformatted ! Bandingkan !
![Page 22: Pertemuan 23-24 File](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5681487e550346895db58872/html5/thumbnails/22.jpg)
22
Latihan
1. Apa tujuan dari pembentukan buffer area jika kita bekerja dengan stream oriented data file? Bagaimana buffer area didefinisikan?
2. Apa yang disebut stream pointer? Apa relasi stream pointer dengan buffer area?
3. Asosiasikan stream pointer ptr dengan stream oriented data file baru dengan nama students.dat. Buka berkas data untuk ditulisi saja.
4. Asosiasikan stream pointer ptr dengan stream oriented data file yang telah ada sebelumnya dengan nama sample.dat. Buka berkas data sehingga informasi dapat dibaca dari berkas atau ditulis ke berkas. Tunjukkan bagaimana kita menutup berkas di akhir program.
5. Ulangi soal no. 4 dengan menambahkan pesan eror jika berkas data tidak dapat dibuka karena adanya sesuatu hal yang tidak terduga.