Friday 4 September 2009

Konversi Bilangan Bahasa Indonesia ke bentuk Numerik

Kita bersama tahu bahwa "Seribu Sembilan Ratus Empat Puluh Lima" dalam Bahasa Indonesia adalah 1945. Penyebutan bilangan ini sudah dipelajari sejak sekolah dasar sehingga anak-anak pun dapat menterjemahkan bilangan dalam Bahasa Indonesia ke bentuk numerik.

Bagaimana dengan komputer? tentu saja kita harus membuat sebuah algoritma untuk keperluan tersebut. Tentu saja beragam algoritma bisa diterapkan, salah satu yang saya gunakan adalah seperti penjelasan berikut :

Kata yang menunjukkan bilangan dalam Bahasa Indonesia cukup sistematis, tapi perlu lebih disistematiskan untuk mempermudah proses perubahan.

Untuk bilangan puluhan dalam Bahasa Indonesia kata pertama menunjukkan bilangan puluhan dan kata terakhir menunjukkan bilangan satuan, diantara kata tersebut terdapat kata “puluh”. Misalnya dua puluh sembilan, kata pertama adalah dua (2) dan kata terakhir adalah sembilan (9), dan diantara kata-kata tersebut terdapat kata puluh. Jika satuannya sama dengan nol (0) maka kata terakhir dihilangkan.

Aturan di atas berlaku untuk semua bilangan puluhan, kecuali pada bilangan dengan puluhan sama dengan satu. Pada kasus ini, untuk bilangan 10 didefinisikan dengan “sepuluh”, bilangan 11 didefinisikan dengan “sebelas”, sedangkan bilangan 12 sampai 19, kata pertama menunjukkan satuan dan kata kedua dituliskan dengan kata “belas”. Misalnya kata “tiga belas”, kata pertama adalah tiga (3) dan kata keduanya adalah belas (puluhan = 1), jadi bilangan yang dimaksud adalah 13.

Aturan dalam Bahasa Indonesia juga menunjukkan bahwa jika dalam suatu kata bilangan dua huruf pertamanya adalah “se”, maka hal itu berarti “satu”. Misalnya kata “seratus” berarti “satu ratus”, “sejuta” berarti “satu juta” dan lain sebagainya.

Langkah pertama metode pengubahan kalimat yang menunjukkan bilangan dalam Bahasa Indonesia ke dalam bentuk numerik adalah merestruktur kembali kata-kata yang terdapat dalam kalimat tersebut dengan 2 tahap seperti di bawah ini.
  1. Mengubah kata yang mengandung suku kata “se” diawalnya menjadi “satu” ditambah dengan suku-suku kata selanjutnya kecuali kata “sembilan”. Misalnya kata “seratus” menjadi “satu ratus”.
  2. Merestruktur kata “belas” dengan mengubahnya menjadi kata “satu”, kemudian menukar posisi kata “satu” tersebut dengan kata yang berada di depan kata “belas”, selanjutnya diantara dua kata tersebut ditambahkan kata “puluh”. Misalnya kata “dua belas” menjadi “satu puluh dua”.
Jika metode di atas dilakukan, maka kalimat yang menunjukkan bilangan dalam Bahasa Indonesia akan menjadi seperti Tabel berikut :









BilanganBahasa IndonesiaTahap 1Tahap 2
10SepuluhSatu Puluh-
11SebelasSatu BelasSatu Puluh Satu
12Dua Belas-Satu Puluh Dua
19Sembilan Belas-Satu Puluh Sembilan
100SeratusSatu Ratus-
1000SeribuSatu Ribu-
dst...dst...dst...dst...



Setelah kalimat direstruktur, kemudian dilanjutkan pada langkah berikutnya yaitu pengubahan kebentuk numerik.

- Satuan
Untuk mencari bilangan satuan dalam suatu kalimat yang telah direstruktur, cukup dilihat pada kata terakhir. Jika kata terakhir menunjukkan kata bilangan dari “satu” sampai “sembilan”, maka bilangan satuannya adalah bilangan yang ditunjukkan kata tersebut, jika tidak, maka satuannya adalah 0 (nol).
Misalnya kalimat “empat belas ribu dua ratus tiga belas” (14213), setelah direstruktur menjadi “satu puluh empat ribu dua ratus satu puluh tiga”. Kata terakhirnya adalah “tiga”, jadi satuannya adalah 3, sedangkan kalimatnya tinggal menjadi “satu puluh empat ribu dua ratus satu puluh”.

- Puluhan
Kalimat dari hasil yang telah didapatkan dari langkah “satuan” dilihat kata terakhirnya, jika kata tersebut “puluh” maka puluhannya adalah kata didepan kata “puluh” tersebut, jika tidak, maka puluhannya adalah 0 (nol).
Seperti pada contoh kalimat di atas, kata terakhirnya adalah “puluh”, maka puluhannya adalah kata didepan kata “puluh” yaitu “satu”. Jadi puluhannya adalah 1, sedangkan kalimatnya tinggal menjadi “satu puluh empat ribu dua ratus”.

- Ratusan
Kalimat dari hasil yang telah didapatkan dari langkah “puluhan” dilihat kata terakhirnya, jika kata tersebut “ratus” maka ratusannya adalah kata di depan kata “ratus” tersebut, jika tidak, maka ratusannya adalah 0 (nol).
Seperti pada contoh kalimat di atas, kata terakhirnya adalah “ratus”, maka ratusannya adalah kata didepan kata “ratus” yaitu “dua”. Jadi ratusannya adalah 2, sedangkan kalimatnya tinggal menjadi “satu puluh empat ribu”.

- Ribuan
Kalimat dari hasil yang telah didapatkan dari langkah “ratusan” dilihat kata terakhirnya, jika kata tersebut “ribu” maka ribuannya adalah kata di depan kata “ribu” tersebut, jika tidak, maka ribuannya adalah 0 (nol).
Seperti pada contoh kalimat di atas, kata terakhirnya adalah “ribu”, maka ribuannya adalah kata didepan kata “ribu” yaitu “empat”. Jadi ribuannya adalah 4, sedangkan kalimatnya tinggal menjadi “satu puluh ribu”.

Tahap-tahap tersebut di atas dapat dilanjutkan sampai pada batasan yang diperlukan dengan cara yang sama. Hasil akhir dari tahap ini didapatkan dengan menjumlahkan hasil semua tahap yang dilakukan. Seperti contoh di atas, hasil akhirnya adalah :
1 x 104 + 4 x 103 + 2 x 102 + 1 x 101 + 3 x 100 = 14213.