السلام عليكم ورحمة اللهِ وبركاته

Fungsi Terbilang (Delphi)

Fungsi terbilang versi Delphi ini adalah hasil konversi dari kode yang dibuat untuk Clipper. Cara pemanggilan dan hasil yang dikeluarkannya sama persis dengan kode sebelumnya.

Jika saya sempat, saya akan berusaha untuk membuat beberapa versi fungsi terbilang ini seperti untuk ASP, PHP dan lainnya tapi jangan terlalu berharap ya?

function SayIt(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 : string;
  Satu, Dua, Tiga, Belas, Gabung: string;
  Sen, Sen1, Sen2: string;
  Hitung : integer;
  One, Two, Three: integer;

begin
  One    := 1;
  Two    := 2;
  Three  := 3;
  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 + ' rupiah ';

  if (StrToInt(Sen) > 0) and (StrToInt(Sen) < 20) then
     begin
       if StrToInt(Sen) < 10 then Sen := Copy(Sen, 2, 1);
       Kata := Kata + Angka[StrToInt(Sen)+1] + ' sen';
     end
  else
     if StrToInt(Sen) > 19 then
        Kata := Kata + Angka[StrToInt(Sen1)+1] + 'puluh ' +
                Angka[StrToInt(Sen2)+1] + ' sen';
  Result := Kata;
end;
Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • MySpace
  • PDF
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Add to favorites

5 Responses to “Fungsi Terbilang (Delphi)”

  1. citra indah says:

    mas…
    makasih ya atas sharing nya.

    Reply

  2. izal says:

    kak klo ada conth program ya tolong dikirimin ke email saya donk makasih ya

    Reply

    Krisssapto Reply:

    download di http://www.ziddu.com/download/8434295/Terbilang.rar.html

    Reply

  3. muhammad says:

    terima kasih mas atas sharingnya kalo mo konsultasi di mana ya mas?

    Reply

  4. Krisssapto says:

    yes, berhasil.. trims. akhirnya saya berhasil buat programnya…
    Dapat di download di
    download di http://www.ziddu.com/download/8434295/Terbilang.rar.html

    Reply

Leave a Reply