Senin, 01 Februari 2016

Fungsi Terbilang dengan Koma Delphi

Fungsi terbilang dapat kita manfaatkan untuk menterjemah atau mengkonversi angka menjadi huruf. pada implementasinya dalam pembuatan aplikasi, khususnya aplikasi yang memerlukan perhitungan matematis seperti aplikasi penjualan dan aplikasi-aplikasi lain tentu terkadang diperlukan untuk melakukan konversi angka menjadi huruf. hal ini untuk menjadikan aplikasi menjadi lebih user friendly karena terkadang seorang user agak malas untuk membaca angka.

Fungsi Terbilang dengan Koma Delphi

pada postingan sebelumnya saya pernah membahas tentang fungsi terbilang rupiah yang dapat anda lihat disini. pada postingan tersebut terdapat kekurangan dalam source codenya yaitu tidak bisa melakukan konversi angka yang memiliki koma menjadi format huruf. oleh karenanya pada postingan ini saya ingin berbagi tentang fungsi terbilang rupiah yang dapat menkonversi angka pecahan atau koma. adapun contoh source code fungsinya dapat anda lihat dibawah ini.
// Fungsi Untuk Merubah Angka Menjadi Huruf/Terbilang
function Terbilang(sValue: string):string;
const
Angka : array [1..20] of string =
('', 'Satu', 'Dua', 'Tiga', 'Empat',
'Lima', 'Enam', 'Tujuh', 'Delapan',
'Sembilan', 'Sepuluh', 'Sebelas',
'Duabelas', 'Tigabelas', 'Empatbelas',
'Limabelas', 'Enambelas', 'Tujuhbelas',
'Delapanbelas', 'Sembilanbelas');
sPattern: string = '000000000000000';

var
S,kata : string;
Satu, Dua, Tiga, Belas, Gabung: string;
Sen, Sen1, Sen2: string;
Hitung : integer;
one, two, three: integer;

begin
One := 4;
Two := 5;
Three := 6;
Hitung := 1;
Kata := '';
S := copy(sPattern, 1, length(sPattern) - length(trim(sValue))) + sValue;
Sen1 := Copy(S, 14, 1);
Sen2 := Copy(S, 15, 1);
Sen := Sen1 + Sen2;
while Hitung < 5 do
begin
Satu := Copy(S, One, 1);
Dua := Copy(S, Two, 1);
Tiga := Copy(S, Three, 1);
Gabung := Satu + Dua + Tiga;

if StrToInt(Satu) = 1 then
Kata := Kata + 'Seratus '
else
if StrToInt(Satu) > 1 Then
Kata := Kata + Angka[StrToInt(satu)+1] + ' Ratus ';

if StrToInt(Dua) = 1 then
begin
Belas := Dua + Tiga;
Kata := Kata + Angka[StrToInt(Belas)+1];
end
else
if StrToInt(Dua) > 1 Then
Kata := Kata + Angka[StrToInt(Dua)+1] + ' Puluh ' +
Angka[StrToInt(Tiga)+1]
else
if (StrToInt(Dua) = 0) and (StrToInt(Tiga) > 0) Then
begin
if ((Hitung = 3) and (Gabung = '001')) or
((Hitung = 3) and (Gabung = ' 1')) then
Kata := Kata + 'Seribu '
else
Kata := Kata + Angka[StrToInt(Tiga)+1];
end;

if (hitung = 1) and (StrToInt(Gabung) > 0) then
Kata := Kata + ' Milyar '
else
if (Hitung = 2) and (StrToInt(Gabung) > 0) then
Kata := Kata + ' Juta '
else
if (Hitung = 3) and (StrToInt(Gabung) > 0) then
begin
if (Gabung = '001') or (Gabung = ' 1') then
Kata := Kata + ''
else
Kata := Kata + ' Ribu ';
end;
Hitung := Hitung + 1;
One := One + 3;
Two := Two + 3;
Three := Three + 3;
end;

if length(Kata) > 1 then Kata := Kata;

Result := Kata;
end;

// Fungsi Untuk Convert Angka Jadi Huruf
function ConvKeHuruf(inp: string): string;
var
a,b,c,Poskoma,PosTitik : integer;
temp,angka,dpnKoma,BlkKoma : string;
AdaKoma: boolean;

begin
PosKoma:= pos(',',Inp);
PosTitik:= pos('.',Inp);
if (Poskoma<>0) or (posTitik<> 0) then
begin
adaKoma:= true;
if PosKoma= 0 then posKoma:= PosTitik;
end else
begin
adakoma:= False;
DpnKoma:= inp;
end;

// Jika ada Koma
if adakoma then
begin
dpnkoma:= copy(inp,1,posKoma-1);
blkKoma:= Copy(inp,posKoma+1,length(inp)-posKoma);
if trim(DpnKoma)='0' then
temp:= 'Nol'+ ' Koma ' + terbilang(blkKoma)
else
temp:= Terbilang(dpnKoma)+ ' Koma ' + Terbilang(blkKoma);
// Jika Tidak ada Koma
end else begin
temp:=Terbilang(dpnKoma);
end;

Result:= temp;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=Terbilang(Edit1.Text);
end;

// Menggunakan
procedure TForm1.Button2Click(Sender: TObject);
begin
Label2.Caption:=ConvKeHuruf(Edit2.Text);
end;

Tidak ada komentar:

Posting Komentar