Pendahuluan
Arsip (file) atau berkas adalah struktur penyimpanan data di dalam memori sekunder seperti disk. Sehingga sewaktu waktu dapat dibuka kembali untuk diakses kembali.
Setiap item data yang direkam di dalam arsip disebut rekaman (record). Ada dua cara pengorganisasian data dalam arsip:
Pendeklarasian Arsip dalam Algoritma
Bentuk umum:
DEKLARASI:
arsip : File of tipe rekaman
Contoh:
Bil: File of integer
type DataMhs : record <NIM: integer; Nama:string>
Mhs : File of DataMhs
Kar : File of char
type ArsipInt : File of integer
Bil : ArsipInt
type DataMhs : record <NIM: integer; Nama:string>
type ArsipMhs : File of DataMhs
Mhs : ArsipMhs
Fungsi Pustaka untuk Arsip Beruntun
Mendefinisikan sejumlah instruksi baku untuk memroses arsip yang dinyatakan sebagai fungsi/prosedur pustaka (library function).
Intruksi baku tersebut antara lain:
Contoh: Open(Mhs, 1)
Contoh: Fread (Mhs, RekMhs)
Contoh: Fwrite(Mhs, 354)
RekMhs.NIM ß 10001
Contoh: Close(Mhs)
Membuat Arsip Beruntun
Berikut ini contoh mengisi arsip Mhs dengan data mahasiswa yang dibaca dari keyboard.
Program BuatArsipMahasiswa_;
uses wincrt;
type DataMhs = record
NIM : longint;
Nama : string[25];
IP : real;
end;
var Msiswa : DataMhs;
Mhs : File of DataMhs;
begin
assign(Mhs, ‘data.dat’);
rewrite(Mhs);
write(‘NIM : ‘); readln(Msiswa.NIM);
while(Msiswa.NIM <> 9999) do
begin
write(‘Nama : ‘); readln(Msiswa.Nama);
write(‘IP : ‘); readln(Msiswa.IP);
write(Mhs, Msiswa);
write(‘NIM : ‘); readln(Msiswa.NIM);
end;
close(Mhs);
end.
Membaca Arsip Beruntun
Program BacaArsipMahasiswa;
uses wincrt;
type DataMhs = record
NIM : longint;
Nama : string[25];
IP : real;
end;
var Msiswa : DataMhs;
Mhs : File of DataMhs;
begin
assign(Mhs, ‘data.dat’);
reset(Mhs);
while not EOF(Mhs) do
begin
read(Mhs, Msiswa);
writeln(‘NIM : ‘, Msiswa.NIM);
writeln(‘Nama : ‘, Msiswa.Nama);
writeln(‘IP : ‘, Msiswa.IP:0:2);
end;
close(Mhs);
end.
Pencarian Arsip Beruntun
Program CariArsipMahasiswa;
uses wincrt;
type DataMhs = record
NIM : longint;
Nama : string[25];
IP : real;
end;
var Msiswa, RekMhs : DataMhs;
Mhs : File of DataMhs;
ketemu : boolean;
Nomor : integer;
begin
write(‘Masukan NIM yang akan dicari : ‘);readln(Nomor);
assign(Mhs, ‘data.dat’);
reset(Mhs);
ketemu:=false;
while (not EOF(Mhs)) and (not ketemu) do
begin
read(Mhs, RekMhs);
if RekMhs.NIM = Nomor then
ketemu := true;
end;
if (ketemu) then
write(Nomor,’ ditemukan’ )
else
write(Nomor,’ TIDAK ditemukan’)
close(Mhs);
end.
Daftar Pustaka:
Munir, Rinaldi. 2007. Algoritma dan pemrograman dalam Bahasa Pascal dan C, Penerbit informatika. Bandung.