T0616 ALGORITMA DAN PEMROGRAMAN (26) UNIVERSITAS BINA NUSANTARA

Download Report

Transcript T0616 ALGORITMA DAN PEMROGRAMAN (26) UNIVERSITAS BINA NUSANTARA

T0616
ALGORITMA DAN PEMROGRAMAN
(26)
SUBANDIJO
UNIVERSITAS BINA NUSANTARA
FAKULTAS ILMU KOMPUTER
JAKARTA, 2005
6/28/2016
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);
6/28/2016
T0616 - Algoritma dan Pemrograman
2
DEFINISI BERKAS
•
•
•
•
BERKAS ADALAH KUMPULAN RECORD
RECORD ADALAH KUMPULAN FIELD
FIELD KUMPULAN BYTE
BYTE DALAH KUMPULAN BIT
6/28/2016
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.
6/28/2016
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.
6/28/2016
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.
6/28/2016
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.
6/28/2016
T0616 - Algoritma dan Pemrograman
7
MEMBUKA BERKAS
• NILAI MODE OPERASI YANG MUNGKIN ADALAH
MODE
“r”
“w”
“a”
“r+”
“w+”
“a+”
6/28/2016
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.
6/28/2016
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);
}
6/28/2016
//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);
}
6/28/2016
//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;
}
6/28/2016
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();
}
6/28/2016
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…”
6/28/2016
T0616 - Algoritma dan Pemrograman
14