Anda di halaman 1dari 33

IF-2/S1/2 UNIKOM 2012

TUGAS V IMPLEMENTASI CIRCULAR DOUBLE LINKED LIST CONTOH KASUS RESERVASI KAMAR HOTEL Diajukan untuk memenuhi salah satu tugas mata kuliah Struktur Data
Oleh: Try Fathur Rachman ( 10111015 ) Nurhusein ( 10111018 ) Restu Hendrik Saputra ( 10111023 ) Gilang Luthfi ( 10111037 ) Dede Mandela (10107356) Azmi Najib Mahfoz (10109218)

Dosen: Tati Harihayati M., S.T., M.T.

TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA 2011

IF-2/S1/2 UNIKOM 2012

ALGORITMA UTAMA: program Ibis_Hotel KAMUS : const tarifInap = 250000 type dataTamu = record nama,alamat,kamar : string, umur,jmlKamar,jmlOrg,lamaInap,telp : integer, endrecord pointer = tamu, tamu = record info : dataTamu, prev,next : pointer, endrecord awal, akhir, baru : pointer, data : dataTamu, biaya,harga,menu,plhSisip,plhHps : integer, selesai : char, isi : boolean; { Prototype Program } { Prosedur checkIn digunakan untuk user memasukan data tamu } procedure checkIn (input data : dataTamu; output isi : boolean) { Prosedur sisispDpn digunakan untuk menyisipkan data di bagian depan } procedure sisipDpn(input data : dataTamu; I/O awal,akhir : pointer) { Prosedur sisispBlkg digunakan untuk menyisipkan data di bagian belakang } procedure sisipBlkg(input data : dataTamu; I/O awal,akhir : pointer)

IF-2/S1/2 UNIKOM 2012

{ Prosedur sisispTengah digunakan untuk menyisipkan data di bagian tengah } procedure sisipTengah(input data : dataTamu; I/O awal,akhir : pointer) { Prosedur urutData digunakan untuk mengurutkan data sebelum di tampilkan } procedure urutData(I/Oawal,akhir : pointer,input jenis : integer) { Prosedur lihatData digunakan untuk menampilkan data yang terdapat pada rekord } procedure lihatData(I/O awal,akhir : pointer) { Prosedur hpsBlkg digunakan untuk menghapus data di bagian belakang } procedure hpsBlkg(input data : dataTamu, I/O awal,akhir : pointer)

{ Prosedur hpsDpn digunakan untuk menghapus data di bagian depan } procedure hpsDpn(I/O backup : dataTamu, I/O awal,akhir : pointer) { Prosedur hpsTengah digunakan untuk menghapus data di bagian tengah } procedure hpsTengah(input data : dataTamu, I/O awal,akhir : pointer) { Prosedur menuSisip digunakan untuk menampilkan menu sisip depan,tengah dan blkg } procedure menuSisip(I/O awal,akhir : pointer, I/O isi : Boolean, input data : dataTamu) { Prosedur menuHapus digunakan untuk menampilkan menu hapus depan,tengah dan blkg } procedure menuHapus(I/O plhHps :integer) { Prosedur cariData digunakan untuk mencari data berdasarkan nomor kamar } procedure cariData(input awal:pointer; I/O data : dataTamu) { Prosedur penghancuran digunakan untuk membebaskan memori dari proses senarai} procedure penghancuran(I/O backup : dataTamu, I/O awal,akhir : pointer)

IF-2/S1/2 UNIKOM 2012

procedure checkIn (input data : dataTamu; output isi : boolean) {I.S :User memasukan data, kondisi isi false} {F.S : Data tamu masuk ke dalam rekord, kondisi isi true} KAMUS : ALGORITMA : if (isi = false) then input(data) harga tarifInap, biaya harga * data.lamaInap * data.jmlOrg, output(harga), output(biaya), isi true, else output(Data sudah ada, tetapi belum disisipkan), endif endprocedure procedure sisipDpn(input data : dataTamu; I/O awal,akhir : pointer) {I.S : Rekord data sudah terisi, user memilih menu sisip depan} {F.S : Data disisipkan di depan} KAMUS : baru : pointer ALGORITMA : begin alloc(baru), baru.info data, if (awal = nil) then akhir baru, else baru.next awal, akhir.prev baru, endif awal baru,

IF-2/S1/2 UNIKOM 2012

akhir.next awal, awal.prev akhir, endprocedure procedure sisipBlkg(input data : dataTamu; I/O awal,akhir : pointer) {I.S : Rekord data sudah terisi, user memilih menu sisip belakang} {F.S : Data disisipkan di belakang} KAMUS : baru : pointer ALGORITMA begin alloc(baru), baru.info data, if (awal = nil) then sisipDpn(data,awal,akhir) else akhir.next baru, baru.prev akhir, akhir.next awal, awal.prev akhir, endif endprocedure procedure sisipTengah(input data : dataTamu; I/O awal,akhir : pointer); {I.S : Rekord data sudah terisi, user memilih menu sisip tengah} {F.S : Data disisipkan di tengah} KAMUS : baru, bantu : pointer, ketemu : Boolean, sisipData : string, ALGORITMA : if (awal = nil) then

IF-2/S1/2 UNIKOM 2012

alloc(baru) baru.info data, awal baru, akhir baru, else input (sisipData), bantu awal, ketemu false, while (not ketemu) and (bantu nil) do if (bantu.info.nama = sisipData) then ketemu true, else bantu bantu.next, endif if (ketemu) then alloc(baru); baru.info data, if (bantu = akhir) then sisipBlkg(data,awal,akhir) else if (bantu = awal) then sisipDpn(data,awal,akhir) else baru.next bantu, baru.prev bantu.prev, bantu.prev.next baru, bantu.prev baru, endif endwhile endprocedure procedure urutData(I/Oawal,akhir : pointer, input jenis : integer) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam record } {F.S : Data ditamplikan secara berurut} KAMUS :

IF-2/S1/2 UNIKOM 2012

temp : dataTamu, i,j,min : pointer, ALGORITMA : i awal, while (I akhir) do min i, j i.next, while (j akhir) do case jenis of 1 :if (upcase(j.info.nama) < upcase(min.info.nama)) then min j, 2 :if (upcase(j.info.alamat) < upcase(min.info.alamat)) then min j, 3 : if (upcase(j.info.kamar) < upcase(min.info.kamar)) then min j, endcase j j.next, case jenis of 1 :if (upcase(j.info.nama) < upcase(min.info.nama)) then min j, 2 :if (upcase(j.info.alamat) < upcase(min.info.alamat)) then min j, 3 : if (upcase(j.info.kamar) < upcase(min.info.kamar)) then min j, endcase endwhile temp i.info, i.info min.info, min.info temp, I i.next, endwhile endprocedure

IF-2/S1/2 UNIKOM 2012

procedure lihatData(I/O awal,akhir : pointer) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam record } {F.S : Data ditampilkan} KAMUS : i : integer, bantu : pointer, opt2 : integer ALGORITMA : if (awal = nil) then output('Pesan : Data Kosong. Tekan Enter Untuk Kembali !'), else opt2 0, urutData(awal,akhir,1), while (opt24) do bantu awal, i 1, while bantu akhir do output (bantu.info) i i+1, bantu bantu.next, output (bantu.info) i i+1, bantu bantu.next, endwhile input(opt2), if (opt2 < 1) or (opt2 > 4) then output('Option salah. tekan Enter untuk mengulang'), else if (opt24) then urutData(awal,akhir,opt2); endif endif endwhile endprocedure

IF-2/S1/2 UNIKOM 2012

procedure hpsBlkg(input data : dataTamu, I/O awal,akhir {F.S : Data paling belakang dihapus} KAMUS : phapus : pointer; backup : dataTamu; ALGORITMA : phapus akhir, backup phapus.info, if (awal = akhir) then awal nil, akhir nil, else akhir phapus.prev, awal.prev akhir, akhir.next awal, endif dealloc(phapus); endprocedure

: pointer)

{I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam rekord }

procedure hpsDpn(I/O backup : dataTamu, I/O awal,akhir : pointer) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam record } {F.S : Data paling depan dihapus} KAMUS : phapus : pointer, backup : dataTamu, ALGORITMA : phapus awal, backup phapus.info, if (awal = akhir) then awal nil,

IF-2/S1/2 UNIKOM 2012

akhir nil, else awal phapus.next, awal.prev akhir, akhir.next awal, endif dealloc(phapus) endprocedure procedure hpsTengah(input data : dataTamu, I/O awal,akhir : pointer) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam rekord } {F.S : Data ditengah dihapus} KAMUS : phapus,bantu : pointer, X,i : integer,

ALGORITMA : if (awal = nil) then output('Data Masih Kosong') else input(X) endif if (awal = akhir) or (x =1) then hpsDpn(data,awal,akhir) else bantu awal, I 1, endif while (i < x-1) and (bantu.next nil) do bantu bantu.next, phapus bantu.next, bantu.next phapus.next,

IF-2/S1/2 UNIKOM 2012

phapus.next nil, dealloc(phapus) endwhile endprocedure procedure menuSisip(I/O awal,akhir : pointer, I/O isi : Boolean, input data : dataTamu) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam record } {F.S : Data disisipkan sesuai input user} KAMUS : menu2 : integer, ALGORITMA : if isi = true then menu2 0, while (menu2 4) do input(menu2), case menu2 of 1 : sisipDpn(data,awal,akhir), 2 : sisipTengah(data,awal,akhir), 3 : sisipBlkg(data,awal,akhir), endcase if ( menu2 < 1) or (menu2 > 4 ) then output('Input Salah. Tekan Enter Untuk Mengulang'), endif if (menu2 > 0) and (menu2 < 4) then isi false, menu2 4, endif endwhile else output('Pesan : Anda harus ISI DATA terlebih dahulu!'), endif endprocedure procedure menuHapus(I/O plhHps :integer) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam record }

IF-2/S1/2 UNIKOM 2012

{F.S : Data dihapus sesuai input user} KAMUS : ALGORITMA : if (awal = nil) then output(Data Kosong) else input(plhHps); case plhHps of 1 : hpsDpn(data,awal,akhir), 2 : hpsTengah(data,awal,akhir), 3 : hpsBlkg(data,awal,akhir), endcase endif endprocedure

procedure cariData(input awal:pointer; I/O data : dataTamu) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam record } {F.S : Menampilkan data yang dicari ada atau tidak} KAMUS : bantu : pointer, dataCari : integer, ketemu : Boolean, ALGORITMA : ketemu false, bantu awal, input(dataCari), while (ketemu = false) and (bantu nil) do if (bantu.info.kamar = dataCari) then ketemu true, else bantu bantu.next, endif

IF-2/S1/2 UNIKOM 2012

endwhile if (ketemu = true) then output (dataCari,' Ditemukan!') else output (dataCari,' Tidak ditemukan!'), endif endprocedure procedure penghancuran(I/O backup : dataTamu, I/O awal,akhir : pointer) {I.S : Pointer Awal sudah terdefinisi, Data sudah ada dalam record } {F.S : Data dihapus satu per satu dengan metode hapus depan} KAMUS : ALGORITMA : while (awalnil) do hpsDpn(backup,awal,akhir) endwhile endprocedure ALGORITMA {Algoritma Utama} awal nil, akhir nil, isi false, while menu 6 do input(menu) case (menu) of 1 : checkIn(data,isi), 2 : menuSisip(awal,akhir,isi,data), 3 : menuHapus(plhHps), 4 : cariData(awal,data), 5 : lihatData(awal,akhir), 6 : input(selesai), selesai upcase(selesai), endcase

IF-2/S1/2 UNIKOM 2012

endwhile endprogram

IF-2/S1/2 UNIKOM 2012

{Dalam Bahasa Pascal - Program} program Ibis_Hotel; uses crt; const tarifInap = 250000; type dataTamu = record nama,alamat,kamar end; pointer = ^tamu; tamu = record info end; : dataTamu; prev, next : pointer; : string; umur,jmlKamar,jmlOrg,lamaInap,telp : integer;

var //variable global awal, akhir, baru : pointer; data : dataTamu; biaya,harga,menu, plhSisip,plhHps : integer; selesai isi : char; : boolean;

procedure ibis_header; begin writeln('-----------------------------------------'); writeln('| writeln('| write(); end; //Prosedur Isi Data Selamat Datang di Ibis Hotel Jl. Gatot Subroto Bandung |'); |');

writeln('-----------------------------------------');

IF-2/S1/2 UNIKOM 2012

procedure checkIn (var data : dataTamu; var isi : boolean); begin if (isi = false) then begin ibis_header(); write('Nama write('Alamat write('No. Telpon write('Umur write('Jumlah Tamu write('Kamar : '); readln(data.nama); : '); readln(data.alamat); : '); readln(data.telp); : '); readln(data.umur); : '); readln(data.jmlOrg); : '); readln(data.kamar);

write('Lama Menginap (hari): '); readln(data.lamaInap); //hitung tarif harga := tarifInap; biaya := harga * data.lamaInap * data.jmlOrg; writeln('-----------------------------------'); writeln('Biaya perOrang (hari) : Rp. ',harga); writeln('Total Biaya : Rp. ',biaya); writeln('-----------------------------------'); write('Pastikan Anda Memilih Menu TAMBAH DATA setelah memasukan data !'); isi := true; end else write ('Maaf Data sudah di input, tetapi belum di sisipkan.'); readln(); end; //Prosedur Sisip Data Depan procedure sisipDpn(data : dataTamu; var awal,akhir : pointer); var baru : pointer; begin new(baru); baru^.info := data;

IF-2/S1/2 UNIKOM 2012

if (awal = nil) then begin akhir := baru; end else begin baru^.next := awal; akhir^.prev := baru; end; awal := baru; akhir^.next := awal; awal^.prev := akhir; end; //Prosedur Sisip Data Belakang procedure sisipBlkg(data : dataTamu; var awal,akhir : pointer); var baru : pointer; begin new(baru); baru^.info := data; if (awal = nil) then sisipDpn(data,awal,akhir) else begin akhir^.next := baru; baru^.prev := akhir; akhir := baru; akhir^.next := awal; awal^.prev := akhir; end; end; //Prosedur Sisip Data Tengah procedure sisipTengah(data : dataTamu; var awal,akhir : pointer); var

IF-2/S1/2 UNIKOM 2012

baru, bantu : pointer; ketemu : boolean; sisipData : string; begin if (awal = nil) then sisipDpn(data,awal,akhir) else write('Sisip Sebelum Rekord Apa (Ketik Nama) '); readln(sisipData); bantu := awal; ketemu := false; while (not ketemu) and (bantu <> nil) do begin if (bantu^.info.nama = sisipData) then ketemu := true else bantu := bantu^.next end; if (ketemu) then begin new(baru); baru^.info := data; if (bantu = akhir) then sisipBlkg(data,awal,akhir) else begin if (bantu = awal) then sisipDpn(data,awal,akhir) else begin // Proses Sisip Tengah baru^.next := bantu; baru^.prev := bantu^.prev; bantu^.prev^.next := baru; bantu^.prev := baru; end;

IF-2/S1/2 UNIKOM 2012

end; end else writeln('Maaf ! Data Tidak Ditemukan'); end; //Procedure pengurutan data procedure urutData(var awal,akhir : pointer; jenis : integer); var temp : dataTamu; i,j,min : pointer; begin i:=awal; while (i <> akhir) do begin min := i; j := i^.next; while (j <> akhir) do begin case jenis of 1 :begin if (upcase(j^.info.nama) < upcase(min^.info.nama)) then min:=j; end; 2 :begin if (upcase(j^.info.alamat) < upcase(min^.info.alamat)) then min:=j; end; 3 :begin if (upcase(j^.info.kamar) < upcase(min^.info.kamar)) then min:=j; end; end; j:=j^.next; end; case jenis of

IF-2/S1/2 UNIKOM 2012

1 :begin if (upcase(j^.info.nama) < upcase(min^.info.nama)) then min:=j; end; 2 :begin if (upcase(j^.info.alamat) < upcase(min^.info.alamat)) then min:=j; end; 3 :begin if (upcase(j^.info.kamar) < upcase(min^.info.kamar)) then min:=j; end; end; temp := i^.info; i^.info:= min^.info; min^.info:=temp; i:=i^.next; end; end; //Prosedur Lihat Data procedure lihatData(var awal,akhir : pointer); var i : integer; bantu : pointer; opt2 : integer; begin clrscr; if (awal = nil) then begin write('Pesan : Data Kosong. Tekan Enter Untuk Kembali !'); end else begin opt2:=0;

IF-2/S1/2 UNIKOM 2012

urutData(awal,akhir,1); while (opt2 <> 4) do begin clrscr; bantu := awal; writeln('|Ibis Hotel - Gatot Subroto Bandung -----|------|-------------|-------|------|'); writeln('|NO| TAMU | KAMAR | INAP |'); writeln('|--|------------|-----------|------------|------|-------------|-------|------|'); i:=1; while bantu <> akhir do //Menampilkan Data Dari Simpul awal sampai simpul akhir 1 begin gotoxy(1,i+3); write('|',i); gotoxy(4,i+3); write('|',bantu^.info.nama); gotoxy(17,i+3); write('|',bantu^.info.alamat); gotoxy(29,i+3); write('|','(022)',bantu^.info.telp); gotoxy(42,i+3); write('|',bantu^.info.umur,' thn'); gotoxy(49,i+3); write('|',bantu^.info.jmlOrg,' orang'); gotoxy(63,i+3); write('|',bantu^.info.kamar); gotoxy(71,i+3); write('|',bantu^.info.lamaInap,' hari'); gotoxy(78,i+3); write('|'); i:=i+1; bantu:=bantu^.next; end; //Menampilkan sisa data gotoxy(1,i+3); write('|',i); gotoxy(4,i+3); write('|',bantu^.info.nama); gotoxy(17,i+3); write('|',bantu^.info.alamat); gotoxy(29,i+3); write('|','(022)',bantu^.info.telp); gotoxy(42,i+3); write('|',bantu^.info.umur,' thn'); gotoxy(49,i+3); write('|',bantu^.info.jmlOrg,' orang'); gotoxy(63,i+3); write('|',bantu^.info.kamar); gotoxy(71,i+3); write('|',bantu^.info.lamaInap,' hari'); NAMA | ALAMAT | TELEPON | UMUR | JUMLAH

IF-2/S1/2 UNIKOM 2012

gotoxy(78,i+3); write('|'); i:=i+1; bantu:=bantu^.next; writeln; writeln('|--|------------|-----------|------------|------|-------------|-------|-----|'); writeln; writeln('1. Urut Berdasarkan Nama'); writeln('2. Urut Berdasarkan Alamat'); writeln('3. Urut Berdasarkan Kamar'); writeln('4. Kembali'); write('Pilih Menu : ');read(opt2); if (opt2<1) or(opt2>4) then begin writeln('Option salah. Tekan ''Enter'' untuk mengulang'); readln; end else begin if (opt2<>4) then urutData(awal,akhir,opt2); end; end; end; end; //Prosedur Hapus Data Belakang procedure hpsBlkg(data : dataTamu; var awal,akhir var phapus : pointer; backup : dataTamu; begin phapus := akhir; backup := phapus^.info; : pointer);

IF-2/S1/2 UNIKOM 2012

if (awal = akhir) then begin awal := nil; akhir := nil; end else begin akhir := phapus^.prev; awal^.prev := akhir; akhir^.next := awal; end; dispose(phapus); end; //Prosedur Hapus Data Depan procedure hpsDpn(var backup : dataTamu;var awal,akhir : pointer); var phapus : pointer; begin phapus := awal; backup := phapus^.info; if (awal = akhir) then begin awal := nil; akhir := nil; end else begin phapus^.next := awal; awal^.prev := akhir; akhir^.next := awal; end; dispose(phapus); end;

IF-2/S1/2 UNIKOM 2012

//Prosedur Hapus Data Tengah procedure hpsTengah(data : dataTamu; var awal,akhir : pointer); var phapus,bantu : pointer; X,i : integer; begin if (awal = nil) then writeln('Data Masih Kosong') else begin write('Hapus Data Yang ke - ? ');readln(X); if (awal = akhir) or (x = 1) then hpsDpn(data,awal,akhir) else begin bantu := awal; i:=1; while (i < x-1) and (bantu^.next <> akhir) do bantu := bantu^.next; phapus := bantu^.next; bantu^.next:=phapus^.next; phapus^.next:=nil; dispose(phapus); end; end; end; //Prosedur Menu Sisip procedure menuSisip(var awal,akhir : pointer; var isi:boolean; data : dataTamu); var menu2 : integer; begin if isi = true then begin menu2:= 0;

IF-2/S1/2 UNIKOM 2012

while (menu2 <> 4) do begin clrscr; ibis_header; writeln('Tambah Data'); writeln(); writeln('1. Tambah Data Depan '); writeln('2. Tambah Data Tengah '); writeln('3. Tambah Data Belakang'); writeln('4. Kembali writeln; write('Input Pilihan Anda [1/2/3/4] : '); readln(menu2); case menu2 of 1 : sisipDpn(data,awal,akhir); 2 : sisipTengah(data,awal,akhir); 3 : sisipBlkg(data,awal,akhir); end; if ( menu2 < 1) or (menu2 > 4 ) then begin Writeln('Input Salah. Tekan Enter Untuk Mengulang'); readln; end; if (menu2 > 0) and (menu2 < 4) then begin isi:=false; menu2:=4; end; end; end else begin write('Pesan : Anda harus ISI DATA terlebih dahulu!'); readln; clrscr; ');

IF-2/S1/2 UNIKOM 2012

end; end; //procedure menu hapus procedure menuHapus(var plhHps :integer); begin clrscr; if (awal = nil) then begin writeln('PESAN : '); writeln('Tidak Ada Rekord yang Tersimpan.'); write('Tekan Enter Untuk Kembali.'); readln; end else begin ibis_header; writeln('Hapus Data writeln(); writeln('1. Hapus Depan '); writeln('2. Hapus Tengah '); writeln('3. Hapus Belakang'); writeln('4. Kembali writeln; write('Input Pilihan Anda [1/2/3/4] : '); readln(plhHps); case plhHps of 1 : hpsDpn(data,awal,akhir); 2 : hpsTengah(data,awal,akhir); 3 : hpsBlkg(data,awal,akhir); end; end; end; //Procedure Cari Data berdasarkan nomer kamar procedure cariData(awal:pointer; var data : dataTamu); '); ');

IF-2/S1/2 UNIKOM 2012

var bantu : pointer; dataCari : shortstring; ketemu : boolean; begin ketemu := false; bantu := awal; ibis_header(); write('Cari Berdasarkan Nomor Kamar : '); readln(dataCari); while (ketemu = false) and (bantu <> akhir) do if (bantu^.info.kamar = dataCari) then ketemu := true else bantu := bantu^.next; if (ketemu = true) then begin writeln(); writeln('Kamar dengan nomor ',dataCari,' Ditemukan!'); writeln(); writeln('Berikut adalah data lengkapnya :'); writeln(); writeln('Nama writeln('Alamat writeln('No.Telp writeln('Umur writeln('Kamar writeln('Lama Inap : ',bantu^.info.nama); : ',bantu^.info.alamat); : ',bantu^.info.telp); : ',bantu^.info.umur); : ',bantu^.info.jmlOrg); : ',bantu^.info.lamaInap); : ',bantu^.info.kamar);

writeln('Jumlah Tamu

writeln('-------------------------------------'); write('Ibis Hotel - Gatot Subroto Bandung --'); readln; end else begin

IF-2/S1/2 UNIKOM 2012

write('Maaf ! Kamar dengan nomor ',dataCari,' Tidak ditemukan!'); readln; end; end; //prosedur penghancuran procedure penghancuran(var backup:dataTamu; var awal,akhir : pointer); begin while (awal<>nil) do hpsDpn(backup,awal,akhir); end; //Program Utama begin awal := nil; akhir := nil; isi := false; while menu <> 6 do begin clrscr; ibis_header; gotoxy(1,6); writeln('1. Isi Data gotoxy(1,8); writeln('3. Hapus Data gotoxy(22,6);writeln('4. Cari Data gotoxy(22,7);writeln('5. Tampil Data gotoxy(22,8);writeln('6. Keluar clrscr(); case (menu) of 1 : begin clrscr; checkIn(data,isi); end; |'); |'); |'); |'); |'); |'); gotoxy(1,7); writeln('2. Tambah Data

gotoxy(1,9); writeln; write('Input Pilihan Anda [1/2/3/4/5/6] : '); readln(menu);

IF-2/S1/2 UNIKOM 2012

2 : begin clrscr; menuSisip(awal,akhir,isi,data); end; 3 : begin clrscr; menuHapus(plhHps); end; 4 : begin; clrscr; cariData(awal,data); end; 5 : begin clrscr; lihatData(awal,akhir); readln; end; 6 : begin write('Pesan : Keluar dari program Ibis Hotel ? [Y/T] ');readln(selesai); selesai:=upcase(selesai); end; end; end; end.

IF-2/S1/2 UNIKOM 2012

Tampilan Awal :

Validasi Isi Data dan Tambah Data :

Tampilan Input Data :

IF-2/S1/2 UNIKOM 2012

Tampilan Tambah Data :

Tampilan Tampil Data Terurut berdasarkan Nama :

Tampilan Tampil Data Terurut berdasarkan Kamar :

IF-2/S1/2 UNIKOM 2012

Tampilan Tampil Data Terurut berdasarkan Alamat:

Tampilan Pencarian Data Terurut berdasarkan Nomor Kamar :

IF-2/S1/2 UNIKOM 2012

DAFTAR PUSTAKA
[1] Jogiyanto, Turbo Pascal Versi 5.0, AndiPublisher, Yogyakarta, 1992 [2] Santosa, Insap. Struktur Data Menggunakan Turbo Pascal 6 ,AndiPublisher, Yo-

gyakarta, 2006.
[3] Tim Struktur Data Unikom,Single Linked List, Unikom, Bandung.