Trik Jadul sieh....hehe..hanya sekedar buat simpenan kalie aja ada yang butuhin
langsung aja berikut:
Keterangan : Karena fungsi membutuhkan inputan numeric maka saya konfersi StrToIntDef(edt1.Text,0), StrToIntDef maksutnya memberikan nilai default NOL jika format tidak bisa di konfersi menjadi integer alias untuk mencegah error.
hasil sepertui ini:
gimana sangat simple dan mudah kan, untuk implementasinya tidak harus selalu lewat tombol bisa kita modifikasi sesuai selera, tidak hanya di tampilkan di memo bisa kita gunakan di report atau lain sebaginya, semoga bermanfaat.
langsung aja berikut:
Kita hanya memerlukan fungsi berikut dibawah ini , taroh di bawah implementation :
implementation
function 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;
Setelah itu saya telah membuat form sederhana, yang berisi 1 Edit, 1 Memo dan 1 Button yang berada di palete Standatrd semua, setelah membuat fungsi diatas maka pada tombol (Button) saya sisipkan kode ini
procedure TForm1.btn1Click(Sender: TObject);beginmmo1.Text:=terbilang(StrToFloatDef(edt1.Text,0));end; |
hasil sepertui ini:
gimana sangat simple dan mudah kan, untuk implementasinya tidak harus selalu lewat tombol bisa kita modifikasi sesuai selera, tidak hanya di tampilkan di memo bisa kita gunakan di report atau lain sebaginya, semoga bermanfaat.

Tidak ada komentar:
Posting Komentar