Fungsi Terbilang

Fungsi terbilang yang akan kita masukkan berikut mampu menerjemahkan bilangan sampai dengan ratusan trilyun dan belum mampu menerjemahkan nilai di belakang desimal (setelah koma). Saya menggunakan OpenOffice.org versi 2 beta, langkah-langkah yang saya lakukan untuk memasukkan fungsi terbilang pada OpenOffice.org Calc adalah:

  1. Jalankan OpenOffice.org Calc, buka menu Tools ? Macros ? Organize Macros ? OpenOffice.org Basic..., sehingga muncul dialog box OpenOffice.org Basic.
    Langkah 1
  2. Pada dialog box OpenOffice.org Basic, pilih makro dari My Macros ? Standard, kemudian klik tombol New.
    Langkah 2
  3. Masukkan kode di bagian bawah halaman ini, dan copy paste-kan pada halaman editor yang muncul.
    Langkah 3
  4. Uji pada sheet dengan memasukkan fungsi terbilangnya. Lihat contoh penggunaannya.
    Langkah 4

Kode

CODE:
  1. Function Kekata(Bilangan as double) As String
  2.     Dim angka as variant
  3.    
  4.     angka = Array("","satu","dua","tiga","empat","lima","enam",_
  5.     "tujuh","delapan","sembilan","sepuluh","sebelas")
  6.     Bilangan = abs(Fix(Bilangan))
  7.     If Bilangan<12 Then
  8.         Kekata = " " & angka(Bilangan)
  9.     Elseif Bilangan<20 Then
  10.         Kekata = Kekata(Bilangan - 10) & " belas"
  11.     Elseif Bilangan<100 Then
  12.         Kekata = Kekata(Fix(Bilangan/10)) & " puluh" & Kekata(Bilangan mod 10)
  13.     Elseif Bilangan<200 Then
  14.         Kekata = " seratus" & Kekata(Bilangan mod 100)
  15.     Elseif Bilangan<1000 Then
  16.         Kekata = Kekata(Fix(Bilangan/100)) & " ratus" & Kekata(Bilangan mod 100)
  17.     Elseif Bilangan<2000 Then
  18.         Kekata = " seribu" & Kekata(Bilangan mod 1000)
  19.     Elseif Bilangan<1000000 Then
  20.         Kekata = Kekata(Fix(Bilangan/1000)) & " ribu" & Kekata(Bilangan mod 1000)
  21.     Elseif Bilangan<1000000000 Then
  22.         Kekata = Kekata(Fix(Bilangan/1000000)) & " juta" &_
  23.         Kekata(Bilangan- (Fix(Bilangan/1000000)*1000000))
  24.     Elseif Bilangan<1000000000000 Then
  25.         Kekata = Kekata(Fix(Bilangan/1000000000)) & " milyar" &_
  26.         Kekata(Bilangan- (Fix(Bilangan/1000000000)*1000000000))
  27.     Elseif Bilangan<1000000000000000 Then
  28.         Kekata = Kekata(Fix(Bilangan/1000000000000)) & " trilyun" &_
  29.         Kekata(Bilangan- (Fix(Bilangan/1000000000000)*1000000000000))
  30.     Else
  31.         Kekata = "Error! Input Tidak Dapat Diproses."
  32.     EndIf
  33.    
  34. End Function
  35.  
  36. Function Terbilang(Bilangan as Double, Optional Style as Integer) as String
  37.     Dim temp as String
  38.    
  39.     If Bilangan<0 Then
  40.         temp = "minus " & trim(kekata(Bilangan))
  41.     Else
  42.       temp = trim(kekata(Bilangan))
  43.     EndIf
  44.  
  45.     If Style=1 Then
  46.       Terbilang = ucase(temp)
  47.     ElseIf Style=2 Then                     
  48.         Terbilang = lcase(temp)
  49.     ElseIf Style=3 Then                     
  50.         kata = split(temp)
  51.         l = LBound(kata)       
  52.         u = UBound(kata)
  53.         For i=l to u
  54.             kata(i) =  ucase(mid(kata(i),1,1)) & mid(kata(i),2)
  55.         Next i
  56.         Terbilang = join(kata())
  57.     Else                 
  58.         Terbilang = ucase(mid(temp,1,1)) & mid(temp,2)
  59.     EndIf
  60.  
  61. End Function

Penggunaan dan Contoh
=terbilang(bilangan; style)
bilangan adalah bilangan atau cell yang berisi bilangan yang akan diterjemahkan.
style adalah nilai integer yang sifatnya optional untuk mengatur output cara penulisan huruf besar atau kecilnya, dan jika tidak disertakan akan tertampil huruf besar pada awal kalimat saja.
Nilai style
1 = Ditulilis huruf besar semua;
2 = Ditulis huruf kecil semua;
3 = Huruf besar hanya pada awal kata saja;
Lainnya = Huruf besar pada awal kalimat saja.

Misalkan cell B1 diisi bilangan dengan nilai 25000 dan kita akan menuliskan hasilnya pada cell B2
=terbilang(B1)menghasilkan: Dua puluh lima ribu

=terbilang(B1;1)menghasilkan: DUA PULUH LIMA RIBU

=terbilang(B1;2)menghasilkan: dua puluh lima ribu

=terbilang(B1;3)menghasilkan: Dua Puluh Lima Ribu

=terbilang(B1;4)menghasilkan: Dua puluh lima ribu

23 Responses to “Fungsi Terbilang”

subura - Gravatar

subura said on October 25, 2005, 12:41 pm:

thank’s for your nice tips :)
mantap mas!

M Irsyad - Gravatar

M Irsyad said on January 5, 2006, 12:29 pm:

trima kasih Mas.

M Irsyad - Gravatar

M Irsyad said on January 5, 2006, 12:31 pm:

kalo mau nambah satuannya gimana caranya

maseko - Gravatar

maseko said on January 5, 2006, 4:44 pm:

Bung Irsyad, untuk menambahkan satuannya tambahkan dalam formulanya, misalnya seperti ini
=terbilang(B1;1) & ” rupiah”

M Irsyad - Gravatar

M Irsyad said on January 6, 2006, 10:55 am:

makasih mas eko.
maaf boleh tanya? mas eko alumni stan ya?
kalo ya th berapa?

aurino - Gravatar

aurino said on January 27, 2006, 1:53 pm:

mas tambahin fungsi komanya seperti dalam blog saya
atau sekalian tak kirimi
‘This Public Function for Indonesian “Numeric to string Converstion”
‘You can copy, modify or take part of this function
‘Redesign and retouch to get new rupiah function by: aurinoradjamaris@yahoo.com

Public Function Terbilang(x As Currency)
Dim triliun As Currency
Dim milyar As Currency
Dim juta As Currency
Dim ribu As Currency
Dim satu As Currency
Dim sen As Currency
Dim baca As String
If x > 1E+15 Then
Terbilang = “”
Exit Function
End If
‘jika x adalan 0, maka dibaca sebagai 0
If x = 0 Then
baca = angka(0, 1)
Else
‘Pisah masing-masing bagian untuk triliun, milyard, juta, ribu, rupiah dan sen
triliun = Int(x * 0.001 ^ 4)
milyar = Int((x - triliun * 1000 ^ 4) * 0.001 ^ 3)
juta = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3) * 0.001 ^ 2)
ribu = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2) * 0.001)
satu = Int(x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2 - ribu * 1000)
sen = Int((x - Int(x)) * 100)
‘baca bagian triliun dan ditambah akhiran trilliun
If triliun > 0 Then
baca = Ratus(triliun, 5) + “triliun ”
End If

‘baca bagian milyar dan ditambah akhiran milyar
If milyar > 0 Then
baca = baca + Ratus(milyar, 4) + “milyar ”
End If
‘baca bagian juta dan ditambah akhiran juta
If juta > 0 Then
baca = baca + Ratus(juta, 3) + “juta ”
End If
‘baca bagian ribu dan ditambah akhiran ribu
If ribu > 0 Then
baca = baca + Ratus(ribu, 2) + “ribu ”
End If
‘baca bagian rupiah dan ditambah akhiran rupiah
If satu > 0 Then
baca = baca + Ratus(satu, 1)
End If
‘baca bagian sen dan ditambah akhiran sen
If sen > 0 Then
baca = baca + “koma ” + Ratus(sen, 0) + “per seratus ”
End If
End If
Terbilang = UCase(Left(baca, 1)) & LCase(Mid(baca, 2))
End Function
Public Function TerbilangRp(x As Currency)
Dim triliun As Currency
Dim milyar As Currency
Dim juta As Currency
Dim ribu As Currency
Dim satu As Currency
Dim sen As Currency
Dim baca As String
If x > 1E+15 Then
TerbilangRp = “”
Exit Function
End If
‘jika x adalah 0, maka dibaca sebagai 0
If x = 0 Then
baca = angka(0, 1)
Else
‘Pisah masing-masing bagian untuk triliun, milyard, juta, ribu, rupiah dan sen
triliun = Int(x / 1000 ^ 4)
milyar = Int((x - triliun * 1000 ^ 4) * 0.001 ^ 3)
juta = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3) / 1000 ^ 2)
ribu = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2) / 1000)
satu = Int(x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2 - ribu * 1000)
sen = Int((x - Int(x)) * 100)
‘baca bagian triliun dan ditambah akhiran trilliun
If triliun > 0 Then
baca = Ratus(triliun, 5) + “triliun ”
End If
‘baca bagian milyar dan ditambah akhiran milyar
If milyar > 0 Then
baca = baca + Ratus(milyar, 4) + “milyar ”
End If
‘baca bagian juta dan ditambah akhiran juta
If juta > 0 Then
baca = baca + Ratus(juta, 3) + “juta ”
End If
‘baca bagian ribu dan ditambah akhiran ribu
If ribu > 0 Then
baca = baca + Ratus(ribu, 2) + “ribu ”
End If
‘baca bagian rupiah dan ditambah akhiran rupiah
If satu > 0 Then
baca = baca + Ratus(satu, 1) + “”
End If
’sebelum bagian sen
baca = baca & “rupiah ”
‘baca bagian sen dan ditambah akhiran sen
If sen > 0 Then
baca = baca + Ratus(sen, 0) + “sen ”
End If
End If
TerbilangRp = UCase(Left(baca, 1)) & LCase(Mid(baca, 2))
End Function

Function Ratus(x As Currency, Posisi As Integer) As String
Dim a100 As Integer, a10 As Integer, a1 As Integer
Dim baca As String
a100 = Int(x * 0.01)
a10 = Int((x - a100 * 100) * 0.1)
a1 = Int(x - a100 * 100 - a10 * 10)
If a100 = 1 Then
baca = “Seratus ”
Else
If a100 > 0 Then
baca = angka(a100, Posisi) + “ratus ”
End If
End If
‘baca bagian puluhan dan satuan
If a10 = 1 Then
baca = baca + angka(a10 * 10 + a1, Posisi)
Else
If a10 > 0 Then
baca = baca + angka(a10, Posisi) + “puluh ”
End If
If a1 > 0 Then
baca = baca + angka(a1, Posisi)
End If
End If
Ratus = baca
End Function

Function angka(x As Integer, Posisi As Integer)
Select Case x
Case 0: angka = “Nol”
Case 1:
If Posisi 2 Then
angka = “Satu ”
Else
angka = “Se”
End If
Case 2: angka = “Dua ”
Case 3: angka = “Tiga ”
Case 4: angka = “Empat ”
Case 5: angka = “Lima ”
Case 6: angka = “Enam ”
Case 7: angka = “Tujuh ”
Case 8: angka = “Delapan ”
Case 9: angka = “Sembilan ”
Case 10: angka = “Sepuluh ”
Case 11: angka = “Sebelas ”
Case 12: angka = “Duabelas ”
Case 13: angka = “Tigabelas ”
Case 14: angka = “Empatbelas ”
Case 15: angka = “Limabelas ”
Case 16: angka = “Enambelas ”
Case 17: angka = “Tujuhbelas ”
Case 18: angka = “Delapanbelas ”
Case 19: angka = “Sembilanbelas ”
End Select
End Function
selamat mencoba ya

Hasan Fauzi - Gravatar

Hasan Fauzi said on February 25, 2006, 10:36 am:

Mas Eko, punya yang versi bahasa inggris gak ? kalo punya share juga dong. Terima kasih

yakuku712 - Gravatar

yakuku712 said on September 1, 2006, 9:06 pm:

kalo cuma maw dijadiin b.inggris, ganti aja huruf2nya ke b.inggris. misal satu=one sebelas=eleven sembilanbelas=nineteen and any more…
heheheh:p gtu…

maseko - Gravatar

maseko said on September 5, 2006, 12:06 pm:

Untuk Bahasa Inggris, bisa dilihat pada alamat ini
http://www.oooforum.org/forum/viewtopic.phtml?t=5923

Jk Dor - Gravatar

Jk Dor said on December 21, 2006, 10:28 am:

Mas eko, kodenya kok eror ya, abis di paste angka-2 line ikutan ke paste
trus pada line 28 dan lainnya
Kekata = Kekata(Fix(Bilangan/1000000000000)) & ” trilyun” &_
tanda ” _ ” aku hapus semua baru bisa jalan
tolong di bantu thanks mas ^^
btw aku pake OoO 2.04

maseko - Gravatar

maseko said on December 21, 2006, 4:29 pm:

#10
Nomor barisnya sudah saya hapus, tapi saya belum bisa mencobanya di OoO 2.0.4.

rudy - Gravatar

rudy said on May 16, 2007, 1:53 pm:

trima kasih mas ok banget

Qhhh - Gravatar

Qhhh said on June 12, 2007, 5:33 pm:

Mas Eko, itu yg bahasa inggrisnya webnya kok tidak bisa dibuka ya. Thx.

Qhhh - Gravatar

Qhhh said on June 13, 2007, 4:54 pm:

untuk versi inggrisnya sudah ketemu, ini diconvert supaya bisa di open office

Function CDollar(Bilangan as Variant) As String
Dim StringDollar$
Dim a_word, b_word, c_word, text_word As String
DIM Angka$(20)
DIM Angka2$(10)

Angka = Array(”",”One”,”Two”,”Three”,”Four”,”Five”,”Six”,”Seven”,”Eight”,”Nine”,”Ten”,”Eleven”,”Twelve”,”Thirteen”,”Forteen”,”Fifteen”,”Sixteen”,”Seventeen”,”Eighteen”,”Nineteen”)
Angka2 = Array(”",”Ten”,”Twenty”,”Thirty”,”Forty”,”Fifty”,”Sixty”,”Seventy”,”Eighty”,”Ninety”)

Bilangan = CStr(Format(Bilangan, “0,000,000.00″))
mcomma1 = InStr(1, Bilangan, “,”)
mcomma2 = InStr(mcomma1 + 1, Bilangan, “,”)
p1 = Right(Bilangan, 2)
p2 = Mid(Bilangan, mcomma2 + 1, 3)
p3 = Mid(Bilangan, mcomma1 + 1, 3)
p4 = Left(Bilangan, 1)

a_word = “”
b_word = “”
c_word = “”

If cint(p1) 0 Then
If Left(cstr(p1), 1) 0 Then
b_word = Angka2(Left(cstr(p1), 1))
End If
If Right(cstr(p1), 1) 0 Then
c_word = Angka(Right(cstr(p1), 1))
End If
If Left(cstr(p1), 1) = “1″ Then
b_word = Angka(cint(p1))
c_word = “”
End If
StringDollar = “and ” + b_word + ” ” + c_word + ” Cents only.”
Else
text_word = ” only.”
End If

a_word = “”
b_word = “”
c_word = “”

If cint(p2) > 0 Then
If Left(p2, 1) 0 Then
a_word = Angka(Left(p2, 1)) + ” Hundred”
End If
If Mid(p2, 2, 1) 0 Then
b_word = Angka2(Mid(p2, 2, 1))
End If
If Right(p2, 1) 0 Then
c_word = Angka(Right(p2, 1))
End If
If Mid(p2, 2, 1) = “1″ Then
b_word = Angka(Right(p2, 2))
c_word = “”
End If
StringDollar = a_word + ” ” + b_word + ” ” + c_word + ” ” + StringDollar
End If

a_word = “”
b_word = “”
c_word = “”

If cint(p3) > 0 Then
If Left(p3, 1) 0 Then
a_word = Angka(Left(p3, 1)) + ” Hundred ”
End If
If Mid(p3, 2, 1) 0 Then
b_word = Angka2(Mid(p3, 2, 1))
End If
If Right(p3, 1) 0 Then
c_word = Angka(Right(p3, 1))
End If
If Mid(p3, 2, 1) = “1″ Then
b_word = Angka(Right(p3, 2))
c_word = “”
End If
StringDollar = a_word + ” ” + b_word + ” ” + c_word + ” ” _
+ ” Thousand ” + StringDollar
End If

a_word = “”
b_word = “”
c_word = “”

If p4 > 0 Then
a_word = Angka(p4) + ” Million ”
text_word = a_word + text_word
End If

StringDollar = “United States Dollars ” + StringDollar
CDollar = trim(StringDollar)
End Function

gajah_pesing - Gravatar

gajah_pesing said on September 20, 2007, 1:24 pm:

itu isa dipake di ms excel juga ya?

yoyok - Gravatar

yoyok said on September 21, 2007, 2:22 pm:

Dear sir,

Mas tolong kirimin ke e-mail saya(yoyok_duri@yahoo.com) penulisan di VB untuk terbilang yang lengkap dengan pengoperasianya & rupiah diakhir kata indonisia dan inggrisnya.

Mobil tanki bawa kayu dan petikemas
Thank u yach Mas

yoyok - Gravatar

yoyok said on September 21, 2007, 2:38 pm:

Dear sir

Sorry mas gw salah nulisin e-mail yg bener ini yach mas : yoyok_duri@yahoo.co.id

Thank u

ema - Gravatar

ema said on December 24, 2007, 4:20 pm:

mas eko saya udah cobain cuma pas ditulisin style nya kok jadi error “value# tolong dong mas , thanks ya

Armin - Gravatar

Armin said on December 31, 2007, 10:20 am:

Thanks Mas Eko,

Web Blog Mas Eko ini sudah banyak sekali membantu saya terutama dalam pekerjaan kantor. Sekali lagi thanks..
:)

tolongin juga yach - Gravatar

tolongin juga yach said on January 14, 2008, 10:48 am:

tolong donk scrip lengkapnya dikirim ke emailku: akew28@gmail (untuk Visual Basic). makasih

asmar - Gravatar

asmar said on March 29, 2008, 7:57 pm:

Mas Eko, tolong saya memecahkan fungsi terbilang menggunakan lotua 123r5w dan mohon scrip lengkapnya dikirim ke emailku

Manto - Gravatar

Manto said on April 28, 2008, 10:39 pm:

mas minta tolong nih
maaf bukan office calc
office writer gimana cara seting biar tiap nulis di paragraf pertama/kalimat pertama setelah titik hurufnya jadi besar otomatis udah nyari di panduan

kambing.ui.edu/ign/Panduan_OpenOffice.org_2.0/Bab_01-Writer-OO.pdf
Manual Penggunaan Open Office Writer. Penyusun. Tim UGOS. Pusat Pelayanan Teknologi Informasi dan Komunikasi. Universitas Gadjah Mada (PPTIK UGM) …
repo.ugm.ac.id/ekstra/panduan/ugos/openoffice-writer.pdf

tapi gak ketemu

klo ada tolong kirim ke imel saya
terimakasih

akto - Gravatar

akto said on June 21, 2008, 2:18 pm:

Bilangan = abs(Fix(Bilangan))

mas eko aku kok slalu gagal pas aku run basic selalu mengarah ke tulisan yang diatas

dan tidak bisa berhasil slallu
apa yaa masalahnya open office org.2.4

mohon bantuannya yaa

Leave A Comment

All fields marked with "*" are required.