program toko_maju;
uses crt;
type barang=record
nama,satuan:string;
harga:longint;
stok:byte;
end;
larik_barang=array[1..20] of barang;
type jual=record
nama_j:string;
harga_j:integer;
jum: byte;
total:real;
end;
larik_jual=array[1..20] of jual;
var bar:larik_barang;jual_brg:larik_jual;
i,n,m:byte;
pil:1..10;
pendapatan:real;
procedure tambah_bar(var x:larik_barang);
var nama_bar:string;
ketemu:boolean;
begin
ketemu:=false;
write('masukan nama barang yang baru ');readln(nama_bar);
{cek apakah nama_bar sudah ada}
for i:=1 to n do
if (x[i].nama=nama_bar) then ketemu:=true;
if not ketemu then
begin
inc(n);
x[n].nama:=nama_bar;
write('satuan ? ');readln(x[n].satuan);
write('harga satuan ? ');readln(x[n].harga);
end
else writeln('barang sudah ada didaftar');
end;
procedure tambah_stok(var x:larik_barang);
var nama_bar:string;
tamstok,posisi:byte;
ketemu:boolean;
begin
write(' masukkan nama barang yang akan ditambah stok==>');
readln(nama_bar);
{cek didalam array apakah nama tsb sudah ada diatas belum}
ketemu:=false;
for i:=1 to n do
if (x[i].nama=nama_bar) then begin ketemu:=true;posisi:=1;end;
if ketemu then
{lakukan penambahan stok}
begin
write('barang ',nama_bar,' ditambah stok sbanyak = ');
readln(tamstok);
x[posisi].stok:=x[posisi].stok+tamstok;
end
else
writeln('barang belum ada di daftar, lakukan menu pilihan no 1');
end;
procedure cek_stok(var x:larik_barang);
var
nama_bar:string;
ketemu:boolean;
begin
write('masukan nama stok barang yang akan dicek= ');
readln(nama_bar);
{cek didalam array apakah nama tsb sudah ada diatas belum}
ketemu:=false;
for i:=1 to n do
if (x[i].nama=nama_bar) then begin ketemu:=true;
if ketemu then
end
procedure cetak_bar(var x:larik_barang);
begin
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++');
writeln('No nama barang satuan harga stok ');
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++');
for i:=1 to n do
writeln(i:2,' ',x[i].nama:10,' ',x[i].satuan:15,' ','Rp',x[i].harga:10, ' ',x[i].stok:10);
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++');
end;
procedure penjualan(var x:larik_barang);
var nama_bar:string;
jumbeli:byte;
ketemu:boolean;
posisi:byte;
begin
ketemu:=false;
writeln('selamat berbelanja');
writeln('masukkan nama barang yang akan dibeli');readln(nama_bar);
{cek barang ada atau tidak di array barang}
for i:=1 to n do
if (x[i].nama=nama_bar) then
begin ketemu:=true;posisi:=i;end;
if ketemu then
begin
write('berapa buah ',nama_bar,' yang mau dibeli ?');
readln(jumbeli);
{cek stok}
if(x[posisi].stok>= jumbeli) then
begin
inc(m);
jual_brg[m].nama_j:=nama_bar;
jual_brg[m].harga_j:=x[posisi].harga;
jual_brg[m].jum:=jumbeli;
jual_brg[m].total:=jual_brg[m].harga_j*jumbeli;
x[posisi].stok:=x[posisi].stok-jumbeli;
end
else writeln('stok barang tidak cukup');
end;
if not ketemu then writeln('barang tidak ada didalam daftar');
end;
procedure cetak_jual(var y:larik_jual);
begin
writeln('============================================================');
writeln('no nama barang harga jumlah total ');
writeln('============================================================');
for i:=1 to m do
begin
writeln(i:2,' ',y[i].nama_j:10,' ','Rp',y[i].harga_j:10,' ',y[i].jum:8,' ','Rp',y[i].total:12:2);
pendapatan:=pendapatan+y[i].total;
end;
writeln('===========================================================');
end;
begin
repeat
begin
clrscr;
writeln(' TRANSAKSI PENJUALAN TOKO DOMINO');
writeln('1.Tambah barang');
writeln('2.Tambah stok');
writeln('3.Transaksi penjualan');
writeln('4.Cek ketersediaan barang tertentu');
writeln('5.Tampilkan barang');
writeln('6.Tampilkan penjualan');
writeln('7.Urut barang berdasar nama barang');
writeln('8.Urut penjualan berdasar jumlah terjual');
writeln('9.Rekap penjualan hari ini');
writeln('10.selesai');
writeln;write('pilihan nomer <1-10> ==> ');readln(pil);
case pil of
1: tambah_bar(bar);
2: tambah_stok(bar);
3: penjualan(bar);
{4: cek_stok(bar);}
5: cetak_bar(bar);
6: cetak_jual(jual_brg);
{7: urut_bar(bar);
8: urut_jual(jual_brg);}
9: begin
writeln;
writeln('jumlah pendapatan hari ini adalah sebesar Rp',pendapatan:8:2);
end;
10: writeln('terima kasih sudah mencoba');
end; {end case}
readln;
end
until (pil=10);
end.
Jumat, Desember 13, 2013
Langganan:
Posting Komentar (Atom)

0 komentar:
Posting Komentar