You are here

Program 10 Pengolahan Data dengan Menggunakan File

-------------------------------------------------------
{ 1st my tutorial for my friend }
{ writen by : m3n_tu4r1 } padang, 19 mei 2003
-------------------------------------------------------

PENGOLAHAAN DATA DENGAN MENGUNAKAN FILE

---------------------------------------

JENIS FILE :

* FILE TEKS

* FILE SEQUENTIAL

* FILE BINARI

* Deklarasi file teks

penulisan =

  TYPE
    pengenal = TEXT;
  {atau}
  VAR
  pengenal : TEXT;

Penjelasan =

pengenal = variabel file

* Deklarasi file sequential

penulisan =

  TYPE
    pengenal = FILE of tipe_data;
  {atau}
  VAR
    pengenal : FILE of tipe_data;

Penjelasan =

pengenal = variabel file

tipe_data = jenis data yang digunakan

* Deklarasi file binary

penulisan =

  TYPE
    pengenal = FILE;
  {atau}
  VAR
    pengenal : FILE;

Penjelasan =

pengenal = variabel file

1). Mendeklarasikan pengenal yang akan digunakan sebagai variabel file.

 sintax : ASSIGN ( Pengenal,'nfile' )

parameter :

  pengenal = variabel file 
  nfile = nama file fisik

contoh :

 USES CRT;
 VAR 
	mhs : TEXT
 BEGIN
	ASSIGN (mhs,'C:\mhs.txt');
	  .
	  .
	  .
 END. 


2). Membuka berkas baru untuk ditulis dan menempatkan pointer pada awal file.

 sintax : REWRITE ( pengenal )

parameter :

  pengenal = variabel file

contoh :

 USES CRT;
 VAR 
	mhs : TEXT
 BEGIN
	ASSIGN (mhs,'C:\mhs.txt');
	REWRITE (mhs);
	  .
	  .
	  .
 END. 


3). Membuka berkas untuk dibaca & menempatkan pointer pada awal berkas tanpa menghapus data yang sudah ada.

parameter :

pengenal = variabel file 


4). Merekam data dari variabel data kedalam berkas.

 sintax : WRITELN ( pengenal, var data )

parameter :

  pengenal = variabel file
var data = variabel data

contoh :

 USES CRT;
 VAR
   mhs : TEXT;
   nobp : string [6];
   nama : string [25];
 BEGIN
   ASSIGN (mhs,'C:\mhs.txt');
   REWRITE (mhs);
   nobp:= '960001';
   nama:= 'men_tuari';
   WRITELN (mhs,nobp:6,nama:25)
   .
   .
   .
 END.

5. Membaca data dari file dan disimpan ke varibel data

 sintax : READLN ( pengenal, var data )

parameter :

  pengenal = variabel file 
  var data = variabel data 

contoh :

 USES CRT;
 VAR
   mhs : TEXT;
   nobp : string [6];
   nama : string [25];
 BEGIN
   ASSIGN (mhs,'C:\mhs.txt'); 
   RESET (mhs);
   READLN (mhs,nobp:6,nama:25); 
   WRITELN (nobp:6,nama:25); 
   .
   .
   .
 END.

6. Memeriksa apakah posisi pointer pada akhir file atau tidak.

~ Bila pada akhir file nilai baliknya adalah TRUE, bila tidak nilainya FALSE

 sintax : EOF ( pengenal ); {EOF = End Of File }

contoh :

 USES CRT;
 .
 .
 . 
 BEGIN
	 .
	 .
	 . 
	 WHILE NOT EOF (mhs) DO
	 BEGIN 
		  READLN (mhs,nobp:6,nama:25);
		  .
		  .
	 END;
	  . 
	  .
	  .
 END.

7. Menutup berkas yang telah dibuka.

 sintax : CLOSE (pengenal)

contoh :

 USES CRT;
 .
 .
 . 
 BEGIN
	 .
	 .
	 . 
	 WHILE NOT EOF (mhs) DO
	 BEGIN 
		  READLN (mhs,nobp:6,nama:25);
		  .
		  .
	 END; 
	 CLOSE (mhs);
  END.
 USES CRT;
 VAR
    mhs : TEXT;
    nobp : string [6];
    nama : string [25];
    nilai : integer; 
 BEGIN
    ASSIGN (mhs,'C:\mhs.txt'); 
    REWRITE (mhs);
    REPEAT {Looping / pengulangan } 
        CLRSCR; {untuk membersihkan layar}
        GOTOXY (30,5); WRITELN ('DATA MAHASISWA');{GOTOXY
(30,5) = letakan krusor di kolom 30 pada baris 5 }
        GOTOXY (10,7); WRITELN ('No.BP :'); 
        GOTOXY (10,8); WRITELN ('Nama :');
        GOTOXY (10,9); WRITELN ('Nilai :');
        GOTOXY (30,7); READLN (nobp);
        IF nobp:=" THEN BREAK ;
        GOTOXY (30,8); READLN (nama);
        GOTOXY (30,9); READLN (nilai);
        WRITELN (mhs, nobp:6,nama:25,nilai);
     UNTIL FALSE; {akhir dari looping }
     CLOSE (mhs);
 END.
 USES CRT;
 VAR
    mhs : TEXT;
    nobp : string [6];
    nama : string [25];
    nilai : integer; 
    nomor : integer;
 BEGIN
    ASSIGN (mhs,'C:\mhs.txt');
    RESET (mhs);
    CLRSCR;
    WRITELN (' DAFTAR NAMA MAHASIWA ');
    WRITELN ('_________________________________________
_____');
    WRITELN ('; NO ; NO.BP ; NAMA MAHASISWA ; NILAI ;');
    WRITELN ('_________________________________________
_____');
    nomor:= 0;
    WHILE NOT EOF (mhs) Do
    BEGIN
         READLN (mhs,nobp:6,nama:25,nilai:5 );
         nomor:= nomor + 1;
         WRITELN (';',nomor:3,';',nobp:6,';',nama:25,';',
nilai:5,';');
    END;
    WRITELN ('_________________________________________
_____');
    CLOSE (mhs);
 END.

Regards,

m3n_tu4r1