Advertisement
cecepsuwanda

kasir

Jan 9th, 2018
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.17 KB | None | 0 0
  1. program kasir;
  2. uses crt;
  3.  
  4. type
  5.   tbrg = record
  6.            kd  : string;
  7.            nm  : string;
  8.            hrg : integer;
  9.          end;
  10.   tarr_brg = array[1..10] of tbrg;
  11.   tb_brg = record
  12.               jml : integer;
  13.               tb : tarr_brg;
  14.            end;
  15.  
  16.   titem = record
  17.            kd  : string;
  18.            jml : integer;
  19.            byr : integer;
  20.          end;
  21.   tarr_item = array[1..10] of titem;
  22.   tb_item = record
  23.               jml : integer;
  24.               tb : tarr_item;
  25.            end;
  26.   ttrans = record
  27.              kd  : string;
  28.              tgl : string;
  29.              item : tb_item;
  30.              ttl : integer;
  31.            end;
  32.   tarr_trans = array[1..10] of ttrans;
  33.   tb_trans = record
  34.               jml : integer;
  35.               tb : tarr_trans;
  36.            end;
  37.  
  38.   procedure isi_brg(idx:integer;
  39.                     kd:string;
  40.                     nm:string;
  41.                     hrg:integer;
  42.                     var brg:tb_brg);
  43.   begin
  44.      brg.tb[idx].kd:=kd;
  45.      brg.tb[idx].nm:=nm;
  46.      brg.tb[idx].hrg:=hrg;
  47.      brg.jml:=brg.jml+1;
  48.   end;
  49.  
  50.   procedure isi_trans(idx:integer;
  51.                     kd:string;
  52.                     tgl:string;
  53.                     var trans:tb_trans);
  54.   begin
  55.      trans.tb[idx].kd:=kd;
  56.      trans.tb[idx].tgl:=tgl;
  57.      trans.jml:=trans.jml+1;
  58.   end;
  59.  
  60.   function hrg_brg(kd:string;brg:tb_brg):integer;
  61.   var
  62.    i : integer;
  63.    ketemu : boolean;
  64.   begin
  65.     ketemu:=false;
  66.     i:=1;
  67.     while ((ketemu=false) and (i<=brg.jml)) do
  68.     begin
  69.       if brg.tb[i].kd = kd then
  70.          ketemu := true
  71.       else
  72.          i:=i+1;
  73.     end;
  74.  
  75.     hrg_brg :=0;
  76.     if(ketemu)then
  77.       begin
  78.         hrg_brg :=brg.tb[i].hrg;
  79.       end;
  80.   end;
  81.  
  82.   procedure isi_item(idx_trans,idx_item:integer;
  83.                     kd:string;
  84.                     jml:integer;
  85.                     brg:tb_brg;
  86.                     var trans:tb_trans);
  87.   begin
  88.      trans.tb[idx_trans].item.tb[idx_item].kd:=kd;
  89.      trans.tb[idx_trans].item.tb[idx_item].jml:=jml;
  90.      trans.tb[idx_trans].item.tb[idx_item].byr:=jml*hrg_brg(kd,brg);
  91.      trans.tb[idx_trans].ttl := trans.tb[idx_trans].ttl+trans.tb[idx_trans].item.tb[idx_item].byr;
  92.      trans.tb[idx_trans].item.jml:=trans.tb[idx_trans].item.jml+1;
  93.   end;
  94.  
  95.   function dt_brg(kd:string;brg:tb_brg):tbrg;
  96.   var
  97.    i : integer;
  98.    ketemu : boolean;
  99.   begin
  100.     ketemu:=false;
  101.     i:=1;
  102.     while ((ketemu=false) and (i<=brg.jml)) do
  103.     begin
  104.       if brg.tb[i].kd = kd then
  105.          ketemu := true
  106.       else
  107.          i:=i+1;
  108.     end;
  109.     dt_brg :=brg.tb[i];
  110.   end;
  111.  
  112.   procedure ctk_brg(brg:tbrg);
  113.   begin
  114.      writeln(brg.kd:20,brg.nm:20,brg.hrg:20);
  115.   end;
  116.  
  117.   procedure ctk_item(item:titem;brg:tb_brg);
  118.   var
  119.     tmp : tbrg;
  120.   begin
  121.      tmp:= dt_brg(item.kd,brg);
  122.      writeln(tmp.kd:12,tmp.nm:12,tmp.hrg:14,item.jml:10,item.byr:10);
  123.   end;
  124.  
  125.   procedure ctk_trans(trans:ttrans;brg:tb_brg);
  126.   var
  127.     i:integer;
  128.   begin
  129.     writeln('Kode Transaksi    : ',trans.kd);
  130.     writeln('Tanggal Transaksi : ',trans.tgl);
  131.     writeln('Total Transaksi   :Rp ',trans.ttl);
  132.     writeln('Kode Barang':12,'Nama Barang':12,'Harga Satuan':14,'Jml':10,'Byr':10);
  133.     for i:=1 to trans.item.jml do
  134.     begin
  135.        ctk_item(trans.item.tb[i],brg)
  136.     end;
  137.     writeln;
  138.     writeln;
  139.   end;
  140.  
  141.  
  142.   procedure init(var brg:tb_brg;var trans:tb_trans);
  143.   begin
  144.      isi_brg(1,'sgm01','Susu SGM',3000,brg);
  145.      isi_brg(2,'rinso01','Rinso',14000,brg);
  146.      isi_trans(1,'01','01-01-2018',trans);
  147.      isi_item(1,1,'sgm01',3,brg,trans);
  148.      isi_item(1,2,'rinso01',3,brg,trans);
  149.      isi_trans(2,'02','08-02-2018',trans);
  150.      isi_item(2,1,'sgm01',13,brg,trans);
  151.      isi_item(2,2,'rinso01',10,brg,trans);
  152.   end;
  153.  
  154.   procedure cetak(brg:tb_brg;trans:tb_trans);
  155.   var
  156.    i : integer;
  157.   begin
  158.     writeln('Kode Barang':20,'Nama Barang':20,'Harga':20);
  159.     for i:=1 to brg.jml do
  160.     begin
  161.        ctk_brg(brg.tb[i]);
  162.     end;
  163.     writeln;
  164.     writeln;
  165.     for i:=1 to trans.jml do
  166.     begin
  167.        ctk_trans(trans.tb[i],brg);
  168.     end;
  169.   end;
  170.  
  171.  var
  172.    brg : tb_brg;
  173.    trans : tb_trans;
  174.  begin
  175.    init(brg,trans);
  176.    cetak(brg,trans);
  177.    readkey;
  178.  end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement