konversi bilangan dengan menggunakan JOptionPane

Halo semua!! kita ketemu lagi!
kali ini ane bakal ngejelasin tentang konversi bilangan di java dengan menggunakan fungsi joptionpane.. joptionpane itu sendiri adalah metode untuk menampilkan outputan secara GUI.. sekarang,tidak hanya konversi bilangan saja yang ada di program ini,tetapi juga terdapat konversi pecahan dan terbilang..
check this script! (script tutorial by As'ari Setya)


package praktek1;
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 p="p">temp = "" + bilangan[angka];
}
else if(angka<20 p="p">temp = konversi(angka-10) + " belas";
}
else if(angka<100 p="p">temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200 p="p">temp = "seratus" + konversi(angka-100);
}
else if(angka<1000 p="p">temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000 p="p">temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000 p="p">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 p="p">temp = "" + bilangan[angka];
}
else if(angka<20 p="p">temp = konversi(angka-10) + " belas";
}
else if(angka<100 p="p">temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200 p="p">temp = "seratus" + konversi(angka-100);
}
else if(angka<1000 p="p">temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000 p="p">temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000 p="p">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();
              }
              }catch(NullPointerException nperror){
                  JOptionPane.showMessageDialog(null,
                          " diisi  dulu donk!!");
                  inpNama();
              }
         
          }
   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();
              }
              }catch(NullPointerException nperror){
                  System.exit(0);
              }
          }
   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();}
              if (gender.isEmpty()){ JOptionPane.showMessageDialog(null,
                          "Harap diisi dulu Gan!!");
                  inpGender();}
              }catch(NullPointerException nperror){System.exit(0);}
                   
        }
   public static void huruf() {
       
try {
menu_dari_joption num = new menu_dari_joption();
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","<>","<>"};
        //..."Infinite" loop, selseai jika System.exit(0)
        while (true){
            int response = JOptionPane.showOptionDialog(
                    null  // Tengah Window).
                    , "Welcome "+gender+" "+name+" !! " + "\nPilih Konversi Bilangan dibawah ini?"// Pesan
                    , "Konversi Bilangan"
                    , JOptionPane.YES_NO_OPTION
                    , JOptionPane.PLAIN_MESSAGE
                    , null                    
                    , pilihan                  
                    , null
                    );
           
            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);
                default:
                    JOptionPane.showMessageDialog(null, "Salah Gan! "+ response);break;                
            }
        }
    }
   public static void main(String [] args){
        menuJOption();        
          }
         
}
nb:nama package tidak perlu digunakan.

Sekarang tentang hasil outputnya :D check this out!
Tampilan Awal Program. jika yang ditekan tomblo cancel,langsung akan keluar dari program

Tampilan jika nama tidak diisi

Tampilan Untuk Memasukkan gender

Tampilan apabila kosong atau tidak ditulis agan/aganwati

Tampilan ketika sukses memasukkan nama dan gender

Tampilan untuk memilih menu konversi

Tampilan Input desimal pada pilihan biner,hexa,&oktal.

Tampilan jika angka desimal tidak dimasukkan pada pilihan biner,hexa,&oktal 

Hasil konversi yang muncul
Hasil konversi yang muncul

Hasil konversi yang muncul

Tampilan pada pilihan pecahan

tampilan outputan pilihan pecahan

Tampilan inputan terbilang

outputan pilihan terbilang


sekian postingan dari saya,jika ada salah coding silahkan di coment saja :)


0 komentar: (+add yours?)

Post a Comment