Unit Num2Txt
Unit Num2Txt
ANGKA NUMERIK
unit Num2Txt_C;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls
, StrUtils, Buttons
, ShellAPI
;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
Edit2: TEdit;
suara_btn: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure suara_btnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function Terbilang(bil:Extended):string;
implementation
{$R *.dfm}
//--------------------------------
function Terbilang(bil:Extended):string;
var
r,s : string;
ln,i : Integer;
sat : Array [0..20] Of String;
rbn : array [1..4] Of string;
//-----------------------------------
function ratusan(s:string):string;
var
r : string;
n : Integer;
begin
r := '';
While Length(s)< 3 do begin
s := '0'+s;
end;
//----------------------------- cek 2 digi terakhir
if s[2] = '1' then begin // berarti belasan
case s[3] of
'0' : r:='Sepuluh ';
'1' : r:='Sebelas';
else
r := sat[StrToInt(Copy(s,3,1))]+' Belas ';
end;
end
else begin
if s[2] > '0' then r := sat[StrToInt(s[2])]+' Puluh ';
if s[3] > '0' then r := r+' '+sat[StrToInt(s[3])];
end;
Delete(s,2,2);
n := StrToInt(s);
case n of
1 : r := 'Seratus '+r;
2..9 : r := Sat[n]+' ratus '+r;
end;
Result := r;
end;
begin
rbn[1] := 'ribu ';
rbn[2] := 'juta ';
rbn[3] := 'milyar ';
rbn[4] := 'triliun ';
sat[0]:='' ;
sat[1]:='Satu ' ;
sat[2]:='Dua ' ;
sat[3]:='Tiga ' ;
sat[4]:='Empat ' ;
sat[5]:='Lima ' ;
sat[6]:='Enam ' ;
sat[7]:='Tujuh ' ;
sat[8]:='Delapan ' ;
sat[ 9]:='Sembilan ';
// sat[10]:='Sepuluh ' ;
// sat[11]:='Sebelas ' ;
// sat[12]:='Dua Belas ' ; // opsi-1
// sat[13]:='Tiga Belas ' ;
// sat[14]:='Empat Belas ' ;
// sat[15]:='Lima Belas ' ;
// sat[16]:='Enam Belas ' ;
// sat[17]:='Tujuh Belas ' ;
// sat[18]:='Delapan Belas ' ;
// sat[19]:='Sembilan Belas ' ;
//---------------------------------------
s := FloatToStr(bil);
i := 0;
ln := Length(s);
ln := Length(s);
Inc(i); // ribuan ke..
if ln > 0 then begin
if i < 4 then begin
// if (i > 1) and (Pos(rbn[i-1],r)=1) then
// Delete(r,1,Length(rbn[i-1]));
r := rbn[i]+r;
end;
end;
end;
Result := r;
end;
end.
KOMPONEN YANG DISEDIAKAN :
2 buah Button
2 buat Edit
1 buah Memo