Kamis, 12 September 2013

Program Toko kue Brownis

Program Toko kue Brownis

uses wincrt;
type rec_bronis=record
     rasa:string;
     harga:longint;
     stok:byte;end;
    larik_bronis=array[1..5] of rec_bronis;
type rec_jual=record
     rasa:String;harga:longint;
     jum_terjual:byte;
     Total:real;end;
     larik_jual=array[1..5] of rec_jual;

var bronis:larik_bronis;
    jual:larik_jual;
    i,j,pil,cacah:byte;
    inkam:real;

procedure isi_data_awal; {inisialisasi}
begin
     bronis[1].rasa:='coklat';bronis[1].harga:=25000;
     bronis[2].rasa:='original';bronis[2].harga:=20000;
     bronis[3].rasa:='keju';bronis[3].harga:=26500;
     bronis[4].rasa:='blueberi';bronis[4].harga:=26000;
     bronis[5].rasa:='kacang';bronis[5].harga:=24500;
for i:=1 to 5 do
begin
    jual[i].rasa:=bronis[i].rasa;
    jual[i].harga:=bronis[i].harga;
end;
end;

procedure tambah_stok(var x:larik_bronis);
var tambah_rasa:string;
    ada:boolean;
    posisi,tambah:byte;

begin
    writeln('menambah stok bronis ');
    write('masukkan rasa yang akan ditambah stok ');readln(tambah_rasa);
    {cek}
    for i:=1 to 5 do
    begin
         if (x[i].rasa=tambah_rasa) then
         begin
              ada:=true;posisi:=i;
         end;
    end;
{lakukan penambahan jika rasa ditemukan}
    if ada then
    begin
         write('masukkan jumlah tambahan stok rasa ',tambah_rasa, ' ==> ');readln(tambah);
         x[posisi].stok:=x[posisi].stok+tambah;
    end;
    if not ada then writeln('maaf rasa ',tambah_rasa,' tidak tersedia');
end;


procedure penjualan;
var rasa_jual:string;
    cacah_jual:byte;
    ada:boolean;posisi:byte;

begin
write(' mau beli rasa apa ? ');readln(rasa_jual);
{cek rasa}
for i:=1 to 5 do
    if (bronis[i].rasa=rasa_jual) then begin ada:=true;posisi:=i;end;
write('mau beli berapa banyak? ');readln(cacah_jual);
if (ada) and (bronis[posisi].stok>=cacah_jual) then       {cek stok ada}
{lakukan penjualan}
begin
     jual[posisi].jum_terjual:=jual[posisi].jum_terjual+cacah_jual;
     bronis[posisi].stok:=bronis[posisi].stok-cacah_jual;
end
else if (ada) and (bronis[posisi].stok<cacah_jual) then writeln('stok tidak cukup')
else writeln('Rasa tidak tersedia');
end;


procedure cetak_bronis(var x:larik_bronis);
begin
writeln('DAFTAR KETERSEDIAAN BRONIS DI TOKO BRONIS ENAK TENAN');
writeln;
writeln('-----------------------------------------');
writeln('NO      RASA          HARGA      STOK');
writeln('-----------------------------------------');
for i:=1 to 5 do with x[i] do
    writeln(i:2,'  ',rasa:10,'      ','Rp',harga:6,'        ',stok:3);
writeln('-----------------------------------------');
end;

procedure cetak_penjualan(var y:larik_jual);
begin
writeln('DAFTAR PENJUALAN BRONIS DI TOKO BRONIS ENAK TENAN');
writeln;
writeln('----------------------------------------------------------');
writeln('NO      RASA          HARGA   JUMLAH TERJUAL     TOTAL');
writeln('----------------------------------------------------------');
for i:=1 to 5 do with Y[i] do
begin
    total:=harga*jum_terjual;cacah:=cacah+jum_terjual;inkam:=inkam+total;
    writeln(i:2,'  ',rasa:10,'    ','Rp',harga:8,'     ',jum_terjual:4,'        ','Rp',total:8:2);
end;
writeln('-----------------------------------------------------------');
end;


procedure cek_Stok(var x:larik_bronis);
var cari:string;
    ketemu:boolean;

begin
    write('Anda ingin mengecek stok bronis rasa apa? ');readln(cari);
    for i:=1 to 5 do
    begin
        if (x[i].rasa=cari) then
         begin
              ketemu:=true;writeln ('stok rasa ',cari,' sebanyak ',x[i].stok:3,' buah');
         end;
    end;
    if not ketemu then writeln('maaf rasa ',cari,' tidak ada');
end;
   

{program utama}
begin
Isi_data_awal;
repeat
begin
     clrscr;
     writeln('TOKO BRONIS ENAK TENAN');
     writeln('coklat  keju  original blueberi kacang');
     writeln('1. Tambah stok');
     writeln('2. Cek stok berdasar rasa');
     writeln('3. Penjualan');
     writeln('4. Cetak Ketersediaan Bronis');
     writeln('5. Cetak Penjualan');
     writeln('6. Rekap Penjualan');
     writeln('7. Tutup Toko');
     write('pilih menu no : ');readln(pil);
     case pil of
     1: tambah_Stok(bronis);
     2: cek_stok(bronis);
     3: Penjualan;
     4: cetak_bronis(bronis);
     5: cetak_penjualan(jual);
     6: writeln('Hari ini telah terjual sebanyak ',cacah,' bronis,dengan pendapatan Rp',inkam:6:2);
     7: writeln('Terimakasih atas kunjungan anda');
     end;
     readln;
end
until (pil=7);

end.

0 komentar:

Posting Komentar