program rental Cd
uses wincrt;
type rec_cd=record
judul:string;
jenis:String;
biaya:integer;stok:byte;
end;
array_cd=array[1..20] of rec_cd;
type rec_pinjam=record
judul,nama:string;
jum_hari:byte;total:longint;
end;
array_pinjam=array[1..20] of rec_pinjam;
var cd,sementara:array_cd;
peminjam:array_pinjam;
i,j,pil,n,m:byte;
pendapatan:longint;
procedure tambah_judul(var
x:array_cd);
begin
writeln('menambah judul baru');
inc(n);
write('masukkan judul cd : ');readln(x[n].judul);
write('masukkan jenis (Musik,Film,Program)
: ');readln(x[n].jenis);
write('masukkan biaya sewa/hari : ');readln(x[n].biaya);
end;
procedure tambah_Stok(var x:array_cd);
var tanya_judul:string;
ada:boolean;
posisi,tambah:byte;
begin
write('masukkan judul yg akan
ditambah/diisi stok : ');readln(tanya_judul);
{mengecek judul di array}
for i:=1 to n do
begin
if
(x[i].judul= tanya_judul) then
begin
ada:=true;posisi:=i;
end;
end;
if ada=true then {jika judul sudah ada di
array, lakukan penambahan stok}
begin
write('masukkan jumlah cd ');readln(tambah);
x[posisi].stok:=x[posisi].stok+tambah;
end
else writeln('judul tersebut belum ada ');
end;
procedure peminjaman;
var pinjam_cd:string;
tersedia:boolean;
posisi:byte;
begin
writeln('PEMINJAMAN CD');
write('masukkan judul cd yang akan
dipinjam ');readln(pinjam_cd);
{mengecek ketersediaan cd di larik cd}
for i:=1 to n do
begin
if (cd[i].judul=pinjam_cd) and
(cd[i].stok>0) then
begin
tersedia:=true;posisi:=i; end;
end;
{jika cd available lakukan peminjaman}
if tersedia then
begin
inc(m);
peminjam[m].judul:=pinjam_cd;
write('masukkan nama peminjam =
');readln(peminjam[m].nama);
write('berapa hari peminjaman =
');readln(peminjam[m].jum_hari);
peminjam[m].total:=peminjam[m].jum_hari*cd[posisi].biaya;
dec(cd[posisi].stok); {mengurangi
stok}
end
else writeln ('Judul atau stok tidak
tersedia');
end;
procedure cetak_cd(var
x:array_cd);
begin
writeln('--------------------------------------------------------------');
writeln(' No judul jenis stok
biaya sewa/hari');
writeln('-------------------------------------------------------------');
for i:=1 to n do with x[i] do
writeln(i:2,' ',judul:15,' ',jenis:10,' ',stok,'
','Rp',biaya:6);
writeln('-------------------------------------------------------------');
end;
procedure sorting_cd(var
x:array_cd);
var temp:rec_cd;
begin
{mengisi array bayangan}
for i:=1 to n do
sementara[i]:=x[i];
{mengurutkan array bayangan}
for i:=1 to n-1 do
begin
for j:=i+1 to n do
begin
if (sementara[i].judul >
sementara[j].judul) then
begin
temp:=sementara[i];
sementara[i]:=sementara[j];
sementara[j]:=temp;
end;
end;
end;
end;{end procedure sorting}
procedure cetak_pinjam(var
y:array_pinjam);
begin
writeln('--------------------------------------------------------------------');
writeln(' NO Judul CD Peminjam lama sewa Total Bayar');
writeln('--------------------------------------------------------------------');
for i:=1 to m do with y[i] do
begin
pendapatan:=pendapatan+total;
writeln(i:2,' ',judul:15,' ', nama:10,' ',jum_hari:3,' ','Rp',total:6);
end;
writeln('--------------------------------------------------------------------');
end;
begin {program utama}
repeat
begin
clrscr;
writeln('
RENTAL CD 5758');
writeln('1. Tambah judul');
writeln('2. Tambah stok cd');
writeln('3. peminjaman');
writeln('4. Sorting CD berdasar judul');
writeln('5. Cetak stok CD');
writeln('6. Cetak Peminjaman');
writeln('7. Rekap pendapatan');
writeln('8. Tutup ');
writeln('Pilih menu ==> ');readln(pil);
case pil of
1: tambah_judul(cd);
2: tambah_stok(cd);
3: peminjaman;
4: begin
sorting_cd(cd);cetak_cd(sementara);end;
5: cetak_cd (cd);
6: cetak_pinjam(peminjam);
7: begin
writeln('HAri ini terjadi ',m,'
peminjaman, dengan pendapatan Rp', pendapatan);
writeln('Have a nice day');
end;
8: writeln('Terimakasih');
end;
readln;
end
until (pil=8);
end.
0 komentar:
Posting Komentar