Kalau untuk versi bahasa inggrisnya saya udah pernah buat hingga 999 triliun
dollar (quintillion $) sbb:
function Baca (puluhan_kebawah : string) : string;
var
english : string;
begin
case StrToInt(puluhan_kebawah) of
1 : english := ' one ';
2 : english := ' two ';
3 : english := ' three ';
4 : english := ' four ';
5 : english := ' five ';
6 : english := ' six ';
7 : english := ' seven ';
8 : english := ' eight ';
9 : english := ' nine ';
10 : english := ' ten ';
11 : english := ' eleven ';
12 : english := ' twelve ';
13 : english := ' thirteen ';
14 : english := ' fourteen ';
15 : english := ' fifteen ';
16 : english := ' sixteen ';
17 : english := ' seventeen ';
18 : english := ' eighteen ';
19 : english := ' nineteen ';
20 : english := ' twenty ';
30 : english := ' thirty ';
40 : english := ' fourty ';
50 : english := ' fifty ';
60 : english := ' sixty ';
70 : english := ' seventy ';
80 : english := ' eighty ';
90 : english := ' ninety ';
end;{ bacaan unik }
baca := english;
end;{function baca}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
angka : array[1..15] of string[1];
angka_duit,
dibaca,sisip : string;
panjang,i : byte;
begin
angka_duit := MaskEdit1.Text;
panjang := length(angka_duit);
for i := 1 to 15 do begin
angka[i] := '0';
end;
i := 0;
repeat
inc(i); angka [i] := '';
angka[i] := Copy(angka_duit,panjang+1-i,1);
until i = panjang;
Dibaca := '';
if panjang <= 2 then begin
if ((panjang=2) and (StrToInt(angka[2]+angka[1])<=20)) then begin
dibaca := baca(angka_duit);
end;
end else begin
i := 0; sisip := '';
repeat
inc(i);
case i of
1,4,7,10,13 :
begin
case i of
4 : if StrToInt(angka[i+2]+angka[i+1]+angka[i]) > 0 then
sisip := ' thousand ';
7 : if StrToInt(angka[i+2]+angka[i+1]+angka[i]) > 0 then
sisip := ' million ';
10 : if StrToInt(angka[i+2]+angka[i+1]+angka[i]) > 0 then
sisip := ' billion ';
13 : if StrToInt(angka[i+2]+angka[i+1]+angka[i]) > 0 then
sisip := ' quintillion ';
else
sisip := '';
end;{case}
if StrToInt(angka[i+1]+angka[i]) <= 20 then begin
dibaca := baca(angka[i+1]+angka[i])+sisip+dibaca;
inc(i);
end else begin
dibaca := baca(angka[i]) + sisip + dibaca;
end;{if}
end;
2,5,8,11,14:
begin
dibaca := baca(angka[i]+'0')+dibaca;
end;
3,6,9,12,15:
begin
if StrToInt(angka[i]) > 0 then begin
dibaca := baca(angka[i])+ 'hundred' + dibaca
end else begin
dibaca := baca(angka[i])+dibaca;
end;{if}
end;
end;{case}
Until i >= panjang;
end; {if panjang}
Label1.Caption := dibaca + ' rupiahs ';
end;
end.
Untuk versi Indonesia, harus buat dulu...:-)
--------- Semoga bermanfaat --------------
----- Original Message -----
From: "yani ardianto" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, January 31, 2005 12:57 PM
Subject: [ITCENTER] CONVERSI NILAI KE ANGKA TERBILANG
>
> MAAF SAYA MAU TANYA!
> GIMANA CARA KONVERSI NILAI KE ANGKA TERBILANG DENGAN
> DELPHI
>
>
--
www.ITCENTER.or.id - Komunitas Teknologi Informasi Indonesia
Info, Gabung, Keluar, Mode Kirim : [EMAIL PROTECTED]
::: Hapus bagian yang tidak perlu (footer, dst) saat reply! :::
## Forum: ITCENTER.or.id/forum ## Jobs: ITCENTER.or.id/jobs ##
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ITCENTER/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/