Kamis, 12 September 2013

Program Rental Cd

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