Saturday, 20 February 2016T2/20/2016 09:54:00 pm

MEMBUAT PERHITUNGAN UANG RIBUAN DENGAN FORMAT CURRENCY DI DELPHI

Salam blogger.........pada postingan kali ini saya akan share cara membuat perhitungan uang ribuan dengan format curency  rupiah di delphi, program ini dapat di buat di delphi 7 maunpun delphi 2010 ataupun delphi versi terbaru. dalam proses penginputan bilangan format currency sangat di perlukan pada sebuah aplikasi perhitungan jual beli (penjualan). hal ini sangat membantu kasir untuk membaca jumlah uang baik yang tertulis dengan angka maupun dengan huruf. sehingga memperkecil kemungkinan untuk melakukan kesalahan dalam proses pembacaan jumlah maupun proses penginputannya. sebagai contoh kita akan lebih mudah membaca jumlah uang yang dibuat dengan format 9.000.000 dari pada membaca format bilangan 9000000.

Berawal dari masalah diatas, pada postingan kali ini kita akan membahas tentang bagaimana cara merubah format integer menjadi format mata uang / currency. untuk membuat nya terlebih dahulu kita membuat sebuah project di delphi, buat lah sebuah form, lalu tambahkan 15 buah komponen edit text dan 1 buah panel. selanjutnya kita akan membuat sebuah function terbilang untuk merubah format angka yang di input menjadi format huruf agar mudah dibaca. selanjunya tambahkan source kode di bawah ini kedalam form yang sudah anda buat.

unit rupiah;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit8: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Panel1: TPanel;
    Memo1: TMemo;
    Label6: TLabel;
    Label7: TLabel;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Shape1: TShape;
    Shape2: TShape;
    Label8: TLabel;
    Label9: TLabel;
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit5Change(Sender: TObject);
    procedure Edit7Change(Sender: TObject);
    procedure Edit8Change(Sender: TObject);
    procedure Edit9Change(Sender: TObject);
    procedure Edit12Change(Sender: TObject);
    procedure Edit11Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
  function terbilang(dNumber: Extended): string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit11Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
begin
  Rp := Edit11.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);

  edit11.Text :=currtostr(Rph);
  edit11.SelStart := length(edit11.text);
  memo1.Text:=terbilang(StrToFloatDef(edit11.Text,0)) + ' Rupiah ';
end;

procedure TForm1.Edit12Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
begin
edit11.Text:=edit12.Text;
  Rp := Edit12.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);

  edit12.Text :=FormatCurr('#,###',Rph);
  edit12.SelStart := length(edit12.text);
  edit10.Text:='Rp.'+(edit12.Text)+',-';
end;

procedure TForm1.Edit1Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
begin
edit2.Text:=edit1.Text;
  Rp := Edit1.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);

  edit1.Text := FormatCurr('#,###',Rph);
  edit1.SelStart := length(edit1.text);
  edit13.Text:='Rp.'+(edit1.Text)+',-';
end;

procedure TForm1.Edit2Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
  a,b,c:real;
begin
  Rp := Edit2.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);
  edit2.Text := currtostr(Rph);
  edit2.SelStart := length(edit2.text);
    a:=strtofloat(edit2.Text);
b:=strtofloat(edit4.Text);
c:= a+b;
edit5.Text:=formatfloat('',c);
end;

procedure TForm1.Edit3Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
  a,b,c:real;
begin
edit4.Text:=edit3.Text;
  Rp := Edit3.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);
  edit3.Text := FormatCurr('#,###',Rph);
  edit3.SelStart := length(edit3.text);
  a:=strtofloat(edit2.Text);
b:=strtofloat(edit4.Text);
c:= a+b;
edit5.Text:=formatfloat('',c);
edit14.Text:='Rp.'+(edit3.Text)+',-';
end;

procedure TForm1.Edit4Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
  a,b,c:real;
begin
  Rp := Edit4.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);
  edit4.Text := currtostr(Rph);
  edit4.SelStart := length(edit4.text);
  a:=strtofloat(edit2.Text);
b:=strtofloat(edit4.Text);
c:= a+b;
edit5.Text:=formatfloat('',c);
end;

procedure TForm1.Edit5Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
begin
edit7.Text:=edit5.Text;
  Rp := Edit5.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);
  edit5.Text :=FormatCurr('#,###',Rph);
  edit5.SelStart := length(edit5.text);
  edit6.Text:='Rp.'+(edit5.Text)+',-';
end;

procedure TForm1.Edit7Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
  a,b,c:real;
  nilai1,nilai2:integer;
  ket:string;
begin
  Rp := Edit7.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);
  edit7.Text :=currtostr(Rph);
  edit7.SelStart := length(edit7.text);
  a:=strtofloat(edit7.Text);
b:=strtofloat(edit9.Text);
c:= a-b;
edit12.Text:=formatfloat('',c);
 nilai1:=strtoint(edit7.Text);
  nilai2:=strtoint(edit9.Text);
  if (nilai2>=nilai1) then
  begin
  ket:='PINJAMAN LUNAS'
  end
  else
  begin
  ket:='PINJAMAN BELUM LUNAS'
  end;
  panel1.Caption:=ket;
end;

procedure TForm1.Edit8Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
  a,b,c:real;
begin
edit9.Text:=edit8.Text;
  Rp := Edit8.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);
  edit8.Text := FormatCurr('#,###',Rph);
  edit8.SelStart := length(edit8.text);
  a:=strtofloat(edit7.Text);
b:=strtofloat(edit9.Text);
c:= a-b;
edit12.Text:=formatfloat('',c);
edit15.Text:='Rp.'+(edit8.Text)+',-';
end;

procedure TForm1.Edit9Change(Sender: TObject);
var
  Rp: string;
  Rph: Currency;
  nilai1,nilai2:integer;
  ket:string;
begin
  Rp := Edit9.Text;
  Rp := StringReplace(Rp,',','',[rfReplaceAll,rfIgnoreCase]);
  Rp := StringReplace(Rp,'.','',[rfReplaceAll,rfIgnoreCase]);
  Rph := StrToCurrDef(Rp,0);
  edit9.Text :=currtostr(Rph);
  edit9.SelStart := length(edit9.text);
  nilai1:=strtoint(edit7.Text);
  nilai2:=strtoint(edit9.Text);
  if (nilai2>=nilai1) then
  begin
  ket:='PINJAMAN LUNAS'
  end
  else
  begin
  ket:='PINJAMAN BELUM LUNAS'
  end;
  panel1.Caption:=ket;
  end;


procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Text:='';
edit2.Hide;
edit4.Hide;
edit7.Hide;
edit11.Hide;
edit9.Hide;
edit13.Enabled:=false;
edit14.Enabled:=false;
edit6.Enabled:=false;
edit15.Enabled:=false;
edit10.Enabled:=false;
edit5.Enabled:=false;
edit12.Enabled:=false;
memo1.Enabled:=false;
panel1.Enabled:=false;
end;

function TForm1.terbilang(dNumber: Extended): string;
const
 aNum: array[1..9] of String = ('Satu', 'Dua', 'Tiga', 'Empat', 'Lima', 'Enam', 'Tujuh', 'Delapan', 'Sembilan');
 aUnit: array[1..5] of String = ('Trilyun', 'Milyar', 'Juta', 'Ribu', '');
var
 iCount, iDigit1, iDigit2, iDigit3: Integer;
 sNum2Str, s3Digit, sWord: string;
begin

Result := '';
 if (dNumber=0) then Exit;
 sNum2Str:=Copy(Format('%18.2f', [dNumber]), 1, 15);
 for ICount:=1 to 5 do
 begin
 s3Digit:=Copy(sNum2Str, iCount*3-2, 3);
 if (StrToIntDef(s3Digit, 0)<>0) then
 begin
 sWord:='';
 iDigit1:=StrToIntDef(Copy(s3Digit, 1, 1), 0);
 iDigit2:=StrToIntDef(Copy(s3Digit, 2, 1), 0);
 iDigit3:=StrToIntDef(Copy(s3Digit, 3, 1), 0);
 case iDigit1 of
 2..9: sWord:=sWord+aNum[iDigit1]+' Ratus ';
 1: sWord:=sWord+'Seratus ';
 end; { case }

case iDigit2 of
 2..9: sWord:=sWord+aNum[iDigit2]+' Puluh ';
 1: case iDigit3 of
 2..9: sWord:=sWord+aNum[iDigit3]+' Belas ';
 1: sWord:=sWord+'Sebelas ';
 0: sWord:=sWord+'Sepuluh ';
 end; { case }
 end; { case }

if (iDigit2<>1) then
 case iDigit3 of
 2..9: sWord:=sWord + aNum[iDigit3] + ' ';
 1: if (iCount=4) and ((iDigit1+iDigit2)=0) then
 sWord:=sWord+'se'
 else
 sWord:=sWord+'Satu ';
 end;
 Result:=Result+sWord+aUnit[iCount]+' ';
 end;
end;
while Result[Length(Result)]=' ' do
SetLength(Result, Length(Result)-1);
end;
end.



Jika sudah selanjutnya tekan F9 / RUN pada project delphi sobat untuk menjalankan program dan lihat hasilnya. jika anda ingin mengunduh progam perhitungan uang / currency yang sudah saya buat, anda dapat mengunduh program nya di link di bawah ini:
 note : klik skip ad / lewati untuk melanjutkan proses unduhan
Demikian postingan yang dapat saya share kali ini, semoga dapat bermanfaat.
Previous
Next Post »
0 Komentar untuk "MEMBUAT PERHITUNGAN UANG RIBUAN DENGAN FORMAT CURRENCY DI DELPHI"

Silahkan tinggalkan komentar dibawah ini,
Terima kasih sudah :
1. Berkomentar dengan sopan
2. Tidak meninggalkan link aktif dalam form komentar
3. Berkomentar sesuai postingan / artikel
4. Tidak membuat komentar yang mengandung SARA / SPAM
5. Memberikan informasi link / script yang tidak berfungsi

Terima Kasih Sudah Berkomentar

PENDAPAT ANDA TENTANG BLOG INI ?

Follow by Email

 
Copyright © 2014 uduy macal blog's - All Rights Reserved
Template By Kuncidunia
DMCA.com Protection Status