Membuat Fungsi Terbilang

terbilangMenjawab pertanyaan di artikel saya yang ini, saya langsung mencari arsip programming saya, karena dulu seingat saya pernah membuat fungsi tersebut untuk penulisan kuitansi. Setelah 2 jam cari-cari saya tidak juga menemukan fungsi yang telah saya tulis 5 tahun yang lalu, akhirnya saya mengambil jalan pintas saja, yaitu googling…

Sebetulnya pembuatan fungsi terbilang ini tidaklah susah jika kita mau menggunakan logika kita sedikit. Tapi sayang malam ini, logika saya juga baru ngga mau di ajak kompromi jadi saya akan membuat tutorial-nya saja step-by-step dan scriptnya saya mengambilnya di-sini lalu saya hanya merapikannya sedikit saja. Berikut langkah yang harus anda ambil:

  1. Buka Microsoft Excel.
  2. Tekan Alt + F11 untuk membuka VBA Editor, atau klik menu Tools -> Macro -> Visual Basic Editor.
    menu Visual Basic Editor
  3. Di Visual Basic Editor, klik menu Insert -> Module.
    Insert module menu
  4. Lalu copy-paste script ini ke bidang kerjanya:
    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 = ""
    Exit Function
    End If
     
    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 & " Rupiah"
    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

    shot vbe

  5. Setelah di paste, coba cek script ini dengan klik menu Debug -> Compile VBA Project, jika tidak keluar kotak peringatan apapun biasanya script anda sudah beres.
  6. Tutup jendela Visual Basic Editor anda.

Nah sekarang tinggal coba aja:

  1. Ketik di cell sembarang sederet angka (misal di cell A1), lalu untuk memanggil fungsi terbilang ini (misal di cell A2), tinggal ketik =TERBILANG(A1).
    contoh

Cukup mudah bukan? Anda dapat mengunduh contoh artikel ini di sini.

Just in case, jika macro ini tidak bisa di jalankan di Excel anda (karena secara default Excel menset keamanan terhadap macro ke level tinggi), cek Security macro setting di Excel anda. Untuk melihat konfigurasi Security macro, klik Tools -> Macro -> Security dan pilih opsi Low lalu klik tombol OK. Saran saya pastikan anda sudah mempunya anti virus terinstal di komputer anda untuk menjaga agar virus macro tidak dapat menyerang komputer anda.
set macro security level

Artikel-artikel Yang Berhubungan Dengan Artikel Ini

185 Komentar

hilman  on December 28th, 2011

pak tolong penjelasan dunk tentang penambahan dalam xl.

uang saya 500.000 di kolom A1
kolom A2 ada pemasukan 50.000
begitu kolom ke 3 ada pemasukan 100.000

nah yang jadi pertanyaan kalo penambahan itu berbeda-beda hingga A100, rumusnya gmn?kalo nilai akhirnya di masukan ke kolom F10

masa ditambah satu-satu kayak gini (=A1+A2+A3+A4+A5…A100)

mohon pencerahan

L  on January 1st, 2012

Thks infonya sir, saya share ya pak , trims

reynaldo  on January 13th, 2012

Mohon Bantuannya..

klo terbilang tanggal ada ga yach?

misalnya 12 Desember 2011 or 12/12/2011

saya pengen hasilnya menjadi :

” Dua Belas Desember Dua Ribu Sebelas ”

Mohon petunjuk dan bantuannya

Thanks

Reynaldo

Hendro C  on January 16th, 2012

Ada beberapa pertanyaan yang tak terjawab, misalnya:
1. Bagaimana setiap mau mulai excel tidak usah bikin macro lagi.
Jawab serius: Simpan pake excel template aza

2. Terus bagaimana menghilangkan kata ‘rupiah’
Jawaban tidak serius: Buang tulisan ‘rupiah’ di macro, terus kalau nampilkan lagi, tulis lagi.

3. Terus kalau mau nampilkan terbilangnya huruf Besar di setiap katanya…. (tidak pernah di jawab)

Hendro C  on January 16th, 2012

Saya kasih solusi sedikit untuk masalah poin 2 dan 3.
Solusi:
Fungsi terbilang di modifikasi dikit menjadi
Public Function TERBILANG(x As Double, Optional bRupiah As Boolean = False, Optional bTitleCase As Boolean = False) As String

Keterangan: dua buah variabel tipe boolean (bRupaih dan bTitleCase) bersifat Optional jadi kalau tidak diisi nilainya False semua. Misalkan saya menulis fungsi di Sheet =TERBILANG(A2) berarti bRupiah = False dan bTitleCase = False yang dikonsepnya berarti tidak pake kata ‘rupiah’ dan hurufnya gede semua.

Hendro C  on January 16th, 2012

Langkah berikutnya…
Diakhir fungsi TERBILANG tersebut yang ada tulisan kaya gini.

teks = teks & ratusan(x, False)
TERBILANG = teks & ” Rupiah”
End Function

Modifikasi sedikit menjadi:

teks = teks & ratusan(x, False)
If bRupiah = True And bTitleCase = False Then
TERBILANG = UCase(teks & ” Rupiah”)
ElseIf bRupiah = True And bTitleCase = True Then
TERBILANG = TitleCase(teks & ” Rupiah”)
ElseIf bRupiah = False And bTitleCase = False Then
TERBILANG = UCase(teks)
ElseIf bRupiah = False And bTitleCase = True Then
TERBILANG = TitleCase(teks)
End If

Maksudnya:
Perintah IF… ELSEIF… diatas ngecek apakah bRupiah dan bTitleCase di set True atau sebaliknya (False)

Hendro C  on January 16th, 2012

Kemudian langkah terakhir
buat Fungsi TitleCase (Untuk mengubah huruf awalnya gede semua), seperti berikut ini.

Function TitleCase(sInput As String) As String
Dim lngString As Long, chrTmp As String, sTmp As String, sLast As String
sTmp = CStr(LCase(sInput))
sLast = ” ”

For lngString = 1 To Len(sTmp)
chrTmp = Mid$(sTmp, lngString, 1)
If sLast “z” And sLast = “a” And chrTmp = “à” Or sLast <= "þ") Then
Mid$(sTmp, lngString, 1) = UCase$(chrTmp)
End If
End If
sLast = chrTmp
Next lngString
TitleCase = sTmp
End Function

Hendro C  on January 16th, 2012

Terus menggunakan fungsinya bagaimana? Sama seperti cara sebelumnya, jika A2 berisi 1234, maka, jika ditulis:
=TERBILANG(A2;FALSE;FALSE)
atau cukup ditulis:
=TERBILANG(A2)
menghasilkan: SERIBU DUA RATUS TIGA PULUH EMPAT

Jika ditulis:
=TERBILANG(A2;TRUE;FALSE)
atau cukup ditulis:
=TERBILANG(A2;TRUE)
menghasilkan: SERIBU DUA RATUS TIGA PULUH EMPAT RUPIAH

Jika ditulis:
=TERBILANG(A2;FALSE;TRUE)
atau cukup ditulis:
=TERBILANG(A2;;TRUE)
menghasilkan: Seribu Dua Ratus Tiga Puluh Empat

terus jika ditulis:
=TERBILANG(A2;TRUE;TRUE)
menghasilkan: Seribu Dua Ratus Tiga Puluh Empat Rupiah

Catatan: Jika penulisan rumus menghasilkan error, coba ganti titik koma(;) dengan koma (,) misalkan diubah menjadi
=TERBILANG(A2,TRUE,TRUE)

THANK’S

Hendro C  on January 16th, 2012

Oh ya, Fungsi TitleCase bisa digunakan untuk mengubah huruf awal gede dan huruf berikutnya kecil.

Misal Cell A5 menggandung teks:

poLItekNIK NegERi poNTIANaK

Jika kita gunakan fungsi diatas maka ditulis

=TITLECASE(A5)

akan menghasilkan:

Politeknik Negeri Pontianak

Fungsi ini mirip Fungsi PROPER (Fungsi Built-in Excel), cara menggunakannya mirip:

=PROPER(A5)

THANK’S

Bart. Edi  on January 16th, 2012

@reynaldo: wah harus buat script nya lagi tuh pak….

Bart. Edi  on January 17th, 2012

@Hendro: terima kasih atas jawaban-jawaban nya Pak, koreksi saja mungkin untuk fungsi TITLECASE yang Bapak tulis bisa menggunakan saja PROPER -> =PROPER(TERBILANG(XX))….

Hendro C  on January 17th, 2012

Yup, Fungsi TITLECASE emang mirip Fungsi built-in Excel PROPER. Saya hanya mencoba memberi sampel untuk yang lagi seneng ngotak-ngatik macro-nya excel.
Hendro C´s last blog post ..PENGUMUMAN PENGAMBILAN FOTO UNTUK KELENGKAPAN e-IDP

Hendro C  on January 17th, 2012

Oops, koq ada link dikomentarku, admin tolong dihapus linknya. Thank’s.
Hendro C´s last blog post ..PENGUMUMAN PENGAMBILAN FOTO UNTUK KELENGKAPAN e-IDP

Johan  on January 19th, 2012

thx gan, sangat manjur, tapi hanya ngebacanya hanya sampai bilangan 100 triliun ya, cara menaikkan bacaannya gimana yah gan ????

Bart. Edi  on January 23rd, 2012

@Johan: masalahnya saya ngga pernah buat kuitansi sampai di atas 100 triliun pak, jadi untuk lebih dari itu harus ubah script nya lagi pak.

lely  on February 2nd, 2012

trimakasih banyak prof Edi.. 😀

anto  on February 11th, 2012

thanx y mas eddy….lancar marapat macross terbilangnya…..pernah saya dapet yg 52.251.600 dibacanya Lima puluh dua juta dua ratus lima puluh seribu enam ratus rupiah…..
klo macros dr mas eddy maknyossss…..semoga sukses n tmbh pintar

Fungsi Terbilang Di Microsoft Access « ndsaputri  on March 5th, 2012

[…] kasih atas tanggapan yang menyenangkan di artikel Membuat Fungsi Terbilang di Microsoft Excel, melalui email atau komentar. Lalu di halaman ini, ada permintaan atas artikel pembuatan fungsi […]

LIANA  on March 17th, 2012

thank ya mas….semoga bisa
berbagi ilmu yang lain
kerjaan saya terbantu nie:)

IAN  on March 20th, 2012

thanks… its work…

panjul  on April 20th, 2012

jasa konversi file: http://sip.net46.net/fileconversion

Riza Syakbandi  on June 21st, 2012

Its works!!!
Selamat, sampai saat ini ilmu anda masih bermanfaat, thanks sob…..
Thank you very much…

yudi  on July 11th, 2012

terima kasih mas atas sharing ilmunya. berguna buat tugas saya. thx

marco  on July 18th, 2012

mas , mau nanya ni , kalau mau buat Sebelas Juta gmna ya ?
soal ny klo pake program yg ini ntar hasilnya : SeBelas Juta
membuat B di kata “Belas” jadi huruf kecil gmna yaa mas ?
thanks before yaa
^^

chi-tin  on August 29th, 2012

keren infonya pak, thanks a lot
tadinya saya cuma mau tau kalu terbilang seperti Rp. 5.851.759,- ini dibacanya apa ( hehehe…. ) tapi setelah cari2 malah ketemu info yg keren nie. akhirnya saya bukan cuma tau terbilangnya, malahan bisa copy rumusnya…
makasih banyak yo pak

chi-tin  on August 29th, 2012

o ya pak, ada yg ketinggalan, bagaimana jika inging menuliskan terbilang itu dalam 2 baris/lebih?
bisa ga kalo penulisan rupiahnya jg menggunakan huruf capital seperti angka terbilangnya?

terimakasi

chi-tin  on August 29th, 2012

@ Marco : kalau saya menggunakan rumus ini, tulisannya SEBELAS JUTA RUPIAH, tidak ada masalah..

@ pak edi : saya sudah ketemu cara untuk membuat tulisan rupian menjadi huruf capital, trimakasih

Eva  on January 17th, 2013

mas sy gak bisa”,,,
keluar perintah #NAME#… solusinya gmn ya mas,,,
trimss…

Eva  on January 17th, 2013

mas sy blm bisa”,,, kluar #NAME#,,
gmn mas solusix,, trims

Herman Leftungun  on March 21st, 2013

Mantap

rifai  on December 23rd, 2013

Kalau 123,123 (seratus dua puluh tiga koma satu dua tiga bgmn caranya gan?? Trims infonya sebelumnya

RIFAI  on December 24th, 2013

kalau 123,123 menjadi tertulis “seratus dua puluh tiga koma satu dua tiga” bagaimana caranya mas

maria rosa  on April 30th, 2014

bagaimana cara menghilangkan”Ambiguous name detected:terbilang?, nuwun

hadi  on July 16th, 2014

ada yang punya rumus bikin giro bca di excel?
please gaptek soalnya :<

yusuf  on March 14th, 2016

Mas gmna caranya agar hurufnya menjadi huruf kecil semua dan ad tanda kurung pada hurufnya

Contohnya kya gini mas :
700000 untuk terbilangnya menjadi (tujuh ratus ribu rupiah)

Mohon bantuanx mas

Berikan opini anda tentang artikel ini

CommentLuv badge