Aplikasi konversi bilangan dengan JOption

Asalamualaikum Wr,wb 
Disini saya akan mencoba membuat Aplikasi Konversi bilangan  dengan Java yang sebelumnya mengunakan PHP .
nha, prinsip kerja dari aplikasi bilangan ini adalah mengkonversi kan  bilangan yang di inputkan oleh user  ,dan  sebelumnya kita harus menginputkan nama dan gender untuk masuk ke Konversi bilangan..
Ada 7 menu yaitu Biner, Hexa, Oktal , Terbilang, Pecahan , Kembali , dan keluar...
lebih mudahnya  langsung  prakteknya saja ...:)

//1.Buka neetbeans , new Java class lalu copy script berikut:
    • //kemudian ketikkan code berikut , letakkan dibawah packages :

package Praktek1;
import javax.swing.JOptionPane;//digunakan untuk menampilkan Joption

//2.Lalau deklarasikan variable yang akan digunakan di bawah class :

public class konversibilanganbaru{
 

  private static String name;
           private static String des;
           private static int validDes;
           private static String inpGender;
           private static  String sc;
           static StringBuilder hasilbiner = new StringBuilder();
           static StringBuilder hasiloktal = new StringBuilder();
           static StringBuilder hasilhexa = new StringBuilder();
          
    //3.lalu buat coding untuk mengkonversi bilangan hexa:
      
        public static void  keBiner (int n){
               if(n>1){
                   keBiner(n/2);
               }
               System.out.print (n%2);
               hasilbiner.append(n%2);
          
           }
   //4.lalu buat coding untuk mengkonversi bilangan Hexa:

         public static void keHexa (int n){
            char [] daftarHexa={'0','1','2','3','4','5','6','7','8'
            ,'9','A','B','C','D','E','F'};
        if (n>1)
        {
        keHexa(n/16);
        }
        System.out.print(daftarHexa[n%16]);
        hasilhexa.append(daftarHexa[n%16]);
}
    //5.lalu buat coding untuk mengkonversi bilangan Oktal:

         public static void keoktal(int n){
       
        char[] daftarOktal={'0','1','2','3','4','5','6','7','8'};
            if(n>1)
            {
                keoktal(n/8);
           
            }
          System.out.print(daftarOktal[n%8]);
           hasiloktal.append(n%8);
   
}
         
        

//6.buat  coding  untuk menampilkan hasil konversi bilangan sebagai berikut :
         public static void  inputDesJOption (){
          
           des=JOptionPane.showInputDialog("Masukan Bil.desimal");
          try {
            if (des.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Isi dulu bilanganya");
                inputDesJOption();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Jangan keluar dulu, Harap di isi dulu !!");
                inputDesJOption();
               
        } catch (NumberFormatException npe) {
            JOptionPane.showMessageDialog(null, "Hey '" + des + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
               inputDesJOption();
          
        }}
        
          
           public static void  eksepsiInpBiner (){
               inputDesJOption();
                    try {
                        validDes=Integer.parseInt(des);
                        System.out.print("\nDesimal dari "+ des +
                        ",BInernya Adalah = ");
                        keBiner(validDes);
                        System.out.println("\n");
                        JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam binernya adalah ="+  hasilbiner ,
                            "KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
                        hasilbiner=new StringBuilder();
                               
                   
                    }catch (NumberFormatException nfe) {
                        JOptionPane.showMessageDialog(null, des+"bukan angaka!!"
                              +"\nMasukan Angka saja!!");
                        eksepsiInpBiner();
                      
           }
          
           }
          
           public static void eksepsiInphexa(){
                inputDesJOption();
                    try{
                       validDes=Integer.parseInt(des);
                       System.out.print("\n Desimal dari"+des+
                          ",Hexanya adalah= ");               
                       keHexa(validDes);
                       System.out.println("\n");
                       JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam Hexanya adalah ="+  hasilhexa ,
                            "KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
                        hasilhexa=new StringBuilder();
                     }catch (NumberFormatException nfe){
                      JOptionPane.showMessageDialog(null, des +"bungkan Angaka!!"//di gunakan untuk memberitahu User bahwa hanya angka yang bisa di inputkan
                          +"\n Masukan angka saja!!");
                      
                     eksepsiInphexa();
                             
                  }
                  }
          
            public static void eksepsiInpOktal(){
                inputDesJOption();
                    try{
                       validDes=Integer.parseInt(des);
                       System.out.print("\n Desimal dari"+des+
                          ",Oktalnya adalah= ");
                       keoktal(validDes);
                       System.out.println("\n");
                        JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam Hexanya adalah ="+  hasiloktal,
                            "KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
                        hasiloktal=new StringBuilder();
                  }catch (NumberFormatException nfe){
                      JOptionPane.showMessageDialog(null, des +"bungkan Angaka!!"
                              +"\n Masukan angka saja!!");
                     eksepsiInpOktal();
                             
                  }
                  }
           
         
           public static void  outHasilBIner (){
                eksepsiInpBiner();
               
           }
            public static void  outHasilhexa (){
                eksepsiInphexa();
               
           }
             public static void  outHasilOktal (){
                eksepsiInpOktal();
               
           }
          
  //7.buat script untuk konversi pecahan sebagai berikut :   
  
       public static void hasilPecahan() {
        int desimal;

        String str = JOptionPane.showInputDialog("Masukan bil.untuk di pecah ");
        try {
            if (str.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Harus di isi dulu ya");
                hasilPecahan();
            } else {

                desimal = Integer.parseInt(str);

                int satu, dua, tiga, empat, lima, enam, tujuh, delapan, sembilan, sepuluh, sebelas, duabelas, tigabelas;
                satu = desimal / 100000;
                desimal %= 100000;

                dua = desimal / 50000;
                desimal %= 50000;

                tiga = desimal / 20000;
                desimal %= 20000;

                empat = desimal / 10000;
                desimal %= 10000;

                lima = desimal / 5000;
                desimal %= 5000;

                enam = desimal / 2000;
                desimal %= 2000;

                tujuh = desimal / 1000;
                desimal %= 1000;

                delapan = desimal / 500;
                desimal %= 500;

                sembilan = desimal / 200;
                desimal %= 200;

                sepuluh = desimal / 100;
                desimal %= 100;

                sebelas = desimal / 50;
                desimal %= 50;

                duabelas = desimal / 10;
                desimal %= 10;

                tigabelas = desimal / 1;
                desimal %= 1;


                JOptionPane.showMessageDialog(null, "Jumlah seratus ribuan = " + satu
                        + "\nJumlah lima puluh ribuan = " + dua
                        + "\nJumlah dua puluh ribuan = " + tiga
                        + "\nJumlah sepuluh ribuan = " + empat
                        + "\nJumlah lima ribuan = " + lima
                        + "\nJumlah dua ribuan = " + enam
                        + "\nJumlah seribuan = " + tujuh
                        + "\nJumlah lima ratusan = " + delapan
                        + "\nJumlah dua ratusan = " + sembilan
                        + "\nJumlah seratusan = " + sepuluh
                        + "\nJumlah lima puluhan = " + sebelas
                        + "\nJumlah lima satuan = " + duabelas
                        + "\nJumlah satuan = " + tigabelas, "PECAHAN", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Eitss mau kemana ?? Isi dulu bilangannya.. !!");
            hasilPecahan();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Maaf '" + str + "'"
                    + " BUkan angka !!"
                    + "\nMasukkan angka ya !!");
            hasilPecahan();
        }
    }

        String[] angka = {"", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"};

    private String sebut(int x) {
        String bilang = "";
        int y = x / 100;
        if (y > 0) {
            bilang = angka[y] + " Ratus ";
            if (y == 1) {
                bilang = "Seratus ";
            }
            x %= 100;
        }
        if (x < 12) {
            bilang += angka[x];
        } else {
            y = x / 10;
            x %= 10;
            if (y == 1) {
                bilang += angka[x] + " Belas";
            } else {
                bilang += angka[y] + " Puluh " + angka[x];
            }
        }
        return bilang;
    }

  //8.buat script untuk konversi terbilang sebagai berikut :  

    private String terbilang(long x) {
        int y;
        String bilang = "";
        String[] satuan = {"", " Ribu ", " Juta ", " Milyar ", " Trilyun ", " Quadrilyun ", " Quintilyun "};
        if (x > Math.pow(10, 20)) {
            return "Bilangan terlalu besar";
        }
        for (int i = 6; i > 0; i--) {
            y = (int) (x / Math.pow(10, i * 3));
            if (y > 0) {
                if (y == 1 && i == 1) {
                    bilang += " Seribu ";
                } else {
                    bilang += sebut(y) + satuan[i];
                }
            }
            x %= Math.pow(10, i * 3);
        }
        bilang += sebut((int) x);
        return bilang;
    }

    public static void outTerbilang(){
        sc = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
        try {
            if (sc.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Isi dulu bilanganya");
                outTerbilang();
            } else {

                JOptionPane.showMessageDialog(null, new konversibilanganbaru().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Jangan keluar dulu, Harap di isi dulu !!");
            outTerbilang();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Hey '" + sc + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outTerbilang();
        }
    }
   
        public static void kembalinama(){
            inpNama();
        }
9.Buat coding untuk menginputkan nama user :

             public static void  inpNama (){
               name=JOptionPane.showInputDialog("masukan nama anda: ");
                    try{
                      if(name.isEmpty()){
                            JOptionPane.showMessageDialog(null,"nama tidak boleh kosong");
                                inpNama();//kembali input nama
                     }
                      else {
                      for(int i=0;i <name.length();i++){
                          if(!Character.isLetter(name.charAt(i))){
                                JOptionPane.showMessageDialog(null,"hanya bisa Isi dengan huruf");
                                inpNama();
                          }
                      } }                   
                    }catch (NullPointerException npe){
                 JOptionPane.showMessageDialog(null,"Isi dulu nama anda");
                 inpNama();
                
                
             }}
//10.Buat coding untuk menginputkan Gender user :
           public static void inpGender(){
          
           String[] choices={"Cowok","Cewek"};
           String cowok ="cowok";
           String cewek ="cewek ";
                    int response = JOptionPane.showOptionDialog(
                            null
                            ,"Apakah anda cowok atau cewek?"
                            ,"Gender"
                            ,JOptionPane.YES_NO_OPTION
                            ,JOptionPane.QUESTION_MESSAGE
                            ,null
                            ,choices
                            ,"exit"
                            );
           switch(response){
               case 0: inpGender ="Bro,";
                   break;
               case 1 :inpGender="Sis,";
                   break;
                   default:
                       JOptionPane.showMessageDialog(null,"Pilih dulu gender anda");
                       inpGender();
                       break;
                      
           }
        }        
//11.  nha ,ini adalah bagian terpenting dalam pembuatan sebuah aplikasi java ,
        yaitu pemanggilan method-method sesuai fungsi masing-masing dan di gabung menjadi satu 
     tampilan utama/menu :

           public static void  menuJOption (){
               //...text untuk tombol
              
             
                    String[] pilihan ={"BINER","HEXA","OKTAL","PECAHAN","TERBILANG","Kembali","KELUAR "};
                        //..."Infinite" loop, selesai jika System.exit(0)
                    while(true){
                           int response = JOptionPane.showOptionDialog(//di bawah ini adalah parameter jOption
                                  
                                   null //tengah window.
                                   ,"selamat datang "+ inpGender + name+"!"
                                    +"\nPilih Konversi Bilangan di bawah ini ?"//pesan
                                     ,"Konversi Bilangan"//judul Bar
                                   ,JOptionPane.YES_NO_OPTION //tipe pilihan
                                   ,JOptionPane.PLAIN_MESSAGE//tipe pesan
                                   ,null        //icon (none)
                                   ,pilihan     //tombol text.
                                   ,null //label tombol default
                                   );
                           //....menggunakan switch untuk mengecek tombol yang di tekan.
                          switch (response){
                              case 0:
                                        outHasilBIner();
                                        break;
                              case 1:
                                        outHasilhexa();
                                  break;
                              case 2:
                                        outHasilOktal();
                                   break;
                              case 3:
                                        hasilPecahan();
                                  break;
                              case 4:
                                        outTerbilang();
                                  break;
                              case 5:
                                         kembalinama();
                                  break;
                              case 6:
                                 
                              case -1:
                                                                         
                                 
                                  //,......antara tombol(3) dan close box(-1) ditangani di sini.
                                  System.exit(0); //keluar looping tapi...
                              default :
                                  //...jika disini kita ada kesalahan ,
                                  JOptionPane.showMessageDialog(null,"response tak terduga"
                                          + response); break;
                                  }}}
                                         
                        
          
            public static  void seluruh(){
                inpNama();
                inpGender();
                menuJOption();
            }
           public static void  main (String [] args){
                seluruh();
          }}

Ttulah sedikit ilmu yang dapat saya sampaikan ,Dan terimakasih untuk bapak hadi selaku pembimbin dan teman-teman atas bantuanya..

bila teman-teman ingin melihan langsung hasilnya bisa di lihat di bawah ini...




ini adalah tampilan utama,dimana user harus menginputkan nama

bila,user menekan tombol cancel/exit maka akan muncul message seperti ini

  

bila user belum memasukan nama tetapi sudah menekan oke akan muncul messeage seperti di bawah ini,
 bila user memasukan nama dengan format angka maka akan muncul message seperti dibawah ini,

Setelah,memasukan angka dengan benar akan muncul JOption seperti ini,

 

bila user menekan exit maka akan muncul messeage seperti di bawah ini,
 


Bila sudah memilih gender maka akan masuk ke menu utama ,


ini adalah tampilan input bilangan setelah user memilih konversi bilangan,
kebetulan percobaan ini memilih Konversi BINNER


Bila user menginputkan selain bilangan akan muncul messeage seperti di bawah ini,


bila user menekan tombol exit/cancle maka akan muncul message seperti di bawah ini,


 


bila user belum menginputkan bilangan tetapi menekan tombol ok maka akan muncul messeage seperti ini,

 


 INI adalah tampilan dimana user menginputkan bilangan yang sudah sesuai:

KONVERSI BINNER


 








KONVERSI HEXA


 




KONVERSI PECAHAN


 








KONVERSI TERBILANG


 





 SEKIAN DARI SAYA,semoga bisa bermanfaat..




























This entry was posted on Selasa, 11 September 2012 and is filed under . You can follow any responses to this entry through the RSS 2.0. You can leave a response.

Leave a Reply