uses wincrt;
type kait=^data;
data=record
nama:string;
depan,belakang:kait;
end;
var first,last,bantu:kait;
pil:char;
procedure buat(var bantu:kait);
begin
if first=nil then
begin
first:=bantu;
first^.depan:=nil;
first^.belakang:=nil;
last:=first;
end
else
begin
last^.depan:=bantu;
bantu^.depan:=nil;
bantu^.belakang:=last;
last:=bantu;
end;
end;
procedure cetak_awal;
var bantu:kait;
begin
clrscr;
writeln('===========================================');
writeln(' Tumpukan buku dari awal sampai akhir');
writeln('===========================================');
bantu:=first;
while bantu <> nil do
begin
writeln('Nama buku : ',bantu^.nama);
bantu:=bantu^.depan;
end;
readln;
end;
procedure cetak_akhir;
var bantu:kait;
begin
clrscr;
writeln('===========================================');
writeln(' Tumpukan buku dari akhir sampai awal');
writeln('===========================================');
bantu:=last;
while bantu <> nil do
begin
writeln('Nama buku : ',bantu^.nama);
bantu:=bantu^.belakang;
end;
readln;
end;
procedure hapus_list;
var bantu:kait;
begin
clrscr;
while first <> nil do
begin
bantu:=first;
first:=first^.depan;
dispose(bantu);
end;
writeln('____________________________________________________');
writeln(' Data mengenai koleksi tumpukan buku dihapus');
readln;
end;
begin
first:=nil;
repeat
clrscr;
writeln('==========================================');
writeln(' Program Tumpukan Koleksi Buku');
writeln('==========================================');
writeln;
writeln(' 1. Tambah tumpukan buku');
writeln(' 2. Cetak Tumpukan buku dari awal');
writeln(' 3. Cetak tumpukan buku dari akhir');
writeln(' 4. Hapus seluruh tumpukan buku');
writeln(' 5. Keluar dari program');
writeln(' _________________________________');
write(' Masukan pilihan anda [1/2/3/4/5] : ');
readln(pil);
case pil of
'1':begin
clrscr;
new(bantu);
writeln('==============================');
writeln(' Tambah data buku ');
writeln('==============================');
writeln;
write('Masukan judul buku : ');
readln(bantu^.nama);
buat(bantu);
end;
'2':cetak_awal;
'3':cetak_akhir;
'4':hapus_list;
'5':begin
clrscr;
writeln('________________________________________________');
writeln(' Anda telah keluar dari program');
writeln('************************************************');
end;
end;
until (pil='5');
end.
type kait=^data;
data=record
nama:string;
depan,belakang:kait;
end;
var first,last,bantu:kait;
pil:char;
procedure buat(var bantu:kait);
begin
if first=nil then
begin
first:=bantu;
first^.depan:=nil;
first^.belakang:=nil;
last:=first;
end
else
begin
last^.depan:=bantu;
bantu^.depan:=nil;
bantu^.belakang:=last;
last:=bantu;
end;
end;
procedure cetak_awal;
var bantu:kait;
begin
clrscr;
writeln('===========================================');
writeln(' Tumpukan buku dari awal sampai akhir');
writeln('===========================================');
bantu:=first;
while bantu <> nil do
begin
writeln('Nama buku : ',bantu^.nama);
bantu:=bantu^.depan;
end;
readln;
end;
procedure cetak_akhir;
var bantu:kait;
begin
clrscr;
writeln('===========================================');
writeln(' Tumpukan buku dari akhir sampai awal');
writeln('===========================================');
bantu:=last;
while bantu <> nil do
begin
writeln('Nama buku : ',bantu^.nama);
bantu:=bantu^.belakang;
end;
readln;
end;
procedure hapus_list;
var bantu:kait;
begin
clrscr;
while first <> nil do
begin
bantu:=first;
first:=first^.depan;
dispose(bantu);
end;
writeln('____________________________________________________');
writeln(' Data mengenai koleksi tumpukan buku dihapus');
readln;
end;
begin
first:=nil;
repeat
clrscr;
writeln('==========================================');
writeln(' Program Tumpukan Koleksi Buku');
writeln('==========================================');
writeln;
writeln(' 1. Tambah tumpukan buku');
writeln(' 2. Cetak Tumpukan buku dari awal');
writeln(' 3. Cetak tumpukan buku dari akhir');
writeln(' 4. Hapus seluruh tumpukan buku');
writeln(' 5. Keluar dari program');
writeln(' _________________________________');
write(' Masukan pilihan anda [1/2/3/4/5] : ');
readln(pil);
case pil of
'1':begin
clrscr;
new(bantu);
writeln('==============================');
writeln(' Tambah data buku ');
writeln('==============================');
writeln;
write('Masukan judul buku : ');
readln(bantu^.nama);
buat(bantu);
end;
'2':cetak_awal;
'3':cetak_akhir;
'4':hapus_list;
'5':begin
clrscr;
writeln('________________________________________________');
writeln(' Anda telah keluar dari program');
writeln('************************************************');
end;
end;
until (pil='5');
end.