Академический Документы
Профессиональный Документы
Культура Документы
uses crt ;
const
maks_array = 100 ;
type
tanggal = record
hari, bulan, tahun : integer ;
end ;
barang = record
nama, status : string ;
kode, stok, jenis: integer ;
lama : longint ;
harga : real ;
masuk, kadaluwarsa, periode : tanggal ;
end ;
larik_brg = array[1..maks_array] of barang ;
var
brg : larik_brg ;
i, j, n, digit_max, x, y : integer ;
sekarang : tanggal ;
kunci : boolean ;
procedure hitung(stock, jenis : integer ; var harga : real ; t : tanggal ; var exp
: tanggal ) ; //var exp & harga - i/o
var
discount : real ;
begin
case (stock) of
1..70 : discount := 0.1 ;
71..120 : discount := 0.25 ;
121..200 : discount := 0.3 ;
end ;
harga := harga - harga * discount ;
case (jenis) of
1 : begin
expired(12,t,exp) ;
end ;
2 : begin
expired(7,t,exp) ;
end ;
3 : begin
expired(4,t,exp) ;
end ;
end ;
end ; //endprocedure
//proses penghitungan
hitung(brg[i].stok,brg[i].jenis,brg[i].harga,brg[i].masuk,brg[i].kadaluwarsa) ;
perioda(sekarang,brg[i].kadaluwarsa,brg[i].periode,brg[i].lama) ;
if (brg[i].lama > 0)
then
brg[i].status := 'baik'
else
brg[i].status := 'basi' ;
gotoxy(18,23) ; write('Jenis Barang :
',j_barang(brg[i].jenis)) ;
gotoxy(18,24) ; write('Harga Bersih Barang :
',brg[i].harga:0:0) ;
gotoxy(18,25) ; write('Tanggal kadaluwarsa :
',brg[i].kadaluwarsa.hari,'-',bulan(brg[i].kadaluwarsa.bulan),'-',brg[i].kadaluwars
a.tahun) ;
if (brg[i].lama < 0)
then
begin
gotoxy(18,26) ; writeln('Telah kadaluarsa selama :
',abs(brg[i].periode.hari),' hari ',abs(brg[i].periode.bulan),' bulan
',abs(brg[i].periode.tahun),' tahun') ;
end
else
if (brg[i].lama = 0)
then
begin
gotoxy(18,26) ; writeln('Kadaluarsa hari ini') ;
end
else
begin
gotoxy(18,26) ; writeln('Akan kadaluarsa pada :
',brg[i].periode.hari,' hari ',brg[i].periode.bulan,' bulan
',brg[i].periode.tahun,' tahun') ;
end ;
gotoxy(18,28) ; writeln('Silakan tekan enter untuk kembali ke menu utama') ;
gotoxy(65,28) ; readln;
end ; //endprocedure
writeln('==========================================================================
=======================================') ;
end ; //endprocedure
var
kodecari : integer ;
ketemu : boolean ;
begin
clrscr ;
write('Kode yang dicari : ') ; readln(KodeCari) ;
clrscr ;
i := 1 ;
Ketemu := False ;
while (Not Ketemu) and (i <= N) do
begin
if (Brg[i].kode = KodeCari)
then
Ketemu := true
else
i := i + 1;
end; //endwhile
if (Ketemu)
then
begin
write(brg[i].kode) ;
write(brg[i].nama) ;
write(j_barang(brg[i].jenis)) ;
write(brg[i].stok) ;
write(brg[i].masuk.hari,'-',bulan(brg[i].masuk.bulan),'-',brg[i].masuk.tahun) ;
write(brg[i].kadaluwarsa.hari,'-',bulan(brg[i].kadaluwarsa.bulan),'-',brg[i].kadalu
warsa.tahun) ;
write(brg[i].status) ;
write(brg[i].lama) ;
write(brg[i].harga:0:0) ;
end
else
writeln('Kode ',KodeCari, 'Tidak ditemukan!');
end ; //endprocedure
begin
input_tanggal(sekarang) ;
menu_pilihan(sekarang) ;
readln ;
end.