Multiple Linked List (Multi List)_Struktur Data
MULTIPLE LINKED LIST
Multiple linked list merupakan senarai berantai
yang memiliki link atau pointer lebih darisatu. Untuk multiple linked list yang
memiliki dua link biasanya disebut sebagai doublylinked list (senarai berantai
ganda). Senarai berantai ganda memiliki dua buah pointer yang biasanya masing-masing menunjuk ke simpul sebelumnya
dan ke simpulsesudahnya. Jika dideklarasikan
dalam deklarasi program maka menjadi sebagai berikut.Biodata Mahasiswa dimana data mahasiswa diperoleh dari 2 type yang berisi file mahasiswa dan file NIRM.
berikut contoh source code nya:
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.
hasil screenshoot biodata:
screenshoot NIRM:
screenshoot hasilnya:
Komentar
Posting Komentar