Program berikut ini akan mengonversi int menjadi String.
Contohnya :
- 5 : lima
- 72 : tujuh puluh dua
- 341 : tiga ratus empat puluh satu
- 9999 : sembilan ribu sembilan ratus sembilan puluh sembilan
- 1000 : seribu
- 11 : sebelas
- 6523409 : enam juta lima ratus dua puluh tiga ribu empat ratus sembilan
Saya kira tidak perlu teori yang bermacam-macam, langsung saja kita lihat contoh programnya :
public class Say {
public static String convert(int angka) throws Exception{
assert angka >= 0;
if (angka == 0) return "nol";
if (angka == 1) return "satu";
if (angka == 2) return "dua";
if (angka == 3) return "tiga";
if (angka == 4) return "empat";
if (angka == 5) return "lima";
if (angka == 6) return "enam";
if (angka == 7) return "tujuh";
if (angka == 8 ) return "delapan";
if (angka == 9) return "sembilan";
if (angka == 10) return "sepuluh";
if (angka == 11) return "sebelas";
if (angka < 20) return convert(angka - 10) + " belas";
if (angka < 100){
if (angka % 10 > 0) return convert(angka / 10) + " puluh " + convert(angka % 10);
else return convert(angka / 10) + " puluh";
}
if (angka == 100) return "seratus";
if (angka < 200) return "seratus " + convert(angka - 100);
if (angka < 1000){
if (angka % 100 > 0) return convert(angka / 100) + " ratus " + convert(angka % 100);
else return convert(angka / 100) + " ratus";
}
if (angka == 1000) return "seribu";
if (angka < 2000) return "seribu " + convert(angka - 1000);
if (angka < 1000000){
if (angka % 1000 > 0) return convert(angka / 1000) + " ribu " + convert(angka % 1000);
else return convert(angka / 1000) + " ribu";
}
if (angka < 1000000000){
if (angka % 1000000 > 0) return convert(angka / 1000000) + " juta " + convert(angka % 1000000);
else return convert(angka / 1000000) + " juta";
}
if (angka <= 2147483647){
if (angka % 1000000000 > 0)
return convert(angka / 1000000000) + " milyar " + convert(angka % 1000000000);
else return convert(angka / 1000000000) + " milyar";
}
throw new Exception("Not Supported Yet");
}
public static void main(String[] args) {
try {
System.out.println(Say.convert(2147483647));
}
catch (Exception e) {System.out.println(e.getMessage());}
}
}
JAVA penipu :p
Comment by irfani — January 5, 2009 @ 1:25 pm
mungkin aku usul kalo pas kasih hasil untuk 100 –>> ratus …
1000–>> ribu…
itu pake di hitung aja jadi kalo ada bilangan 200 ato 3000 jadi panggil aja..
jadi tiga ribu gitu…
Comment by temon — February 7, 2009 @ 7:25 pm
maksud aku di hitung berapa karakter dari belakang gitu..
Comment by temon — February 7, 2009 @ 7:26 pm