09 April, 2011

membuat fungsi terbilang dengan vb 6

Fungsi terbilang adalah fungsi yang melakukan konversi dari angka menjadi teks, contohnya 123500 menjadi seratus dua puluh tiga ribu lima ratus dan 100000 menjadi seratus ribu. pada contoh project disini saya membatasi digit dari nominal angka sampai 15 digit, dan jika jumlah digit angka mmelebihi 15 maka pada keterangan textbox terbilang akan muncul keterangan nilai terlalu besar.
oke, langsung aja kita coba praktekkan, pertama buat form baru seperti biasa dan tambahkan 2 TextBox dan 2 CommandButton dan beri masing2 komponen sesuai script di bawah ini:

Form1.frm
Private Sub cdmExit_Click()
    Unload Me
End Sub

Private Sub cmdTerbilang_Click()
Dim angka As Double
Dim teks As String

    angka = Val(txtAngka.Text)
    teks = Terbilang(angka)
    txtTerbilang.Text = teks
End Sub

buat 1 module dan beri nama modGlobal.bas
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 = "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
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

silahkan download contoh projectnya disini.
Load disqus comments

0 komentar