hi friends,
nih ada 2 function (indonesia & english) yang dulu saya konversi dari
clipper. cara pakenya di vb simpan dalam module public lalu panggil dari
program :
Misal:
Dim terbilang as string, angka as double
angka = 1230000
terbilang = nutos(angka)
semoga bermanfaat.
Public Function Nutos(Nilai As Double) As String
'-------------------------------------------------------------------
'Function untuk menyebutkan angka/nilai dalam bahasa indonesia in vb
'Programmed by Wayan Budiasa 12 November 2001
'-------------------------------------------------------------------
Dim Deret As String
Dim Kata As String
Dim N_Huruf As String
Dim Tes As Byte
Tes = 0
N_Huruf = Format(Nilai, "000000000000.00")
Kata = ""
Deret = " Satu Dua Tiga Empat Lima Enam
Tujuh Delapan Sembilan"
'** Pecahan Ratusan Milyard **
Tes = Val(Mid(N_Huruf, 1, 1))
Select Case Tes
Case Is = 1
Kata = [Kata] & "Seratus "
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8))
Kata = [Kata] & " ratus "
End Select
'** Pecahan Puluhan Milyard **
Tes = Val(Mid(N_Huruf, 2, 1))
Select Case Tes
Case Is = 1
If Mid(N_Huruf, 3, 1) = "1" Then
Kata = [Kata] & "Sebelas "
ElseIf Mid(N_Huruf, 3, 1) = "0" Then
Kata = [Kata] & "Sepuluh "
Else
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 3,
1)) + 1), 8)) & " belas"
End If
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8)) & " puluh "
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 3, 1))
+ 1), 8))
Case Is = 0
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 3, 1))
+ 1), 8))
End Select
'** Pecahan Satuan Milyard **
If Val(Mid(N_Huruf, 1, 3)) > 0 Then
Kata = [Kata] & " milyar "
End If
'** Pecahan Ratusan Juta **
Tes = Val(Mid(N_Huruf, 4, 1))
Select Case Tes
Case Is = 1
Kata = [Kata] & "Seratus "
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8))
Kata = [Kata] & " ratus "
End Select
'** Pecahan Puluhan Juta **
Tes = Val(Mid(N_Huruf, 5, 1))
Select Case Tes
Case Is = 1
If Mid(N_Huruf, 6, 1) = "1" Then
Kata = [Kata] & "Sebelas "
ElseIf Mid(N_Huruf, 6, 1) = "0" Then
Kata = [Kata] & "Sepuluh "
Else
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 6,
1)) + 1), 8)) & " belas"
End If
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8)) & " puluh "
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 6, 1))
+ 1), 8))
Case Is = 0
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 6, 1))
+ 1), 8))
End Select
'** Pecahan Satuan Juta **
If Val(Mid(N_Huruf, 4, 3)) > 0 Then
Kata = [Kata] & " juta "
End If
'** Pecahan Ratusan Ribu **
Tes = Val(Mid(N_Huruf, 7, 1))
Select Case Tes
Case Is = 1
Kata = [Kata] & "Seratus "
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8))
Kata = [Kata] & " ratus "
End Select
'** Pecahan Puluhan dan Satuan Ribu **
Tes = Val(Mid(N_Huruf, 8, 1))
Select Case Tes
Case Is = 1
If Mid(N_Huruf, 9, 1) = "1" Then
Kata = [Kata] & "Sebelas "
ElseIf Mid(N_Huruf, 9, 1) = "0" Then
Kata = [Kata] & "Sepuluh "
Else
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 9,
1)) + 1), 8)) & " belas"
End If
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8)) & " puluh "
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 9, 1))
+ 1), 8))
Case Is = 0
If Val(Mid(N_Huruf, 7, 2)) = 0 Then
Tes = Val(Mid(N_Huruf, 9, 1))
Select Case Tes
Case Is = 1
Kata = [Kata] & "Seribu "
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf,
9, 1)) + 1), 8))
End Select
Else
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 9,
1)) + 1), 8))
End If
End Select
If Val(Mid(N_Huruf, 7, 3)) > 1 Then
Kata = [Kata] & " ribu "
End If
'** Pecahan Ratusan **
Tes = Val(Mid(N_Huruf, 10, 1))
Select Case Tes
Case Is = 1
Kata = [Kata] & "Seratus "
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8))
Kata = [Kata] & " ratus "
End Select
'** Pecahan Puluhan dan Satuan **
Tes = Val(Mid(N_Huruf, 11, 1))
Select Case Tes
Case Is = 1
If Mid(N_Huruf, 12, 1) = "1" Then
Kata = [Kata] & "Sebelas "
ElseIf Mid(N_Huruf, 12, 1) = "0" Then
Kata = [Kata] & "Sepuluh "
Else
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf,
12, 1)) + 1), 8)) & " belas "
End If
Case Is > 1
Kata = [Kata] & RTrim(Mid(Deret, (8 * Tes) + 1, 8)) & " puluh "
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 12,
1)) + 1), 8)) & " "
Case Is = 0
Kata = [Kata] & RTrim(Mid(Deret, (8 * Val(Mid(N_Huruf, 12,
1)) + 1), 8)) & " "
End Select
'** Pecahan Sen**
Tes = Val(Right(N_Huruf, 2))
If Tes = 0 Then
Kata = Kata
Else
Kata = [Kata] & " & " & Right(N_Huruf, 2) & "/100 "
End If
Nutos = [Kata]
End Function
Public Function Said(Amt As Double) As String
'-------------------------------------------------------------------
'Function untuk menyebutkan angka/nilai dalam bahasa inggris in vb
'Programmed by Wayan Budiasa 12 November 2001
'-------------------------------------------------------------------
Dim Satuan As String, Belasan As String, Puluhan As String
Dim Deret As String, NHuruf As String, Kata As String, Tes As Integer
Tes = 0
Kata = ""
Satuan = " one two three four five six seven eight nine "
Belasan = " eleven twelve thirteen fourteen fifteen
sixteen seventeen eighteen nineteen "
Puluhan = " ten twenty thirty forty fifty sixty
seventy eighty ninety "
'Panjangnya: Satuan = 6; Belasan = 10; Puluhan = 8
NHuruf = Format(Amt, "000000000000.00")
'** Pecahan Ratusan Milyard **
Tes = Val(Mid(NHuruf, 1, 1))
Select Case Tes
Case Is > 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Tes) + 1, 6))
Kata = [Kata] & " hundred "
End Select
'** Pecahan Puluhan Milyard **
Tes = Val(Mid(NHuruf, 2, 1))
Select Case Tes
Case Is > 1
Kata = [Kata] & RTrim(Mid(Puluhan, (8 * Tes) + 1, 8)) & " "
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 3, 1))
+ 1), 6))
Case Is = 1
If Val(Mid(NHuruf, 3, 1)) = 0 Then
Kata = [Kata] & "ten "
Else
Kata = [Kata] & RTrim(Mid(Belasan, (10 * Val(Mid(NHuruf,
3, 1)) + 1), 10))
End If
Case Is = 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 3, 1))
+ 1), 6))
End Select
'** Pecahan Satuan Milyard **
If Val(Mid(NHuruf, 1, 3)) > 0 Then
Kata = [Kata] & " billion "
End If
'** Pecahan Ratusan Juta **
Tes = Val(Mid(NHuruf, 4, 1))
Select Case Tes
Case Is > 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Tes) + 1, 6))
Kata = [Kata] & " hundred "
End Select
'** Pecahan Puluhan Juta **
Tes = Val(Mid(NHuruf, 5, 1))
Select Case Tes
Case Is > 1
Kata = [Kata] & RTrim(Mid(Puluhan, (8 * Tes) + 1, 8)) & " "
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 6, 1))
+ 1), 6))
Case Is = 1
If Val(Mid(NHuruf, 6, 1)) = 0 Then
Kata = [Kata] & "ten "
Else
Kata = [Kata] & RTrim(Mid(Belasan, (10 * Val(Mid(NHuruf,
6, 1)) + 1), 10))
End If
Case Is = 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 6, 1))
+ 1), 6))
End Select
'** Pecahan Satuan Juta **
If Val(Mid(NHuruf, 4, 3)) > 0 Then
Kata = [Kata] & " million "
End If
'** Pecahan Ratusan Ribu **
Tes = Val(Mid(NHuruf, 7, 1))
Select Case Tes
Case Is > 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Tes) + 1, 6))
Kata = [Kata] & " hundred "
End Select
'** Pecahan Puluhan Ribu **
Tes = Val(Mid(NHuruf, 8, 1))
Select Case Tes
Case Is > 1
Kata = [Kata] & RTrim(Mid(Puluhan, (8 * Tes) + 1, 8)) & " "
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 9, 1))
+ 1), 6))
Case Is = 1
If Val(Mid(NHuruf, 9, 1)) = 0 Then
Kata = [Kata] & "ten "
Else
Kata = [Kata] & RTrim(Mid(Belasan, (10 * Val(Mid(NHuruf,
9, 1)) + 1), 10))
End If
Case Is = 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 9, 1))
+ 1), 6))
End Select
'** Pecahan Satuan Ribu **
If Val(Mid(NHuruf, 7, 3)) > 0 Then
Kata = [Kata] & " thousand "
End If
'** Pecahan Ratusan **
Tes = Val(Mid(NHuruf, 10, 1))
Select Case Tes
Case Is > 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Tes) + 1, 6))
Kata = [Kata] & " hundred "
End Select
'** Pecahan Puluhan **
Tes = Val(Mid(NHuruf, 11, 1))
Select Case Tes
Case Is > 1
If Val(Mid(NHuruf, 12, 1)) = 0 Then
Kata = [Kata] & RTrim(Mid(Puluhan, (8 * Tes) + 1, 8))
Else
Kata = [Kata] & RTrim(Mid(Puluhan, (8 * Tes) + 1, 8)) & " "
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 12,
1)) + 1), 6))
End If
Case Is = 1
If Val(Mid(NHuruf, 12, 1)) = 0 Then
Kata = [Kata] & "ten "
Else
Kata = [Kata] & RTrim(Mid(Belasan, (10 * Val(Mid(NHuruf,
12, 1)) + 1), 10))
End If
Case Is = 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 12,
1)) + 1), 6))
End Select
'** Pecahan Satuan**
If Val(Mid(NHuruf, 10, 3)) > 0 Then
Kata = [Kata]
End If
'** Pecahan Sen**
If Val(Right(NHuruf, 2)) = 0 Then
Kata = [Kata]
Else
Kata = [Kata] & " and "
Tes = Val(Mid(NHuruf, 14, 1))
Select Case Tes
Case Is > 1
If Val(Mid(NHuruf, 15, 1)) = 0 Then
Kata = [Kata] & RTrim(Mid(Puluhan, (8 * Tes) + 1, 8)) &
" cent "
Else
Kata = [Kata] & RTrim(Mid(Puluhan, (8 * Tes) + 1, 8)) & " "
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf,
15, 1)) + 1), 6)) & " cent "
End If
Case Is = 1
If Val(Mid(NHuruf, 15, 1)) = 0 Then
Kata = [Kata] & "ten cent "
Else
Kata = [Kata] & RTrim(Mid(Belasan, (10 *
Val(Mid(NHuruf, 15, 1)) + 1), 10)) & " cent "
End If
Case Is = 0
Kata = [Kata] & RTrim(Mid(Satuan, (6 * Val(Mid(NHuruf, 15,
1)) + 1), 6)) & " cent "
End Select
End If
Said = [Kata]
End Function