twitter


Assalamualaikum..
Kali ini kita belajar tentang pemograman JAVA menggunakan menu JOption. tapi program yang satu ini ada peningkatan dari program-program yang sebelumnya. Program ini lebih ribet tapi lebih lengkap, tiap kesalahan yang dilakukan ada peringatan kaesalahannya lo.... lebih canggih ada peningkatan :)

langsung saja kita lihat codingnya...


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package praktek1;
import javax.swing.JOptionPane;
public class MenuDariJOption {
  private static String name ;
  private static String des;
 private static String gender;
    private static String kelamin;
    private static int validDes;
    static StringBuilder biner= new StringBuilder();
    static StringBuilder hexa= new StringBuilder();
    static StringBuilder oktal= new StringBuilder();
    static String sc;
  public static void keBiner(int n ){
  if(n>1){
      keBiner(n/2);
  }
  System.out.print(n%2);
  biner.append(n%2);
  }
 
  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]);
   hexa.append(daftarHexa[n%16]);
  }
 
  public static void keOktal(int n){
      char[] daftarOktal={'0','1','2','3','4','5','6','7'};
      if (n>1){
          keOktal(n/8);
      }
      System.out.print(daftarOktal[n%8]);
     oktal.append(daftarOktal[n%8]);
      }
 
  public static void inputDesJOption(){
  des= JOptionPane.showInputDialog("Masukkan Bil.Desimal =");
  try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "harus diisi bilangan desimal terlebih dahulu ");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "sorry isilah bilangan desimal terlebih dahulu");
            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, "Bilangan Desimal "+des+" dalam Biner adalah : "
                    + ""+biner, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
  biner= new StringBuilder();
  }catch(NumberFormatException nfe){
      JOptionPane.showMessageDialog(null, des+" bukan angka!!"
              + "\nMasukkan angka saja!!");
      eksepsiInpBiner();
  }
  }
 
  public static void eksepsiInpHexa(){
   inputDesJOption();
  try{
      validDes=Integer.parseInt(des);
      System.out.print("\nDesimal dari "+des+
              ", Hexanya adalah");
      keHexa(validDes);
      System.out.println("\n");
     
  JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" Hexanya adalah : "
                    + ""+ hexa, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
  hexa= new StringBuilder();
  }catch(NumberFormatException nfe){
      JOptionPane.showMessageDialog(null, des+" bukan angka!!"
              + "\nMasukkan angka saja!!");
      eksepsiInpHexa();
      }  
  }
  public static void eksepsiInpOktal(){
   inputDesJOption();
  try{
      validDes=Integer.parseInt(des);
      System.out.print("\nDesimal dari "+des+
              ", oktalnya adalah ");
      keOktal(validDes);
      System.out.println("\n");
     
  JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" oktalnya adalah : "
                    + ""+ oktal,"Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
  oktal= new StringBuilder();
  }catch(NumberFormatException nfe){
      JOptionPane.showMessageDialog(null, des+" bukan angka!!"
              + "\nMasukkan angka saja!!");
      eksepsiInpOktal();
      }  
  }
 
  public static void inpNama (){
  name=JOptionPane.showInputDialog("Masukkan 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, "Nama tidak boleh angka !!");
              inpNama();
          }
      }
      }
  }catch(NullPointerException npe){
      JOptionPane.showMessageDialog(null, "Harap diisi Nama dulu donk!!");
      inpNama();//kemabi input nama
  }
 
  }
  public static void JenisKelamin(){
        gender=JOptionPane.showInputDialog("Jenis Kelamin laki-laki/perempuan (menggunakan huruf kecil): ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Mohon diisi terlebih dahulu laki-laki/perempuan (menggunakan huruf kecil)");
                JenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "harap diisi dahulu ");
            JenisKelamin();
        }
        if ("laki-laki".equals(gender)) {
            kelamin="Bro, ";
        }
        else{
            if("perempuan".equals(gender)){
                kelamin="Sist, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Mohon diisikan laki-laki / perempuan saja");
                JenisKelamin();
            }
        }
       
    }
 
  String[] numb={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};

    private String sebut(int x){
        String bilangan="";
        int y = x / 100;
        if(y > 0){
            bilangan = numb[y]+" ratus ";
            if(y == 1)bilangan=" Sseratus ";
            x%=100;
        }
        if(x<12)bilangan += numb[x];
        else{
            y=x/10;
            x%=10;
            if(y==1)
                bilangan +=numb[x] + " belas ";
            else
                bilangan += numb[y]+ " puluh "+ numb[x];
        }
        return bilangan;
    }
    private String terbilang(long  x){
        int y;
        String bilangan="";
        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) bilangan += " Seribu "; else bilangan += sebut(y) + satuan[i];
            } x %= Math.pow(10, i*3);
        }
        bilangan+=sebut((int)x);
        return bilangan;
    }
   
   
    public static void Terbilang(){
    sc = JOptionPane.showInputDialog("Masukan Bilangan berapa saja: ");
    try{
            if(sc.isEmpty()){
                JOptionPane.showMessageDialog(null, "Mohon diisi terlebih dahulu");
                Terbilang();
            }
       
     JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(sc)), "Terbilang", JOptionPane.INFORMATION_MESSAGE);
  
    }catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "harap diisi dahulu ");
            Terbilang();
        }
  
    } 
  public static void hasilPecahan(){
        int decimal;
        try {
     
        String str=JOptionPane.showInputDialog("Masukkan bilangan pecahan : ");
        decimal =Integer.parseInt(str);
        int satu, dua, tiga, empat, lima, enam, tujuh, delapan, sembilan, sepuluh, sebelas, duabelas, tigabelas;
       
        satu=decimal/100000;
        decimal%=100000;
       
        dua=decimal/50000;
        decimal%=50000;
       
        tiga=decimal/20000;
        decimal%=20000;
       
        empat=decimal/10000;
        decimal%=10000;
       
        lima=decimal/5000;
        decimal%=5000;
       
        enam=decimal/2000;
        decimal%=2000;
       
        tujuh=decimal/1000;
        decimal%=1000;
       
        delapan=decimal/500;
        decimal%=500;
       
        sembilan=decimal/200;
        decimal%=200;
       
        sepuluh=decimal/100;
        decimal%=100;
       
        sebelas=decimal/50;
        decimal%=50;
       
        duabelas=decimal/10;
        decimal%=10;
       
        tigabelas=decimal/1;
        decimal%=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(NumberFormatException nfe){
      JOptionPane.showMessageDialog(null," bukan angka!!"
              + "\nMasukkan angka saja!!");
      hasilPecahan();
      }  
           
    }
  public static void Kembali(){
        inpNama();
        JenisKelamin();
    }

  public static void menuJOption (){
  //.... Text untuk tombol.
      inpNama();
      JenisKelamin();
      String[] pilihan  = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "<<KEMBALI>>",  "<<KELUAR>>"};
      //..."infinite" loop, selesai jika System.exit(0)
      while (true){
          int response = JOptionPane.showOptionDialog(
                  null // tengah window.
                  ,"Met Datang "+kelamin+name+"!!"
                  + "\nPilih Konversi Bilangan dibawah ini?" //pesan
                 , "Konversi Bilangan" // judul Bar
                 , JOptionPane.YES_NO_OPTION // tipe pilihan
                  ,JOptionPane.PLAIN_MESSAGE // tipe pesan
                  , null //icon (none)
                  , pilihan //tombol text.
                  ,null // tabel tombol default
                  );
          //... menggukan swicth untuk mengecek tombol yang ditekan.
          switch (response){
             
              case 0:
                  eksepsiInpBiner();
                  break;
              case 1 :
                 eksepsiInpHexa();
                  break;
              case 2 :
                  eksepsiInpOktal();
                  break;
              case 3:
                   Terbilang();
                    break;
                case 4:
                    hasilPecahan();
                    break;
                case 5:
                    Kembali();
                    break;
                case 6:
              case -1:
                  //... antara tombol (3) dan close box(-1) ditangani disini.
                  System.exit(0); // keluar looping, tapi..
              default:
                  //... jika kita disini ada kesalahan
                  JOptionPane.showMessageDialog(null, "response tak terduga"
                          + response);break;
                 
          }
                 
      }
             
  }
  public static void main(String[] args){
      menuJOption();
              }
 
}

 setelah diketik coding diatas menggunakan netBeans maka langsung saja untuk menjalankan program Shift+f6




* berikut adalah hasil dari coding diatas
      => ini adalah tampilan awal yaitu menginputkan nama



contoh:




   # peringatan kesalahan:
 1. jika nama tidak diisi langsung meng.Klik OK maka muncul peringatan seperti ini

  2. jika nama tidak diisi langsung meng.Klik Cancel maka muncul peringatan seperti ini



  3.  jika nama tidak diisi langsung meng.Klik tanda silang di pojok kanan atas maka muncul   peringatan seperti ini



 4.jika nama diisi dengan angka bukan huruf seperti ini
        maka muncul   peringatan seperti ini


     => setelah menginputkan nama dengan benar langsung tekan OK. maka akan masuk pada pemilihan jenis kelamin. seperti berikut




  # peringatan kesalahan:
 1. jika Jenis Kelamin tidak diisi langsung meng.Klik OK maka muncul peringatan seperti ini



 2. jika Jenis Kelamin tidak diisi langsung meng.Klik CANCEL maka muncul peringatan seperti ini




 3.  jika Jenis Kelamin tidak diisi langsung meng.Klik tanda silang pada pojok kanan atas maka muncul peringatan seperti ini



 4.  jika Jenis Kelamin diisi dengan Format yang salah seperti ini



      maka muncul peringatan seperti ini




      => setelah menginputkan Jenis Kelamin dengan benar langsung tekan OK. maka akan masuk pada pemilihan utama . seperti berikut



 => ketika diKlik.kan BINER maka akan muncul seperti ini..

 misal:

     apabila sudah memenuhi syarat maka hasil yang muncul adalah



# peringatan kesalahan:
 1. jika tidak diisi langsung meng.Klik OK maka muncul peringatan seperti ini



 2. jika tidak diisi langsung meng.Klik CANCEL maka muncul peringatan seperti ini




 3. jika tidak diisi langsung meng.Klik tanda silang pada pojok kanan atas maka muncul peringatan seperti ini




    => ketika diKlik.kan HEXA maka akan muncul seperti ini..

        misal:

  apabila sudah memenuhi syarat maka hasil yang muncul adalah 




  # peringatan kesalahan 
1. jika tidak diisi langsung meng.Klik OK maka muncul peringatan seperti ini



 2. jika tidak diisi langsung meng.Klik CANCEL maka muncul peringatan seperti ini




 3. jika tidak diisi langsung meng.Klik tanda silang pada pojok kanan atas maka muncul peringatan seperti ini




         
 => ketika diKlik.kan OKTAL maka akan muncul seperti ini..

        misal:
   apabila sudah memenuhi syarat maka hasil yang muncul adalah


# peringatan kesalahan

 1. jika tidak diisi langsung meng.Klik OK maka muncul peringatan seperti ini



 2. jika tidak diisi langsung meng.Klik CANCEL maka muncul peringatan seperti ini




 3. jika tidak diisi langsung meng.Klik tanda silang pada pojok kanan atas maka muncul peringatan seperti ini




    => ketika diKlik.kan TERBILANG maka akan muncul seperti ini..


 misal:


  hasil yang diperoleh :



# peringatan kesalahan


 1. jika tidak diisi langsung meng.Klik OK maka muncul peringatan seperti ini



 2. jika tidak diisi langsung meng.Klik CANCEL maka muncul peringatan seperti ini




 3. jika tidak diisi langsung meng.Klik tanda silang pada pojok kanan atas maka muncul peringatan seperti ini



    => ketika diKlik.kan PECAHAN maka akan muncul seperti ini..


 miasl:

 hasilnya seperti ini:





# peringatan kesalahan
1. jika tidak diisi langsung meng.Klik OK maka muncul peringatan seperti ini



 2. jika tidak diisi langsung meng.Klik CANCEL maka muncul peringatan seperti ini




 3. jika tidak diisi langsung meng.Klik tanda silang pada pojok kanan atas maka muncul peringatan seperti ini



0 komentar:

Posting Komentar