Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program kasir;
- uses crt;
- type
- tbrg = record
- kd : string;
- nm : string;
- hrg : integer;
- end;
- tarr_brg = array[1..10] of tbrg;
- tb_brg = record
- jml : integer;
- tb : tarr_brg;
- end;
- titem = record
- kd : string;
- jml : integer;
- byr : integer;
- end;
- tarr_item = array[1..10] of titem;
- tb_item = record
- jml : integer;
- tb : tarr_item;
- end;
- ttrans = record
- kd : string;
- tgl : string;
- item : tb_item;
- ttl : integer;
- end;
- tarr_trans = array[1..10] of ttrans;
- tb_trans = record
- jml : integer;
- tb : tarr_trans;
- end;
- procedure isi_brg(idx:integer;
- kd:string;
- nm:string;
- hrg:integer;
- var brg:tb_brg);
- begin
- brg.tb[idx].kd:=kd;
- brg.tb[idx].nm:=nm;
- brg.tb[idx].hrg:=hrg;
- brg.jml:=brg.jml+1;
- end;
- procedure isi_trans(idx:integer;
- kd:string;
- tgl:string;
- var trans:tb_trans);
- begin
- trans.tb[idx].kd:=kd;
- trans.tb[idx].tgl:=tgl;
- trans.jml:=trans.jml+1;
- end;
- function hrg_brg(kd:string;brg:tb_brg):integer;
- var
- i : integer;
- ketemu : boolean;
- begin
- ketemu:=false;
- i:=1;
- while ((ketemu=false) and (i<=brg.jml)) do
- begin
- if brg.tb[i].kd = kd then
- ketemu := true
- else
- i:=i+1;
- end;
- hrg_brg :=0;
- if(ketemu)then
- begin
- hrg_brg :=brg.tb[i].hrg;
- end;
- end;
- procedure isi_item(idx_trans,idx_item:integer;
- kd:string;
- jml:integer;
- brg:tb_brg;
- var trans:tb_trans);
- begin
- trans.tb[idx_trans].item.tb[idx_item].kd:=kd;
- trans.tb[idx_trans].item.tb[idx_item].jml:=jml;
- trans.tb[idx_trans].item.tb[idx_item].byr:=jml*hrg_brg(kd,brg);
- trans.tb[idx_trans].ttl := trans.tb[idx_trans].ttl+trans.tb[idx_trans].item.tb[idx_item].byr;
- trans.tb[idx_trans].item.jml:=trans.tb[idx_trans].item.jml+1;
- end;
- function dt_brg(kd:string;brg:tb_brg):tbrg;
- var
- i : integer;
- ketemu : boolean;
- begin
- ketemu:=false;
- i:=1;
- while ((ketemu=false) and (i<=brg.jml)) do
- begin
- if brg.tb[i].kd = kd then
- ketemu := true
- else
- i:=i+1;
- end;
- dt_brg :=brg.tb[i];
- end;
- procedure ctk_brg(brg:tbrg);
- begin
- writeln(brg.kd:20,brg.nm:20,brg.hrg:20);
- end;
- procedure ctk_item(item:titem;brg:tb_brg);
- var
- tmp : tbrg;
- begin
- tmp:= dt_brg(item.kd,brg);
- writeln(tmp.kd:12,tmp.nm:12,tmp.hrg:14,item.jml:10,item.byr:10);
- end;
- procedure ctk_trans(trans:ttrans;brg:tb_brg);
- var
- i:integer;
- begin
- writeln('Kode Transaksi : ',trans.kd);
- writeln('Tanggal Transaksi : ',trans.tgl);
- writeln('Total Transaksi :Rp ',trans.ttl);
- writeln('Kode Barang':12,'Nama Barang':12,'Harga Satuan':14,'Jml':10,'Byr':10);
- for i:=1 to trans.item.jml do
- begin
- ctk_item(trans.item.tb[i],brg)
- end;
- writeln;
- writeln;
- end;
- procedure init(var brg:tb_brg;var trans:tb_trans);
- begin
- isi_brg(1,'sgm01','Susu SGM',3000,brg);
- isi_brg(2,'rinso01','Rinso',14000,brg);
- isi_trans(1,'01','01-01-2018',trans);
- isi_item(1,1,'sgm01',3,brg,trans);
- isi_item(1,2,'rinso01',3,brg,trans);
- isi_trans(2,'02','08-02-2018',trans);
- isi_item(2,1,'sgm01',13,brg,trans);
- isi_item(2,2,'rinso01',10,brg,trans);
- end;
- procedure cetak(brg:tb_brg;trans:tb_trans);
- var
- i : integer;
- begin
- writeln('Kode Barang':20,'Nama Barang':20,'Harga':20);
- for i:=1 to brg.jml do
- begin
- ctk_brg(brg.tb[i]);
- end;
- writeln;
- writeln;
- for i:=1 to trans.jml do
- begin
- ctk_trans(trans.tb[i],brg);
- end;
- end;
- var
- brg : tb_brg;
- trans : tb_trans;
- begin
- init(brg,trans);
- cetak(brg,trans);
- readkey;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement