Jumat, 11 Mei 2012

FUNGSI TERBILANG



(Seri Komputer)
 
       Selamat bertemu kembali teman-teman pendidik dan tenaga kependidikan, para pemerhati pendidikan dan para pelajar serta para mahasiswa. Sudah lama juga saya tidak menulis artikel untuk mengisi blog sebagai media pendidikan dan pembelajaran bagi kita semua. Kali ini saya ingin memberikan satu materi yang sangat berguna bagi para pemakai Microsoft Excel yang ada kaitannya dengan kegiatan bisnis dan akuntansi.
       Materi yang saya maksud adalah Fungsi Terbilang. Satu fungsi yang dapat digunakan untuk menuliskan kalimat dari angka-angka numerik sebagai bilangan biasa maupun besarnya satuan uang. Contoh aplikasinya adalah konversi angka menjadi kata, menuliskan kalimat dari besarnya uang dari kuitansi, nota tagihan, berita acara penutupan kas, surat perjanjian, dan sebagainya.
       Fungsi Terbilang ini disusun dengan memanfaatkan Visual Basic for Applications (VBA) yang ada pada Excel. Fasilitas ini sering disebut sebagai fungsi Macro. Macro adalah kumpulan perintah dan/atau fungsi yang digabung menjadi perintah utama untuk menyelesaikan kasus secara otomatis.VBA dalam Excel ini merupakan kombinasi yang terintegrasi antara lingkungan pemrograman (Visual Basic Editor) dengan bahasa pemrograman (Visual Basic). Integrasi tersebut memudahkan kita (pengguna) untuk mendesain dan membuat program Visual Basic. VBA dalam bahasan ini hanya dapat dibangun pada aplikasi Excel untuk pengendalian fungsi aplikasi melalui berbagai obyek terprogram.
       Untuk memperoleh fungsi terbilang yang sudah jadi dan tinggal dimanfaatkan untuk aplikasi Nota dan Kuitansi dalam satu halaman tercetak (misal untuk laporan BOS Sekolah atau untuk aplikasi bisnis dan niaga lainnya), aplikasi laporan kas opname (penutupan kas) atau apapun yang teman-teman kehendaki dapat memesan langsung melalui e-mail: hudori.drs@gmail.com atau SMS 08155937758. Bagi teman-teman yang ingin bereksperimen langsung, dapat membuat sendiri sesuai listing program berikut:

Dim Huruf(0 To 9) As String
Dim Ax(0 To 3) As Double

Function INIT_Angka()
   Huruf(0) = ""
   Huruf(1) = "satu "
   Huruf(2) = "dua "
   Huruf(3) = "tiga "
   Huruf(4) = "empat "
   Huruf(5) = "lima "
   Huruf(6) = "enam "
   Huruf(7) = "tujuh "
   Huruf(8) = "delapan "
   Huruf(9) = "sembilan "
End Function

Function dgratus(Angka As Double) As String
   Temp = ""
   INIT_Angka
   panjang = Len(Trim(Str(Angka)))
   nilai = Right("000", 3 - panjang) + Trim(Str(Angka))
   For y = 3 To 1 Step -1
      Ax(y) = Mid(nilai, y, 1)
   Next y
   Select Case Ax(1)
      Case Is = 1
         Temp = "seratus "
      Case Is > 1
         Temp = Huruf(Val(Ax(1))) + "" + "ratus "
      Case Else
         Temp = ""
   End Select

   Select Case Ax(2)
      Case Is = 0
         Temp = Temp + Huruf(Val(Ax(3)))
      Case Is = 1
         Select Case Ax(3)
            Case Is = 1
               Temp = Temp + "sebelas "
            Case Is = 0
               Temp = Temp + "sepuluh "
            Case Else
               Temp = Temp + Huruf(Val(Ax(3))) + "belas "
         End Select
      Case Is > 1
         Temp = Temp + Huruf(Val(Ax(2))) + "puluh "
         Temp = Temp + "" + Huruf(Val(Ax(3)))
   End Select
   dgratus = Temp
End Function

Function dghuruf(Angka As Double) As String
   Dim ratusan(0 To 6) As String
   Dim sebut(0 To 4) As String
   sebut(1) = "ribu "
   sebut(2) = "juta "
   sebut(3) = "milyar "
   sebut(4) = "trilyun "
   panjang = Len(Trim(Str(Angka)))
   kali = Int(panjang / 3)
   If Int(panjang / 3) * 3 <> panjang Then
      kali = kali + 1
      sisa = panjang - Int(panjang / 3) * 3
      nilai = Right("000", 3 - sisa) + Trim(Str(Angka))
    Else
      nilai = Trim(Str(Angka))
   End If

   For x = 0 To kali
      ratusan(kali - x) = Mid(nilai, x * 3 + 1, 3)
   Next x

   For y = kali To 1 Step -1
      If y = 2 And Val(ratusan(y)) = 1 Then
         Temp = Temp + "seribu "
       Else
         If Val(ratusan(y)) = 0 Then
            Temp = Temp
          Else
            Temp = Temp + dgratus(Val(ratusan(y)))
            Temp = Temp + sebut(y - 1)
         End If
      End If
   Next y
   dghuruf = Temp
End Function

Contoh Aplikasi Fungsi Terbilang untuk Konversi Angka


ANGKA
TERBILANG
1.250
seribu dua ratus lima puluh 
23.500
dua puluh tiga ribu lima ratus
175.350
seratus tujuh puluh lima ribu tiga ratus lima puluh
2.135.475
dua juta seratus tiga puluh lima ribu empat ratus tujuh puluh lima
125.785.365
seratus dua puluh lima juta tujuh ratus delapan puluh lima ribu tiga ratus enam puluh lima
2.325.435.890
dua milyar tiga ratus dua puluh lima juta empat ratus tiga puluh lima ribu delapan ratus sembilan puluh
8.250.570.556.000
delapan trilyun dua ratus lima puluh milyar lima ratus tujuh puluh juta lima ratus lima puluh enam ribu


Rp1.250
seribu dua ratus lima puluh rupiah
Rp25.475
dua puluh lima ribu empat ratus tujuh puluh lima rupiah
Rp425.750.000
empat ratus dua puluh lima juta tujuh ratus lima puluh ribu rupiah

Konversi angka digunakan perintah macro =dghuruf(sel)
Konversi angka satuan uang digunakan =concatenate(dghuruf(sel); “rupiah”)
Selamat mencoba dan semoga berhasil.