Membuat Fungsi Terbilang dalam Bahasa Indonesia pada Python

Sebagai programmer sering kali kita harus membuat fungsi terbilang, atau mengubah variabel yang dalam format integer / float menjadi kata-kata yang mudah dibaca oleh user, misal saat membuat printout suatu Invoice. Kadangkala ada client yang meminta nilai invoice tersebut di ubah menjadi kata-kata dalam bahasa tertentu.

Python sendiri sudah memiliki library / module untuk menangani pekerjaan ini, namanya – num2words. Saya sedikit menyesal karena terlambat menyadari adanya module ini. Coba anda googling dengan keyword “python membuat fungsi terbilang”, dari hasil pencarian teratas tidak ada yang menyebut module ini. Hampir semuanya menulis pembuatan fungsi terbilang dari 0. Padahal seharusnya jika menggunakan module num2words bisa mempercepat pekerjaan. Apa saya salah memasukkan keyword ya ?

Untuk menggunakan module num2words kita harus menginstall-nya terlebih dahulu. Gunakan perintah dibawah ini.

# install pip terlebih dahulu, saya menggunakan python 3 jadi saya install pip3
sudo apt install python3-pip

# dengan pip install module num2words
sudo pip3 install num2words

Untuk menggunakannya import terlebih dahulu, kemudian panggil fungsi num2words dengan parameter pertama adalah nilai yang akan diubah menjadi fungsi terbilang, sedangkan parameter kedua adalah bahasa (optional, jika tidak diisi default bahasa inggris)

# -*- coding: utf-8 -*-

# import module num2words
from num2words import num2words
# nilai yang akan diubah menjadi terbilang
value = 1234567
# kita set dalam bahasa indonesia
result = num2words(value, lang="id")
# tampilkan hasilnya di console
print(result)

# hasilnya adalah 
# satu juta dua ratus tiga puluh empat ribu lima ratus enam puluh tujuh

num2words juga sudah bisa membaca angka dibelakang koma, jadi tidak perlu khawatir.

# -*- coding: utf-8 -*-
from num2words import num2words

value = 123.456
result = num2words(value, lang="id")
print(result)
# hasilnya
# seratus dua puluh tiga koma empat lima enam

Leave a Reply

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