Membaca Lambang Bilangan dalam Python secara Bertahap

Lecturer & Researcher at Informatics Engineering. Universitas Komputer Indonesia. Bandung
Search for a command to run...

Lecturer & Researcher at Informatics Engineering. Universitas Komputer Indonesia. Bandung
No comments yet. Be the first to comment.
Bismillah walhamdulillah. Bagaimana memanfaatkan library google.colab.ai untuk tanya jawab, Text2SQL, NER, analisis sentimen, hingga penilaian jawaban — langsung dari Colab, bahkan untuk pengguna gratis. Pendahuluan Model bahasa generatif seperti Gem...

Langkah-Langkah Praktis untuk Membuat Dialog Interaktif Menggunakan Google Gemini API dengan Python.

JSON adalah format data yang ringan dan populer untuk pertukaran data antar aplikasi. Artikel ini membahas pengelolaan JSON menggunakan Python.

Modul PIL atau Pillow banyak digunakan untuk keperluan pengolahan citra. Dalam artikel ini akan dibahas beberapa fitur dasar penggunaannya.

Para ulama berkata, "Dalam menafsirkan Al Quran diperlukan keahlian dalam lima belas bidang ilmu." Dalam artikel ini akan dituliskan ringkasannya.

Bismillaah, Alhamdulillah,
Salah satu materi yang disampaikan dalam mata pelajaran Matematika untuk anak kelas 4 SD adalah membaca lambang bilangan.
Hal ini cukup menarik bagaimana seorang anak yang semula diajarkan cara mengenal lambang bilangan (atau angka), menghafalnya, dan kemudian membacanya secara benar jika lambang bilangan tersebut merupakan suatu rangkaian dari banyak bilangan.
Tahap pertama untuk mengenal lambang bilangan adalah mulai dari angka 0 sampai dengan 9. Angka tersebut dapat dikatakan sebagai angka dasar dari semua angka yang sudah dirangkai.
Dalam logika pemrograman, kita dapat memanfaatkan sebuah larik (array) untuk menyimpan pelafalan lambang bilangan atau selanjutnya kita sebut dengan label bilangan. Penggunaan list atau tuple dalam bahasa pemrograman Python saya kira sudah mencukupi.
1. Buat tuple (atau list) untuk menyimpan label angka dari 0 s/d 9;
2. Panggil isi tuple berdasarkan angka masukan terhadap indeks dari label angka;
listLabelAngka = ('nol', 'satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan', 'sembilan')
# cek indeks bilangan
print(listLabelAngka[0]) # output: 'nol'
print(listLabelAngka[5]) # output: 'lima'
print(listLabelAngka[8]) # output: 'delapan'
3. Uji dengan angka sebagai parameter masukan.
angka = 3
print(listLabelAngka[angka]) # output: 'tiga'
Catatan:
Jangan lupa! indeks larik dalam Python selalu diawali dengan 0
angkaDepan = angka // 10
satuan = "puluh"
angkaSatuan = angka % 10
teks = listLabelAngka[angkaDepan] + " " + satuan + " " + listLabelAngka[angkaSatuan]
print(teks)
Berikut ini contoh kode lengkapnya.
Dalam kode tersebut di atas sudah cukup memadai untuk membaca bilangan dari 0 s/d 99. Hanya saja masih bermasalah (dengan pembacaan yang tidak alami) terhadap angka masukan mulai dari angka 10 s/d 19, serta setiap bilangan yang berakhiran dengan angka nol, dimana contoh hasilnya adalah sebagai berikut.
Angka 10, memiliki luaran: "satu puluh nol", seharusnya "sepuluh"
Angka 13, memiliki luaran: "satu puluh tiga", seharusnya "tiga belas"
Angka 90, memiliki luaran: "sembilan puluh nol", seharusnya "sembilan puluh"
dst...
Solusi:
a. Untuk luaran yang berakhiran dengan “nol” dapat disiasati dengan pengecekan label. Jika sisa hasil bagi adalah nol, maka angka satuan tidak perlu ditambahkan, sebaliknya dapat ditambahkan;
if angkaSatuan == 0:
teks = listLabelAngka[angkaDepan] + " " + satuan
else:
teks = listLabelAngka[angkaDepan] + " " + satuan + " " + listLabelAngka[angkaSatuan]
b. Penyebutan tidak alami angka 10 — yang seharusnya dibaca “sepuluh” namun dibaca “satu puluh” — dapat disiasati dengan modifikasi kode sebelumnya. Yaitu pengecekan apakah angka depan adalah angka 1;
if angkaSatuan == 0:
if angkaDepan == 1:
teks = "se" + satuan
else:
teks = listLabelAngka[angkaDepan] + " " + satuan
c. Adapun untuk angka dalam kelompok “belasan”, yaitu angka 11 s/d 19, dapat disiasati dengan memeriksa apakah angka depan adalah angka satu, dan seterusnya.
if angkaDepan == 1:
satuan = "belas"
if angkaSatuan == 0:
teks = "sepuluh"
elif angkaSatuan == 1:
teks = "se" + satuan
else:
teks = listLabelAngka[angkaSatuan] + " belas"
Berikut ini contoh kode lengkapnya.
Sebenarnya angka berapapun (dalam format integer atau bilangan bulat) tanpa dibatasi juga dapat dibaca. Hanya saja dalam kode ini saya batasi hingga nilai 1 kuadriliun/dwiyar (10¹⁵ - 1) untuk “penyederhanaan” 😀.
Untuk rentang nilai lebih besar atau sama dengan 100 (ratusan), ribuan, jutaan, dan seterusnya; hal ini akan menjadikan kode terlalu panjang jika dibuat semua aturannya (rules-based) secara lengkap. Sehingga untuk meminimalkan kode, dapat dibuat fungsi yang dipanggil secara berulang atau dikenal dengan istilah rekursi atau rekursif ¹.pdf) ² .
Ada beberapa modifikasi dari kode sebelumnya adalah:
Kode sumber pembaca lambang bilangan dengan variasi lain dapat ditemukan di Github saya.
Demikian tutorial langkah per langkah dalam membuat aplikasi pembacaan lambang bilangan dalam bahasa pemrograman Python. Saran dan masukan tentunya sangat saya terima dengan baik.
Terima kasih.
Bacaan Lebih Lanjut.
