Pages

Info Saya

----------------------

TENTANG SAYA

Nama saya Lengkapnya adalah Yudi Permana, Saya memang Bukan Seorang Blogger, Desainer atau Apapun Tapi Saya Hanya Seseorang Yang Ingin Selalu Belajar dan Ingin Tahu Sesuatu Yang Baru. Saya hanya Bisa Mengutak Atik yang ada Tanpa Tau Apa Maksud dan Tujuannya. Mohon Untuk Tidak Tersinggung Bila Ada Sesuatu yang sama Dari Blog Ini...

----------------------

Membuat Fungsi Terbilang dengan Delphi

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Hello gan's, nih kode program dalam bahasa delphi untuk melakukan fungsi terbilang, misalnya, gan's menginput nilai 1000 maka akan menghasilkan Seribu.
Kompilasi sebagai unit untuk kemudian di include (uses) dalam program utama.
Syntax penggunaan dengan memanggil fungsi : bilang(val:string):string.
Digit maksimal adalah 15 digit.


unit terbilang;
interface
uses
  SysUtils,StrUtils;
function bilang(const val:string):String;
function split(const val:string):string;
const
  kata : array[0..9]of string = ('Nol','Satu','Dua','Tiga','Empat','Lima','Enam','Tujuh','Delapan','Sembilan');
  max_len : integer = 15;
implementation
function bilang(const val:string):String;
var
  s,a : string;
  out : string;
begin
  s := val;
  if LeftStr(s,1) = '-' then begin
    out := 'Minus ';
    s := RightStr(s,length(s)-1);
  end else out := '';
  if Length(s) > max_len then begin
    Result := 'OVER LIMIT !!!';
    Exit;
  end;
  if Length(s) > 12 then begin  //trilyun
    a := MidStr(s,1,Length(s)-12);
    out := split(a) + ' Trilyun ';
    s := RightStr(s,length(s)-length(a));
  end;
  if Length(s) > 9 then begin  //milyar
    a := MidStr(s,1,length(s)-9);
    out := out + split(a) + ' Milyar ';
    s := RightStr(s,length(s)-length(a));
  end;
  if Length(s) > 6 then begin //juta
    a := MidStr(s,1,length(s)-6);
    out := out + split(a) + ' Juta ';
    s := RightStr(s,length(s)-length(a));
  end;
  if Length(s) > 3 then begin //ribu
    a := MidStr(s,1,length(s)-3);
    if StrToInt(a)=1 then
      out := out + ' Seribu '
    else if StrToInt(a)<>0 then out := out + split(a) + ' Ribu ';
    s := RightStr(s,length(s)-length(a));
  end;
  out := out + split(s);
  Result := Trim(StringReplace(out,'  ',' ',[rfReplaceAll]));
end;
function split(const val:string):string;
var
  i,i2 : integer;
  s,out : string;
begin
  s := val;
  out := '';
  if length(s) = 3 then begin
    i := StrToInt(LeftStr(s,1));
    if i = 1 then
      out := ' Seratus '
    else if (i>1) then
      out := kata[i] + ' Ratus ';
    s := RightStr(s,2);
  end;
  if length(s) = 2 then begin
    i := StrToInt(LeftStr(s,1));
    i2 := StrToInt(RightStr(s,1));
    if (i=1) and (i2=0) then
      out := out + ' Sepuluh '
    else if (i=1) and (i2=1) then
      out := out + ' Sebelas '
    else if (i>1) and (i2=0) then
      out := out + kata[i] + ' Puluh '
    else if (i=1) and (i2>0) then
      out := out + kata[i2] + ' Belas '
    else if (i<>0) and (i2<>0) then
      out := out + kata[i] + ' Puluh ' + kata[i2]
    else if (i=0) and (i2<>0) then
      out := out + kata[i2];
  end;
  if Length(s) = 1 then out := out + kata[StrToInt(s)];

  Result := out;
end;
end.
 Semoga saja berfungsi codingnya. :D

Ditulis Oleh : Antas Delphi ~ Blogger

Anda sedang membaca sebuah artikel yang berjudul Membuat Fungsi Terbilang dengan Delphi,, Semoga artikel tersebut bermanfaat untuk anda, kalau mau share silahkan saja dan tidak ada tuntutan apapun dari saya !! Dan semua artikel disini tidak ada unsur untuk melakukan pembajakan dari pihak manapun tapi cuma untuk share saja.

:: Thank you for visiting ! ::

Comments
2 Comments

2 comments:

Jangan Lupa Memberikan Komentar, Namun Tolong Agar Menggunakan Bahasa Yang BAIK dan SOPAN Terima Kasih...