Sabtu, 07 Januari 2012

TUGAS PROGRAM MULTI LIST....

Organisasi berkas yang memperbolehkan record diakses oleh lebih dari satu key

field disebut organisasi berkas dengan banyak key.


Ada banyak teknik yang dipakai untuk organisasi berkas dengan banyak key ini.

Hampir semua pendekatan bergantung pada pembentukan indeks yang dapat memberi

akses langsung dengan banyak nilai key.

Ada 2 teknik dasar untuk pemberian hubungan antara sebuah indeks dan data

record dari berkas, yaitu :

§ Inversion

§ Multi-list

CONTOH PROGRAM MULTI LIST

uses crt;
type
filebio = record
     npm:string[8];
     nirm:string[3];
     nama:string[15];
     alamat:string[10];
     end;
filenirm = record
     nirm2:string[3];
     masuk:string[10];
     akhir:string[10];
     end;
var
biodata :array[1..10] of filebio;
tglnirm :array[1..10] of filenirm;
isi:text;
a,x,y:integer;


Procedure tbio;
begin
a:=5;
assign(isi,'biodata2.dat');
reset(isi);
writeln('Biodata');
writeln('************************************************************');
writeln('*    Npm     * Nirm  *         Nama        *     alamat    *');
writeln('************************************************************');
for x:=1 to 10 do
begin
readln(isi,biodata[x].npm);
readln(isi,biodata[x].nirm);
readln(isi,biodata[x].nama);
readln(isi,biodata[x].alamat);
write('*  ',biodata[x].npm,'  *  ',biodata[x].nirm,'  *   ',biodata[x].nama,'   *    ',biodata[x].alamat:5);
gotoxy(60,a);
writeln('*');
a:=a+1;
end;
close(isi);
writeln('************************************************************');
readln;
end;

procedure tnirm;
begin
assign(isi,'filenirm.dat');
reset(isi);
writeln('File Nirm');
writeln('*****************************************************');
writeln('* Nirm   *    Tanggal Masuk    *    Tanggal Akhir   *');
writeln('*****************************************************');
for x := 1 to 10 do
begin
readln(isi,tglnirm[x].nirm2);
readln(isi,tglnirm[x].masuk);
readln(isi,tglnirm[x].akhir);
writeln('*  ',tglnirm[x].nirm2,'   *     ',tglnirm[x].masuk,'      *     ',tglnirm[x].akhir,'     *');
end;
writeln('*****************************************************');
close(isi);
readln;
end.



procedure daftarsiswa;
begin
a:=5;
gotoxy(1,30);writeln('Daftar Siswa');
writeln('***********************************************************************');
writeln('* No *    Npm   * Nirm *       Nama       *  Tgl masuk  *  Tgl Akhir  *');
writeln('***********************************************************************');
for x := 1 to 10 do
begin
write('* ',x,'  * ',biodata[x].npm,' * ',biodata[x].nirm,'  * ',biodata[x].nama,'  *','             *','             *');
for y := 1 to 10 do
if biodata[x].nirm = tglnirm[y].nirm2 then
begin
gotoxy(46,a);
writeln(tglnirm[y].masuk);
gotoxy(60,a);
writeln(tglnirm[y].akhir);
a:=a+1;
end;
end;
writeln('***********************************************************************');
readln;
end;

begin
clrscr;tbio;
clrscr;tnirm;
clrscr;daftarsiswa;
end.

jika program diatas kita jalankan pada pascal,maka akan seperti pada tampilan dibawah ini ;












Setelah program tersebut selesai di ketik,maka tekan F10 untuk ke menu,kemudian pilih RUN,atau kita dapat langsung menekan tombol CTRL +  F9. Maka akan tampil hasil sebagai berikut.





kemudian tekan ENTER,maka akan muncul hasil berikut....





kemudian tekan ENTER lagi,maka akan tampil hasil sebagai berikut;

selesai.