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