Sebuah toko mempunyai tabel harga dan diskon seperti berikut :
Tampilan yang diinginkan adalah :
Ketentuan :
Data yang diinputkan hanya kode barang dan quantity. Quantity
pembelian tidak boleh lebih dari 10. Data yang
dimasukan
harus divalidasi.
Solusi untuk tombol Hitung adalah script berikut :
procedure TForm1.Tbl_HitungClick(Sender:
TObject);
var
kode, nama:string;
harga, diskon, subtotal,total:currency;
qty:integer;
begin
kode:=cbkode.Text;
kode:=trim(kode);
kode:=uppercase(kode);
kode:=copy(kode,1,3);
// Di baris ini, kode sudah pasti tidak ada
spasi di awal dan diakhir
// kode sudah pasti capital (tidak mempunyai
huruf kecil)
// kode pasti 3 huruf atau kurang
if length(kode)<>3 then
begin
showmessage('Kode harus 3 karakter');
cbkode.SetFocus;
exit;
end;
// Di baris ini, kode sudah pasti tidak ada
spasi di awal dan diakhir
// kode sudah pasti capital (tidak mempunyai
huruf kecil)
// kode pasti 3 huruf tidak mungkin kurang
if kode='A01' then
begin
harga:=50000;
nama:='Speaker';
end
else
if kode='B02' then
begin
harga:=25000;
nama:='Mouse';
end
else
if kode='C03' then
nama:='Hardisk';
end
else
if kode='D04' then
begin
harga:=5000;
nama:='Mouse Pad';
end
else // Jika kode tidak terdaftar
begin
showmessage('Kode tidak dikenal');
exit;
end;
if TryStrToInt(EQty.Text,qty)=false then
begin
showmessage('Quantity harus angka.');
exit;
end;
// Di baris ini, Qty pasti bilangan bulat tetapi masih mungkin diatas 10
if (qty<1) or (qty>10) then
begin
showmessage('Hanya boleh beli 1 s/d 10 saja');
exit;
end;
// Di baris ini, Qty pasti bilangan bulat dan
pasti berisi 1 s/d 10
ENama.text:=nama;
EHarga.text:=CurrToSTr(harga);
Subtotal:= harga * qty;
ESubTotal.Text:=CurrToStr(subtotal);
if subtotal>=100000 then diskon:=0.15 * subtotal else
if subtotal>=50000 then diskon:=0.1 * subtotal else
if subtotal>=25000 then diskon:=0.05 * subtotal else
diskon:=0;
EDiskon.text:=CurrToStr(diskon);
Total:=Subtotal-Diskon;
ETotal.text:=CurrToStr(Total);
end;
ADS HERE !!!