Sunday, 17 April 2011

Visual Basic - Membuat Fungsi Terbilang




Seperti yang pernah rekan pembaca lakukan pada pembelian atau pembayaran atau menabung di bank, ada 'angka' yang menunjukkan banyaknya uang yang mau disetor tersebut, ada pula 'kalimat' yang menunjukkan banyaknya uang yang mau disetor tersebut, yang biasanya bertuliskan 'terbilang'.
Contoh:
100.000
Terbilang: Seratus ribu.

Untuk mahasiswa yang sedang ada tugas Visual Basic 6.0 yang berkaitan dengan kasus tersebut, silakan pelajari Script atau Source Code Visual Basic ini:

'Belajar Visual Basic 6.0
'Tambahkan: 1 TextBox, 1 CommandButton, 1 Label
'Riyan Hidayat Samosir in BeKaBe.BlogSpot.Com

Function SayNumber(nNumber As Variant, _
Optional SayKoma As Boolean = False) As String
Dim i As Long
Dim s As String
Dim s2 As Double
Dim x As String
Dim minus As Boolean
Dim nBulat As Double

If TypeName(nNumber) = "String" Then
If Trim(Mid$(nNumber, 1, 1) = "-") Then
minus = True
nNumber = Mid(nNumber, 2)
End If
x = Trim(CDbl(nNumber))

Else
If nNumber < 0 Then nNumber = Abs(nNumber) minus = True End If x = FormatNumber(nNumber, 2) End If s = SayN(Int(nNumber)) If minus Then SayNumber = "Minus " & s Else SayNumber = s End Function Function SayN(nNumber As Double) As String Dim z, s, a, c, x Dim ulang As Double Dim i As Byte Dim tampung(5) As String Dim n As String n = LTrim(RTrim(nNumber)) ulang = (Len(n) - 1) \ 3 + 1 For i = 1 To ulang If Len(n) > 3 Then
c = Mid$(n, Len(n) - 2, 3)
n = Mid$(n, 1, Len(n) - 3)
tampung(i) = c
Else
tampung(i) = n
End If
Next i

z = ""
If n = "0" Then
z = "Nol "
Else
i = ulang
Do
a = ""
x = ""
s = tampung(i)
While Len(s) < 3 s = "0" + s Wend 'digit ratusan If Mid$(s, 1, 1) <> "0" Then
If Mid$(s, 1, 1) = "1" Then
a = a + "Seratus "
Else
a = a + Nama(Mid$(s, 1, 1)) + "Ratus "
End If
End If

'digit 11-19
If Mid$(s, 2, 1) = "1" Then
If (Mid$(s, 3, 1) <> "1") And (Mid$(s, 3, 1) <> "0") Then
a = a + Nama(Mid$(s, 3, 1)) + "Belas "
End If
If Mid$(s, 3, 1) = "1" Then a = a + "Sebelas "
If Mid$(s, 3, 1) = "0" Then a = a + "Sepuluh "
End If

'digit puluhan
If (Mid$(s, 2, 1) <> "1") And _
(s <> "000") And (Mid$(s, 2, 1) <> "0") Then
a = a + Nama(Mid$(s, 2, 1)) + "Puluh "
End If

If (Mid$(s, 3, 1) <> "0") And (Mid$(s, 2, 1) <> "1") Then
a = a + Nama(Mid$(s, 3, 1))
End If

'perkecualian untuk seribu
If (i = 2) Then
If s = "001" Then a = "Se"
End If

If s <> "000" Then
If i = 1 Then x = ""
If i = 2 Then x = "Ribu "
If i = 3 Then x = "Juta "
If i = 4 Then x = "Miliar "
If i = 5 Then x = "Triliun "
End If
If a = "Se" Then x = LCase(x)
z = z + a + x
i = i - 1
Loop Until i = 0
End If
SayN = z
End Function

Private Function Nama(a As String) As String
Select Case a
Case "1": Nama = "Satu "
Case "2": Nama = "Dua "
Case "3": Nama = "Tiga "
Case "4": Nama = "Empat "
Case "5": Nama = "Lima "
Case "6": Nama = "Enam "
Case "7": Nama = "Tujuh "
Case "8": Nama = "Delapan "
Case "9": Nama = "Sembilan "
Case "0": Nama = ""
End Select
End Function

Private Sub Command1_Click()
Label1.Caption = SayNumber(Text1.Text)
End Sub




Atau, silakan download sample projectnya di :
http://www.ziddu.com/download/14628683/Terbilang.zip.html

Cadangan jika link di atas tidak bisa di:
http://ryanbekabe.byethost14.com/files/Terbilang.zip

7 comments:

Anonymous said...

akhirnya yang aku cari ketemu juga....... makasih gan.

sucipto said...

mas kalau begini gimana.
misal angka di ganti sama huruf misal
1=A
2=B
3=C
Dst..
11=AA
12=AB
dst

tolong dong...
kirim kodenya ke email
show.cheap@gmail.com

BeKaBe said...

Senang bisa membantu.

Kepada rekan Sucipto, bisa Anda gunakan fungsi Dim atau Set.
Misal :
Dim 1 As String
Set 1 = A

Dan seterusnya.
Misal untuk mengeksekusinya, jika Text1 berisi nilai 1 :
MsgBox Text1.Text

Untuk penggabungan, gunakan karakter dan (&).

Semoga membantu! atau Set.
Misal :
Dim 1 As String
Set 1 = A

Dan seterusnya.
Misal untuk mengeksekusinya, jika Text1 berisi nilai 1 :
MsgBox Text1.Text

Untuk penggabungan, gunakan karakter dan (&).

Semoga membantu!

technoromance said...

Salam Kenal mas... Mas bantuin dong bagaimana membuat fungsi terbilang dengan suara... Misalkan 100 terbilang suaranya seratus...
Tolongin yah mas... saya lagi buatin TA... Makasih sebelumnya...

Neo BeKaBe said...

@technoromance:
Itu pakai voice/mp3/etc. yang sebelumnya direkam terlebih dahulu, lalu di-play olehnya!

technoromance said...

Mas Neo makasih banyak untuk bantuannya!!!!

jacka santosa said...

Jika itu menggunakan kata2 atau kalimat yang bisa berubah-ubah gmn gan?

Misalnya kayak di kampus ane tuh klo ada info kuliah kosong atau gak ada dosen pemberitahuannya lewat text (panjang), bisa tidak jika diganti dengan suara?