Program Perpustakaan;
Uses crt,DOS;
var
Judul : array[1..20] of String;
Lama : array[1..20] of Integer;
banyak : array[1..20] of Byte;
kata,grs,nama,nim,prodi,user,pass : String;
x,y,i,j :Byte;
Jum_Harga,Total_Harga,disc,Total_Bayar,uang,Kembalian : Real;
Ul : Char;
Procedure Data;
Begin
Repeat
clrscr;
grs:='==================================================================';
Textcolor(Yellow); Write('PERPUSTAKAAN CINTA BACA');
Writeln;
Textcolor(7);
x:=round((78-length(kata))/2);
gotoxy(x,2);writeln(kata);
x:=round((78-length(grs))/2);
{gotoxy(x,3);write(grs);
-----------------------------}
gotoxy(x,4);Textcolor(Yellow);write('DATA PEMINJAM');Textcolor(7);
gotoxy(x,6);write('Nama : ');readln(nama);
gotoxy(x,7);write('NIM : ');readln(nim);
gotoxy(x,8);write('Prodi : ');readln(prodi);
gotoxy(x,9);write(grs);
gotoxy(x,10);writeln('| No | Judul Buku | Lama Sewa | Banyak | Jumlah Harga |');
gotoxy(x,11);write(grs);
{--------------------------------------------------------------------}
i:=0;
Total_Harga:=0;
repeat
i:=i+1;
gotoxy(x,11+i);write('| ',i);
gotoxy(x+5,11+i);write('|');
gotoxy(x+7,11+i);readln(Judul[i]);
if Judul[i] <>'' then
begin
gotoxy(x+25,11+i);write('|');
gotoxy(x+28,11+i);readln(Lama[i]);
gotoxy(x+28,11+i);writeln(Lama[i]);
gotoxy(x+41,11+i);write('|');
gotoxy(x+44,11+i);readln(Banyak[i]);
gotoxy(x+50,11+i);write('|');
Jum_Harga:=Lama[i]*500*Banyak[i];
gotoxy(x+53,11+i);writeln(Jum_Harga:10:2);
gotoxy(x+65,11+i);writeln('|');
Total_Harga:=Total_Harga+Jum_Harga ;
end;
until Judul[i]='';
{--------------------------------------------------------------------}
disc:=0;
if (Total_Harga > 10000) and (Total_Harga <100000) then
disc:=0.05 * Total_Harga
else
if (Total_Harga >= 100000 ) then
disc:=0.1 *Total_Harga;
{--------------------------------------------------------------------}
j:=i-1;
gotoxy(x,12+j);write(grs);
gotoxy(x,12+j+1);write('Total Sewa :');
gotoxy(x+53,12+j+1);write(Total_Harga:10:2);
gotoxy(x,12+j+2);write('Discount :');
gotoxy(x+53,12+j+2);write(disc:10:2);
gotoxy(x,12+j+3);write(grs);
gotoxy(x,12+j+4);write('Total :');
Total_Bayar:=Total_Harga-disc;
gotoxy(x+53,12+j+4);write(Total_Bayar:10:2);
gotoxy(x,12+j+5);write('Uang diBayar');
gotoxy(x+53,12+j+5);readln(Uang);
gotoxy(x+53,12+j+5);writeln(Uang:10:2);
gotoxy(x,12+j+6);Write(grs);
Kembalian:=Uang - Total_Bayar;
gotoxy(x,12+j+7);writeln('Uang Kembali');
gotoxy(x+53,12+j+7);write(Kembalian:10:2);
gotoxy(x,12+j+10);Textbackground(12);Write('TRANSAKSI KEMBALI [Y/T]: ');Readln(Ul);
Textbackground(1);
Until Upcase(Ul) <> 'Y';
End;
Procedure TULIS(KIRI,ATAS,PILIH:Integer; TEKS:String);
Var
PANJANG : Integer;
Begin
PANJANG := LENGTH(TEKS);
If PILIH = 1 Then
gotoxy(KIRI, ATAS)
Else If PILIH = 2 Then
{AGAR POSISI KURSOR DITENGAH-TENGAH LAYAR}
gotoxy((80 - PANJANG) DIV 2, ATAS)
Else If PILIH = 3 Then
gotoxy((80 - PANJANG), ATAS);
Write(TEKS);
End;
Procedure WINDOW(KIRI,ATAS,LEBAR,TINGGI,WARNA1,WARNA2:Integer; ARSIR:Byte);
Begin
TEXTATTR:=WARNA1;
TEXTATTR:=WARNA2;
TULIS(KIRI, ATAS, 1, CHAR(201));
TULIS(KIRI, ATAS+TINGGI, 1, CHAR(200));
TULIS(KIRI+LEBAR, ATAS, 1, CHAR(187));
TULIS(KIRI+LEBAR, ATAS+TINGGI, 1, CHAR(188));
For i:= KIRI+1 to KIRI+LEBAR-1 do
Begin
TULIS(I, ATAS, 1, 'Í');
TULIS(I, ATAS+TINGGI, 1, 'Í');
End;
For i:= ATAS+1 to TINGGI+ATAS-1 do
Begin
TULIS(KIRI, I, 1,CHAR(186));
TULIS(KIRI + LEBAR, I, 1,CHAR(186));
End;
If ARSIR = 1 Then
Begin
For i:= ATAS + 1 to TINGGI + ATAS - 1 do
For j:= KIRI + 1 to KIRI + LEBAR - 1 do
TULIS(J, I, 1, CHAR(176));
End
Else
Begin
For i:= ATAS + 1 to TINGGI + ATAS - 1 do
For j:= KIRI + 1 to KIRI + LEBAR - 1 do
TULIS(J, I, 1, ' ');
End;
TEXTATTR:=WARNA2;
End;
Procedure Password;
Begin
If (user='kamto') AND (pass='123') Then
Begin
Data;
Readln;
End
Else
Begin
gotoxy(39,13);textcolor(4);
write('INVALID');
Readln;
End;
End;
Begin
Clrscr;
WINDOW(1,1,79,23,$1D,$7F,1);
WINDOW(15,3,50,8,$2A,$6B,0);
TULIS (20,5,1,'USER NAME : ');
gotoxy(39,5);Readln(user);
TULIS (20,7,1,'PASSWORD : ');
GOTOXY(39,7);Readln(pass);
Password;
End.
End.
Tidak ada komentar:
Posting Komentar