Minggu, 09 September 2012

Konversi menggunakan JOptionPane

package praktek1;
import javax.swing.JOptionPane;
public class konversiJOption {
    private static String name;
    private static String des;
    private static String gender;
    private static String kelamin;
    private static int validDes;
    static StringBuilder binerResult= new StringBuilder();
    static StringBuilder hexaResult= new StringBuilder();
    static StringBuilder oktalResult= new StringBuilder();
    static String sc;
public static void toBiner(int n){
        if(n>1){
            toBiner(n/2);
        }
        System.out.print(n%2);
        binerResult.append(n%2);
    }
    public static void toHexa(int n){//int n : parameter
        char[] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        if(n>0){
            toHexa(n/16);
            System.out.print(daftarHexa[n%16]);
            hexaResult.append(daftarHexa[n%16]);
        }
    }
    public static void toOktal(int n){
        char[] daftarOktal={'0','1','2','3','4','5','6','7'};
        if(n>0){
            toOktal(n/8);
            System.out.print(daftarOktal[n%8]);
        oktalResult.append(daftarOktal[n%8]);
        }
    }
public static void inputDesJOption(){
        des=JOptionPane.showInputDialog("Masukkan bilangan Desimalnya : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "Isi Bilangan Desimalnya Dulu");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "Dilarang Keluar Sebelum Mengisi Bilangan Desimal");
            inputDesJOption();
        }
    }
public static void outHasilBiner(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Biner adalah: ");
            toBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Biner adalah : "
                    + ""+binerResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilBiner();
        }
    }
    public static void outHasilHexa(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\nBilangan Decimal "+des+" dalam Hexa adalah: ");
            toHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Hexa adalah : "
                    + ""+hexaResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilHexa();
        }
    }
    public static void outHasilOktal(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            System.out.print("\nBilangan Desimal "+des+" dalam Oktal adalah: ");
            toOktal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan "+des+"  Desimal dalam Octal adalah : "
                    + ""+oktalResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka"
                    + "\nMohon isikan angka saja");
            outHasilOktal();
        }
    }
public static void inpNama(){
        name=JOptionPane.showInputDialog("Siapa nama Anda : ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "Nama Tolong Diisi Dulu");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Jangan Keluar Sebelum Mengisi Nama");
            inpNama();
        }
    }
    public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Pilih Jenis Kelamin Anda (L/P)huruf besar : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Mohon diisi dulu ya (L/P");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "harap diisi ");
            jenisKelamin();
        }
        if ("L".equals(gender)) {
            kelamin="OLaki-laki, ";
        }
        else{
            if("P".equals(gender)){
                kelamin="Perempuan, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Mohon Isi (L/P) saja");
                jenisKelamin();
            }
        }
     
    }
String[] number={"","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 = number[y]+" ratus ";
            if(y == 1)bilang=" Sseratus ";
            x%=100;
        }
        if(x<12 bilang="bilang" br="br" number="number" x="x">        else{
            y=x/10;
            x%=10;
            if(y==1)
                bilang +=number[x] + " belas ";
            else
                bilang += number[y]+ " puluh "+ number[x];
        }
        return bilang;
    }
    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: ");
    JOptionPane.showMessageDialog(null, new konversiJOption().terbilang(new Long(sc)), "Terbilang", JOptionPane.INFORMATION_MESSAGE);
    }
  public static void hasilPecahan(){
        int desimal;
     
        String str=JOptionPane.showInputDialog("Masukkan bilangan: ");
        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);
    }
public static void kembaliMenu(){
        inpNama();
        jenisKelamin();
    }

public static void menuJOption(){
        inpNama();
        jenisKelamin();
        String[] pilihan = {"Biner", "Hexa", "OKtal", "Terbilang", "Pecahan", "Kembali", "Keluar"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                    
                             , "Selamat Datang "+kelamin+name+" !!"
                                + "\nPilih Menu Konversi Bilangan"// Pesan
                             , "Konversi Bilangan"               // Judul di Tittlebar
                             , JOptionPane.YES_NO_OPTION  // Tipe Option
                             , JOptionPane.PLAIN_MESSAGE  // Tipe Pesan
                             , null                    
                             , pilihan  
                             , null    // Default button
                           );
            switch(response){
                case 0:
                    outHasilBiner();
                    break;
                case 1:
                    outHasilHexa();
                    break;
                case 2:
                    outHasilOktal();
                    break;
                case 3:
                    outTerbilang();
                    break;
                case 4:
                    hasilPecahan();
                    break;
                case 5:
                    kembaliMenu();
                    break;
                case 6:
                case -1:
                    System.exit(0);
                default:
                    JOptionPane.showMessageDialog(null, "response salah"
                                                    + response); break;
            }
        }
    }


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

}


berikut beberapa ScreenShoot nya

 






Tidak ada komentar:

Posting Komentar

comment yang banyak