coding, dunia it, pascal - delphi, uncategorized,

Beberapa cara membuat Format Rupiah di Delphi

Hangga Aji Sayekti Hangga Aji Sayekti Follow Nov 18, 2011 · 2 mins read
Beberapa cara membuat Format Rupiah di Delphi
Share this

Di Delphi kita mengenal fungsi-fungsi untuk menampilkan format string sesuai yg kita inginkan.

Nah untuk menampilakan format mata uang Rupiah, ternyata kita bisa menggunakan berbagai macam cara. Diantaranya adalah sebagai berikut:

  1. Menggunakan fungsi formatfloat(). Misalnya sbb :
    •         
        EdtHarga.text := formatfloat('Rp. ##,###,###',sHarga);
      
  2. Menggunakan fungsi AnsiReplaceStr(). Misalnya sbb
    •         
        EdtHarga.text := AnsiReplaceStr(FormatFloat('#,###',sHarga),',','.');
      
  3. Dengan memodifikasi fungsi yang sudah ada di delphi. Misalnya sbb :
    •   function sMataUangRP(nHarga:  Currency) : String;
        var
        n: String;
        begin
        n:= 'Rp.' + AnsiReplaceStr(FormatFloat('#,###',nHarga),',','.');
        if nilai <= 0 then n:= 'Rp.0';
        Result:= n;
        end;
      
  4. Dengan membuat fungsi sendiri. Misalnya sbb :
    •   function rupiah(sNilai : string): string;
        var
        i, j, p : Integer;
        sHasil, sKi : string;
        begin
        p := Length(Trim(sNilai));
        while (p mod 3 <> 0) do
        begin
        sNilai := '0'+ sNilai;
        p := Length(sNilai);
        end;
        sHasil := '';
        for i := 1 to p do
        begin
        if (i mod 3 = 0) then
        begin
        sHasil := shasil + '.'+Copy(sNilai, i - 2, 3);
        end;
        end;
        p := Length(sHasil);
        sHasil := Copy(sHasil, 2, p);
        sKi := Copy(sHasil, 1, 3);
        sKi := IntToStr(StrToInt(sKi));
        sHasil := sKi + Copy(sHasil, 4, p);
        Result := sHasil;
        end;
      

Contoh penggunaan fungsi pada program


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls,
StrUtils, XPMan;

type
TForm1 = class(TForm)
edt1: TEdit;
procedure edt1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

function rupiah(sNilai : string): string;

implementation

{$R *.dfm}

function rupiah(sNilai : string): string;
var
i, j, p : Integer;
sHasil, sKi : string;
begin
p := Length(Trim(sNilai));
while (p mod 3 <> 0) do
begin
sNilai := '0'+ sNilai;
p := Length(sNilai);
end;
sHasil := '';
for i := 1 to p do
begin
if (i mod 3 = 0) then
begin
sHasil := shasil + '.'+Copy(sNilai, i - 2, 3);
end;
end;
p := Length(sHasil);
sHasil := Copy(sHasil, 2, p);
sKi := Copy(sHasil, 1, 3);
sKi := IntToStr(StrToInt(sKi));
sHasil := sKi + Copy(sHasil, 4, p);
Result := sHasil;
end;

procedure TForm1.edt1Change(Sender: TObject);
var
param : string;
begin
param := AnsiReplaceStr(edt1.Text,'.','');
edt1.Text := rupiah(param);
end;

end.

Oke Silahkan mencoba.

Hangga Aji Sayekti
Written by Hangga Aji Sayekti
A passionate Software Engineer from Indonesia with experience since 2008. Bachelor's degree in Mathematics and loves Science and Computers.