Menu dari JOptionPane (konversi 3 bilangan, terbilang, sama pecahan)

September 06, 2012

Kali ini aku kembali mosting konversi 3 bilangan program java menggunakan JOptionPane, emang sebenarnya apa sih JOptionPane itu? kita lihat aja script di bawah ini.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package PRAKTEK1;
import javax.swing.JOptionPane;
/**
 *
 * @author Sarre_Chuaa

 */
public class MenudariJOptionLengkap {
     //global variabel
    private static String name; //object
    private static String des; //object
    private static String jk; //object
    private static String kelamin; //object
    private static int validDes; //variabel
    static StringBuilder binerHasil= new StringBuilder();
    static StringBuilder hexaHasil= new StringBuilder();
    static StringBuilder oktalHasil= new StringBuilder();
    static String vk;
//fungsi/method nya (sama kayak konversi bilangan sebelumnya)
    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]);
        }
    }
//pendeklarasian inputin bilangan desimalnya
public static void inputDesJOption(){
        des=JOptionPane.showInputDialog("Masukkan Bilangan Desimalmu : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "Isi nya yang lengkap yah ");
                inputDesJOption(); //kembali input bilangan desimal
            }
        }
        catch(NullPointerException nfe){
            JOptionPane.showMessageDialog(null, "Kok  nggak di isi");
            inputDesJOption(); //kembali input bilangan desimal
        }
    }
//ini hasil nya di messagedialog
    public static void outHasilBiner(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            keBiner(validDes);
         
            JOptionPane.showMessageDialog(null, "Binernya adalah "+binerHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilBiner();
        }
    }
    public static void outHasilHexa(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
        keHexa(validDes);
        JOptionPane.showMessageDialog(null, des+" Hexanya adalah: "+hexaHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilHexa();
        }
    }
    public static void outHasilOktal(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            keOktal(validDes);
            JOptionPane.showMessageDialog(null, des+" Oktalnya adalah: "+oktalHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilOktal();
        }
    }

    //pendeklarasian inputin nama
    public static void inpNama(){
        name=JOptionPane.showInputDialog("Masukkan Namamu ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "Tolong namanya jangan di kosongi ya!!");
                inpNama(); //kembali input nama
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Isi dulu tuh Namamu!!");
            inpNama(); //kembali input nama
        }
    }
    //pendeklarasian jenis kelamin nya
    public static void jenisKelamin(){
        jk=JOptionPane.showInputDialog("Jenis Kelamin? ");
        try{
            if(jk.isEmpty()){
                JOptionPane.showMessageDialog(null, "Tolong jenis kelaminnya jangan di kosongi ya!!");
                jenisKelamin();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Isi dulu tuh Jenis Kelaminmu!! ");
            jenisKelamin();
        }
        if ("Laki-laki".equals(jk)) {
            kelamin="Bro";
        }
        else{
            if("Perempuan".equals(jk)){
                kelamin="Sis, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Pilihan nya cuma ada dua yah, jangan milih yang lain");
                jenisKelamin();
            }
        }
     
    }

 
    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;
    }
//scriptnya TERBILANG kayak gini
    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 nya";
        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("Masukan Bilangan yang akan dibilang: ");
    JOptionPane.showMessageDialog(null, new MenudariJOptionLengkap().terbilang(new Long(vk)), "TERBILANG nya", JOptionPane.INFORMATION_MESSAGE);
 
    }
//script PECAHAN kayak gini
    public static void hasilPecahan(){
        int desimal;
     
        String str=JOptionPane.showInputDialog("Masukkan bilangan yang akan kamu pecahkan: ");
        desimal=Integer.parseInt(str);
        int satu,dua,tiga,empat,lima,enam,tujuh,delapan,sembilan,sepuluh;
     
        satu=desimal/100000;
        desimal%=100000;
     
        dua=desimal/50000;
        desimal%=50000;
             
        tiga=desimal/10000;
        desimal%=10000;
     
        empat=desimal/5000;
        desimal%=5000;
                   
        lima=desimal/1000;
        desimal%=1000;
     
        enam=desimal/500;
        desimal%=500;
             
        tujuh=desimal/100;
        desimal%=100;
     
        delapan=desimal/50;
        desimal%=50;
     
        sembilan=desimal/10;
        desimal%=10;
     
        sepuluh=desimal/1;
        desimal%=1;
 
 
            JOptionPane.showMessageDialog(null,"Jumlah seratus ribuan = "+satu
                                        +"\nJumlah lima puluh ribuan = "+dua
                                         +"\nJumlah sepuluh ribuan = "+tiga
                                        +"\nJumlah lima ribuan = "+empat
                                        +"\nJumlah seribuan = "+lima
                                        +"\nJumlah lima ratusan = "+enam
                                        +"\nJumlah seratusan = "+tujuh
                                        +"\nJumlah lima puluhan = "+delapan
                                        +"\nJumlah limaan = "+sembilan
                                        +"\nJumlah satuan = "+sepuluh
                                        , "PECAHAN nya", JOptionPane.INFORMATION_MESSAGE);
    }
//
    public static void kembalikeMenu(){
        inpNama();
        jenisKelamin();
    }
//menu semuanya ada di bagian ini
    public static void menuJOption(){
        //    . . .teks untuk tombol
        inpNama();
        jenisKelamin();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI", "<<KELUAR>>"};
       // "Infinite" loop, selesai jika sistem exit(0)
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                    
                             , "Welcome "+kelamin+name+" !!"
                                + "\nPilih Konversi Bilangan dibawah ini?"// Pesan
                             , "Konversi Bilangan"               // //judul bar
                             , JOptionPane.YES_NO_OPTION  // Tipe Option/pilihan
                             , JOptionPane.PLAIN_MESSAGE  // Tipe Pesan
                             , null                        // icon(none)
                             , pilihan       // tombol teks
                             , null    // label tombol Default
                           );
             //menggunakan switch untuk mengecek tombol yang di tekan.
            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:
                    // ...antara tombol(3) dan close box(-1) di tangani 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();
    }

}


Script yang panjang bukan, namun menghasilkan program yang menarik kok :) 
~Ayo buka netbeans nya terus buat java web page kasih nama terserah kalian bikin script kayak di atas... lalu shift+F6 aja kita tengok hasil nya yah 

1.Yeah bisa di running, kalo gitu inputkan nama mu 

NB. Kalo namaMu gak kamu isi langsung kamu "ok" muncul pesan gini


NB. ini kalo namaMu kamu kosongi sama kamu "cancel" muncul nya gini


 2.Nah kalo namaMu udah kamu isi, sekarang kita nginputin jenis kelamin 

                                        

NB. Kalo jenis kelaminnya gak kamu isi langsung kamu "ok" muncul pesan gini


NB. ini kalo jenis kelaminnya kamu kosongi sama kamu "cancel" muncul nya gini


NB.Kalo ini kamu nginputin jenis kelamin mu selain pada script(just Perempuan and Laki-laki) yang tadi kita buat akan muncul pesan gini


3.Kita udah berhasil nginputin Nama juga Jenis Kelamin jadi muncul gini


4.Udah muncul kayak yang di atas jadi kita tinggal pilih konversi bilangan apa? sebelum kita melakukan pengkonversian kita tahu bahwa di dalam script tadi kita harus nginputin bilangan desimal terlebih dahulu (nih hasilnya)


NB. Kalo bilangan desimalnya gak kamu isi langsung kamu "ok" muncul pesan gini



NB. ini kalo bilangan desimalnya kamu kosongi sama kamu "cancel" muncul nya gini



4. Kemudian kita tinggal melihat hasil pengkonversiannya misalnya kamu tadi nginputin bilangan desimal 12 maka
konversi ke binernya seperti di bawah ini


 konversi ke hexanya seperti di bawah ini


 konversi ke hexanya seperti di bawah ini


 5.Setelah kamu "ok" kita lihat yah apa yang terjadi (nah ini dia sesudah kita ngonversikan tadi kembali pada message "Konversi Bilangan" lagi)



6.Ya udah deh kita sekarang kan udah kembali ke menu "Konversi Bilangan" nya kan jadi ayok nyobain bagian "TERBILANG" atau biasanya di sebut "Pengejaan Angka", pilih TERBILANG yah lalu muncul kayak di bawah ini


nih kita nginputin


nih hasilnya 


7.Ini kita ganti nyobain yang bagian "PECAHAN" atau "Memilah sekelompok angka"

sama kayak yang diatas kita nginputin angka terlebih dahulu



nih hasilnya


8.Sekarang beralih ke bagian "KEMBALI" yah, sebelum tahu screenshotnya pasti kalian semua udah pada ngerti semua kan jika "KEMBALI" kita pilih apa yang terjadi :))))  yuhuuu, bener sekali hasilnya kayak ini "kembali ke inputan pertama setelah program di running" 



9.Ini yang terakhir bagian "<<KELUAR>>" yah pastinya kalo kita pilih "KELUAR" kita meninggalkan page yang kita running tadi dan mengakhiri program yang di jalankan :)

huhhh, sangat panjang sekali yah sobat MenudariJOptionPane kali ini, jangan sungkan-sungkan memberi komentar kalo emang nih postingan ku belum benar dan juga mohon sarannya agar bisa memperbaiki nya. Sekian Semoga Bermanfaat.




You Might Also Like

0 komentar

Facebook

Part Of

Blogger Perempuan indonesian hijab blogger muslimah blogger Female Blogger TPC Surabaya

Pinterest