program si_hotel;
uses crt,dateutils,sysutils;
type
ETipeKaMar = (Single, Twin, Suite);
EStatus = (Kosong, Isi);
ENomorKamar = (No101, No102, No103, No104, No105, No201, No202, No203, No204,
No205, No301, No302, No303, No304, No305, No306, No307, No308,No309, No310);
Tamu = record
Nama : string;
NoId : string;
WaktuIn : TDateTime;
WaktuOut : TDateTime;
NumKamar : ENomorKamar;
TipeKaMar : ETipeKaMar;
Status : EStatus;
TotalBiaya : longint;
end;
TDataTamu = array [ENomorKamar] of Tamu;
const
Tanggal = 'DD-MM-YYYY';
CHargaKamar : array [ETipeKaMar] of Longint = (400000, 800000, 1350000);
var
DataTamu : TDatatamu;
pil : char;
NomorKamar : word;
function CekStatus(DataTamu: TDataTamu; NoKamar: ENomorKamar): Boolean;
begin
if (DataTamu[NoKamar].Status = Kosong) then
CekStatus := true
else
CekStatus := false;
end;
function AmbilKamar(NomorKamar: Word): ENomorKamar;
begin
case (NomorKamar) of
101: AmbilKamar := No101;
102: AmbilKamar := No102;
103: AmbilKamar := No103;
104: AmbilKamar := No104;
105: AmbilKamar := No105;
201: AmbilKamar := No201;
202: AmbilKamar := No202;
203: AmbilKamar := No203;
204: AmbilKamar := No204;
205: AmbilKamar := No205;
301: AmbilKamar := No301;
302: AmbilKamar := No302;
303: AmbilKamar := No303;
304: AmbilKamar := No304;
305: AmbilKamar := No305;
306: AmbilKamar := No306;
307: AmbilKamar := No307;
308: AmbilKamar := No308;
309: AmbilKamar := No309;
310: AmbilKamar := No310;
end;
end;
function tampilNoKamar(EnoKamar:EnomorKamar): word;
begin
case (EnoKamar) of
No101 : tampilNoKamar := 101;
No102 : tampilNoKamar := 102;
No103 : tampilNoKamar := 103;
No104 : tampilNoKamar := 104;
No105 : tampilNoKamar := 105;
No201 : tampilNoKamar := 201;
No202 : tampilNoKamar := 202;
No203 : tampilNoKamar := 203;
No204 : tampilNoKamar := 204;
No205 : tampilNoKamar := 205;
No301 : tampilNoKamar := 301;
No302 : tampilNoKamar := 302;
No303 : tampilNoKamar := 303;
No304 : tampilNoKamar := 304;
No305 : tampilNoKamar := 305;
No306 : tampilNoKamar := 306;
No307 : tampilNoKamar := 307;
No308 : tampilNoKamar := 308;
No309 : tampilNoKamar := 309;
No310 : tampilNoKamar := 310;
end;
end;
Procedure PelangganMasuk (var DataTamu : TDataTamu);
var
NoKamar : Enomorkamar;
TKamar,tanya : char;
InfoTamu : Tamu;
jawab,benar : boolean;
begin
repeat
Clrscr;
gotoxy(30,1);Write('CHECK-IN TAMU HOTEL');
gotoxy(20,2);Write('=================================');
gotoxy(20,12);Write('=================================');
gotoxy(18,4);Write('Tipe Kamar ( 0 : Single; 1 : Twin ; 2 : Suite ) ');
gotoxy(18,5);Write('Tipe Kamar = ');
repeat
gotoxy(38,5);
Readln(TKamar);
clreol;
until TKamar in ['0'..'2'];
case TKamar of
'0': InfoTamu.Tipekamar := Single;
'1': InfoTamu.Tipekamar := Twin;
'2': InfoTamu.Tipekamar := Suite;
end;
if (InfoTamu.TipeKaMar= Single) then
begin
gotoxy(41,5);Write('( Single )');
gotoxy(18,6);Write('Kamar yang tersedia = ');
for NoKamar := No301 to No310 do
begin
if DataTamu[NoKamar].Status = kosong then
write(TampilNoKamar(NoKamar),' ');
end;
gotoxy(18,7);Write('Nomor Kamar = ');
repeat
begin
gotoxy(38,7);
Readln(NomorKamar);
InfoTamu.NumKamar := AmbilKamar(NomorKamar);
Jawab := CekStatus(DataTamu,InfoTamu.NumKamar);
if Jawab = false then
begin
gotoxy(38,7);clreol;
end;
end;
until jawab = true and ((NomorKamar = 301) or (NomorKamar = 302) or (NomorKamar = 303) or
(NomorKamar = 304) or (NomorKamar = 305) or (NomorKamar = 306) or
(NomorKamar = 307) or (NomorKamar = 308) or (NomorKamar = 309) or
(NomorKamar = 310) );
end
else
if (InfoTamu.TipeKaMar= Twin) then
begin
gotoxy(41,5);Write('( Twin )');
gotoxy(18,6);Write('Kamar yang tersedia = ');
for NoKamar := No201 to No205 do
begin
if DataTamu[NoKamar].Status = kosong then
write(TampilNoKamar(NoKamar),' ');
end;
gotoxy(18,7);Write('Nomor Kamar = ');
repeat
begin
gotoxy(38,7);
Readln(NomorKamar);
InfoTamu.NumKamar := AmbilKamar(NomorKamar);
Jawab := CekStatus(DataTamu,InfoTamu.NumKamar);
if Jawab = false then
begin
gotoxy(38,7);clreol;
end;
end;
until jawab = true and ((NomorKamar = 201) or (NomorKamar = 202) or (NomorKamar = 203) or
(NomorKamar = 204) or (NomorKamar = 205));
end
else
begin
gotoxy(46,5);Write('( Suite )');
gotoxy(18,6);Write('Kamar yang tersedia : ');
for NoKamar := No101 to No105 do
begin
if DataTamu[NoKamar].Status = kosong then
write(TampilNoKamar(NoKamar),' ');
end;
gotoxy(18,7);Write('Nomor Kamar = ');
repeat
begin
gotoxy(38,7);
Readln(NomorKamar);
InfoTamu.NumKamar := AmbilKamar(NomorKamar);
Jawab := CekStatus(DataTamu,InfoTamu.NumKamar);
if Jawab = false then
begin
gotoxy(38,7);clreol;
end;
end;
until jawab = true and ((NomorKamar = 101) or (NomorKamar = 102) or (NomorKamar = 103) or
(NomorKamar = 104) or (NomorKamar = 105));
end;
gotoxy(18,8);Write('Nama Tamu = ');
repeat
begin
gotoxy(38,8);ClrEol;
Readln(InfoTamu.Nama);;
end;
until(InfoTamu.Nama<>'');
gotoxy(18,9);Write('No Identitas = ');
repeat
begin
gotoxy(38,9);ClrEol;
Readln(InfoTamu.NoId);
end;
until(InfoTamu.NoId<>'');
gotoxy(18,10);write('Data sudah benar ??? ( y ) / ( t ) : ');readln(tanya);
if tanya = 'y' then
begin
NoKamar := InfoTamu.NumKamar;
DataTamu[NoKamar].Tipekamar:= Infotamu.TipeKamar ;
DataTamu[NoKamar].Nama := InfoTamu.Nama;
DataTamu[NoKamar].NoId := InfoTamu.NoId;
DataTamu[NoKamar].WaktuIn := Today;
DataTamu[NoKamar].Status := Isi;
benar := true;
end
else
benar := false;
until benar = true;
end;
Procedure PelangganKeluar(Var DataTamu:TDataTamu);
var
EnoKamar :ENomorKamar;
tanya : char;
benar : boolean;
begin
repeat
clrscr;
gotoxy(30,1);Write('CHECK-OUT TAMU HOTEL');
gotoxy(25,2);write('=================================');
gotoxy(25,17);write('=================================');
gotoxy(25,4);Write('Daftar Kamar yang berisi = ');
gotoxy(28,5);
for EnoKamar := No101 to No310 do
begin
if DataTamu[EnoKamar].Status = Isi then
write(tampilNoKamar(EnoKamar),' ');
end;
gotoxy(25,6);
Write('No Kamar = ');Readln(nomorKamar);
EnoKamar := AmbilKamar(nomorKamar);
gotoxy(25,7);Writeln(' Nama = ', DataTamu[EnoKamar].Nama);
gotoxy(25,8);Writeln(' No. Identitas = ', DataTamu[EnoKamar].NoId);
gotoxy(25,9);Writeln(' Tanggal Check-in = ', formatDateTime(Tanggal,DataTamu[EnoKamar].WaktuIn));
gotoxy(25,10);writeln('Tipe Kamar = ');
gotoxy(45,10);
if (DataTamu[EnoKamar].TipeKaMar= Single) then
Write('Single')
else
if (DataTamu[EnoKamar].TipeKaMar= Twin) then
Write('Twin')
else
Write('Suite');
gotoxy(25,12);Write('Data benar ?? ( y ) / ( t ) = ');readln(tanya);
if tanya = 'y' then
begin
DataTamu[EnoKamar].WaktuOut := Today;
benar := true
end
else
benar := false;
until benar = true;
end;
procedure DaftarTamu(tampil : TDataTamu);
var EnoKamar : ENomorKamar;
begin
clrscr;
gotoxy(30,1);writeln('.: DATA TAMU HOTEL :.');writeln;
write('================================================================================');
gotoxy(1,4);write('#');gotoxy(80,4);write('#');
gotoxy(19,4);write('#');gotoxy(43,4);write('#');
gotoxy(64,4);write('#');gotoxy(1,5);write('#');
gotoxy(80,5);write('#');gotoxy(19,5);write('#');
gotoxy(43,5);write('#');gotoxy(64,5);write('#');
gotoxy(4,5);write('No Kamar');
gotoxy(25,5);write('Nama Tamu');gotoxy(46,5);write('No Identitas');
gotoxy(68,5);write('Check In ');
writeln;
writeln ('================================================================================');
for EnoKamar := No101 to No310 do
begin
if tampil[EnoKamar].Status = Isi then
begin
Writeln(tampilNoKamar(EnoKamar):8,tampil[EnoKamar].Nama:22,tampil[EnoKamar].NoId:25,
formatDateTime(Tanggal,tampil[EnoKamar].WaktuIn):22);
end;
end;
writeln;
writeln ('================================================================================');
writeln('Tekan <Enter> untuk kembali ke Menu Utama');
readln;
end;
procedure Tagihan(Var DataTamu : TDataTamu);
var
JmlHari : integer;
EnoKamar : ENomorKamar;
begin
clrscr;
gotoxy(30,1);write('.: TAGIHAN TAMU HOTEL :.');
gotoxy(25,2);write('=================================');
gotoxy(25,4);Write('Daftar Kamar yang berisi = ');
gotoxy(28,5);
for EnoKamar := No101 to No310 do
begin
if DataTamu[EnoKamar].Status = Isi then
write(tampilNoKamar(EnoKamar),' ');
end;
gotoxy(25,6);
Write('No Kamar = ');Readln(nomorKamar);
EnoKamar := AmbilKamar(nomorKamar);
gotoxy(25,7);Write('Tanggal Check-in = ', formatDateTime(Tanggal,DataTamu[EnoKamar].WaktuIn));
gotoxy(25,8);write('Tanggal Check Out = ', formatDateTime(Tanggal,DataTamu[EnoKamar].WaktuOut));
gotoxy(25,9);write('Tipe Kamar = ');
gotoxy(46,9);
if (DataTamu[EnoKamar].TipeKaMar= Single) then
Write('Single')
else
if (DataTamu[EnoKamar].TipeKaMar= Twin) then
Write('Twin')
else
Write('Suite');
JmlHari := DaysBetween((DataTamu[ENoKamar].WaktuOut),(DataTamu[ENoKamar].WaktuIn));
if JmlHari = 0 then JmlHari := JmlHari + 1;
gotoxy(25,10);Write('Lama Menginap = ',JmlHari,' hari');
DataTamu[EnoKamar].TotalBiaya := CHargaKamar[DataTamu[EnoKamar].TipeKamar] * JmlHari;
gotoxy(25,11);Write('Total Biaya = Rp ',DataTamu[EnoKamar].TotalBiaya);
gotoxy(25,13);write('=================================');
gotoxy(25,14);write('Tekan <Enter> untuk kembali ke Menu Utama');
DataTamu[EnoKamar].Status := Kosong;
readln;
end;
begin
repeat
clrscr;
gotoxy(28,1);writeln('SISTEM INFORMASI PERHOTELAN');
gotoxy(35,3);writeln('MENU PROGRAM');
gotoxy(28,4);writeln('[1].Check - in');
gotoxy(28,5);writeln('[2].Check - out');
gotoxy(28,6);writeln('[3].Daftar Tamu');
gotoxy(28,7);writeln('[4].Cetak Tagihan');
gotoxy(28,8);writeln('[5].Selesai');
gotoxy(28,10);write('Silahkan Masukkan Pilihan : ');
gotoxy(56,10);readln(pil);
case pil of
'1':PelangganMasuk(Datatamu);
'2':PelangganKeluar(Datatamu);
'3':DaftarTamu(Datatamu);
'4':Tagihan(Datatamu);
end;
until pil = '5' ;
readln;
end.
uses crt,dateutils,sysutils;
type
ETipeKaMar = (Single, Twin, Suite);
EStatus = (Kosong, Isi);
ENomorKamar = (No101, No102, No103, No104, No105, No201, No202, No203, No204,
No205, No301, No302, No303, No304, No305, No306, No307, No308,No309, No310);
Tamu = record
Nama : string;
NoId : string;
WaktuIn : TDateTime;
WaktuOut : TDateTime;
NumKamar : ENomorKamar;
TipeKaMar : ETipeKaMar;
Status : EStatus;
TotalBiaya : longint;
end;
TDataTamu = array [ENomorKamar] of Tamu;
const
Tanggal = 'DD-MM-YYYY';
CHargaKamar : array [ETipeKaMar] of Longint = (400000, 800000, 1350000);
var
DataTamu : TDatatamu;
pil : char;
NomorKamar : word;
function CekStatus(DataTamu: TDataTamu; NoKamar: ENomorKamar): Boolean;
begin
if (DataTamu[NoKamar].Status = Kosong) then
CekStatus := true
else
CekStatus := false;
end;
function AmbilKamar(NomorKamar: Word): ENomorKamar;
begin
case (NomorKamar) of
101: AmbilKamar := No101;
102: AmbilKamar := No102;
103: AmbilKamar := No103;
104: AmbilKamar := No104;
105: AmbilKamar := No105;
201: AmbilKamar := No201;
202: AmbilKamar := No202;
203: AmbilKamar := No203;
204: AmbilKamar := No204;
205: AmbilKamar := No205;
301: AmbilKamar := No301;
302: AmbilKamar := No302;
303: AmbilKamar := No303;
304: AmbilKamar := No304;
305: AmbilKamar := No305;
306: AmbilKamar := No306;
307: AmbilKamar := No307;
308: AmbilKamar := No308;
309: AmbilKamar := No309;
310: AmbilKamar := No310;
end;
end;
function tampilNoKamar(EnoKamar:EnomorKamar): word;
begin
case (EnoKamar) of
No101 : tampilNoKamar := 101;
No102 : tampilNoKamar := 102;
No103 : tampilNoKamar := 103;
No104 : tampilNoKamar := 104;
No105 : tampilNoKamar := 105;
No201 : tampilNoKamar := 201;
No202 : tampilNoKamar := 202;
No203 : tampilNoKamar := 203;
No204 : tampilNoKamar := 204;
No205 : tampilNoKamar := 205;
No301 : tampilNoKamar := 301;
No302 : tampilNoKamar := 302;
No303 : tampilNoKamar := 303;
No304 : tampilNoKamar := 304;
No305 : tampilNoKamar := 305;
No306 : tampilNoKamar := 306;
No307 : tampilNoKamar := 307;
No308 : tampilNoKamar := 308;
No309 : tampilNoKamar := 309;
No310 : tampilNoKamar := 310;
end;
end;
Procedure PelangganMasuk (var DataTamu : TDataTamu);
var
NoKamar : Enomorkamar;
TKamar,tanya : char;
InfoTamu : Tamu;
jawab,benar : boolean;
begin
repeat
Clrscr;
gotoxy(30,1);Write('CHECK-IN TAMU HOTEL');
gotoxy(20,2);Write('=================================');
gotoxy(20,12);Write('=================================');
gotoxy(18,4);Write('Tipe Kamar ( 0 : Single; 1 : Twin ; 2 : Suite ) ');
gotoxy(18,5);Write('Tipe Kamar = ');
repeat
gotoxy(38,5);
Readln(TKamar);
clreol;
until TKamar in ['0'..'2'];
case TKamar of
'0': InfoTamu.Tipekamar := Single;
'1': InfoTamu.Tipekamar := Twin;
'2': InfoTamu.Tipekamar := Suite;
end;
if (InfoTamu.TipeKaMar= Single) then
begin
gotoxy(41,5);Write('( Single )');
gotoxy(18,6);Write('Kamar yang tersedia = ');
for NoKamar := No301 to No310 do
begin
if DataTamu[NoKamar].Status = kosong then
write(TampilNoKamar(NoKamar),' ');
end;
gotoxy(18,7);Write('Nomor Kamar = ');
repeat
begin
gotoxy(38,7);
Readln(NomorKamar);
InfoTamu.NumKamar := AmbilKamar(NomorKamar);
Jawab := CekStatus(DataTamu,InfoTamu.NumKamar);
if Jawab = false then
begin
gotoxy(38,7);clreol;
end;
end;
until jawab = true and ((NomorKamar = 301) or (NomorKamar = 302) or (NomorKamar = 303) or
(NomorKamar = 304) or (NomorKamar = 305) or (NomorKamar = 306) or
(NomorKamar = 307) or (NomorKamar = 308) or (NomorKamar = 309) or
(NomorKamar = 310) );
end
else
if (InfoTamu.TipeKaMar= Twin) then
begin
gotoxy(41,5);Write('( Twin )');
gotoxy(18,6);Write('Kamar yang tersedia = ');
for NoKamar := No201 to No205 do
begin
if DataTamu[NoKamar].Status = kosong then
write(TampilNoKamar(NoKamar),' ');
end;
gotoxy(18,7);Write('Nomor Kamar = ');
repeat
begin
gotoxy(38,7);
Readln(NomorKamar);
InfoTamu.NumKamar := AmbilKamar(NomorKamar);
Jawab := CekStatus(DataTamu,InfoTamu.NumKamar);
if Jawab = false then
begin
gotoxy(38,7);clreol;
end;
end;
until jawab = true and ((NomorKamar = 201) or (NomorKamar = 202) or (NomorKamar = 203) or
(NomorKamar = 204) or (NomorKamar = 205));
end
else
begin
gotoxy(46,5);Write('( Suite )');
gotoxy(18,6);Write('Kamar yang tersedia : ');
for NoKamar := No101 to No105 do
begin
if DataTamu[NoKamar].Status = kosong then
write(TampilNoKamar(NoKamar),' ');
end;
gotoxy(18,7);Write('Nomor Kamar = ');
repeat
begin
gotoxy(38,7);
Readln(NomorKamar);
InfoTamu.NumKamar := AmbilKamar(NomorKamar);
Jawab := CekStatus(DataTamu,InfoTamu.NumKamar);
if Jawab = false then
begin
gotoxy(38,7);clreol;
end;
end;
until jawab = true and ((NomorKamar = 101) or (NomorKamar = 102) or (NomorKamar = 103) or
(NomorKamar = 104) or (NomorKamar = 105));
end;
gotoxy(18,8);Write('Nama Tamu = ');
repeat
begin
gotoxy(38,8);ClrEol;
Readln(InfoTamu.Nama);;
end;
until(InfoTamu.Nama<>'');
gotoxy(18,9);Write('No Identitas = ');
repeat
begin
gotoxy(38,9);ClrEol;
Readln(InfoTamu.NoId);
end;
until(InfoTamu.NoId<>'');
gotoxy(18,10);write('Data sudah benar ??? ( y ) / ( t ) : ');readln(tanya);
if tanya = 'y' then
begin
NoKamar := InfoTamu.NumKamar;
DataTamu[NoKamar].Tipekamar:= Infotamu.TipeKamar ;
DataTamu[NoKamar].Nama := InfoTamu.Nama;
DataTamu[NoKamar].NoId := InfoTamu.NoId;
DataTamu[NoKamar].WaktuIn := Today;
DataTamu[NoKamar].Status := Isi;
benar := true;
end
else
benar := false;
until benar = true;
end;
Procedure PelangganKeluar(Var DataTamu:TDataTamu);
var
EnoKamar :ENomorKamar;
tanya : char;
benar : boolean;
begin
repeat
clrscr;
gotoxy(30,1);Write('CHECK-OUT TAMU HOTEL');
gotoxy(25,2);write('=================================');
gotoxy(25,17);write('=================================');
gotoxy(25,4);Write('Daftar Kamar yang berisi = ');
gotoxy(28,5);
for EnoKamar := No101 to No310 do
begin
if DataTamu[EnoKamar].Status = Isi then
write(tampilNoKamar(EnoKamar),' ');
end;
gotoxy(25,6);
Write('No Kamar = ');Readln(nomorKamar);
EnoKamar := AmbilKamar(nomorKamar);
gotoxy(25,7);Writeln(' Nama = ', DataTamu[EnoKamar].Nama);
gotoxy(25,8);Writeln(' No. Identitas = ', DataTamu[EnoKamar].NoId);
gotoxy(25,9);Writeln(' Tanggal Check-in = ', formatDateTime(Tanggal,DataTamu[EnoKamar].WaktuIn));
gotoxy(25,10);writeln('Tipe Kamar = ');
gotoxy(45,10);
if (DataTamu[EnoKamar].TipeKaMar= Single) then
Write('Single')
else
if (DataTamu[EnoKamar].TipeKaMar= Twin) then
Write('Twin')
else
Write('Suite');
gotoxy(25,12);Write('Data benar ?? ( y ) / ( t ) = ');readln(tanya);
if tanya = 'y' then
begin
DataTamu[EnoKamar].WaktuOut := Today;
benar := true
end
else
benar := false;
until benar = true;
end;
procedure DaftarTamu(tampil : TDataTamu);
var EnoKamar : ENomorKamar;
begin
clrscr;
gotoxy(30,1);writeln('.: DATA TAMU HOTEL :.');writeln;
write('================================================================================');
gotoxy(1,4);write('#');gotoxy(80,4);write('#');
gotoxy(19,4);write('#');gotoxy(43,4);write('#');
gotoxy(64,4);write('#');gotoxy(1,5);write('#');
gotoxy(80,5);write('#');gotoxy(19,5);write('#');
gotoxy(43,5);write('#');gotoxy(64,5);write('#');
gotoxy(4,5);write('No Kamar');
gotoxy(25,5);write('Nama Tamu');gotoxy(46,5);write('No Identitas');
gotoxy(68,5);write('Check In ');
writeln;
writeln ('================================================================================');
for EnoKamar := No101 to No310 do
begin
if tampil[EnoKamar].Status = Isi then
begin
Writeln(tampilNoKamar(EnoKamar):8,tampil[EnoKamar].Nama:22,tampil[EnoKamar].NoId:25,
formatDateTime(Tanggal,tampil[EnoKamar].WaktuIn):22);
end;
end;
writeln;
writeln ('================================================================================');
writeln('Tekan <Enter> untuk kembali ke Menu Utama');
readln;
end;
procedure Tagihan(Var DataTamu : TDataTamu);
var
JmlHari : integer;
EnoKamar : ENomorKamar;
begin
clrscr;
gotoxy(30,1);write('.: TAGIHAN TAMU HOTEL :.');
gotoxy(25,2);write('=================================');
gotoxy(25,4);Write('Daftar Kamar yang berisi = ');
gotoxy(28,5);
for EnoKamar := No101 to No310 do
begin
if DataTamu[EnoKamar].Status = Isi then
write(tampilNoKamar(EnoKamar),' ');
end;
gotoxy(25,6);
Write('No Kamar = ');Readln(nomorKamar);
EnoKamar := AmbilKamar(nomorKamar);
gotoxy(25,7);Write('Tanggal Check-in = ', formatDateTime(Tanggal,DataTamu[EnoKamar].WaktuIn));
gotoxy(25,8);write('Tanggal Check Out = ', formatDateTime(Tanggal,DataTamu[EnoKamar].WaktuOut));
gotoxy(25,9);write('Tipe Kamar = ');
gotoxy(46,9);
if (DataTamu[EnoKamar].TipeKaMar= Single) then
Write('Single')
else
if (DataTamu[EnoKamar].TipeKaMar= Twin) then
Write('Twin')
else
Write('Suite');
JmlHari := DaysBetween((DataTamu[ENoKamar].WaktuOut),(DataTamu[ENoKamar].WaktuIn));
if JmlHari = 0 then JmlHari := JmlHari + 1;
gotoxy(25,10);Write('Lama Menginap = ',JmlHari,' hari');
DataTamu[EnoKamar].TotalBiaya := CHargaKamar[DataTamu[EnoKamar].TipeKamar] * JmlHari;
gotoxy(25,11);Write('Total Biaya = Rp ',DataTamu[EnoKamar].TotalBiaya);
gotoxy(25,13);write('=================================');
gotoxy(25,14);write('Tekan <Enter> untuk kembali ke Menu Utama');
DataTamu[EnoKamar].Status := Kosong;
readln;
end;
begin
repeat
clrscr;
gotoxy(28,1);writeln('SISTEM INFORMASI PERHOTELAN');
gotoxy(35,3);writeln('MENU PROGRAM');
gotoxy(28,4);writeln('[1].Check - in');
gotoxy(28,5);writeln('[2].Check - out');
gotoxy(28,6);writeln('[3].Daftar Tamu');
gotoxy(28,7);writeln('[4].Cetak Tagihan');
gotoxy(28,8);writeln('[5].Selesai');
gotoxy(28,10);write('Silahkan Masukkan Pilihan : ');
gotoxy(56,10);readln(pil);
case pil of
'1':PelangganMasuk(Datatamu);
'2':PelangganKeluar(Datatamu);
'3':DaftarTamu(Datatamu);
'4':Tagihan(Datatamu);
end;
until pil = '5' ;
readln;
end.