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

186 comments

  1. Wahh tdk bisa diterapkan sama sekali.
    Ketika dicopykan pada line pertama :

    1 Public Function TERBILANG(x As Double) As String

    selalu muncul peringatan :

    FUNCTION
    Must be first statement of the line

    Sehingga script VB ya anda tuliskan tdk dpt diaplikasikan sama sekali. Yg menjadi pertanyaan, apaah anda sdh mencobanya script ini sebelum ditulikan ke dalam Blog Abda,

  2. sudah dong pak, ngga mungkin saya ngga nyoba dulu buat apa juga saya menulis sesuatu tentang hal yang tidak saya mengerti, nyatanya juga saya bisa kasi screenshoot….. ato anda bisa download contoh-nya. Apakah anda juga copy line numbernya? karena dari error statement anda keluar 1 Public Function… yang di copy syntax nya saja, jangan sama line number nya. Tapi saya sudah hilangkan line number nya di WP-syntax saya sehingga bisa membantu anda untuk mengatasi hal tersebut. Semoga membantu…

  3. Pak kalau memunculkan kata RUPIAH nya bagaimana. soalnya kan di kwitansi hrus terbilang kata rupiah
    thanks

  4. makasi bung edi..rada puyeng juga pas bikin kwitansi masa ngetik manual hehehe..thx a lot ya..
    ditunggu tips2 lainnya nih..

  5. Dari dulu saya baca-baca di toko buku gak nemu-nemu,
    nanyak sana sini blm ada jawaban.
    Alhamdulillah .. hari ini secara … saya nemu di facebook.

    Btw, fungsi tersebut gak bisa otomatis kluar saat kita buka halaman baru? gimana biar bisa paten?
    Mohon pencerahan

    Thx.

    artikel terakhir Agung Sinatrya | MBAK TIEN JADI TKW

  6. @Agung Sinatrya: Coba saya bantu ya… Macro akan attach ke satu file tertentu saja. Jadi jika bapak buat file baru, bapak harus attach lagi ke module Macro nya lagi (copy paste aja). Menurut percobaan saya, kalau saya buka file yang udah terattach macro tersebut, fungsi ini langsung dieksekusi. Maka dari itu coba cek di option (Tools -> Options) lalu klik tab Calculation lalu pastikan Calculation di mode Automatic. Semoga membantu.

  7. mas kalau di excel 2007 menu security macro di tools ngga ada?soalnya blm bisa2 nih…sory gaptek

  8. @kus: coba saya bantu ya… Untuk mengeluarkan menu macro di Office 2007, anda bisa temukan di menu View -> Macros. Memang untuk Visual Basic saya ngga melihat sih, anda harus customize sendiri dengan klik kanan di ribbon bar lalu pilih menu Customize Quick Access Bar. Nanti di Customize pilih Developer tab lalu tambahkan Visual Basic. Atau cara paling gampangnya, panggil aja dengan Alt + F11. Semoga terbantu.

  9. bos…. makasih dah ngasih cara bikin fungsi terbilang… sangat kepake bgt di kantor.. cuman masih ada kurangnya.. gimana cara nambahin kata rupiah di tiap terbilangnya..???? apa yg harus saya tambahkan??

  10. @Erwin: Coba saya bantu dikit ya. Hal itu cukup simpel pak, cara 1: bisa di fungsi Terbilang itu di baris agak akhir yang statementnya:
    teks = teks & ratusan(x, False)
    TERBILANG = teks
    End Function

    Nah di TERBILANG=teks itu di tambahi dengan TERBILANG = teks & " rupiah"

    Atau cara kedua, di sheet waktu kita manggil function ini, di tambahai aja menjadi =TERBILANG(A1) + โ€ rupiahโ€

    Semoga membantu.
    Semoga membantu pak.

  11. pa saya ingin menampilkan foto yang ada di worksheet or eorkbook yang lain gimana ya?

  12. @nurina: coba ya tak cariin, karena saya belum pernah kerjakan proyek yan detail sampe desimalnya ๐Ÿ˜€

  13. Yth. Bapak Edi Susanto

    Pak Edi saya sudah coba dan berhasil. Namun bagaimana caranya kalau diaplikan di lembarkerja daftar gaji yang sudah saya buat.

  14. brother ..

    it’s an important n so nice blog for all comp users ..
    i’m fully appreciate with you bro …

    kalo bisa di tambahin query untuk versi inggrisnya nda??

    gw slama ini gk pernah berhasil untuk terbilang in english dengan beberapa karakteristik bilangan di bahasa inggris…

    pliz help me…

    thanx b4

    best regards..

  15. @Sutikno: Pak Sutikno, untuk aplikasi-nya seperti apa pak? Saya kan belum melihat lembar kerja daftar gaji yang Bapak kerjakan? Tapi intinya tinggal ketik aja =TERBILANG(cell_data_asal) untuk memanggil fungsi ini di mana saja selama script VBA nya sudah di inject ke Workspace nya.

  16. @alecz: OK deh, nanti cobas saya publish untuk yang berbahasa Inggris.

  17. PAGI PAK, MAU TANYA NIH UNTUK YANG TERBILANG INI TADINYA SAAT DICOBA BISA TAPI SEKARANG FILE ITU SAYA BUKA KOK JADI GAK BISA YA MUNCULNYA DI KOLOM TERBILANG ITU #NAME? SAYA CEK DI VISUAL BASICNYA MASIH ADA DATANYA PAK, MASALAHNYA ADA DI MANA YA? TKS (MAKLUM NIH GAPTEK JADI BINUN DEH)

  18. @sandra: langganan aja lewat feedblitz saya mbak. Ada di bagian bawah blog ini, tinggal masukan email anda aja…

  19. Mas, saya sangat terbantu dengan artikel ini. tetapi ada pertanyaan nih: fungsi terbilang sudah jalan, tetapi kalo buka lembar excel baru harus diulang kembali dari awal ya? … sepertinya masalah saya sama dgn Mas Krist … thanks ya mas sebelumnya.

  20. Mas, boleh request nggak nih … fungsi terbilang ini sudah pernah dibuat dalam versi “english”? … thanks lagi sebelumnya mas.

  21. @Jonathan: Macro melekat pada satu worksheet aja pak. Kalo anda buat worksheet baru harus di tempelkan lagi macro nya…

  22. @NURYADI: sama-sama pak.
    Wong Blora sing urip nang kota Jogja… hehehe

  23. Berhasil….., tapi aku butuh dengan tanda koma, gimana boss …..????

  24. Bermanfaat banget artikelnya sudah saya coba berhasil.Tetapi tidak diikuti dengan kata RUPIAH coba mas script nya dirubah biar sempurna,makasih mas edi.

  25. @M.Samsul Bahri: Ya, karena banyak yang minta gitu, udah saya tambahi pak.

  26. Dear Pak Edi,
    thx banget dengan artikelnya pekerjaan di kantor saya jadi terbantu.
    Tetep smangat kembangin rumus2 canggih lainnya ya pak
    Saya tunggu…

  27. @merlin: ah, senang bisa menulis artikel yang bisa sedikit bermanfaat bagi rekan-rekan

  28. @Aurino: Hi, blog anda juga luar biasa lho… salut.. mari kita tetap berbagi ilmu yang kita miliki untuk Indonesia…

  29. terima kasih atas ilmunya pak, rumus terbilangnya sudah saya coba dan berhasil.
    sangat membantu terhadap pekerjaan saya membuat SK Kenaikan Gaji Berkala PNS yang ada terbilangnya.
    tapi saya mohon bantuannya membuat rumus mencari masa kerja pns dalam pembuatan impassing gaji baru pns. misalnya pns bergolongan 3a, tmt golongannya 1-3-2009 dengan masa kerja 3 tahun 10 bulan. saya ingin menyesuaikan masa kerja pns ini ke 1-1-2009. jadi masa kerja pada 1-1-2009 = 3 tahun 8 bulan. atas bantuan bapak saya ucapkan terima kasih

  30. @nouval: sama-sama pak, saya senang kalo bisa sedikit bermanfaat buat Bapak…

  31. Makasih banyak mas Edi, udah dicoba sih bisa..
    tp nanti kalo udah dapet yg desimal, trus english version, langsung please di update yah..

    trus apakah kalo penulisan US Dollar, sama aja kaya rumus penambahan Rupiah? cuma ganti rupiah dengan Dollar gt yah?

    Trims a lot.. Tuhan Berkati..

  32. Trm ksh Pak! Saya tertarik dengan kupasan di artikel Bapak dan pingin bergabung, tapi bagaimana caranya ya ???

  33. @Teuku Zulkarnaini: Bisa lewat email atau RSS dibagian bawah blog ini.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.