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. Trism mas Edi, dah berhasil. Mau minta tolong nih, utk terjemahan nilai pada rapor maupun ijasah yg ada desimalnya dua angka misal 7,05 (tujuh koma nol lima
    trim, sebelumnya………….!!!

  2. Sedikit koreksi mas Edi, utk rupianya masih tertulis huruf kecil, tapi dah tak perbaiki…
    thank

  3. Pak..knapa ya stlh semua langkahnya saya lakukan kemudian saya coba menuliskan angka dan mencoba rumusnya yang keluar : ambiguous name detected : terbilang

  4. @HENDRA: kemungkinan besar anda menuliskan double fungsi itu. Biar mudahnya coba liat contoh yang saya sertakan di artikel ini.

  5. Gmn Cra Agar Terbilangnya awal Kata Huruf Besar Semu? Contoh Rp.122.222.000 ( Seratus Dua Puluh Dua Juta Dua Ratus Dua Puluh Dua Ribu Rupiah ) Kalo yang bs kasih tauu sayaa ……….terimakasihh

  6. Ass.
    Pak, dikomputer saya fungsi terbilangnya cuma aktif ketika pertamakali dijalankan. setelah itu tidak bisa kita fungsikan lagi, fungsi terbilangnya berubah menjadi ” #NAME? “. Saya udah coba telusuri jawaban Bapak lewat komentar rekan-rekan, tapi belum ketemu jawabannya. Saat ini saya memakai microsoft office versi 2007. Bagaimana jalan solusinya? trm ksh.

  7. @Teuku Zulkarnaini: Coba liat di bagian atas ada tombol konfirmasi Blocked Content, di Enable saja.

  8. Ini link dll untuk terbilang bisa digunakan untuk C, C++, PHP, ASP, Power Builder, VB6, .NET, Delphi, Foxpro, VBA. Dll ini tidak membutuhkan runtime dll atau tidak ada ketergantungan dengan dll lain, jadi betul2 berdiri sendiri. berbeda dengan kebanyakan dll terbilang yang membutuhkan runtime dll, misalnya dll terbilang yg dibuat pake VB6 akan membutuhkan msvbvm60.dll.

    http://www.4shared.com/file/100338435/9b509b52/TerbilangTest.html?s=1

    hanya ada 2 function dalam DLL ini :
    – BuatTerbilang(NilaiUang)
    – AboutBRAJAterbilang

  9. om…terima kasih banyak, ini membantu bener buat hidup gw…..makasih banget…lo emang top om

  10. ma kasih atas infonya, udah saya coba dan berhasil
    tapi ada satu yang kurang, gimana cara agar terbilangnya setiap awal kata huruf besar
    CONTOH : Rp 700.000,- (Tujuh Ratus Ribu Rupiah) dengan Rp. 150.000,- (Seratus Lima Puluh Ribu Rupiah). Antara kalimat Ratus dengan Seratus gima cara masukan rumusnya.

  11. thanks untk info nya,sangat2 bermanfaat.
    sekalian saya mau tanya,klu untuk buat tanda : (titik dua) yg menurun ke bawah sampai akhir sell cara nya bagai mana ya?…
    misal nya:

    total :
    :
    :
    :
    :
    :
    :
    nah titik dua nya itu biar bisa langsung di buat di salah satu sell sampai bawah

    Salam
    081

  12. Terima kasih Pak, saya sudah mempraktekannya, tapi masih ada sedikit masalah untuk mengatur huruf kapital pertamanya.

    Salam,
    Amas

  13. Terima kasih Pak… saya dah coba untuk penulisan nilai huruf di raport, n berhasil. tp dimodifikasi sedikit, karena ada Rupiah… heheh
    Trims ya… Sukses selalu…

  14. thank mas, kepake banget..

    pertama udah bisa jalan, tapi wktu buka jendela baru, ko gak bisa lagi, padahal dah di copy lagi di Vb nya..

    ad peringatan :

    ambigous name detected : Terbilang..

    mohon saran nya mas..

    excel 07

    thank b4

  15. aduhh mas,,
    waktu pertama nyoba bsa..
    tapy pas saya coba lgy kok keluar “Name” gtu..
    ap karena sya bkin ny berkalie2..
    saya dah cba buat d halaman yang baru sama aj,,
    gmn ya mas saya buat ny d Excel 2003,,
    saya butuh bwt bikin invoice dan kwitansi..
    trima kasihh sblmm ny…

  16. pak edi..
    dagh berhasill nehh,,
    heheheh
    klw utk menambahkan tanda “#” di awal dan di akhirny gmn ya??

  17. @adi: coba beri rumus =CONCATENATE("# ";Terbilang(A2);" #"), A2 adalah cell data anda….(bisa di ganti sendiri)

  18. Makasih pak Edi untuk rumus terbilangnya, tapi Bagaimana ya kalau penulisannya hanya huruf depannnya saja yang besar dan gimana ya kalau ada koma dan tanpa rupiah

    Rp 150000 Seratus lima puluh ribu rupiah
    Rp 50000 Lima puluh ribu rupuah
    50,75 Lima puluh koma tujuh lima

    Nuwun

  19. Thanks atas scriptnya
    Angka menjadi terbilang, kalau ingin tanpa rupiahnya tidak muncul cukup edit
    Select Case Rupiah
    Case “”
    Rupiah = “nol”
    Case Else
    Rupiah = Rupiah & ” ”
    dan apabila muncul angka 70,25, maka akan dibaca tujuh puluh dan dua puluh sen.
    buat cell dengan menggunakan fungsi if (angkanya dibulatkan kedepan tanpa koma)
    Terima kasih

  20. @Abu Naufal: Coba anda cari baris yang tertulis: TERBILANG = teks & ” Rupiah”, nah tulisan rupiahnya di hapus aja… semoga membantu

  21. Pak nambah lagi kalau mau lihat cell di ms excel misal ada angka :
    10278-1
    10278-2
    10278-3
    10335-1
    10256-1
    10278-4
    13356-25
    10435-12
    kalo saya mau nyari hanya angka 10278,,,dan yang keluar itu semua angka yang berawalan 10278,,gimana caranya yah pak,,makasih sebelumnya

  22. @Abu Nafal: Pakai formula LEFT aja pak, kalo dalam kasus bapak, ketikan =LEFT(cell;5), cell refer ke cell data anda.

  23. pake filter aja..select columnnya trs klik kanan n klik filter, n pilih tanda panah kebawah di kanan atas cell pilih yg mau di filter 😀

  24. dear pak edi,
    mohon info kalau mau memisahkan kata terbilang di bilyet giro, karena kalau jadi satu baris tidak cukup. tks infonya

  25. @sadikin: aduh pak maaf… saya ngga pernah pake C++, mungkin dari syntax saya itu, anda bisa mengambil logika nya terus di ubah ke C++

  26. makasih pak artikelnya saya sudah mencoba dan berhasil, tapi terbilangnya menjadi pembulatan ya pak, gimana caranya agar terbilang sesuai dengan nilainya pak?

  27. Terima Kasih Banyak Pak atas Blog yang anda buat
    Ini sangat membantu saya…

    Dan Skarang saya sedang mendalami MS Access.
    Mungkin Bapak dapat membantu saya untuk belajar lebih mengerti MS access 2003.
    Mungkin seperti dalam pembuatan Queries yang di mana saya harus menggabungkan kelompok proses produksi
    *Contoh:
    Proses produksi terdiri dari 3 proses yaitu BOR, FRAIZ dan CROSS CUT.
    Entryan pada tabel adalah sbb:
    Fraiz sejumlah 3 set
    Bor sejumlah 2 set
    Cross Cut sejumlah 3 set
    Pada Qeuries akan muncul 3 entrian seperti di atas sedang kan saya inginkan menjadi
    PROSES sejumlah 8 set
    MOHON BANTUANnya….
    Saya tunggu balasanya di email saya.
    Sebelum dan sesudahnya saya ucapkan terima kasih.

  28. Salam………….
    terima kasih….artikel ini sangat membantu saya dalam tugas saya..
    tapi saya mau tanya,saya masih gaptek gitu pak, terutama di dalam excel dan menemui masalah dalam pengerjaannya..
    Ceritanya saya di minta membuat program perhitungan pinjaman dengan menggunakan jatuh tempo…sebagai contoh:
    NO Nama TglPinjaman Angsuran Jatuhtempo JmlPembayaran JmlAngsuran
    1 A 12-05-10 Hari 150hari 10.000

    2 B 12-05-10 Minggu 20minggu 20.000
    3 C 12-05-10 Bulan 10bulan 15.000

    Pada tabel diatas terdapat data tanggal pinjaman dan pembayaran angsuran serta Keterangan
    Pembayaran. Saya ingin setiap kali saya memasukkan data Tanggal pembayaran, Pembayaran Angsuran serta keterangan pembayaran, di kolom jatuh tempo secara otomatis menghitung tanggal jatuh tempo berdasar pada tanggal pinjaman dan jumlah pembayaran…kira-kira bagaimana prumusan dalam excelnya yah…?mohon bantuannya…

    Terima kasih…

  29. mohon bantuannya….
    bagaimana cara mangganti huruf terbilang yg sdh ada, dari huruf kecil ke huruf besar atau sebaliknya. Terimakasih

  30. Mas Edi: matur nuwun…..
    tipsnya membantu…
    tapi mas, kadang bisa kadang juga tidak.
    kenapa yach…?

  31. pak, saya pinginnya ga pake huruf kapital semua, jadi misalya 2.142 ==> Dua Ribu Seratus Empat Puluh Dua..
    Soalnya kalo saya pakai punya bapak, keluarnya jd gini : Dua Ribu SeRatus Empat Puluh Dua

    gmn y pak..??
    mohon bantuannya..

    thx b4

  32. Malam semuanya………

    aku sgt tertarik n udah dipraktekkan ternyata hasilnya sangat membantu aku dalam pekerjaan dikantor namun ada sedikit kendala.

    setelah aku coba terbilang yang didepan huruf besar semua namun untuk rupiah ditulis dengan huruf kecil.

    misanya :

    angka Rp. 1.000
    terbilang hasilanya ” SERIBU rupiah ”

    mohon petunjuk.

  33. Selamat pagi rekan-rekan……

    aku mau nambahin pertanyaanku kepada rekan-rekan senior kenapa penulisan angkanya tidak diawali dengan huruf besar dahulu……

    cth…..

    angka : Rp. 1.250
    tulisan : seribu dua ratus lima puluh ribu rupiah

    yang ku maksud,

    angka : Rp. 1.250
    tulisan : Seribu Dua Ratus Lima Puluh Ribu Rupiah

    mohon petunjuk…….

  34. mas Edi… kok g’ permanen yaa…!!
    gimana caranya biar bisa permanen, jadi kerjanya g’ ngulang2 terus….thanks

Leave a Reply

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

CommentLuv badge

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