• Tidak ada hasil yang ditemukan

FILE TEXT

Dalam dokumen pascal 4 aturan penulisan pascal (Halaman 39-47)

RECORD DAN FILE

FILE TEXT

1. Data direkam dalam format text ASCII

1. Data direkam dalam format BINER

2. Akses/ rekam data harus urut 2. Akses/ rekam data bersifat acak/sembarang

3. Akses hanya dapat satu arah 3. Akses dapat langsung dua arah

FILE TEXT

Beberapa perintah yang berkaitan dengan file text adalah : 1. Assign(f, nf)

Perintah ini berguna untuk mengaitkan suatu variabel file (f) dengan suatu nama file (nf). Contoh : Assign(Mhs, ‘B:DataMhs’);

2. Rewrite(F)

Perintah ini berguna untuk membuka file, sehingga file tersebut telah dikaitkan dengan variabel file (f) melalui procedure Assign. Perintah Rewrite akan mempunyai mode akses REKAM, yaitu file tersebut dibuka untuk direkamkan data ke dalamnya

Contoh: Rewrite(Mhs); 3. Append(f)

Perintah ini membuka file seperti rewrite(f), tetapi file yang dibuka HARUS SUDAH ADA terlebih dahulu. Sedangkan data yang direkam ke dalamnya akan MENAMBAH pada data yang telah ada sebelumnya.

Contoh : APPEND(f) 4. Reset(f)

Perintah ini berguna untuk membuka file, sehingga file tersebut telah dikaitkan dengan variabel file (f) melalui Assign juga. Perbedaan dengan Rewrite adalah Mode aksesnya yaitu Reset mempunyai mode akses BACA. Reset berarti dibuka untuk dibaca data dari dalam file tersebut.

Perintah ini berguna untuk menuliskan/simpan ke dalam file yang nama filenya dikaitkan ke variabel file f. Perbedaan Writeln dan Write mempunyai efek yang sama dengan efek ke layar. Data akan dituliskan ke file dapat berupa KONSTANTA, EKSPRESI atau VARIABEL. Contoh : Assign(f2,’File_A’); Rewrite(f2); Write(f2,’Hallo’); Writeln(‘IPTTI’); X := ‘Selamat Pagi’; Writeln(f2,x); 6. Readln(f, Var)

Perintah ini berguna untuk membaca data dari file dengan variabel file f. Data akan ditampung dalam variabel Var.

Perintah ini berkaitan dengan membuka file dengan RESET(f). Contoh : Assign(f2,’DataMhs’);

Reset(f2);

Readln(f2,noMhs,Nama) 7. Close(f)

Peintah ini berguna untuk menutup file dengan variabel file f. Contoh : close(f);

8. Eof (f)

Fungsi sebagai boolean yang berarti TRUE jika pointer baca dari file dengan variabel file f berada di posisi paling akhir/terakhir dan bernilai FALSE jika tidak.

Berikut agar lebih jelas lihat contoh program Contoh 5.2 :

Program Nilai_Mhs; Uses Crt;

Var

F : text; {variabel fle} NoMhs : string[5]; Nama : String[20]; Nilai : real; Pil : Char; Procedure RekamData; Begin Clrscr; Assign(f,’Datmhs’); Rewrite(f); {buka file baru} Repeat

Writeln(‘KETIK No.Mhs = HABIS jika selesai’); Write(‘Nomor Mhs : ‘); Readln(NoMhs); If NoMhs <> ‘HABIS’ then

begin

Write(‘Nama Mhs : ‘); Readln(Nama); Write(‘Nilai angka : ‘); Readln(Nilai); Writeln;

{rekam ke file}

Writeln(f, NoMhs:5, Nama:20, Nilai: 5:2); End; Until NoMhs=’HABIS’; Close(f); End; Procedure TambahData; Begin Assign(f,’DatMhs’);

Append(f); {buka file untuk ditambah data} Rekamdata;

End;

Procedure LihatData; Begin

Assign(f,’DatMhs’);

Reset(f); {buka file untuk diBACA/Dilihat datanya} Clrscr;

Writeln(‘Daftar Nilai Siswa’);

Writeln(‘=====================================’);

Writeln(‘No Mhs Nama Nilai ‘);

Writeln(‘=====================================’); While not eof (f) do

Begin

{baca dari file}

Readln(f,NoMhs, Nama, Nilai);

Writeln(Nomhs: 5, Nama: 20, ‘ ‘,Nilai: 5:2); End;

Writeln(‘=====================================’); Readln;

Close(f); End;

Begin {program inti} Repeat Clrscr;

Writeln(‘MENU UTAMA’);

Writeln(‘1. Rekam Data’); Writeln(‘2. Tambah Data’);

Writeln(‘3. Lihat Data’); Writeln(‘4. Selesai’);

Write(‘Pilihan proses : ‘); Readln(Pil);

Case pil of ‘1’ : RekamData; ‘2’ : TambahData; ‘3’ : LihatData; End; Until Pil=’4’; End. Run MENU UTAMA 1. Rekam Data 2. Tambah Data 3. Lihat Data 4. Selesai Pilihan proses :

KETIK No.Mhs = HABIS jika selesai Nomor Mhs : 01

Nama Mhs : Andria Nilai angka : 80

KETIK No.Mhs = HABIS jika selesai Nomor Mhs : 02

Nama Mhs : Basuki Nilai angka : 82

KETIK No.Mhs = HABIS jika selesai Nomor Mhs : 03

Nama Mhs : RIYAN Nilai angka : 90

KETIK No.Mhs = HABIS jika selesai Nomor Mhs : HABIS

Daftar Nilai Siswa

===================================== No Mhs Nama Nilai ===================================== 01 Andria 80.00 02 Basuki 82.00 03 RIYAN 90.00 ===================================== FILE BERTIPE

Dalam mendeklarasikan variabel file, ada perbedaan antara file teks dengan file bertipe yaitu :

Untuk file teks selalu : Var NamaVarFile : text

Untuk file bertipe : Var NamaVarFile : File Of Tipedata; Dengan Tipedata dapat berupa integer, real, char, string atau record. Contoh deklarasi variabel file dalam file bertipe adalah :

F : file of Real; F : file of String[20];

F : file of RecMhs; Æ recMhs merupakan Type data Record

Adapun perintah yang ada dalam file text maupun file bertipe adalah : Assign(f,’namfile’);

Rewrite(f); Reset(f);

Close(f); Fungsi EOF(f)

File bertipe mempunyai fungsi eof yang berbeda yaitu :

1. Untuk menulis ke file maka perintah yang dipakai HANYA : Write(f,NamaVar); 2. Untuk membaca file perintah yang dipakai HANYA : Read(f,NamaVar);

Disamping itu posisi record yang direkam dan dibaca dapat ACAK dan dapat DUA ARAH yaitu REKAM/BACA.

Berikut adalah perintah yang ada pada file tipe : 1. Seek(f, noRec)

Perintah ini untuk memposisikan pointer baca pada noRec. Perlu ketahui bahwa record pertama ada pada posisi 0, record ke dua ada ada posisi 1 dan seterusnya. Contoh : Seek (f, 4); Read(f,V);

Hasil : Record 5 akan dibaca, hasilnya disimpan di variabel V. Contoh : Seek(f,9); Write(f,V);

Hasil : Isi variabel V direkam di posisi record 10 2. Truncate(f)

Perintah ini untuk menghapus seluruh record mulai dari posisi POINTER BACA berada.

Contoh : seek(f,5); Truncate(f);

Hasil : Seluruh record mulai posisi 5 akan dihapus dari file. 3. FilePos(f)

Perintah ini untuk mendapatkan pointer sekarang dari penunjuk file. Contoh : Seek(f,5); p:=FilePos(F); Writeln(p);

Hasil : 3 posisi sekarang. 4. FileSize(f)

Berguna untuk mendapatkan cacah record dari file yang dibuka. Contoh : Reset(f); n:=FileSize(f);

Hasil : n akan berisi cacah record dari file dengan varfile f. Berikut contoh untuk File Record bertipe :

Contoh 5.3 File Beritpe

Uses Crt; Type RecSiswa = Record NoMhs : String[5]; Nama : String[20]; Nilai : Real; End; Var

Fsis : File Of RecSiswa; Siswa : RecSiswa; Pil : Char; Procedure RekamBaru; Begin Assign(fsis,’Datmhs’); Rewrite(fsis); Repeat

Writeln(‘KETIK NoMhs = HABIS jika selesai’); Write(‘Nomor Mhs : ‘); Readln(Siswa.NoMhs); If Siswa.NoMhs <> ‘HABIS’ then

Begin

Write(‘Nama Mhs : ‘); Readln(Siswa.Nama); Write(‘Nilai Angka : ‘); Readln(Siswa.Nilai);

{rekam file}

Write(fsis,siswa); Writeln;

End;

Close(fSis); End; Procedure Tambahdata; Begin Assign(fSis,’DatMhs’); Reset(fsis); Seek(fsis, FileSize(fSis)); RekamBaru; End; Procedure BacaSemua; Var P : Integer; Begin Assign(Fsis,’DatMhs’); Reset(Fsis); Writeln(‘Daftar Nilai’); Writeln(‘=========================================’);

Writeln(‘NoMhs Nama Nilai ‘);

Writeln(‘=========================================’); For P:= 1 to FileSize(fSis) do

Begin

Read(Fsis,Siswa);

With Siswa do

Writeln(NoMhs:5, Nama:20, Nilai:5,2); End;

Writeln(‘=========================================’); Readln;

Close(Fsis); End;

Begin {program inti}

Repeat Clrscr;

Writeln(‘MENU UTAMA’);

Writeln(‘1. Rekam Baru’); Writeln(‘2. Tambah Data’); Writeln(‘3. Lihat Data’); Writeln(‘4. Selesai’);

Write(‘Pilihan proses : ‘); Readln(Pil);

Case pil of ‘1’ : RekamBaru; ‘2’ : TambahData; ‘3’ : BacaSemua; End; Until Pil=’4’; End.

Run MENU UTAMA 1. Rekam Baru 2. Tambah Data 3. Lihat Data 4. Selesai Pilihan proses :

Dalam dokumen pascal 4 aturan penulisan pascal (Halaman 39-47)

Dokumen terkait