0% found this document useful (0 votes)
15 views7 pages

Unit Num2Txt

Uploaded by

Muhammad Rama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views7 pages

Unit Num2Txt

Uploaded by

Muhammad Rama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

PROGRAM DELPHI UNTUK TEKS KE UCAPAN KHUSUS MENGUCAPKAN

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);

While ln > 0 do begin

if ln >= 3 then begin


r := ratusan(Copy(s,ln-2,3))+r; // ambil 3 digit terakhir
Delete(s,ln-2,3); // hapus 3 digit terakhir
end
else begin
if (s ='1') and (i =1) then begin
r := 'Se'+r;
end
else begin
r := ratusan(s)+r;
end;
s := '';
end;

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;

procedure TForm1.Button1Click(Sender: TObject);


var
s,r : string;
n : Extended;
begin
s := edit1.text;
n := StrToInt64(s);
Edit2.Text := FormatCurr('#,#',n);
Memo1.Lines.Clear;
r := Terbilang(n);
Memo1.Lines.Add(r);
end;

procedure TForm1.suara_btnClick(Sender: TObject);


var
msg,lnk : string;
begin
msg := Memo1.Lines[0];
if Length(msg) > 0 then begin
lnk := 'https://translate.google.com/translate_tts?ie=UTF-8&tl=id-ID&client=tw-
ob&q=';
lnk := lnk + msg;
ShellExecute(Application.Handle,'Open',PAnsiChar(lnk),nil,nil, SW_HIDE);
end;
end;

end.
KOMPONEN YANG DISEDIAKAN :
2 buah Button
2 buat Edit
1 buah Memo

You might also like