Algoritma Pengurutan dengan Pascal
16 January 2013
Algoritma Rekursif dengan Pascal
16 January 2013

Pemrosesan Arsip Beruntun dengan Pascal

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:

  1. beruntun (sequential) = penyimpanan dan pengaksesannya secara berurutan dari rekaman pertama sampai akhir.
  2. acak (random) atau arsip langsung(direct access) = dapat diakses secara langsung tanpa memulai dari awal.

Pendeklarasian Arsip dalam Algoritma

 

Bentuk umum:

DEKLARASI:

    arsip :   File of tipe rekaman

 

Contoh:

  1. Arsip yang berisi sekumpulan bilangan bulat

Bil: File of integer

  1. Arsip Mhs yang berisi data mahasiswa

type  DataMhs : record <NIM: integer; Nama:string>

Mhs : File of DataMhs

  1. Arsip Kar, yaitu arsip yang berisi data bertipe karakter.

Kar : File of char

  1. Mendefinisikan arsip integer sebagai tipe bentukan.

type ArsipInt : File of integer

Bil : ArsipInt

  1. Data Mhs sebagai tipe bentukan

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:

  1. Open, fungsinya membuka arsip beruntun untuk siap dibaca/ditulis.

Contoh: Open(Mhs, 1)

 

  1. Fread, fungsinya membaca rekaman yang sekarang sedang ditunjukan oleh pointer.

Contoh: Fread (Mhs, RekMhs)

  1. Fwrite, fungsinya menulis rekaman ke dalam arsip beruntun.

Contoh: Fwrite(Mhs, 354)

RekMhs.NIM ß 10001

 

  1. Close, fungsinya menutup arsip yang sudah dibuka.

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. 2007Algoritma dan pemrograman dalam Bahasa Pascal dan C, Penerbit informatika. Bandung.

Muhammat Rasid Ridho
Muhammat Rasid Ridho
Software Developer yang Suka Jalan jalan, Belajar Jaringan dan Berbagi Cerita. Instagram: muhammat.rasid.ridho Jangan lupa tulis komentar di bawah ini ya teman teman ... !

Leave a Reply

Your email address will not be published.