pertemuan 23-24 file

Post on 14-Jan-2016

56 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

1

Pertemuan 23-24File

Matakuliah : T0616 / Algoritma dan Pemrograman

Tahun : 2007

Versi : 1/0

2

Learning Outcomes

Pada akhir pertemuan ini, diharapkan mahasiswa

akan mampu :

• Mendemonstrasikan penyimpanan data menggunakan tipe data file (C3)

3

Outline Materi

File

• Definisi file

• Tipe file

• File teks dan biner

• Fungsi Input Output file

4

Definisi File

• Definisi File

• File adalah kumpulan record

• Record adalah kumpulan field

• Field kumpulan byte

• Byte dalah kumpulan bit

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.

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.

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.

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.

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

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.

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

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

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);}

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);

}

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);}

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);

}

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);

}

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);

}

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

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.

21

Latihan

• Buat soal sebelumnya menggunakan file Unformatted ! Bandingkan !

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.

top related