Penulis Topik: scrpt/source code utk membaca nilai uang dlm angka menjadi string  (Dibaca 1839 kali)


Offline bagoes_JIL

  • myQ Newbie
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 3
    • Lihat Profil
« pada: 24 April 2006, 08:54:25 »
para programmer delphi....sy rada ada kesulitan...bikin program.
mengubah data angka sejumlah nilai uang....menjadi string...baik itu dlm english/indonesia
contohnya 1.300.000,- dijadikan string "satu juta tiga ratus ribu rupiah."  :toe:

Offline bagoes_JIL

  • myQ Newbie
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 3
    • Lihat Profil
« Jawab #1 pada: 24 April 2006, 15:36:28 »
HASILNYA

Offline shifa

  • myQ Newbie
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 18
    • Lihat Profil
« Jawab #2 pada: 24 April 2006, 15:55:06 »
gogling aja banyak kok tutor nya,

kalo gak dapet nanti me carikan contohnya di rumah, kalo pake vb sih me punya dll nya yang mbuat bapak masino sinaga

Offline Ibrah

  • Administrator
  • myQ Pejuang
  • *
  • Tgl Gabung: Mar 2006
  • Tulisan: 2.504
  • Lokasi: Jadebotabek
  • Jenis kelamin: Pria
  • searching..
    • Lihat Profil
    • Komunitas Muslim Indonesia -  myQuran
« Jawab #3 pada: 24 April 2006, 16:24:19 »
ane punya codingnya di rumah, coba googling doeloe deh. 2 hari lagi kalau belum dapat dan ane pulang cariin code nya :)
Tetap Semangat!

Offline pelemsewu

  • myQ Newbie
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 28
    • Lihat Profil
« Jawab #4 pada: 25 April 2006, 17:18:51 »
Ini dari "gudang" pc ane, semoga bisa membantu. Silahkan dibenahi dan dikembangkan sendiri, soalnya ini masih agak kacau  :D  :jaim: lom sempat benerin  :hihi: Jangan lupa kalo sudah jadi, laporannya dibawa ke sini yak  %peace%

unit UBacanilai;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    Memo1: TMemo;
    procedure Edit1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  Form1: TForm1;
  jml :integer;
  ang : array[0..12] of integer;
  angka : set of char;

const
  no : array[2..9] of string[10]=('dua ','tiga ','empat ','lima ','enam ',
  'tujuh ','delapan ','sembilan ');


implementation

{$R *.DFM}


function baca(angka :string):string;
var terbilang:string;
    c1,a : byte;
    an : char;
    l:integer;
begin
  for c1:=1 to length(angka) do
  begin
     terbilang:='';
     an:=angka[c1];
     ang[c1]:=strtoint(an);
     jml:=c1;
     a:=length(angka);
     for l:=1 to a do  begin
     case ang[l] of
          0 : no[ang[l]]:='';
          1 : begin
                if ((jml=1) and (ang[l-1]<>1)) or ((jml=4) and (ang[l-1]<>1) and
                (a>4) and (ang[l-2]<>0)) or ((jml=7) and (ang[l-1]<>1) and
                (a>=7)) or ((jml=10) and (ang[l-1]<>1) and
                (a>=10)) then no[ang[l]]:='satu ' else no[ang[l]]:='se';
              end;
     end;
// awal
  Case jml of
  1,4,7,10,13 :
  begin
  { satuan }if (ang[l-1]=1) and (jml=1) and (ang[l]<>0) then
            terbilang:=terbilang+no[ang[l]]+'belas ' else if jml=1 then terbilang:=terbilang+no[ang[l]];
  { ribuan }if (ang[l-1]=1) and (jml=4) and (ang[l]<>0) then
            terbilang:=terbilang+no[ang[l]]+'belas ribu ' else if (jml=4) and
            ((ang[l]<>0) or (ang[l-1]<>0) or (ang[l-2]<>0)) then
            terbilang:=terbilang+no[ang[l]]+'ribu ' else if jml=4 then terbilang:=terbilang+no[ang[l]];
  { juta }  if (ang[l-1]=1) and (jml=7) and (ang[l]<>0) then
            terbilang:=terbilang+no[ang[l]]+'belas juta ' else if (jml=7) and
            ((ang[l]<>0) or (ang[l-1]<>0) or (ang[l-2]<>0)) then
            terbilang:=terbilang+no[ang[l]]+'juta ' else if jml=7 then terbilang:=terbilang+no[ang[l]];
  { milyar }if (ang[l-1]=1) and (jml=10) and (ang[l]<>0) then
            terbilang:=terbilang+no[ang[l]]+'belas milyar ' else if jml=10 then
            terbilang:=terbilang+no[ang[l]]+'milyar ';

  { triliun }{if (ang[l-1]=1) and (jml=13) and (ang[l]<>0) then
            terbilang:=terbilang+no[ang[l]]+'belas triliun ' else if jml=13 then
            terbilang:=terbilang+no[ang[l]]+'ribu ';}
  end;

  2,5,8,11 :
  begin
  {puluhan} if (ang[l]=1) and (ang[l+1]>0) then terbilang:='' else
            if ang[l]<>0 then terbilang:=terbilang+no[ang[l]]+'puluh ' else
            terbilang:=terbilang+no[ang[l]];
  end;

  3,6,9,12 :
  begin
  {ratusan} if (ang[l]<>0) then terbilang:=terbilang+no[ang[l]]+'ratus ' else
            terbilang:=terbilang+no[ang[l]];
  end;
  end;
  dec(jml,1);

// batas
  end; // for...
  end;
//  form1.memo1.text:=huruf;
  result := terbilang;
end;


procedure TForm1.Edit1Change(Sender: TObject);
begin
    memo1.text:=baca(Edit1.Text)+' rupiah';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     close;
end;

end.
« Edit Terakhir: 25 April 2006, 17:24:37 oleh pelemsewu »

Offline SunarAC

  • myQ Junior
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 75
  • Lokasi: aSEM sing ARANG
  • Jenis kelamin: Pria
    • Lihat Profil
« Jawab #5 pada: 04 Mei 2006, 12:32:19 »
Assalamu'alaikum wr. wb

nihh ada fungsi terbilang.
Fungsi terbilang ini menggunakan metode recursive.

Cuma masih dalam bentuk VB sihh.  :'>
Aku sudah menggunakan fungsi ini dalam VB.NET dan alhamdulillah lancar-lancar saja.  O0

Tapi tinggal di terjemahkan ke dalam bentuk Delphi.  ^-^ ( lom ada kesempatan untuk translate ke Delphi sih.  :'>  Ada yang mau bantu ??? )


Fungsi Terbilang

Kutip
Public Function Terbilang(ByVal x As Long) As String
        Dim ambilbil() As Object = {"", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas"}
        If x < 12 Then
            Terbilang = " " & ambilbil(x)
        ElseIf x < 20 Then
            Terbilang = Terbilang(x - 10) & " belas"
        ElseIf x < 100 Then
            Terbilang = Terbilang(x \ 10) & " puluh" & Terbilang(x Mod 10)
        ElseIf x < 200 Then
            Terbilang = " seratus" & Terbilang(x - 100)
        ElseIf x < 1000 Then
            Terbilang = Terbilang(x \ 100) & " ratus" & Terbilang(x Mod 100)
        ElseIf x < 2000 Then
            Terbilang = " seribu" & Terbilang(x - 1000)
        ElseIf x < 1000000 Then
            Terbilang = Terbilang(x \ 1000) & " ribu" & Terbilang(x Mod 1000)
        ElseIf x < 1000000000 Then
            Terbilang = Terbilang(x \ 1000000) & " juta" & Terbilang(x Mod 1000000)
        ElseIf x < 1000000000000 Then
            Terbilang = Terbilang(x \ 1000000000) & " milyar" & Terbilang(x Mod 1000000000)
        ElseIf x < 1000000000000000 Then
            Terbilang = Terbilang(x \ 1000000000000) & " trilyun" & Terbilang(x Mod 1000000000000)

        End If
    End Function

Wassalamu'alaikum wr wb

Selamat mencoba yah.  8)
Jika pedang lukai tubuh, masihlah ada harapan sembuh. Jika lidah lukai hati, kemana obat hendak dicari.

Peace man

Offline cahnom

  • myQ Newbie
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 3
  • Lokasi: Semarang Kaline Banjer
  • Jenis kelamin: Pria
    • Lihat Profil
    • Bloger cahnom
« Jawab #6 pada: 30 Mei 2006, 05:44:04 »
السّلام عليكم ورحمة الله وبركاته
Saya telah terjemahkan fungsi terbilang SunarAC  O0 ke dalam bahasa C# dan C++ yang dapat dilihat di
http://semarang.netindonesia.net/blogs/cahnom/
Semoga membatu :)
« Edit Terakhir: 30 Mei 2006, 08:20:29 oleh cahnom »
Sampaikan ilmu walau satu huruf

Offline SunarAC

  • myQ Junior
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 75
  • Lokasi: aSEM sing ARANG
  • Jenis kelamin: Pria
    • Lihat Profil
« Jawab #7 pada: 31 Mei 2006, 12:30:07 »
Jika pedang lukai tubuh, masihlah ada harapan sembuh. Jika lidah lukai hati, kemana obat hendak dicari.

Peace man

Offline mfaa98

  • myQ Pro-Aktif
  • *
  • Tgl Gabung: Apr 2006
  • Tulisan: 737
  • Lokasi: di sini
  • hmm...
    • Lihat Profil
« Jawab #8 pada: 01 Juni 2006, 08:41:18 »
wuih.. gak nyangka bisa sesimpel itu... aku pernah bikin dan rasanya sih gak sependek itu.. padahal pake model rekursif juga [hehe.. jadi malu]... mungkin pola pikirnya masih perlu dibenahi lagi kali ya...

Offline Pencari Allah

  • myQ Junior
  • *
  • Tgl Gabung: Mar 2008
  • Tulisan: 69
  • Lokasi: di bumi Allah
  • Jenis kelamin: Pria
  • Akulah para pencarimu ya Allah...
    • Lihat Profil
    • Indonesian Moslem Download Source
« Jawab #9 pada: 18 Juni 2008, 22:26:14 »
terlampir ana coba kirim yg ana pernah buat. semoga membantu....
"...weaknesses and misjudgment is from me and by me only, while perfectionisme is truthfully and rightfully belong to 4JJI..."

<< IIX Free Download Islamic Content at http://iixmoslemsource.blogdetik.com >>