Lagi, Algoritma Merubah Angka ke Bentuk Terbilang - dengan Rekursi

2 Comments


Salam semua, alhamdulillah lagi bisa nulis. Walaupun temanya masih sama dan berputar-putar di algoritma angka ke huruf tapi mudah-mudahan ini sesuatu yang beda dari tulisan di sini dan di sana.

Kali ini yang akan kita bahas adalah gimana memanfaatkan rekursi untuk mengkonversi bentuk angka-angka ke dalam bentuk huruf terbilang, sekaligus menghindari masalah yang bisa ditimbulkan jika kita menggunakan algoritma blok berkotak. Konsep sederhana ini sebetulnya bukan ide sendiri karena memang di luar sana juga banyak yang memanfaatkan konsep rekursi untuk tujuan konversi angak ke huruf.

Oke, langsung ke teori. Kita asumsikan kita mempunyai angka 42.115 (Empat Puluh Dua Ribu Seratus Lima Belas). Nah dalam peng-konversi-an menggunakan metode ini ada beberapa tahap yang harus dilakukan.


  1. Kita sediakan sebuah array String / himpunan dengan nilai : {"","SATU","DUA","TIGA","EMPAT","LIMA","ENAM","TUJUH","DELAPAN","SEMBILAN","SEPULUH,"SEBELAS"}
  2. Masing-masing anggota himpunan / array tersebut mewakili nilai dari angka 0-11
  3. Pada angka di atas, 42.115 kita bagi dengan 10.000 hasilnya 4 dan sisanya 2.115 ( disini kita tidak mengenal pecahan dalam perhitungannya karena inputan berupa integer).
  4. Karena nilai 4 kita bagi dengan 10.000 maka kita tambahkan kata "Puluh" di belakangnya. Sehingga menjadi "EMPAT PULUH".
  5. Sisa hasil pembagian tadi masih bernilai lebih dari seribu, maka kita bagi 1.000. Sehingga 2.115 / 1.000 = 2 sisa 115. Kita tambahkan kata "ribu" di belakang hasil tadi jadi "DUA RIBU".
  6. Nah di sinilah letak fungsi untuk menghindari kata "Satu Ratus". Kalo angka kurang dari 1.000 dan lebih besar atau sama dengan 200 maka angka kita bagi 100 lalu tambahkan kata "ratus" di belakangnya. Lalu kalau angka lebih dari atau sama dengan 100 tapi masih kurang dari 200, maka angka kita kurangi dengan 100, lalu tambahkan kata "Seratus" di depan hasil. Pada contoh ini 115 - 100 = 15.
  7. Hasil proses nomor 6 kita cek lagi apakah lebih dari atau sama dengan 20? bila ya, maka angka dibagi 10 lalu ditambahkan kata "Puluh" dibelangnya, bila kurang dari 20 dan lebih dari 11 maka kita kurangi 10 dan tambahkan kata "Belas" di belakang hasil akhir pengurangan. Pada contoh ini 15 adalah kurang dari 20 tapi lebih besar dari 11 maka 15-10=5
  8. Angka 5 adalah hasil akhir pengurangan dan pada himpunan / array di atas diwakili oleh "LIMA". Kita tambahkan kata "belas" di belakangya menjadi "LIMA BELAS".
  9. Pada tahap ini proses selesai.
Pada langkah-langkah di atas, kita sebenarnya hanya memproses (mengurangi atau membagi) angka inputan / soal, kemudian secara terus-menerus memproses hasil dari proses sebelumnya sampai tidak bisa diproses lagi. Nah di sinilah letak rekursinya.

Insya Allah nanti saya posting contoh listing coding-nya. :) Sekarang ngantuk hehe... 
Semoga bermanfaat.

Update:
Contoh Aplikasi sederhana konversi angka ke bentuk terbilang berbasis java, silakan lihat koding-nya di sini

Baca Tulisan Lainnya Juga :)

2 komentar: