OpenOffice memang dalam derajat tertentu bisa menggunakan VBA yang dirancang untuk Excel. Salah satu varian OpenOffice yaitu Go-OO.org bahkan bisa langsung membuka dokumen XLS yg memiliki macro terbilang dengan lancar di saat OpenOffice vanila justru tidak bisa (OpenOffice yg ada di repo ubuntu menggunakan source Go-OO.org).
Salah satu kekuatan OpenOffice adalah adanya extension yang memungkinkan kita menambahkan fitur-fitur tertentu untuk OpenOffice. Nah untuk melakukan konversi dari angka ke teks ternyata ada extensionnya, yaitu NUMBERTEXT/MONEYTEXT.
Extension numbertext/moneytext awalnya dikembangkan dari fungsi BAHTTEXT yg terdapat di spreadsheet M$ Excel untuk mengkonversi bilangan dan mata uang Thailand, yang distandarisasi dengan ECMA–376 and ISO/IEC 29 500:2008 Office Open XML format.
Extension numbertext/moneytext sendiri menggunakan bahasa pemrograman Soros. Soros menggunakan aturan regex untuk melakukan konversi dari angka ke teks dan konversi rekursif lainnya berdasarkan urutan karakter yg memiliki kesamaan.
Keterangan lebih lanjut mengenai numbertext/moneytext dan soros dapat dilihat di http://numbertext.org/#about
Numbertext/moneytext menggunakan rules yg berdasarkan regex utk melakukan konversi dari angka ke teks. Rules utk tiap bahasa yg didukung oleh numbertext/moneytext bisa dilihat di :
http://numbertext.org/Soros.html
Rules utk bahasa Indonesia jg bisa dilihat di situs tersebut.
Sedangkan versi terbaru dari numbertext/moneytext bisa di download di :
http://extensions.services.openoffice.org/project/numbertext
http://launchpad.net/numbertext/
Contoh penggunaan utk numbertext:
Misalnya sel B3 berisi data angka : 123.456.789
Di sel C3 kita tuliskan : =NUMBERTEXT(B3;"id_ID")
Hasil dari rumus tsb di cel C3 : seratus dua puluh tiga juta empat ratus lima puluh enam ribu tujuh ratus delapan puluh sembilan
Penulisan rumus/fungsi bisa dijabarkan sbb : =NUMBERTEXT(angka atau
sel;"kode bahasa")
Perhatikan bahwa rumus tsb menghasilkan teks dlm format lowercase. Kita bisa memodifikasinya dgn menggabungkannya dgn rumus =PROPER().
Sehingga penulisannya di sel C3 menjadi :
=PROPER(NUMBERTEXT(B3;"id_ID"))
Output yg dihasilkan akan menjadi : Seratus Dua Puluh Tiga Juta Empat Ratus Lima Puluh Enam Ribu Tujuh Ratus Delapan Puluh Sembilan
Contoh penggunaan utk moneytext:
Misalnya sel B7 berisi data angka : 123.456.789
Di sel C7 kita tuliskan : =MONEYTEXT(B7;"IDR";"id_ID")
Hasil dari rumus tsb di cel C3 : seratus dua puluh tiga juta empatratus lima puluh enam ribu tujuh ratus delapan puluh sembilan rupiah.
Penulisan rumus/fungsi bisa dijabarkan sbb: =MONEYTEXT(angka atau sel;"kode mata uang";"kode bahasa")
Perhatikan bahwa rumus tsb menghasilkan teks dlm format lowercase.
Kita bisa memodifikasinya dgn menggabungkannya dgn rumus =PROPER().
Sehingga penulisannya di sel C7 menjadi :
=PROPER(MONEYTEXT(B7;"IDR";"id_ID"))
Output yg dihasilkan akan
menjadi : Seratus Dua Puluh Tiga Juta Empat Ratus Lima Puluh Enam Ribu Tujuh Ratus Delapan Puluh Sembilan Rupiah
Extension NUMBERTEXT/MONEYTEXT sudah di tes di OpenOffice bawaan Ubuntu LTS dan OpenOffice vanilla dari situs openoffice.org dan mungkin juga bekerja di turunan OpenOffice lainnya.
Nah berhubung NUMBERTEXT/MONEYTEXT memiliki framework yang fleksibel sehingga bisa diterjemahkan ke berbagai bahasa di dunia, ada yang tertantang untuk membuat NUMBERTEXT/MONEYTEXT bisa melakukan konversi angka ke teks dalam bahasa daerah Indonesia.
Selamat mencoba
No comments:
Post a Comment