.::. Hendra Jaya .::.

December 18, 2008

Konversi integer jadi string

Filed under: Java — hjaya @ 9:33 am

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());}
  }
}

3 Comments »

  1. JAVA penipu :p

    Comment by irfani — January 5, 2009 @ 1:25 pm

  2. 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

  3. maksud aku di hitung berapa karakter dari belakang gitu..

    Comment by temon — February 7, 2009 @ 7:26 pm


RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.