T0616 ALGORITMA DAN PEMROGRAMAN (26) SUBANDIJO UNIVERSITAS BINA NUSANTARA FAKULTAS ILMU KOMPUTER JAKARTA, 2005 7/11/2017 T0616 - Algoritma dan Pemrograman 1 BERKAS • DEFINISI • TIPE BERKAS • STREAM ORIENTED (STANDARD) • SYSTEM ORIENTED (LOW LEVEL) • MODE • TEKS • BINER • BUFFER AREA • FILE *ptVar; • BUKA BERKAS • ptVar = fopen (namaBerkas, tipeBerkas); • TUTUP BERKAS • fclose(ptVar); 7/11/2017 T0616 - Algoritma dan Pemrograman 2 DEFINISI BERKAS • • • • BERKAS ADALAH KUMPULAN RECORD RECORD ADALAH KUMPULAN FIELD FIELD KUMPULAN BYTE BYTE DALAH KUMPULAN BIT 7/11/2017 T0616 - Algoritma dan Pemrograman 3 TIPE BERKAS • C MENGENAL DUA TIPE BERKAS YAITU STREAM ORIENTED (STANDARD) DAN SYSTEM ORIENTED (LOW LEVEL). • STREAM ORIENTED TERDIRI DARI DUA KATEGORI YAITU BERKAS YANG TERDIRI DARI KARAKTER INDIVIDUAL ATAU BAGIAN DARI STRING DAN UNFORMATTED BERKAS YANG MENYUSUN DATA DALAM BLOK-BLOK UNTUK MEWAKILI ARRAY ATU STRUKTUR. • SYSTEM ORIENTED LEBIH RUMIT DARIPADA STREAM ORIENTED KARENA IA LEBIH DEKAT KE SISTEM KOMPUTER. 7/11/2017 T0616 - Algoritma dan Pemrograman 4 MODE BERKAS • DATA YANG DISIMPAN DI BERKAS 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. 7/11/2017 T0616 - Algoritma dan Pemrograman 5 BUFFER AREA • BUFFER AREA ADALAH BAGIAN DARI MEMORI YANG DIGUNAKAN SEBAGAI TEMPAT PENAMPUNGAN SEMENTARA SEBELUM DATA DIPINDAHKAN KE BERKAS. • SINTAKS PEMBENTUKAN BUFFER AREA FILE *PT_VAR; DIMANA PT_VAR ADALAH VARIABEL POINTER YANG DIGUNAKAN UNTUK MENUNJUK AWAL BUFFER AREA. • IA DIKENAL DENGAN NAMA STREAM POINTER. 7/11/2017 T0616 - Algoritma dan Pemrograman 6 MEMBUKA BERKAS • SESUDAH MEMBENTUK BUFFER AREA BERKA S DIBUKA DENGAN PERNYATAAN: pt_var = fopen(nama-berkas, mode operasi); • FUNGSI FOPEN() MENGEMBALIKAN POINTER KE AWAL BUFFER AREA. NILAI NULL DIKEMBALIKAN JIKA BERKAS TIDAK DAPAT DIBUKA. 7/11/2017 T0616 - Algoritma dan Pemrograman 7 MEMBUKA BERKAS • NILAI MODE OPERASI YANG MUNGKIN ADALAH MODE “r” “w” “a” “r+” “w+” “a+” 7/11/2017 MAKNA BUKA BERKAS UNTUK DI BACA. BENTUK BERKAS BARU UNTUK DITULISI. BUKA BERKAS UNTUK TAMBAH DATA. BUKA BERKAS UNTUK DIBACA/DITULISI. BENTUK BERKAS UNTUK DIBACA/DITULISI. BUKA BERKAS UNTUK DIBACA DAN DITAMBAH ISINYA T0616 - Algoritma dan Pemrograman 8 MENUTUP BERKAS • BERKAS DITUTUP DENGAN PERNYATAAN fclose(pt_var); YANG AKAN MEMBEBASKAN BUFFER AGAR DAPAT DIGUNAKAN OLEH BERKAS LAIN DAN MENGIRIM DATA YANG MASIH TERTINGGAL DI BUFFER AGAR SEGERA DIKIRIM KE BERKAS. • SEBAGAI CATATAN, ISI BUFFER AKAN DIKIRIM KE BERKAS JIKA BUFFER PENUH, BERKAS DITUTUP ATAU PROGRAM SELESAI. 7/11/2017 T0616 - Algoritma dan Pemrograman 9 CONTOH 1: BERKAS KARAKTER //bentuk berkas main() { FILE *fPt; char c; fPt = fopen(“contoh.dat”, “w”); do putc(toupper(c=getchar()),fPt); while (c!=‘\n’); fclose(fPt); } 7/11/2017 //buka berkas 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); } T0616 - Algoritma dan Pemrograman 10 CONTOH 2: BERKAS STRING //bentuk berkas main() { FILE *fPt; char s[81]; fPt = fopen(“contoh.dat”, “w”); while(strlen(gets(s))>0) { fputs(s,fPt); fputs(“\n”,fPt); } fclose(fPt); } 7/11/2017 //baca berkas main() { FILE *fPt; char s[81]; fPt = fopen(“contoh.dat”,”r”); while(fgets(s,80,fPt)!=NULL) printf(“%s”, s); fclose(fPt); } T0616 - Algoritma dan Pemrograman 11 CONTOH 3: BERKAS UNFORMATTED //bentuk berkas typedef struct { int nim; char nama[31]; float ipk; } record; main() { record mhs; FILE *fPt; if((fPt=fopen(“mhs.dat”,”w”))== NULL){ printf(“EROR”); break; } 7/11/2017 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); } T0616 - Algoritma dan Pemrograman 12 CONTOH 3: BERKAS UNFORMATTED //buka berkas typedef struct { int nim; char nama[31]; float ipk; } record; main() { record mhs; FILE *fPt; if((fPt=fopen(“mhs.dat”,”r”))== NULL){ printf(“EROR”); exit(); } 7/11/2017 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); } T0616 - Algoritma dan Pemrograman 13 THE END “...ALL YOU NEED IS LOVE…” 7/11/2017 T0616 - Algoritma dan Pemrograman 14
© Copyright 2024 Paperzz