Menu dari JOption (konversi 3 bilangan + pembilang & pecahan)


hey..kau balik lagi nampilin tugas java yang baru ..judulnya kaya yang ada diatas..liat scriptnya langsung aja yaa..:) selamat mencoba

//by : Endah Insani

package Praktek1;
import javax.swing.JOptionPane;

public class menuJoption_new {
    private static String name;
    private static String des;
    private static String jk;
    private static String kelamin;
    private static int validDes;
    static StringBuilder binerHasil= new StringBuilder();
    static StringBuilder hexaHasil= new StringBuilder();
    static StringBuilder oktalHasil= new StringBuilder();
    static String vk;
 
    public static void keBiner(int n){
        if(n>1){
            keBiner(n/2);
        }
        System.out.print(n%2);
        binerHasil.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>0){
            keHexa(n/16);
            System.out.print(daftarHexa[n%16]);
            hexaHasil.append(daftarHexa[n%16]);
        }
    }
    public static void keOktal(int n){
        char[] daftarOktal={'0','1','2','3','4','5','6','7'};
        if(n>0){
            keOktal(n/8);
            System.out.print(daftarOktal[n%8]);
        oktalHasil.append(daftarOktal[n%8]);
        }
    }
 
public static void inputDesJOption(){
        des=JOptionPane.showInputDialog("Masukkan Bilangan Desimal : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "Jangan sampe kosong yaa...");
                inputDesJOption();
            }
        }
        catch(NullPointerException err){
            JOptionPane.showMessageDialog(null, "Hayo hayo mau kemana..ojok kabur");
            inputDesJOption();
        }
    }

    public static void outHasilBiner(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            keBiner(validDes);
         
            JOptionPane.showMessageDialog(null, "Biner bilangan tersebut adalah : "+binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException err){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " woy itu bukan angka !!"
                    + "\nMasukkan angka saja lah.!!");
            outHasilBiner();
        }
    }
    public static void outHasilHexa(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
        keHexa(validDes);
        JOptionPane.showMessageDialog(null, des+" Hexanya adalah: "+hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException err){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " woy itu bukan bukan angka !!"
                    + "\nMasukkan angka saja lah.!!");
            outHasilHexa();
        }
    }
    public static void outHasilOktal(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            keOktal(validDes);
            JOptionPane.showMessageDialog(null, des+" Oktalnya adalah: "+oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " itu bukan angka !!"
                    + "\nMasukkan angka saja lah.!!");
            outHasilOktal();
        }
    }

    //nah kalo yg ini biar bisa inputin nama kita gitu.
    public static void inpNama(){
        name=JOptionPane.showInputDialog("siapa nama muu.?  ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "hey..mau kemana punya nama kan?");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Eitss gak oleh kemana mana");
            inpNama();
        }
    }
    //ini rumusnya jenis kelamin. loh jenis kelamin ada rumusnya? ._.
    public static void jenisKelamin(){
        jk=JOptionPane.showInputDialog("Jenis Kelamin.?? ");
        try{
            if(jk.isEmpty()){
                JOptionPane.showMessageDialog(null, "diisi dulu ta..");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "jangan kabur, diisi dulu ..awas..");
            jenisKelamin();
        }
        if ("laki-laki".equals(jk)) {
            kelamin="abang cakep, ";
        }
        else{
            if("perempuan".equals(jk)){
                kelamin="nona cantik, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Woy isinya cuman laki-laki dan perempuan ojo macem2 !!");
                jenisKelamin();
            }
        }
     
    }

    //ini buat rumusnya terbilang. gangerti maksudnya? coba cek hasilnya aja deh ya
    String[] angka={"","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 = angka[y]+" Ratus ";
            if(y == 1)bilang="Seratus ";
            x%=100;
        }
        if(x<12)bilang += angka[x];
        else{
            y=x/10;
            x%=10;
            if(y==1)
                bilang +=angka[x] + " Belas";
            else
                bilang += angka[y]+ " Puluh "+ angka[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 gede";
        for(int a=6;a>0;a--){
            y =  (int) (x/Math.pow(10, a*3));
            if(y > 0){
                if(y==1 && a==1) bilang += " Seribu "; else bilang += sebut(y) + satuan[a];
            } x %= Math.pow(10, a*3);
        }
        bilang+=sebut((int)x);
        return bilang;
    }
    public static void outTerbilang(){
    vk = JOptionPane.showInputDialog("inputkan Bilangan yang akan disebut : ");
    JOptionPane.showMessageDialog(null, new menuJoption_new().terbilang(new Long(vk)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
 
    }
//ini buat pecahan. bilangan nya dipecah pecah gitu deh ya
    public static void hasilPecahan(){
        int desimal;
     
        String str=JOptionPane.showInputDialog("inputkan bilangan yang akan dipecah : ");
        desimal=Integer.parseInt(str);
        int tu,wa,ga,pat,ma,nam,ju,pan,lan,lu;
     
        tu=desimal/100000;
        desimal%=100000;
     
        wa=desimal/50000;
        desimal%=50000;
             
        ga=desimal/10000;
        desimal%=10000;
     
        pat=desimal/5000;
        desimal%=5000;
                   
        ma=desimal/1000;
        desimal%=1000;
     
        nam=desimal/500;
        desimal%=500;
             
        ju=desimal/100;
        desimal%=100;
     
        pan=desimal/50;
        desimal%=50;
     
        lan=desimal/10;
        desimal%=10;
     
        lu=desimal/1;
        desimal%=1;
 
 
            JOptionPane.showMessageDialog(null,"Jumlah seratus ribuan = "+tu
                                        +"\nJumlah lima puluh ribuan = "+wa
                                         +"\nJumlah sepuluh ribuan = "+ga
                                        +"\nJumlah lima ribuan = "+pat
                                        +"\nJumlah seribuan = "+ma
                                        +"\nJumlah lima ratusan = "+nam
                                        +"\nJumlah seratusan = "+ju
                                        +"\nJumlah lima puluhan = "+pan
                                        +"\nJumlah limaan = "+lan
                                        +"\nJumlah satuan = "+lu
                                        , "PECAHAN", JOptionPane.INFORMATION_MESSAGE);
    }
//ini biar bisa balik ke menu masukkin nama. kali aja namanya ganti
    public static void kembalikeMenu(){
        inpNama();
        jenisKelamin();
    }
//nah kalo yg ini buat menu keseluruhannya
    public static void menuJOption(){
        inpNama();
        jenisKelamin();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI", "<<KELUAR>>"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                    
                             , "WELCOME  "+kelamin+name+" !!"
                                + "\nPilihlah Konversi Bilangan dibawah ini?"// 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:
                    kembalikeMenu();
                    break;
                case 6:
                case -1:
                    System.exit(0);
                default:
                    JOptionPane.showMessageDialog(null, "upps..response  mu salah"
                                                    + response); break;
            }
        }
    }
//kalo disini sih cuman buat manggil aja biar tampil gitu :3
    public static void main(String[] args){
        menuJOption();
    }

}




nah ini hasilnya :

yang pertama,,silahkan inputkan nama kamu disini :

nah,,setelah itu akan muncul perintah buat ngisi jenis kelamin :seperti 


pokoknya kalian harus ngisi semuanya ..jangan sampe ada yang kosong..dan nggak bisa di cancel ataupun keluar..kalo engga....akan muncul seperti ini :


nah,,setelah itu,,kalian masukkin bilangan apa yang mau dikonversikan ..


1. Misanya desimal ke biner seperti ini :

misalkan anda menginputkan desimal ke biner angka 12 lalu hasilnya seperti  : 

okey..nah untuk des ke hexa ke oktal dan yang lain caranya seperti di atas..sedangkan untuk pecahan sebagai berikut :

lalu hasilnya adalaaaaah  :


untuk terbilang sebagai berikut  :



Misalkan kita meng inputkan angka 12000 maka hasilnya :


okey...Selamat Mencoba yaa...semoga bisa membantu..  :)



0 komentar:

Posting Komentar