Memformat Mata Uang Rupiah dengan Delphi

Setelah sekian lama tak jumpa dalam rubrik “komputer seadanya” ini, rasanya ada yang kurang. Rekan-rekan penggemar programming, terutama Delphi mungkin saja pernah mengalami suatu kebingungan ketika ingin memformat suatu angka kedalam bentuk rupiah.

Barangkali pada saat pendistribusian aplikasi yang dibuat menggunakan Delphi, Anda menyarankan kepada pengguna untuk merubah “Regional dan Language“nya dari Control Panel ke negara Indonesia. Tapi tunggu dulu, bagaimana jika pengguna lupa untuk merubahnya, karena disebabkan komputernya baru saja di install ulang. Didalam Delphi (disini saya menggunakan Delphi versi 7) sebenarnya ada fasilitas untuk memformat angka/nilai hasil dari query ke database kedalam bentuk mata uang Rupiah tanpa harus merubah “system location” pada Regional dan Language ke negara Indonesia cukup “Regional dan Language” nya ke negara defaultnya United States seperti pada saat pertama kali MS Windows di install. Fasilitas tersebut yaitu AnsiReplaceStr dan FormatFloat dari unit StrUtils dan Variant dari unit System. Caranya pun sangat mudah sekali, perhatikan contoh berikut :

1. Bukalah Project baru, tambahkan diatas Form1 berupa komponen TEdit yang bernama Edit1, komponen TButton yang bernama Button1, dan komponen TLabel yang bernama Label1.

2. Copy kode dibawah ini kedalam lembaran :

Unit1 :unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, StrUtils, StdCtrls;
type TForm1 = class(TForm) Edit1: TEdit;
Button1: TButton; Label1: TLabel;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var Form1: TForm1;
implementation {$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=Trim(‘Rp.’+(AnsiReplaceStr(FormatFloat(‘#,##0′,Variant(Edit1.Text)),’,’,’.’))+’,-’);
end;
end.
3. Pastikan OnClick events milik Button1 adalah Button1Click dari Object Inspector.

4. Coba jalankan dengan menekan tombol F9. Kemudian isi dengan angka berapapun tanpa menggunakan tanda titik atau koma atau tanda apapun kedalam Edit1 kemudian tekan tombol Button1.

Rekan-rekan akan melihat hasil input pada Edit1 berubah menjadi bentuk mata uang Rupiah di Label1. Coba perhatikan didalam souce code Anda pada bagian :

Label1.Caption:=Trim(‘Rp.’+(AnsiReplaceStr(FormatFloat(‘#,##0′,Variant(Edit1.Text)),’,’,’.’))+’,-’);

Sebenarnya terbagi atas :

Label1.Caption:=StringVariant(String) akan menformat masukan String sebagai Variant.

FormatFloat(‘#,##0′,String)) akan menformat nilai Variant menjadi mempunyai 3 digit (ribuan) dihitung dari posisi sebelah kanan Variant.

AnsiReplaceStr(const AText, AFromText, AToText) akan mencari String dari AText, menggantinya dengan AFromText berdasarkan pola dari AToTextTrim(String) untuk menghapus spasi kosong sebelum dan sesudah String.

Bagaimana? Sangat mudah bukan? Penformatan ini berguna ketika rekan-rekan ingin melakukan proses perhitungan didalam program tanpa harus banyak melakukan pemformatan namun ingin menampilkan hasil outputnya kedalam format Rupiah, misalnya ke printer. Delphi akan sangat sulit untuk menjumlahkan angka yang didalamnya mengandung karakter diluar numeric (bilangan). Misalnya lagi nilai hasil query dari database ingin di totalkan dengan menggunakan SQL syntax SUM(nilai) dan hasilnya dicetak ke printer, tentu saja SQL tidak dapat melakukan perhitungan jika nilai tersebut mengandung karakter diluar numeric. Jadi, biarkan saja format nilai yang masuk kedalam database adalah beruba angka murni, baru kemudian ketika ingin menampilkan hasi output nya dalam bentuk Rupiah, rekan-rekan sekalian dapat menggunakan contoh seperti diatas.

Selamat mencoba!

Proudly powered by WordPress | Theme: Journey Blog by Crimson Themes.