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
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar