Friday, September 7, 2012

java: JOptionPane

Beberapa waktu lalu saya kan sudah menge-post-kan inputan desimal dan dikonversikan ke biner , oktal, hexa

So here it is, tugas terbaru yang telah diberikan oleh MR.HADI yaitu mengkolaborasikan ketiganya dan akan terlihat di JOptionPane-nya :D


So here's the script :/*----------------------------------------------------------->
 * Created by Ari
 * Method  inspired by MR.HADI and alot of BLOG :P
 * <----------------------------------------------------------
 */

package javapraktek;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
public class menu_dari_JOption {
          private static  String name;
          private static  int g;
          private static  int y;
          private static  String des;
          private static  String a;
          private static  String b;
           static String gender;
          private static int validDes;
           static StringBuilder X= new StringBuilder();
           static StringBuilder Y= new StringBuilder();
           static StringBuilder Z= new StringBuilder();
   public static void pecahan(){
        int desimal;
        
        
        String str=JOptionPane.showInputDialog("Masukkan jumlah uang");
        desimal=Integer.parseInt(str);
        int j100rbu, j50rbu, j20rbu, j10rbu, j5rbu, j2rbu, j1rbu, j5rtus, j2rtus, j1rtus, j50, j10, j1;
        j100rbu=desimal/100000;
        desimal%=100000;
        j50rbu=desimal/50000;
        desimal%=50000;
        j20rbu=desimal/20000;
        desimal%=20000; 
        j10rbu=desimal/10000;
        desimal%=10000;
        j5rbu=desimal/5000;
        desimal%=5000;
        j2rbu=desimal/2000;
        desimal%=2000;
        j1rbu=desimal/1000;
        desimal%=1000;
        j5rtus=desimal/500;
        desimal%=500;
        j2rtus=desimal/200;
        desimal%=200;
        j1rtus=desimal/100;
        desimal%=100;
        j50=desimal/50;
        desimal%=50;
        j10=desimal/10;
        desimal%=10;
        j1=desimal/1;
        desimal%=1;
    
    
            JOptionPane.showMessageDialog(null,"Jumlah uang seratus ribu = "+j100rbu+
            '\n'+"Jumlah uang lima puluh ribu = "+j50rbu+
            '\n'+"Jumlah uang dua puluh ribu = "+j20rbu+
            '\n'+"Jumlah uang sepuluh ribu = "+j10rbu+
            '\n'+"Jumlah uang lima ribu = "+j5rbu+
            '\n'+"Jumlah uang dua ribu = "+j2rbu+
            '\n'+"Jumlah uang seribu = "+j1rbu+
            '\n'+"Jumlah uang lima ratus = "+j5rtus+
            '\n'+"Jumlah uang dua ratus = "+j2rtus+
            '\n'+"Jumlah uang seratus = "+j1rtus+
            '\n'+"Jumlah uang lima puluh = "+j50+
            '\n'+"Jumlah uang lima puluh = "+j10+
            '\n'+"Jumlah uang lima puluh = "+j1
                    );
        
}          
          public String konversi (int angka){
            String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}

                    public String pecahan (int angka){
            String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
          public static void Biner(int y)
           
          { 
          if(y>0){
              Biner(y/2);
                  }
           System.out.print(y%2);
           X.append(y%2);
          }
          public static void Octal(int g){ 
                char[] daftaroctal={'0','1','2','3','4','5','6','7'
                ,'8','9','A','B','C','D','E','F'};
                int sisa =g% 8;
                    if(g>0){
                         Octal((g-sisa)/8);
                         System.out.print(daftaroctal[g % 8]);
                     }Y.append(daftaroctal[g % 8]);
                }
          public static void Hexa(int n){
                        char[] daftarHexa={'0','1','2','3','4','5','6','7'
                     ,'8','9','A','B','C','D','E','F'};
                    int sisaBagi = n%16;
                    if(n>0){
                             Hexa((n - sisaBagi)/16);
                             System.out.print(daftarHexa[n%16]);
                        }Z.append(daftarHexa[n%16]);
                        }
          
          public static void inputDesJOption ()
          {
              des=JOptionPane.showInputDialog("masukkan " + "Bil.Desimalnya = ") ;
              try{
              if(des.isEmpty()){
                  JOptionPane.showMessageDialog(null, " tidak boleh kosong!!");
                  inpNama();//kembali input nama
              }
              }catch(NullPointerException nperror){
                  JOptionPane.showMessageDialog(null,
                          " diisi  dulu donk!!");
                  inpNama();//kembali input nama
              }
          
          }
          
          public static void eksepsiInpBiner ()
          { 
           inputDesJOption ();
           try{
               validDes=Integer.parseInt(des);
               System.out.print("\n Desimal dari "+des+", Binernya adalah = ");
               Biner(validDes);
               System.out.println();
               JOptionPane.showMessageDialog(null,"hasil perubahan dari desimal"+ des+ " adalah : "+X);
X.delete(0,validDes);
           }catch
                  (NumberFormatException error){
               JOptionPane.showMessageDialog(null, des+" bukan angka !! " + "\nMasukkan angka saja !!");
               eksepsiInpBiner();           
          }           }
           public static void eksepsiInpOctal ()
          {
           inputDesJOption ();
           try{
               validDes=Integer.parseInt(des);
               System.out.print("\n Desimal dari "+des+", octalnya adaalah = ");
               Octal(validDes);
               System.out.println();
               JOptionPane.showMessageDialog(null,"hasil perubahan dari desimal"+ des+ " adalah : "+Y);
Y.delete(0,validDes);
           }catch
                  (NumberFormatException error){
               JOptionPane.showMessageDialog(null, des+" bukan angka !! " + "\nMasukkan angka saja !!");
               eksepsiInpOctal();
           }
          
           }
           public static void eksepsiInpHexa ()
          {
           inputDesJOption ();
           try{
               validDes=Integer.parseInt(des);
               System.out.print("\n Desimal dari "+des+", hexanya adalah = ");
               Hexa(validDes);      
               System.out.println();  
               JOptionPane.showMessageDialog(null,"hasil perubahan dari desimal"+ des+ " adalah : "+Z);
Z.delete(0,validDes);
           }catch
                  (NumberFormatException error){
               JOptionPane.showMessageDialog(null, des+" bukan angka !! " + "\nMasukkan angka saja !!");
               eksepsiInpHexa();
           }
           }         
          public static void outHasilBiner (){
              eksepsiInpBiner();
              }   
          public static void outHasilOctal ()
          {
          eksepsiInpOctal();
             
          }
          public static void outHasilHexa ()
          {
          eksepsiInpHexa();
          }
          public static void inpNama ()
          {
          name=JOptionPane.showInputDialog("Masukkan" + "Nama Anda : ");
          try{
              if(name.isEmpty()){
                  JOptionPane.showMessageDialog(null, "Nama Anda tidak boleh kosong!!");
                  inpNama();//kembali input nama
              }
              }catch(NullPointerException nperror){
                  JOptionPane.showMessageDialog(null,
                          "Harap diisi Nama dulu donk!!");
                  inpNama();//kembali input nama
              }
          }
          public static void inpGender(){
            gender=JOptionPane.showInputDialog("Masukkan" + "Gender Anda : " + " agan / aganwati only");
            a="agan";
            b="aganwati";
          try{
              if(gender.equals(a))  {
                  JOptionPane.showMessageDialog(null,"selamat datang " + a +"  "+ name);
             }else if(gender.equals(b)){
                  JOptionPane.showMessageDialog(null,"selamat datang " + b +"  "+ name);}
                            else{  
               JOptionPane.showMessageDialog(null,"hanya boleh agan atau aganwati ");
              inpGender();}             
              
              }catch
                      (NullPointerException nperror){
                  JOptionPane.showMessageDialog(null,
                          "Harap diisi dulu donk!!");
                  inpGender();//kembali input nama
              }
        }
           public static void huruf() {
        
try {
Javapraktek num = new Javapraktek();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));

if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Angka di luar range!!!","WARNING",JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch(      HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
}

           public static void menuJOption(){
        //..Text untuk tombol.
        inpNama();
        inpGender();
        String[] pilihan = {"BINER","OCTAL","HEXA","PECAHAN","TERBILANG","<<KELUAR>>","<<KEMBALI!!>>"};
        //..."Infinite" loop, selseai jika System.exit(0)
        while (true){
            int response = JOptionPane.showOptionDialog(
                    null  // Tengah Window).
                    , "Met Datang "+gender+" "+name+" !! " + "\nPilih Konversi Bilangan dibawah ini?"// Pesan
                    , "Konversi Bilangan" // Judul Bar
                    , JOptionPane.YES_NO_OPTION // tipe pilihan
                    , JOptionPane.PLAIN_MESSAGE // tipe pesan
                    , null                      // tipe pesan
                    , pilihan                   // tombol next
                    , null                      // label tombol default
                    );
            
            switch (response){
                case 0:
                    outHasilBiner();break;
                case 1:
                    outHasilOctal();break;
                case 2:
                    outHasilHexa();break;
                case 3:    
                   pecahan();break;
                case 4:
                  huruf();break;
                case 5:
                    System.exit(0);break;
                case 6:
                    inpNama();
                    inpGender();
                    break;
                case 7:
                     ;break;
                case -1:
                    System.exit(0);// keluar looping
                default:
                    //... JIka kita disini berarti ada kesalahan
                    JOptionPane.showMessageDialog(null, "404 wrong response"+ response);break;                 
            }
        }
    }

          public static void main(String [] args){
        menuJOption();          
          }
          
}

Dan screenshotnya dibawah ini :
JOptionPane untuk memasukkan gender

JOptionPane untuk pilihan yang keluar

nb: class menu_inputan_JOption bisa diganti dengan nama class sesuka anda

No comments: