Beberapa cara membuat Format Rupiah di Delphi

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 :
    • [pascal]
      EdtHarga.text := formatfloat(‘Rp. ##,###,###’,sHarga);
      [/pascal]
  2. Menggunakan fungsi AnsiReplaceStr(). Misalnya sbb
    • [pascal]
      EdtHarga.text := AnsiReplaceStr(FormatFloat(‘#,###’,sHarga),’,’,’.’);
      [/pascal]
  3. Dengan memodifikasi fungsi yang sudah ada di delphi. Misalnya sbb :
    • [pascal]function sMataUangRP(nHarga:  Currency) : String;
      var
      n: String;
      begin
      n:= ‘Rp.’ + AnsiReplaceStr(FormatFloat(‘#,###’,nHarga),’,’,’.’);
      if nilai <= 0 then n:= ‘Rp.0’;
      Result:= n;
      end;
      [/pascal]
  4. Dengan membuat fungsi sendiri. Misalnya sbb :
    • [pascal]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;[/pascal]

Contoh penggunaan fungsi pada program

[pascal]
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.
[/pascal]

Oke Silahkan mencoba.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.