Selasa, 11 September 2012

Konversi Bilangan menggunakan JOptionPane

Assalamualaikum Guys ^_^
Yupppp........ kali ini saya akan berbagi ilmu lagy dengan kalian . pada pembelajaran kali ini sebenarnya hampir sama dengan kemarin yg konversi bilangan menggunkakan JAVA tetapi kalo ini bedanya adalah pada saat kita memulai proses konversi maka semua akan ditampilkan menggunakan JOptionPane ok Guys pada pembelajaran kali ini pertama" kita nanti akan di minta untuk mengisikan Nama kemudian Gender kemudian kita bisa masuk ke Menu konversi gilangan. 
           disini ada 7 menu konversi bilangan yaitu Biner,Hexa,Oktal,Pecahan,Terbilang,Kembali dan Keluar
 ok Guys dari pada kita kelamaan penasaran Let's langsung saja kita mulai tahap pertama ok ^_^
1.yuhuuu jangan lupa untuk buka NetBeans kemudian New Java class dan beri nama misalnya "KonversiOutputJOptionAll" (kalo ini nama file saya hhe)
Nah kemudian dibawah nama packagae kalian tulis script berikut
             import javax.swing.JOptionPane;
2.kemudian di bawah nama class anda tulis script berikut:
    private static String gender;
    private static String kelamin;
    private static String name;
    private static String desimal;
    private static int validDes;
    static StringBuilder Hasilhexa= new StringBuilder();
    static StringBuilder Hasiloktal= new StringBuilder();
    static StringBuilder Hasilbiner= new StringBuilder();
    static String ch;
3.selanjutnya tulis script di bawah ini maksud dari script berikut ialah untuk prosis konversi nanti nya seperti konversi ke Biner,Hexa,Oktal:
public static void keHexa(int n) {
        char[] daftarbilanganHexa = {'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(daftarbilanganHexa[n % 16]);
            Hasilhexa.append(daftarbilanganHexa[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]);
            Hasiloktal.append(daftarOktal[n % 8]);
        }
    }
   
        
    public static void keBiner(int n) 
        { if (n > 1) {
        keBiner(n / 2); }
        System.out.print(n % 2);
        Hasilbiner.append(n % 2);
        }
4.kemudian adalah script untuk proses pada saat kita memasukkan bilangan desimal nya:
 public static void inputDesJOption(){
        desimal=JOptionPane.showInputDialog("Input The Decimal Value !! : ");
        try{
            if(desimal.isEmpty()){
                JOptionPane.showMessageDialog(null, "You Must Input the decimal value Now !!");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "Owch No you must F1l it  !!");
            inputDesJOption();
        }
    }
5.selanjut nya adalah script untuk hasil dari proses bilangan yang sudah kita konversikan tadi:
public static void outHasilBiner() {
        inputDesJOption();
        try {
            validDes = Integer.parseInt(desimal);
            System.out.print("\n Bilangan desimal : " + desimal + " jika konversi ke Biner maka hasil nya adalah !! : ");
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + desimal + "  jika konversi ke Biner maka hasil nya adalah !! : " + Hasilbiner, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            Hasilbiner = new StringBuilder();
        
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + desimal + "'"
            + " ....BERIKUT BUKAN ANGKA HAYOO !!"
              + "\nHANYA BISA ANDA MASUKKAN ANGKA SAJA !!");
            outHasilBiner();
        }
    }

    public static void outHasilHexa() {
        inputDesJOption();
        try {
            validDes = Integer.parseInt(desimal);
            System.out.print("\n Bilangan desimal : " + desimal + " konversi ke Hexa hasil nya adalah !! : ");
            keHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + desimal 
            + " konversi ke Hexa hasil nya dalah: " + Hasilhexa, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            Hasilhexa = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + desimal + "'"
              + " ....BERIKUT BUKAN ANGKA HAYOO !!"
              + "\nHANYA BISA ANDA MASUKKAN ANGKA SAJA !!");
            outHasilHexa();
        }
    }

    public static void outHasilOktal() {
        inputDesJOption();
        try {
             validDes = Integer.parseInt(desimal);
             System.out.print("\n Bilangan desimal : " + desimal + " konversi ke oktal hasil nya adalah : ");
             keOktal(validDes);
             System.out.println("\n");
             JOptionPane.showMessageDialog(null, "Bilangan desimal : " + desimal + " konversi ke oktal hasil nya adalah : " + Hasiloktal, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
             Hasiloktal = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + desimal + "'"
          + " ....BERIKUT BUKAN ANGKA HAYOO !!"
          + "\nHANYA BISA ANDA MASUKKAN ANGKA SAJA !!");
            outHasilOktal();
        }
    }
6.Tahap berikut nya adalah script untuk menampilkan inputDialog nama dan gender nanti:
 public static void inpNama(){
        name=JOptionPane.showInputDialog("Who is your name ^_^ : ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "maynot empty guys , who is your name?? !!");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Huft how about you , who is your Name ???????!!");
            inpNama();
        }
    }
    
    public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Cewek atau Cowok ya ini ^_^ () : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Hayoo kok gak dijawab hha harus di jawab ya :P");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "Sulit di bilangin kamu cewek apa cowok sic ??");
            jenisKelamin();
        }
        if ("cowok".equals(gender)) {
            kelamin="Mr, ";
        }
        else{
            if("cewek".equals(gender)){
                kelamin="Ms, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Oops tidak tersedia selain cewek / cowok hhe!!");
                jenisKelamin();
            }
        }
        
    }
7.kemudian adalah script untuk menampilkan proses konversi yaitu berupa Terbilang:
  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 "Maaf bilangan yg anda minta 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() {
       ch = JOptionPane.showInputDialog("silahkan anda masukkan bilangan yg anda maksud : ");
       JOptionPane.showMessageDialog(null, new KonversiOutputJoptionAll().terbilang(new Long(ch)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
    }
8.selanjutnya adalah untuk menampilkan konversi pada Pecahan
 public static void hasilPecahan() {
        int desimal;

        String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
        try {
            if (str.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Kok kosong ?? Isi dulu ya.. !!");
                hasilPecahan();
            } else {

                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);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "hayooo silahkan diisi dulu bilangan nya okok. !!");
            hasilPecahan();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "oops kamu salah '" + str + "'"
                    + " .... ini bukan angka !!"
                    + "\nhanya bisa angka saja  !!");
            hasilPecahan();
        }
    }
9.selanjutnya adalah script untuk menampilkan kalo kita mau kembali ke menu awal:
    public static void kembaliMenu(){
        inpNama();
        jenisKelamin();
    }
10.kemudian adalah script untuk pilihan menu lagy:
public static void menuJOption() {
        inpNama();
        jenisKelamin();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "PECAHAN","TERBILANG", "KEMBALI", "KELUAR"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                    null, "Wellcome  ^_^ " + kelamin + name + " !!"
                    + "\nSilahkan anda memulai memilih konversi bilangan di bawah ini "
                    , "Konversi Bilangan" 
                    , JOptionPane.YES_NO_OPTION 
                    , JOptionPane.PLAIN_MESSAGE 
                    , null, pilihan, null 
                    );
            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;
            }
        }
    }
11.selanjut nya yg terakhir adalah untuk menampilkan hasil dari semua code" yang sudah kita tulis jangan lupa Guys kalo sampey script ini lupa gak kalian tulis maka hasilnya ya percuma gak sesuai dg harapan:
public static void main(String[] args) {
        menuJOption();
    }
}
  Nah alhamdulillah sekarang kita sudah selesai menulis kan banyak script , waktunya untuk melihat hasil nya Let's GO .....^_^
Tampilan awal meminta untuk memasukkan Nama anda
Misalnya saya masukkan nama saya Charisma
Kemudian Tampilan ini meminta kita untuk menuliskan Gender kita 
Apabila kita tidak menuliskan Gender kita maka akan muncul MrssageDialog seperti itu
Misalnya saya masukkan jenis Gender saya "cewek"
Nah kemudian tampilan ini adalah tampilan menu konversi bilangan yang akan kita pilih 
misal kita memilih konversi ke biner maka muncul tampilan seperty di atas
kemudian kalo sudah misalnya kita inputkan nilai "90"
Nah berikut Hasil dari konversi ke Biner

berikut di atas ini adalah tampilan pada console nya

Misal  pada saat kita klik OK pada hasil konversi ke Biner maka akan muncul menu konversi lagy dan sekarang kita mencoba yg konversi ke Hexa 

Maka hasil dari konversi ke Hexa adalah di atas
Ne adalah tampilan dari hasil konversi hexa yyg di console
Nah sekarang kita mencoba untuk konversi ke oktal ,oh ya temen" sebelumn nyaa pada hasil konversi ke hexa tady kita klik ok maka kita kembali ke menu utama dan sekarang kita mencoba unutk konversi ke Okta, seperti diatas misal kita masukkan "90"
Nah ini dia hasil nya 
Berikut di atas ini adalah tampilah yg ada di console
Nah berikut tampilan pada "Terbilang" misal kita masukkan "25"
Ini Dia hasilnya "Terbilang"
Sekarang kita berada di Konversi ke pecahan misal kita masukkan nilai 12345
Ini hasil dari Pecahan di atas
Baik teman"pada Hsil Pecahan tadi apabila kita klik Ok maka akan kembali ke menu awal seperti gambar berikut di atas dan apabila kita ingin kembali langsung saja klik KEMBALI 

Dan hasilnya maka anda akan menemui tampilan seperti ini lagy dimana anda harus memasukkan nama seperty proses di awal tadi dan apabila anda ingin keluar dari proses konversi ini maka anda hanya tekan KELUAR saja
Ok temen" alhamdulillah pembelajaran kita kali ini berhasil semoga bermanfaatn dan bisa jadi Referensi temen" yang mau mencoba  nya, Awal nya memang belum kebayang seperty apap nanti hasilnya akan jadi dan mungkin kta berfikir bahawa script nya akan banyak dan runkit teyapi aklo kita faham walopun bnyak ttep menyenagkan ok temen" sekian ya apabila ada kesalahan I nead your coment ok hhe Bye bye Wassalamualikum ^_^













   

Tidak ada komentar:

Posting Komentar