Convert Numeric to Word for Indonesian (Rupiah)

miebasomurah

New member
Local time
Today, 09:45
Joined
Apr 4, 2007
Messages
1
i found this code for converting numeric to word in indonesian currency (Rupiah) :

'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
miebasomurah@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 = "<di atas satu triliun rupiah>"

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

& nbsp; baca = Ratus(triliun, 5) + "triliun "

End If



'baca bagian milyar dan ditambah akhiran milyar

If milyar > 0 Then

& nbsp; baca = baca + Ratus(milyar, 4) + "milyar "

End If

'baca bagian juta dan ditambah akhiran juta

If juta > 0 Then

& nbsp; baca = baca + Ratus(juta, 3) + "juta "

End If

'baca bagian ribu dan ditambah akhiran ribu

If ribu > 0 Then

& nbsp; baca = baca + Ratus(ribu, 2) + "ribu "

End If

'baca bagian rupiah dan ditambah akhiran rupiah

If satu > 0 Then

& nbsp; baca = baca + Ratus(satu, 1)

End If

'baca bagian sen dan ditambah akhiran sen

If sen > 0 Then

& nbsp; 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 = "<di atas seribu triliun rupiah>"

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

& nbsp; baca = Ratus(triliun, 5) + "triliun "

End If

'baca bagian milyar dan ditambah akhiran milyar

If milyar > 0 Then

& nbsp; baca = baca + Ratus(milyar, 4) + "milyar "

End If

'baca bagian juta dan ditambah akhiran juta

If juta > 0 Then

& nbsp; baca = baca + Ratus(juta, 3) + "juta "

End If

'baca bagian ribu dan ditambah akhiran ribu

If ribu > 0 Then

& nbsp; baca = baca + Ratus(ribu, 2) + "ribu "

End If

'baca bagian rupiah dan ditambah akhiran rupiah

If satu > 0 Then

& nbsp; baca = baca + Ratus(satu, 1) + ""

End If

'sebelum bagian sen

baca = baca & "rupiah "

'baca bagian sen dan ditambah akhiran sen

If sen > 0 Then

& nbsp; 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

& nbsp; 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

& nbsp; baca = baca + angka(a10, Posisi) + "puluh "

End If

If a1 > 0 Then

& nbsp; 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:

& nbsp; If Posisi <= 2 Or Posisi > 2 Then

& nbsp; &n bsp; angka = "Satu "

& nbsp; Else

& nbsp; &n bsp; angka = "Se"

& nbsp; 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
 

Users who are viewing this thread

Back
Top Bottom