Penerapan Algoritma Fungsi Terbilang Pada Aplikasi Perkantoran
1
Jurnal Teknologi Informatika & Komputer| Volume 2 No. 1, Maret 2015
PENERAPAN ALGORITMA FUNGSI TERBILANG PADA APLIKASI PERKANTORAN
Oleh : Susi Oktriani
Universitas MH Thamrin Jakarta [email protected]
Abstract
Calculated from figures translate sentences into sentences generally require time and careful ketilitian using computer applications users can easily maker to value number, to get results is by using the function fairly, somewhat function algorithm application This is one way how to translate the numbers into in words with Visual Basic for Applications and will be recognized as a macro. The functions in the list of programs actually used later can be used in MS Office or other Visual Basic applications, but in this discussion is limited to use in MS Excel
Sebagai tertib suatu administasi bidang keuangan adalah dengan menerbitkan kwitansi, pada penerbitan kwitansi biasanya terdapat nilai nominal dalam bentuk angka dan terbilang nominal, menerjemahkan kalimat terbilang dari angka menjadi kalimat umumnya membutuhkan waktu dan ketilitian yang cermat dengan menggunakan aplikasi komputer pembuat kwitansi dapat dengan mudah untuk membilangkan nilai tersebut
Algoritma fungsi terbilang aplikasi Ini salah satu cara bagaimana menerjemahkan angka ke dalam kata-kata dengan Visual Basic for Application dan nantinya akan dikenali sebagai macro. Fungsi dalam list program yang dipakai nantinya sebenarnya dapat digunakan pada aplikasi MS Office atau aplikasi Visual Basic lainnya namun pada bahasan ini dibatasi pada penggunaan dalam aplikasi MS Excel. Bagi yang sudah terbiasa pada penggunaan Visual Basic Editor pada MS Excel dapat langsung ke bagian list program. Fungsi tersebut akan berguna:
Menerjemahkan angka ke dalam kata-kata sampai dengan 15 digit termasuk nilai desimal (ratusan trilian apabila tanpa nilai desimal).
Angka 15 digit ini merupakan nilai yang dapat ditampung MS Excel sebelum dirubah ke nilai exponen.
Desimal yang diterjemahkan sampai dengan dua angka dibelakang koma.
Mengenal 4 Style, yaitu cara penulisan huruf besar / kecil-nya.
Bebas menggunakan satuan yang diinginkan.
Algoritma Fungsi Terbilang
Masukkan nilai dan diinisialkan sebagai n.
Buat deklarasi array huruf dengan value dari {“ ” …. “ sebelas ” }.
Cek nilai n :
1. Jika kurang dari 12, maka kembalikan value dengan memanggil variabel huruf dengan indeks array n dan langsung ke langkah 3.9. Jika tidak lanjut ke langkah 3.2. Hasilnya simpan di dalam satu variabel misalnya v.
2. Jika kurang dari 20, kembalikan value dengan n – 10 diimbuhi kata belas dan hasil ditambahkan ke value v dan langsung ke langkah 3.9. Jika tidak < 20, lanjut ke langkah 3.3.
3. Jika kurang dari 100, untuk mendapatkan kata pertama maka ulang ke mulai langkah 3 dengan n sejumlah n/10. Lalu langsung ke c dengan kata selanjutnya ulang langkah 3 dengan n senilai n modulus 10 dan hasil ditambahkan ke value v dan langsung ke langkah 3.9. Jika tidak kurang dari 100, lanjut ke langkah 3.4.
4. Jika kurang dari 200, kata pertama diberi
“seratus” kata selanjutnya ulang langkah 3 dengan n senilai n – 100 dan hasil
Penerapan Algoritma Fungsi Terbilang Pada Aplikasi Perkantoran
2
Jurnal Teknologi Informatika & Komputer| Volume 2 No. 1, Maret 2015 ditambahkan ke value v dan langsung ke langkah 3.9. Jika tidak kurang dari 200, lanjut ke langkah 3.5.
5. Jika < 1000 kembali ke langkah 3 dengan n senilai n / 100, dan valuenya diimbuhi kata “ratus” kemudian untuk kata selanjutnya masukkan nilai n dengan n modulus 100 dan hasil ditambahkan ke value v dan langsung ke langkah 3.9. Jika tidak < 1000 lanjut ke langkah 3.6.
6. Jika < 2000 masukkan kata “seribu” dan kembali ke langkah 3 dengan n senilai n – 1000 dan hasil ditambahkan ke value v dan langsung ke langkah 3.9. Jika tidak < 2000 lanjut ke langkah 3.7.
7. Jika < 1000000, kembali ke langkah 3 dengan n senilai n / 1000. Dan imbuhi hasilnya dengan kata “ribu”. Lalu untuk kata selanjutnya kembali ke langkah 3 dengan n senilai n modulus 1000 dan hasil ditambahkan ke value v dan langsung ke langkah 3.9. Jika tidak < 1000000 lanjut ke langkah 3.8.
8. Jika < 1000000000, kembali ke langkah 3 dengan n senilai n / 1000000, kemudian hasilnya tambahkan kata “juta” lalu kata untuk selanjutnya n senilai n modulus 1000000 dan kembali ke langkah 3.
Kemudian simpan hasil dan tambahkan ke v dan langsung ke langkah 3.9.
9. Kumpulkan value v.
Cetak nilai v.
Selesai.
Langkah – langkahnya adalah sebagai berikut :
Buka aplikasi MS Excel, apabila secara otomatis tidak muncul workbook baru (atau Book 1) maka bukalah Workbook baru dari File > New… (Ctrl+N);
Pada workbook baru pada sheet mana saja pilihlah Tools > Macro > Visual Basic Editor atau dengan shortcut Alt+F11.
Setelah itu akan muncul window baru bertitle Microsoft Visual Basic. Setelah itu, pilih Insert > Module. Pada Module 1 yang baru dibuat, letakkan kursor pada bagian Code.
Apabila belum muncul atau beralih ke bagian tersebut pilih View > Code (F7).
Pada lembar kosong tersebut copy paste-kan list program dibawah ini
01 'Fungsi Terbilang dengan VBA untuk MS Office 002 'Ditulis oleh maseko
003
004 'Fungsi penterjemahan masing-masing angka 005 Private Function KeKata(Nomor)
006
TrjKata = Array("", "satu", "dua", "tiga",
"empat", "lima", "enam", "tujuh", "delapan",
"sembilan")
007 KeKata = TrjKata(Nomor) 008 End Function
009
010 'Mulai penulisan Fungsi Terbilang 011 Public Function terbilang(Nilai_Angka,
Optional Style = 4, Optional Satuan = "") 012 Angka = Fix(Abs(Nilai_Angka))
013 'Desimal dibelakang koma
014 des1 = Mid(Abs(Nilai_Angka), Len(Angka) + 2, 1) 015 des2 = Mid(Abs(Nilai_Angka), Len(Angka) + 3, 1) 016
017 If des2 = "" Then
018 If des1 = "" Or des1 = "0" Then 019 Koma = ""
020 Else
021 Koma = " koma " & KeKata(des1) 022 End If
023 ElseIf des2 = "0" Then 024 If des1 = "0" Then
Penerapan Algoritma Fungsi Terbilang Pada Aplikasi Perkantoran
3
Jurnal Teknologi Informatika & Komputer| Volume 2 No. 1, Maret 2015 025 Koma = ""
026 ElseIf des1 = "1" Then 027 Koma = " koma sepuluh"
028 Else
029 Koma = " koma " & KeKata(des1) & " puluh"
030 End If 031 Else
032 If des1 = "0" Then
033 Koma = " koma nol " & KeKata(des2) 034 ElseIf des1 = "1" Then
035 If des2 = "1" Then 036 Koma = " koma sebelas"
037 Else
038 Koma = " koma " & KeKata(des2) & " belas"
039 End If 040 Else
041 Koma = " koma " & KeKata(des1) & "
puluh " & KeKata(des2) 042 End If
043 End If
044 'Misahin Angka
045 No1 = Left(Right(Angka, 1), 1) 046 No2 = Left(Right(Angka, 2), 1) 047 No3 = Left(Right(Angka, 3), 1) 048 No4 = Left(Right(Angka, 4), 1) 049 No5 = Left(Right(Angka, 5), 1) 050 No6 = Left(Right(Angka, 6), 1) 051 No7 = Left(Right(Angka, 7), 1) 052 No8 = Left(Right(Angka, 8), 1) 053 No9 = Left(Right(Angka, 9), 1) 054 No10 = Left(Right(Angka, 10), 1) 055 No11 = Left(Right(Angka, 11), 1) 056 No12 = Left(Right(Angka, 12), 1) 057 No13 = Left(Right(Angka, 13), 1) 058 No14 = Left(Right(Angka, 14), 1) 059 No15 = Left(Right(Angka, 15), 1) 060 'Satuan
061 If Len(Angka) >= 1 Then
062 If Len(Angka) = 1 And No1 = 1 Then 063 Nomor1 = "satu"
064 ElseIf Len(Angka) = 1 And No1 = 0 Then 065 Nomor1 = "Nol"
066 ElseIf No2 = "1" Then 067 If No1 = "1" Then
068 Nomor1 = "sebelas"
069 ElseIf No1 = "0" Then 070 Nomor1 = "sepuluh"
071 Else
072 Nomor1 = KeKata(No1) & " belas"
073 End If 074
075 Else
076 Nomor1 = KeKata(No1) 077 End If
078 Else
079 Nomor1 = ""
080 End If 081 082 'Puluhan
083 If Len(Angka) >= 2 Then 084 If No2 = 1 Or No2 = "0" Then 085 Nomor2 = ""
086 Else
087 Nomor2 = KeKata(No2) & " puluh "
088 End If 089 Else
090 Nomor2 = ""
091 End If 092 'Ratusan
093 If Len(Angka) >= 3 Then 094 If No3 = "1" Then 095 Nomor3 = "seratus "
096 ElseIf No3 = "0" Then 097 Nomor3 = ""
098 Else
099 Nomor3 = KeKata(No3) & " ratus "
100 End If 101 Else
102 Nomor3 = ""
103 End If 104 'Ribuan
105 If Len(Angka) >= 4 Then
106 If No6 = "0" And No5 = "0" And No4 = "0" Then 107 Nomor4 = ""
108 ElseIf (No4 = "1" And Len(Angka) = 4) Or (No6
= "0" And No5 = "0" And No4 = "1") Then 109 Nomor4 = "seribu "
110 ElseIf No5 = "1" Then
Penerapan Algoritma Fungsi Terbilang Pada Aplikasi Perkantoran
4
Jurnal Teknologi Informatika & Komputer| Volume 2 No. 1, Maret 2015 111 If No4 = "1" Then
112 Nomor4 = "sebelas ribu "
113 ElseIf No4 = "0" Then 114 Nomor4 = "sepuluh ribu "
115 Else
116 Nomor4 = KeKata(No4) & " belas ribu "
117 End If 118
119 Else
120 Nomor4 = KeKata(No4) & " ribu "
121 End If 122 Else
123 Nomor4 = ""
124 End If 125 'Puluhan ribu
126 If Len(Angka) >= 5 Then
127 If No5 = "1" Or No5 = "0" Then 128 Nomor5 = ""
129 Else
130 Nomor5 = KeKata(No5) & " puluh "
131 End If 132 Else
133 Nomor5 = ""
134 End If 135 'Ratusan Ribu
136 If Len(Angka) >= 6 Then 137 If No6 = "1" Then 138 Nomor6 = "seratus "
139 ElseIf No6 = "0" Then 140 Nomor6 = ""
141 Else
142 Nomor6 = KeKata(No6) & " ratus "
143 End If 144 Else
145 Nomor6 = ""
146 End If 147 'Jutaan
148 If Len(Angka) >= 7 Then
149 If No9 = "0" And No8 = "0" And No7 =
"0" Then 150 Nomor7 = ""
151 ElseIf No7 = "1" And Len(Angka) = 7 Then 152 Nomor7 = "satu juta "
153 ElseIf No8 = "1" Then
154 If No7 = "1" Then 155 Nomor7 = "sebelas juta "
156 ElseIf No7 = "0" Then 157 Nomor7 = "sepuluh juta "
158 Else
159 Nomor7 = KeKata(No7) & " belas juta "
160 End If 161
162 Else
163 Nomor7 = KeKata(No7) & " juta "
164 End If 165 Else
166 Nomor7 = ""
167 End If 168 'Puluhan juta
169 If Len(Angka) >= 8 Then
170 If No8 = "1" Or No8 = "0" Then 171 Nomor8 = ""
172 Else
173 Nomor8 = KeKata(No8) & " puluh "
174 End If 175 Else
176 Nomor8 = ""
177 End If 178 'Ratusan juta
179 If Len(Angka) >= 9 Then 180 If No9 = "1" Then 181 Nomor9 = "seratus "
182 ElseIf No9 = "0" Then 183 Nomor9 = ""
184 Else
185 Nomor9 = KeKata(No9) & " ratus "
186 End If 187 Else
188 Nomor9 = ""
189 End If 190 'Milyar
191 If Len(Angka) >= 10 Then
192 If No12 = "0" And No11 = "0" And No10
= "0" Then 193 Nomor10 = ""
194 ElseIf No10 = "1" And Len(Angka) = 10 Then 195 Nomor10 = "satu milyar "
196 ElseIf No11 = "1" Then
Penerapan Algoritma Fungsi Terbilang Pada Aplikasi Perkantoran
5
Jurnal Teknologi Informatika & Komputer| Volume 2 No. 1, Maret 2015 197 If No10 = "1" Then
198 Nomor10 = "sebelas milyar "
199 ElseIf No10 = "0" Then 200 Nomor10 = "sepuluh milyar "
201 Else
202 Nomor10 = KeKata(No10) & " belas milyar "
203 End If 204
205 Else
206 Nomor10 = KeKata(No10) & " milyar "
207 End If 208 Else
209 Nomor10 = ""
210 End If
211 'Puluhan Milyar
212 If Len(Angka) >= 11 Then
213 If No11 = "1" Or No11 = "0" Then 214 Nomor11 = ""
215 Else
216 Nomor11 = KeKata(No11) & " puluh "
217 End If 218 Else
219 Nomor11 = ""
220 End If
221 'Ratusan Milyar
222 If Len(Angka) >= 12 Then 223 If No12 = "1" Then 224 Nomor12 = "seratus "
225 ElseIf No12 = "0" Then 226 Nomor12 = ""
227 Else
228 Nomor12 = KeKata(No12) & " ratus "
229 End If 230 Else
231 Nomor12 = ""
232 End If 233 'Triliun
234 If Len(Angka) >= 13 Then
235 If No15 = "0" And No14 = "0" And No13
= "0" Then 236 Nomor13 = ""
237 ElseIf No13 = "1" And Len(Angka) = 13 Then 238 Nomor13 = "satu triliun "
239 ElseIf No14 = "1" Then
240 If No13 = "1" Then
241 Nomor13 = "sebelas triliun "
242 ElseIf No13 = "0" Then 243 Nomor13 = "sepuluh triliun "
244 Else
245 Nomor13 = KeKata(No13) & " belas triliun "
246 End If 247
248 Else
249 Nomor13 = KeKata(No13) & " triliun "
250 End If 251 Else
252 Nomor13 = ""
253 End If
254 'Puluhan triliun
257 Nomor14 = ""
258 Else
259 Nomor14 = KeKata(No14) & " puluh "
260 End If 261 Else
262 Nomor14 = ""
263 End If
264 'Ratusan triliun
265 If Len(Angka) >= 15 Then 266 If No15 = "1" Then 267 Nomor15 = "seratus "
268 ElseIf No15 = "0" Then 269 Nomor15 = ""
270 Else
271 Nomor15 = KeKata(No15) & " ratus "
272 End If 273 Else
274 Nomor15 = ""
275 End If 276
277 If Len(Angka) > 15 Then
278 bilang = "Digit Angka Terlalu Banyak"
279 Else
280 If IsNull(Nilai_Angka) Then 281 bilang = ""
282 ElseIf Nilai_Angka < 0 Then 255 If Len(Angka) >= 14 Then
256 If No14 = "1" Or No14 = "0" Then
Penerapan Algoritma Fungsi Terbilang Pada Aplikasi Perkantoran
6
Jurnal Teknologi Informatika & Komputer| Volume 2 No. 1, Maret 2015 283
bilang = "minus " & Trim(Nomor15 &
Nomor14 & Nomor13 & Nomor12 &
Nomor11 & Nomor10 & Nomor9 & Nomor8
& Nomor7 _ 284
& Nomor6 & Nomor5 & Nomor4 &
Nomor3 & Nomor2 & Nomor1 & Koma & "
" & Satuan) 285 Else 286
bilang = Trim(Nomor15 & Nomor14 &
Nomor13 & Nomor12 & Nomor11 &
Nomor10 & Nomor9 & Nomor8 & Nomor7 _
287
& Nomor6 & Nomor5 & Nomor4 &
Nomor3 & Nomor2 & Nomor1 & Koma & "
" & Satuan) 288 End If 289 End If
290 If Style = 4 Then
291 terbilang = StrConv(Left(bilang, 1), 1) &
StrConv(Mid(bilang, 2, 1000), 2) 292 Else
293 terbilang = StrConv(bilang, Style) 294 End If
295 terbilang = Replace(terbilang, " ", " ", 1, 1000, vbTextCompare)
296
297 End Function
Setelah Anda selesai mengcopy pilih File >
Close and Return to Microsoft Excel untuk kembali ke workbook MS Excel.
Simpan workbook tersebut, namai misalnya terbilang.xls.
Sekarang Anda dapat mencoba fungsi tersebut dalam sheet mana saja dalam workbook tersebut. Misalnya Anda ketikan pada cell A1 angka berapa saja. Pilih cell yang akan menampung terjemahan kata-katanya, misalnya di A2.
Pilih Insert > Function…, maka akan muncul dialog box daftar fungsi di MS Excel.
Dari daftar dalam Function category, pilihlah User Defined, sehingga dalam daftar di Function name muncul nama fungsi terbilang, pilih fungsi tersebut kemudian klik OK, sehingga muncul dialog box
Isilah dialog box di atas dengan ketentuan sebagai berikut :
Nilai_Angka
Isilah dengan angka yang akan diterjemahkan, atau isi dengan nama cell yang berisi angka yang akan diterjemahkan, misalnya A1.
Style
Isi dengan kode 1 sampai dengan 4 untuk menentukan cara penulisannya.
1 : Teks terbilang ditulis dengan huruf besar (kapital) semua (uppercase);
2 : Teks terbilang ditulis dengan huruf kecil semua (lowercase);
3 : Teks terbilang ditulis dengan huruf besar pada awal kata saja (title case);
4 : Teks terbilang ditulis dengan huruf besar pada huruf pertama saja (sentence case).
Isian style sifatnya optional, apabila tidak diisi maka defaultnya 4 (sentence case).
Satuan
Isi dengan satuan untuk teks terbilang, misalnya rupiah, unit atau buah. Isian satuan sifatnya optional, apabila dikosongkan maka teks terbilang ditulis tanpa satuan tertentu.
Anda juga dapat langsung menggunakan fungsi terbilang secara langsung pada cell dengan formula :
= terbilang(Nilai_Angka;Style;”Satuan”)
Penjelasan lihat di atas. Perlu diperhatikan bahwa penulisan satuan ditulis dengan cara diapit tanda petik (”).
Sekarang Anda tutup workbook tersebut. Coba buka kembali workbook tersebut, maka akan muncul peringatan seperti. Untuk dapat menggunakan fungsi terbilang diatas Anda harus memilih Enable Macros setiap kali Anda menggunakan
Pada tahapan ini Anda dapat menggunakan fungsi terbilang pada cell dan worksheet mana saja tetapi terbatas pada workbook tersebut. Setiap kali Anda membuat file MS Excel dan memerlukan fungsi terbilang Anda harus mengulangi langkah- langkah di atas atau Anda menyimpan dengan nama atau lokasi yang berbeda dengan cara File >
Save As…
Penerapan Algoritma Fungsi Terbilang Pada Aplikasi Perkantoran
7
Jurnal Teknologi Informatika & Komputer| Volume 2 No. 1, Maret 2015 Ada cara lain agar setiap kali membuat file/workbook baru, Anda langsung dapat menggunakan fungsi terbilang. Langkah- langkahnya :
Buka file yang Anda simpan di atas yang berekstensi xls. Kemudian pilih File > Save As.. Kemudian pada isian File name isi dengan nama file, misalnya terbilang. Pada isian Save as type pilih Microsoft Excel Add-In (*.xla).Secara default folder yang terbuka untuk menyimpan file type Add-In ini berada pada C:WINDOWS\Aplication Data\Microsoft\AddIns, sebaiknya Anda menyimpannya pada folder ini, meskipun Anda dapat menentukan lokasi lain. Nantinya file yang disimpan berekstensi xla.
Setelah Anda menyimpannya, tutup MS Excel. Buka kembali dengan workbook baru.
Pada workbook baru tersebut pilih Tools >
Add-Ins… Muncul dialog box, Klik Browse… maka secara default Anda dihadapkan pada isi folder AddIns seperti disebut pada point 1, kemudian pilih file Add- In terbilang tersebut. Maka fungsi terbilang akan masuk list pada Add-Ins available seperti pada Gambar 7. Pastikan Anda beri tanda check. Kemudian klik OK.
Pada workbook baru ini, Anda sudah dapat menggunakan fungsi terbilang, begitu pula saat Anda nanti membuat file/workbook baru.
Anda dapat menonaktifkan Add-In ini dengan menghilangkan tanda check seperti tersbut di atas.
DAFTAR PUSTAKA
Heri Sismoro. “Pengantar Logika Informatika, Algoritma dan Pemograman Komputer”, 2005, Penerbi Andi, Yogyakarta.
Kusrini & Emha Taufik Lutfi, “Algoritma Data Mining”, 2009, Penerbit Andi, Yogyakarta.
Normalina N. dan Nikous Soter N., “Struktur Data dan Algoritma”, 2010, USU Press, Medan