lucu

Minggu, 09 September 2012

Konversi 3 Bilangan Menggunakan JOptionPane Java


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 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 += number[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 MenuDariJOption().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();
    }

}


Pertama di run akan keluar seperti ini, lalu ketikkan nama anda seperti gambar di bawah dan klik ok




Setelah klik ok isi jenis kelamin anda


setelah itu pasti keluar seperti gambar dibawah ini, silahkan pilih apa yang akan dikonfersikan


jika anda meng klik tombol biner, hexa, dan oktal akan muncul seperti gambar di bawah, lalu isi bilangan yang akan dikonversikan


dan akan keluar hasilnya seperti gambar di bawah


jika mng klik tombol terbilang lalu memasukkan angka dan akan muncul hasil seperti di bawah ini


jika ingin memilah bilangan menjadi pecahan, klik tombol pecahan, lalu masukkan angka dan akan muncul hasil seperti gambar di bawah ini


jika ingin keluar, klik tombol keluar.

Semoga Bermanfaat ^^










Tidak ada komentar:

Posting Komentar