Exercise Variabel Dinamis |
|
|
PROGRAM CONTOH_LINKED_LIST
USES CRT;
type ptr = ^node;
item = char;
node = record
isi : item;
next : ptr;
end;
var l : ptr;
Procedure awal(var L:ptr);
var temp : ptr;
begin
L := NIL;
end;
Procedure tambahdepan(var L : ptr; data:item);
var temp : ptr;
begin
new(temp);
temp^.isi := data;
temp^.next := NIL;
if L=NIL then L :=temp
else
begin
temp^.next := L;
L := temp;
end;
end;
Procedure tampil(L:ptr);
var temp : ptr;
begin
temp := l;
while temp<>nil do
begin
writeln(temp^.isi);
temp := temp^.next;
end;
end;
BEGIN
AWAL(l);
CLRSCR;
TAMBAHDEPAN(L,'D'); TAMBAHDEPAN(L,'B');TAMBAHDEPAN(L,'C');
TAMPIL(L);
DISPOSE(L);
END.
TUGAS
- Buatlah prosedur untuk membaca data sehingga untuk memasukkan
data tidak perlu menuliskan prosedur TAMBAHDEPAN berulang-ulang.
Gunakan deklarasi berikut:
Procedure BACADATA(var L:ptr);
var i,n : integer;
c : item;
begin
write('Berapa data mau dimasukkan ? ');readln(n);
for i:=1 to n do
begin
write('Masukkan huruf : ');readln(c);
tambahdepan(L,c);
end;
end;
- Gunakan prosedur BACADATA di dalam program di atas
- Ubahlah tipe item pada program di atas menjadi sebuah record dengan field berupa
nama, NIM dan lulus seperti pada praktikum tentang antrian (minggu sebelumnya)
|