Skip to content


Membuat Fungsi “Terbilang”

Credit : http://www.edisusanto.com/membuat-fungsi-terbilang/

Sebenarnya fungsi ini dimaksudkan oleh penulis aslinya (yang tercantum di credit) untuk dibuat pada excel. But logikanya bisa digunakan juga dalam bahasa pemrograman apapun.

So karena sedang males bikin logika sendiri (emang gak bisa sebenernya wkwkwk) maka inilah logika yg saya jiplak untuk membuat fungsi terbilang :

Public Function TERBILANG(x As Double) As String
Dim tampung As Double
Dim teks As String
Dim bagian As String
Dim i As Integer
Dim tanda As Boolean

Dim letak(5)
letak(1) = "RIBU "
letak(2) = "JUTA "
letak(3) = "MILYAR "
letak(4) = "TRILYUN "

If (x < 0) Then
    TERBILANG = ""
Exit Function
End If

If (x = 0) Then
    TERBILANG = "NOL"
Exit Function
End If

If (x < 2000) Then
    tanda = True
End If
teks = ""

If (x >= 1E+15) Then
    TERBILANG = "NILAI TERLALU BESAR"
Exit Function
End If

For i = 4 To 1 Step -1
    tampung = Int(x / (10 ^ (3 * i)))
    If (tampung > 0) Then
        bagian = ratusan(tampung, tanda)
        teks = teks & bagian & letak(i)
    End If
    x = x - tampung * (10 ^ (3 * i))
Next

teks = teks & ratusan(x, False)
TERBILANG = teks & " Rupiah"
End Function

Function ratusan(ByVal y As Double, ByVal flag As Boolean) As String
Dim tmp As Double
Dim bilang As String
Dim bag As String
Dim j As Integer

Dim angka(9)
angka(1) = "SE"
angka(2) = "DUA "
angka(3) = "TIGA "
angka(4) = "EMPAT "
angka(5) = "LIMA "
angka(6) = "ENAM "
angka(7) = "TUJUH "
angka(8) = "DELAPAN "
angka(9) = "SEMBILAN "

Dim posisi(2)
posisi(1) = "PULUH "
posisi(2) = "RATUS "

bilang = ""
For j = 2 To 1 Step -1
    tmp = Int(y / (10 ^ j))
    If (tmp > 0) Then
        bag = angka(tmp)
        If (j = 1 And tmp = 1) Then
            y = y - tmp * 10 ^ j
            If (y >= 1) Then
                posisi(j) = "BELAS "
            Else
                angka(y) = "SE"
            End If
            bilang = bilang & angka(y) & posisi(j)
            ratusan = bilang
            Exit Function
        Else
            bilang = bilang & bag & posisi(j)
    End If
End If
y = y - tmp * 10 ^ j
Next

If (flag = False) Then
    angka(1) = "SATU "
End If
bilang = bilang & angka(y)
ratusan = bilang
End Function

Posted in IT's tips and tricks.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.