Program Perpustakaan dengan Double Linked List

program perpustakaan;
uses crt;
type
pointer = ^Buku;
Buku = record
kodeBuku : integer;
judulBuku: string;
next,prev : pointer;
end;
var
awal,akhir : pointer;


{-----------------------------------------SISIP DEPAN-------------------------------------------}

procedure sisip_depan_double(var awal,akhir:pointer; kode:integer; judul:string);
var
dataBuku:pointer;
begin
New(dataBuku);
dataBuku^.kodeBuku := kode;
dataBuku^.judulBuku := judul;
if (awal = nil) then
begin
dataBuku^.next := nil;
dataBuku^.prev := nil;
akhir := dataBuku;
end
else
begin
dataBuku^.next := awal;
dataBuku^.prev := nil;
awal^.prev := dataBuku;
end;
awal:=dataBuku;
end;

{-----------------------------------------SISIP BELAKANG-------------------------------------------}

procedure sisip_belakang_double(var awal,akhir :pointer; kode:integer; judul:string);
var
dataBuku : pointer;
begin
New(dataBuku);
dataBuku^.kodeBuku := kode;
dataBuku^.judulBuku := judul;
dataBuku^.next := nil;
if (awal = nil) then
begin
awal:=dataBuku;
dataBuku^.prev := nil;
akhir := dataBuku;
end
else
begin
akhir^.next := dataBuku;
dataBuku^.prev := akhir;
end;
akhir:=dataBuku;
end;

{-----------------------------------------SISIP TENGAH-------------------------------------------}

procedure sisip_tengah_double(var awal,akhir :pointer; kode:integer; judul:string; menu_sisiptengah :integer);
var
dataBuku,bantu : pointer;
datasisip: integer;
ketemu:boolean;
begin
if(awal=nil)then
begin
New(dataBuku);
dataBuku^.kodeBuku:= kode;
dataBuku^.judulBuku:= judul;
dataBuku^.next:= nil;
dataBuku^.prev := nil;
awal:=dataBuku;
akhir:=dataBuku;
end
else
begin

{SEQUENTIAL SEARCH}
write('Disisipkan Di (Kode Buku) : ');readln(datasisip);
bantu:=awal;
ketemu:=false;
while(not ketemu) and (bantu <> nil) do
begin
if(datasisip=bantu^.kodeBuku)then
ketemu:=true
else
bantu:=bantu^.next;
end;
if(ketemu) then
begin
New(dataBuku);
dataBuku^.kodeBuku:=kode;
dataBuku^.judulBuku:=judul;
if(bantu=akhir) then
sisip_belakang_double(awal,akhir,kode,judul)
else
begin
if(menu_sisiptengah=1) then
begin
dataBuku^.prev := bantu;
dataBuku^.next := bantu^.next;
bantu^.next^.prev := dataBuku;
bantu^.next :=dataBuku;
end
else
if(menu_sisiptengah=2) then
begin
dataBuku^.prev := bantu^.prev;
dataBuku^.next := bantu;
bantu^.prev^.next := dataBuku;
bantu^.prev := dataBuku;
end;
end;
end
else
write('Data Yang Akan Anda Sisipkan Tidak Ada');
end;
end;



{------------------------------------------HAPUS DATA--------------------------------------}

procedure hapus_double_depan(var awal:pointer; var elemen:integer);
var
phapus:pointer;
begin
if (awal = nil)then
begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
writeln('Data Masih Kosong , Penghapusan Tidak Bisa Dilakukan !!');
end
else
begin
phapus:=awal;
elemen:= phapus^.kodeBuku;
if(awal=akhir)
then
begin
awal:=nil;
akhir:=nil;
end
else
begin
awal:=awal^.next;
awal^.prev := nil;
dispose(phapus);
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
write('Penghapusan Berhasil');
writeln;
end;
end;
end;

procedure hapus_double_belakang(var awal,akhir : pointer; var elemen:integer);
var
phapus:pointer;
begin
phapus:=awal;
while phapus^.next <> akhir do
begin
phapus:=phapus^.next;
end;
akhir:=phapus;
phapus:=akhir^.next;
akhir^.next:=nil;
elemen:=phapus^.kodeBuku;
dispose(phapus);
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯'); write('Penghapusan Berhasil');

writeln;
end;

procedure hapus_double_tengah(var awal,akhir :pointer; var elemen:integer);
var
bantu,hapus : pointer;
datahapus:integer;
begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
write('Masukan Kode Buku Yang Akan Di Hapus : ');readln(datahapus);
if (awal = nil )
then
begin
write('Data Masih Kosong');
end
else
begin
bantu:=awal;
new(hapus);
if(datahapus = awal^.kodeBuku)
then
hapus_double_depan(awal,elemen)
else
begin
while(bantu^.next <> nil) do
begin
if(bantu^.next^.kodeBuku = datahapus) then
begin
if (bantu^.next^.kodeBuku = akhir^.kodeBuku)
then
hapus_double_belakang(awal,akhir,elemen)
else
begin
hapus:=bantu^.next;
bantu^.next:=hapus^.next;
elemen:=hapus^.kodeBuku;
dispose(hapus);
write('Data Dengan Kode Barang ',elemen,' Berhasil Dihapus ');
end;
end
else
bantu:=bantu^.next;
end;
end;
end;
end;

{-------------------------------------------CARI DATA---------------------------------------}

procedure cari_kode(var awal :pointer);
var
y : integer;
ketemu:boolean;
datacari: integer;
bantu : pointer;
begin
clrscr;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
write('Masukan Kode yang Akan Dicari : ');readln(datacari);
bantu:=awal;
ketemu:=false;
while(not ketemu) and (bantu <> nil) do
begin
if(datacari=bantu^.kodeBuku)
then
ketemu:=true
else begin
bantu:=bantu^.next;
end;
end;
if(ketemu) then
begin
clrscr;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
y:=9;
gotoxy(23,y+1);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
gotoxy(23,6);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"');
gotoxy(23,7);writeln('º KODE BUKU º JUDUL BUKU º');
gotoxy(23,8);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
gotoxy(23,y);writeln('º º º');
gotoxy(23,y+1);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
gotoxy(25,y);writeln(bantu^.kodeBuku);
gotoxy(38,y);writeln(bantu^.judulBuku);
writeln();
gotoxy(23,y+1);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
end
else
writeln('Buku dengan Kode ',datacari,' Tidak Ditemukan!');
end;

procedure cari_judul(var awal :pointer);
var
y : integer;
bantu:pointer;
ketemu:boolean;
datacari: string;
begin
clrscr;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
write('Masukan Judul yang Akan Dicari : ');readln(datacari);
bantu:=awal;
ketemu:=false;
while(not ketemu) and (bantu <> nil) do
begin
if(datacari=bantu^.judulBuku)
then
ketemu:=true
else
begin
bantu:=bantu^.next;
end;
end;
if(ketemu) then
begin
y:=9;
clrscr;
gotoxy(23,6);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"');
gotoxy(23,7);writeln('º JUDUL BUKU º KODE BUKU º');
gotoxy(23,8);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
gotoxy(23,y);writeln('º º º');
gotoxy(23,y+1);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
gotoxy(25,y);writeln(bantu^.judulBuku);
gotoxy(38,y);writeln(bantu^.kodeBuku);
writeln();
gotoxy(23,y+1);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
end
else
writeln('Buku dengan Judul ',datacari,' Tidak Ditemukan!');
end;




{-----------------------------------TAMPIL DATA--------------------------------}

procedure tampil(awal:pointer);
var
bantu : pointer;
i,y : integer;
begin
bantu := awal;
while (bantu <> nil) do
begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(23,6);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(23,7);writeln('º KODE BUKU º JUDUL BUKU º');
gotoxy(23,8);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
y:=7;
while (bantu <> nil) do
begin
y:=y+2;
gotoxy(23,y);writeln('º º º');
gotoxy(23,y+1);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
gotoxy(25,y);writeln(bantu^.kodeBuku);
gotoxy(38,y);writeln(bantu^.judulBuku);
writeln();
bantu:=bantu^.next;
i:=i+1;
end;
gotoxy(23,y+1);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
end;
end;

procedure tampil_dsc(awal:pointer);
var
min,bantu,a,b:pointer;
i,y,temp:integer;
temp2 :string;
begin
bantu:=awal;
a:=awal;
i:=1;
if(awal=nil) then
begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
writeln('Data Masih Kosong, Sisipkan Terlebih dahulu.');
end;
//sorting data
while (a <> akhir) do
begin
b:=a^.next;
min := a;
while(b <> nil) do
begin
if (b^.kodeBuku > min^.kodeBuku) then
min:=b;
b:=b^.next;
end;
temp:=a^.kodeBuku;
a^.kodeBuku := min^.kodeBuku;
min^.kodebuku:=temp;
temp2:=a^.judulBuku;
a^.judulBuku := min^.judulBuku;
min^.judulBuku:=temp2;
a:=a^.next;
end;
while (bantu <> nil) do
begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(23,6);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(23,7);writeln('º KODE BUKU º JUDUL BUKU º');
gotoxy(23,8);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
y:=7;
while (bantu <> nil) do
begin
y:=y+2;
gotoxy(23,y);writeln('º º º');
gotoxy(23,y+1);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
gotoxy(25,y);writeln(bantu^.kodeBuku);
gotoxy(38,y);writeln(bantu^.judulBuku);
writeln();
bantu:=bantu^.next;
i:=i+1;
end;
gotoxy(23,y+1);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
end;
end;

{----------------------------------------PENHANCURAN-----------------------------}

procedure penghancuran(var awal : pointer);

var

phapus : pointer;

begin

phapus := awal;

while (awal <> nil)do

begin

awal := awal^.next;

dispose(phapus);

phapus := awal;

end;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(28,8);writeln('Data Berhasil Dihapus.');

end;
{-----------------------------------------ALGORITMA UTAMA-------------------------------------------}

var
kode : integer;
judul : string;
pilih,menu_sisip,menu_hapus,menu_cari,menu_sisiptengah,menu_tampil:integer;
ulang,pilih2:char;
i:integer;
begin
textcolor(14);
awal:=nil;
akhir:=nil;
ulang:='y';
repeat
clrscr;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(31,9);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(31,10);writeln('º Menu Utama º');
gotoxy(31,11);writeln('ºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ');
gotoxy(31,12);writeln('º[1].Sisipkan Data º');
gotoxy(31,13);writeln('º[2].Hapus Data º');
gotoxy(31,14);writeln('º[3].Cari Data º');
gotoxy(31,15);writeln('º[4].Tampilkan Data º');
gotoxy(31,16);writeln('º[5].Hapus Total º');
gotoxy(31,17);writeln('º[0].Keluar º');
gotoxy(31,18);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
gotoxy(31,19);writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
gotoxy(31,20);writeln('³Masukan Pilihan : ³');
gotoxy(31,21);writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ');
gotoxy(49,20);readln(pilih);
clrscr;
case pilih of
1:begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(31,9);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(31,10);writeln('º Menu Sisip º');
gotoxy(31,11);writeln('ºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ');
gotoxy(31,12);writeln('º[1].Sisip Depan º');
gotoxy(31,13);writeln('º[2].Sisip Tengah º');
gotoxy(31,14);writeln('º[3].Sisip Belakang º');
gotoxy(31,15);writeln('º[0].Keluar º');
gotoxy(31,16);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
gotoxy(31,18);writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
gotoxy(31,19);writeln('³Masukan Pilihan : ³');
gotoxy(31,20);writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ');
gotoxy(49,19);readln(menu_sisip);
clrscr;
case menu_sisip of
1 :begin
pilih2:='y';
i:=1;
while (pilih2 = 'y') or (pilih2='Y') do
begin
clrscr;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
writeln('Penyisipan Data dari Depan');
writeln();
writeln('Data Buku Ke- ',i);
writeln('================');
write('Kode Buku : ');readln(kode);
write('Judul Buku : ');readln(judul);
writeln('================');
sisip_depan_double(awal,akhir,kode,judul);
write('Tambah Buku [Y/T] :');readln(pilih2);
i:=i+1
end;
end;
2 :begin
if (awal=nil) and (akhir=nil) then
begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
writeln('Data Kosong, Isi Data Terlebih Dahulu');
end
else
begin
pilih2:='y';
i:=1;
while(pilih2 = 'y') or (pilih2='Y') do
begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(31,9);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(31,10);writeln('º Menu Sisip Tengah º');
gotoxy(31,11);writeln('ºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ');
gotoxy(31,12);writeln('º[1].Sisip Setelah º');
gotoxy(31,13);writeln('º[2].Sisip Sebelum º');
gotoxy(31,14);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
gotoxy(31,16);writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
gotoxy(31,17);writeln('³Masukan Pilihan : ³');
gotoxy(31,18);writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ');
gotoxy(49,17);readln(menu_sisiptengah);
clrscr;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
writeln('Penyisipan Data dari Tengah');
writeln;
writeln('Data Buku Ke- ',i);
writeln('================');
write('Kode Buku : ');readln(kode);
write('Judul Buku : ');readln(judul);
writeln('=================');
sisip_tengah_double(awal,akhir,kode,judul,menu_sisiptengah);

write('Lakukan Lagi : ');readln(pilih2);
i:=i+1
end;
end;
end;
3 :begin
pilih2:='y';
i:=1;
while(pilih2 = 'y') or (pilih2='Y') do
begin
clrscr;
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
writeln('Penyisipan Data dari Belakang');
writeln();
writeln('Data Buku Ke- ',i);
writeln('=================');
write('Kode Buku : ');readln(kode);
write('Judul Buku : ');readln(judul);
writeln('==================');
sisip_belakang_double(awal,akhir,kode,judul);
write('Lakukan Lagi : ');readln(pilih2);
i:=i+1
end;
end;
0:exit;
end;
end;
2:begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(31,9);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(31,10);writeln('º Menu Hapus º');
gotoxy(31,11);writeln('ºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ');
gotoxy(31,12);writeln('º[1].Hapus Depan º');
gotoxy(31,13);writeln('º[2].Hapus Tengah º');
gotoxy(31,14);writeln('º[3].Hapus Belakang º');
gotoxy(31,15);writeln('º[0].Keluar º');
gotoxy(31,16);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
gotoxy(31,18);writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
gotoxy(31,19);writeln('³Masukan Pilihan : ³');
gotoxy(31,20);writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ');
gotoxy(49,19);readln(menu_hapus);
clrscr;
case menu_hapus of
1 :begin
pilih2:='y';
i:=1;
while (pilih2 = 'y') or (pilih2='Y') do
begin
clrscr;
hapus_double_depan(awal,kode);
write('Lakukan Lagi : ');readln(pilih2);
i:=i+1
end;
end;
2 :begin
pilih2:='y';
i:=1;
while (pilih2 = 'y') or (pilih2='Y') do
begin
clrscr;
hapus_double_tengah( awal,akhir,kode);
write('Lakukan Lagi : ');readln(pilih2);
i:=i+1
end;
end;
3 :begin
pilih2:='y';
i:=1;
while (pilih2 = 'y') or (pilih2='Y') do
begin
clrscr;
hapus_double_belakang(awal,akhir,kode);
write('Lakukan Lagi : ');readln(pilih2);
i:=i+1
end;
end;
0:exit;
end;
end;
3:begin
writeln('®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®');
gotoxy(28,2);writeln('DAFTAR BUKU PERPUSTAKAAN');
writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯');
gotoxy(31,9);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(31,10);writeln('º Menu Cari º');
gotoxy(31,11);writeln('ºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ');
gotoxy(31,12);writeln('º[1].Berdasarkan Kode º');
gotoxy(31,13);writeln('º[2].Berdasarkan Judul º');
gotoxy(31,14);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
gotoxy(31,16);writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
gotoxy(31,17);writeln('³Masukan Pilihan : ³');
gotoxy(31,18);writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ');
gotoxy(49,17);readln(menu_cari);
case menu_cari of
1 : begin
clrscr;
cari_kode(awal);
end;
2 : begin
clrscr;
cari_judul(awal);
end;
end;
end;
4: begin
gotoxy(31,9);writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(31,10);writeln('º Menu Tampil º');
gotoxy(31,11);writeln('ºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ');
gotoxy(31,12);writeln('º[1].Sebelum Diurut º');
gotoxy(31,13);writeln('º[2].Setelah Terurut º');
gotoxy(31,14);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
gotoxy(31,16);writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
gotoxy(31,17);writeln('³Masukan Pilihan : ³');
gotoxy(31,18);writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ');
gotoxy(49,17);readln(menu_tampil);
case menu_tampil of
1 : begin
clrscr;
tampil(awal);
end;
2 : begin
clrscr;
tampil_dsc(awal);
end;
end;
end;
5: penghancuran(awal);
0:exit;
end;
writeln;
writeln;
writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
writeln('³Kembali ke Menu Awal : ³');
writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ'); readln(ulang);
until(ulang = 't') Or (ulang='T');
readkey;
end.

0 komentar:

Posting Komentar