Dalam dokumen seperti Invoice dan Kwitansi, umumnya dicantumkan teks penyebutan angka, yang biasanya dikenal dengan istilah "terbilang".
Berikut ini adalah function Terbilang dalam Access VBA. Function ini dibuat oleh ChatGPT, dan sudah bisa menyebutkan angka desimal dalam koma, jika ada.
Function fTerbilang(pAngka As Double) As String
Dim tSatuan As Variant, tBelasan As Variant, tPuluhan As Variant
Dim tHasil As String, tInteger As Double, tDecimal As Double
' Definisi angka dalam teks
tSatuan = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan")
tBelasan = Array("Sepuluh", "Sebelas", "Dua Belas", "Tiga Belas", "Empat Belas", "Lima Belas", "Enam Belas", "Tujuh Belas", "Delapan Belas", "Sembilan Belas")
tPuluhan = Array("", "", "Dua Puluh", "Tiga Puluh", "Empat Puluh", "Lima Puluh", "Enam Puluh", "Tujuh Puluh", "Delapan Puluh", "Sembilan Puluh")
' Pisahkan bilangan bulat dan desimal
tInteger = Int(pAngka)
tDecimal = Round((pAngka - tInteger) * 100)
' Fungsi konversi angka ke teks
Dim tAngka As Double, tTemp As String
tAngka = tInteger
Do While tAngka > 0
If tAngka < 10 Then
tTemp = tSatuan(tAngka)
ElseIf tAngka < 20 Then
tTemp = tBelasan(tAngka - 10)
ElseIf tAngka < 100 Then
tTemp = tPuluhan(Int(tAngka / 10)) & " " & tSatuan(tAngka Mod 10)
ElseIf tAngka < 1000 Then
If tAngka = 100 Then
tTemp = "Seratus"
ElseIf tAngka < 200 Then
tTemp = "Seratus " & fTerbilang(tAngka Mod 100)
Else
tTemp = tSatuan(Int(tAngka / 100)) & " Ratus " & fTerbilang(tAngka Mod 100)
End If
ElseIf tAngka < 1000000 Then
If tAngka = 1000 Then
tTemp = "Seribu"
ElseIf tAngka < 2000 Then
tTemp = "Seribu " & fTerbilang(tAngka Mod 1000)
Else
tTemp = fTerbilang(Int(tAngka / 1000)) & " Ribu " & fTerbilang(tAngka Mod 1000)
End If
ElseIf tAngka < 1000000000 Then
tTemp = fTerbilang(Int(tAngka / 1000000)) & " Juta " & fTerbilang(tAngka Mod 1000000)
ElseIf tAngka < 1000000000000# Then
tTemp = fTerbilang(Int(tAngka / 1000000000)) & " Miliar " & fTerbilang(tAngka Mod 1000000000)
Else
tTemp = "Angka terlalu besar"
End If
tHasil = Trim(tHasil & " " & tTemp)
Exit Do
Loop
' Konversi bagian desimal jika ada
If tDecimal > 0 Then
tHasil = Trim(tHasil) & " Koma " & fTerbilang(tDecimal)
End If
fTerbilang = Trim(tHasil)
End Function
Cara Pemakaian:
- Copy-paste code di atas ke dalam sebuah general module (modul umum yang bisa dibuat dengan perintah ribbon CREATE > Module).
- Gunaka ekspresi seperti contoh berikut ini untuk mendapatkan teks terbilang:
tTerbilang = fTerbilang(nNilai)
jika nNilai berisi nilai 1.234.567,89 maka hasilnya adalah: Satu Juta Dua Ratus Tiga Puluh Empat Ribu Lima Ratus Enam Puluh Tujuh Koma Delapan Puluh Sembilan