pertemuan 23-24 file

22
1 Pertemuan 23-24 File Matakuliah : T0616 / Algoritma dan Pemrograman Tahun : 2007 Versi : 1/0

Upload: pier

Post on 14-Jan-2016

56 views

Category:

Documents


0 download

DESCRIPTION

Pertemuan 23-24 File. Matakuliah: T0616 / Algoritma dan Pemrograman Tahun: 2007 Versi: 1/0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mendemonstrasikan penyimpanan data menggunakan tipe data file (C3). Outline Materi. File Definisi file - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Pertemuan 23-24 File

1

Pertemuan 23-24File

Matakuliah : T0616 / Algoritma dan Pemrograman

Tahun : 2007

Versi : 1/0

Page 2: Pertemuan 23-24 File

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

3

Outline Materi

File

• Definisi file

• Tipe file

• File teks dan biner

• Fungsi Input Output file

Page 4: Pertemuan 23-24 File

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21

Latihan

• Buat soal sebelumnya menggunakan file Unformatted ! Bandingkan !

Page 22: Pertemuan 23-24 File

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.