download

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