Scroll To English Version
Membilang Nominal Uang Menggunakan Script Visual Basic
Untuk aplikasi yang menangani penjumlahan uang seperti aplikasi accounting, aplikasi penjualan dan sebagainya akan lebih menarik jika ditambahkan 'fitur' untuk mengeja nilai nominal uang misalnya untuk jumlah uang 1525500 aplikasi akan mengeja-nya sebagai berikut :
"Satu Juta Lima Ratus Dua Puluh Lima Ribu Lima Ratus"
Disini aku akan sharing sebuah script visual basic untuk melakukan hal tersebut. biar lebih jelas aku akan buat sebuah aplikasi sederhana dengan Visual Basic, berikut ini langkah-langkahnya :
- Masuk ke Visual Basic, buat sebuah project standar.EXE
- tambahkan sebuah komponen CommandButton, sebuah TextBox dan beberapa label, sehingga tampilannya seperti gambar berikut ini :
- buat sebuah function dengan nama SpellAmount(), sebagai berikut :
Function SpellAmount(Amount As Currency) As String
Dim satuan As Variant
satuan = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas")
Select Case Amount
Case 0 To 11
SpellAmount = " " & satuan(Fix(Amount))
Case 12 To 19
SpellAmount = SpellAmount(Amount Mod 10) & " Belas"
Case 20 To 99
SpellAmount = SpellAmount(Fix(Amount / 10)) & " Puluh" + SpellAmount(Amount Mod 10)
Case 100 To 199
SpellAmount = " Seratus" & SpellAmount(Amount - 100)
Case 200 To 999
SpellAmount = SpellAmount(Fix(Amount / 100)) & " Ratus" + SpellAmount(Amount Mod 100)
Case 1000 To 1999
SpellAmount = " Seribu" & SpellAmount(Amount - 1000)
Case 2000 To 999999
SpellAmount = SpellAmount(Fix(Amount / 1000)) & " Ribu" + SpellAmount(Amount Mod 1000)
Case 1000000 To 999999999
SpellAmount = SpellAmount(Fix(Amount / 1000000)) & " Juta" & SpellAmount(Amount Mod 1000000)
Case 1000000000 To 2147482999
SpellAmount = SpellAmount(Fix(Amount / 1000000000)) & " Milyar" + SpellAmount(Amount Mod 1000000000)
Case Else
SpellAmount = "Tidak dapat menghitung"
End Select
End Function
- dobel klik komponen CommandButton, tambahkan kode perintah berikut :
Private Sub Command1_Click()
Dim value As Variant
value = SpellAmount(Text1.Text)
Label1.Caption = "Terbilang : " & Chr(10) & value
End Sub
Tampilan pada saat Runtime :
Function ini akan mengeja/membilang nilai nominal dengan range 1 - 2147482999. Untuk kondisi Amount > 2147482999, aku gunakan string kalimat "Tidak dapat membilang" karena jika tidak aplikasi akan mengalami Error karena terjadi overflow (nilai diluar jangkauan dari tipe data yang digunakan). tetapi walaupun begitu menurutku script ini sudah cukup untuk disertakan dalam sebuah aplikasi penjualan. semoga bermanfaat.
Scroll To Indonesia Version
For application that handle arithmetic operation (for money) such as accounting application, sales application would be more interesting if you add 'Spelling feature' for Amount of money. For example for the amounts of moneys of 1525500 the application will spell it as follows :
"One Million Five Hundreds Twenty Five Thousands Five Hundreds"
Here I will share a visual basic script to do that. to be clearer I will make a simple application with Visual Basic, following is the steps :
- Make a new Standar.EXE Project in Visual Basic
- Add a CommandButton, TextBox and some label, so the appearance will be like this :
- Create a function SpellAmount(), as follows :
Function SpellAmount(Amount As Currency) As String
Dim unit As Variant
unit = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", _
"Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", _
"Sixteen", "Seventeen", "Eighteen", "Nineteen", "Twenty")
Select Case Amount
Case 0 To 20
SpellAmount = " " & unit(Fix(Amount))
Case 21 To 29
SpellAmount = " Twenty" & SpellAmount(Amount Mod 10)
Case 30 To 30
SpellAmount = " Thirty"
Case 31 To 39
SpellAmount = " Thirty" & SpellAmount(Amount Mod 10)
Case 40 To 49
SpellAmount = " Fourty" & SpellAmount(Amount Mod 10)
Case 50 To 50
SpellAmount = " Fifty"
Case 51 To 59
SpellAmount = " Fifty" & SpellAmount(Amount Mod 10)
Case 60 To 79
SpellAmount = SpellAmount(Fix(Amount / 10)) & "ty" & SpellAmount(Amount Mod 10)
Case 80 To 89
SpellAmount = SpellAmount(Fix(Amount / 10)) & "y" & SpellAmount(Amount Mod 10)
Case 90 To 99
SpellAmount = SpellAmount(Fix(Amount / 10)) & "ty" & SpellAmount(Amount Mod 10)
Case 100 To 999
SpellAmount = SpellAmount(Fix(Amount / 100)) & " Hundreds" & SpellAmount(Amount Mod 100)
Case 1000 To 999999
SpellAmount = SpellAmount(Fix(Amount / 1000)) & " Thousand" & SpellAmount(Amount Mod 1000)
Case 1000000 To 999999999
SpellAmount = SpellAmount(Fix(Amount / 1000000)) & " Million" & SpellAmount(Amount Mod 1000000)
Case 1000000000 To 2147482999
SpellAmount = SpellAmount(Fix(Amount / 1000000000)) & " Billion" & SpellAmount(Amount Mod 1000000000)
Case Else
SpellAmount = "Cannot Spelling"
End Select
End Function
- Double Click on CommandButton component, add the following code :
Private Sub Command1_Click()
Dim value As Variant
value = SpellAmount(Text1.Text)
Label1.Caption = "Amount : " & Chr(10) & value
End Sub
Runtime Screenshot :
This function will spell the value within range 1 - 2147482999. For the condition of Amount more than 2147482999, i use "Cannot Spelling" string
for the return of the function because if i don't use it, the application will experience an
overflow Error (value out of reach). Although it was so, but i think this
script is powerfull enough to use in a sales application software or accounting
aplication.
1 comments:
Itukan untuk menampilkan bilangan nilai currency yang ada gan.
Kalo untuk membuat nilai currency sendiri gimana?
Jadi kalo belum disetting kode-Nya biasanya hasil input teks box seperti ini, misal : input 10000
nah kalo pengen diubah secara otomatis nilai yang diinput tersebut menjadi 10.000
sesuai fungsi currency itu bagaimana ya?
Dengan cacatan nilai yang kita input tidak ditentukan melainkan sesuai keinginan atau kebutuhan. tolong dibantu ya..??
Post a Comment