Minggu, 10 April 2011

Fungsi Terbilang



Untuk accounting biasanya butuh fungsi terbilang ini. Konsepnya sederhana mengubah angka menjadi kata-kata.

Berikut contoh penggunaannya:

Sedangkan fungsinya sendiri sbb:

function fTerbilang(Num:Real):String;
const
Angka: array[0..19] of String[15]
= ('','Satu ','Dua ','Tiga ','Empat ','Lima ','Enam ','Tujuh ',
'Delapan ','Sembilan ','Sepuluh ','Sebelas ','Duabelas ',
'Tigabelas ','Empatbelas ','Limabelas ','Enambelas ',
'Tujuhbelas ','Delapanbelas ','Sembilanbelas ');
var
One, Two, Tri, Hitung,
V1, V2, V3, VBelas, VGabung, Err: Integer;
S, Satu, Dua, Tiga, Belas, Gabung, Kata : String;

begin
if Num=0 then
Kata:='Nol '
else begin
Str(Num:15:2,S);
One:=1; Two:=2; Tri:=3; Hitung:=1; Kata:='';
while Hitung < 5 do begin
Satu:=Copy(S,One,1);
Dua:=Copy(S,Two,1);
Tiga:=Copy(S,Tri,1);
Gabung:=Satu+Dua+Tiga;

Val(Satu,V1,Err);
if V1=1 then
Kata:=Kata+'Seratus ';
if V1>1 then
Kata:=Kata+Angka[V1]+'Ratus ';

Val(Dua,V2,Err);
Val(Tiga,V3,Err);
if V2=1 then begin
Belas:=Dua+Tiga;
Val(Belas,VBelas,Err);
Kata:=Kata+Angka[VBelas];
end else begin
if V2>1 then
Kata:=Kata+Angka[V2]+'Puluh '+Angka[V3]
else begin
if (V2=0)and(V3>0) then begin
if ((Hitung=3)and(Gabung='001'))or
((Hitung=3)and(Gabung=' 1')) then
Kata:=Kata+'Seribu '
else
Kata:=Kata+Angka[V3];
end;
end;
end;

Val(Gabung, VGabung, Err);
if (Hitung=1)and(VGabung>0) then
Kata:=Kata+'Milyar ';
if (Hitung=2)and(VGabung>0) then
Kata:=Kata+'Juta ';
if (Hitung=3)and(VGabung>0) then begin
if (Gabung='001')or(Gabung=' 1') then
Kata:=Kata+''
else
Kata:=Kata+'Ribu ';
end;
Inc(Hitung);
Inc(One,3);
Inc(Two,3);
Inc(Tri,3);
end;
end;
Result:= Kata;
end;

Fungsi ini di dapat dari buku DBase III+, kemudian saya sesuaikan dengan Bahasa Pascal.

Download full source code disini

sumber : http://delphi-resource.com

Tidak ada komentar:

Posting Komentar