CLICK HERE FOR FREE BLOGGER TEMPLATES, LINK BUTTONS AND MORE! »

Rabu, 12 September 2012

MenuDariJOption

Konversi Bilangan Menggunakan Menu JOption


Kali ini saya akakn men-shar hasil belajar saya di kelas,yaitu tentang java.
Project ini menggunakan menu dari JOptionPane.
Jadi kita mengkonversi bilangan yg interface nya menggunakan dialog dari JOptionPane.
Dan coding nya juga menggunakan menu dari JOption.

Caranya :
Bukalah terlebih dahulu Netbeans nya.
Kemudian,buat JavaProject. Setelah itu buatlah packages di dalam JavaProject. Lalu buatlah Java Class di dalam Packages.

Setelah itu, tuliskan coding berikut ini :


package project.java;
import javax.swing.JOptionPane;
/**
 *
 * @author henis yus eva
 */
public class MenuDariJOption {
    private static String name;
    private static String des;
    private static int validDes;
    static String kelamin;
    static String inpTerbilang;
    static StringBuilder hasilBiner = new StringBuilder();
    static StringBuilder hasilHexa = new StringBuilder();
    static StringBuilder hasilOktal = new StringBuilder();

    public static void keBiner(int n) {
        if(n>1) {
            keBiner(n/2);
        }
        System.out.print(n%2);
        hasilBiner.append(n % 2);
    }
    public static void Hexa(int n){
        char[] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        int sisaBagi = n%16;
        if(n>1){
            Hexa((n - sisaBagi) / 16);
            System.out.print(daftarHexa[n%16]);
            hasilHexa.append(n % 16);
        }
    }
    public static void keOktal(int n) {
        char[] daftarOktal = {'0', '1', '2', '3', '4', '5', '6', '7'};
        if (n > 1) {
            keOktal(n / 8);
        }
        System.out.print(daftarOktal[n % 8]);

        hasilOktal.append(n % 8);
    }
    public static void inputDesJOption() {
        des=JOptionPane.showInputDialog("Masukkan "
                + "Bil.Desimalnya = ");
                try {
            if (des.isEmpty()) {
                JOptionPane.showMessageDialog(null,
                        "bilangan tidak boleh kosong !");
                inputDesJOption();//kembali input nama
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null,
                    "Harap diisi Bilangan desimalnya dahulu !");
            inputDesJOption(); }//kembali input bil desimal
    }
    public static void inpKelamin() {
        kelamin = JOptionPane.showInputDialog("Masukkan"
                + "Jenis Gender anda laki-laki/perempuan :");
        try {
            if (kelamin.isEmpty()) {
                JOptionPane.showMessageDialog(null,
                        "Jenis Gender tidak boleh kosong !");
                inpKelamin();//kembali input kelamin
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null,
                    "Harap diisi Gender anda dahulu !");
            inpKelamin();//kembali input kelamin
        }
        if ("laki-laki".equals(kelamin)) {
            kelamin = "Mr ";
        } else {
            if ("perempuan".equals(kelamin)) {
                kelamin = "Ms ";

            } else {
                JOptionPane.showMessageDialog(null, "Hanya perempuan atau laki - laki");
                inpKelamin();
            }
        }
    }

    public static void eksepsiInpBiner() {
        inputDesJOption();
        try { //konsepnya seperti if dan else ------ try-catch-catch----finally
            validDes = Integer.parseInt(des);
            System.out.print("\nDesimal dari " + des
                    + ", Binernya adalah = ");
            keBiner(validDes);
            System.out.println();
            JOptionPane.showMessageDialog(null, "Bilangan desimal :" + des
                    + " maka binernya adalah :" + hasilBiner, "KONVERSI BILANGAN", JOptionPane.PLAIN_MESSAGE);
            hasilBiner = new StringBuilder();
        } catch (NumberFormatException nfe) {// dirun saat kesalahan formatnumber
            JOptionPane.showMessageDialog(null, des
                    + "bukan angka !"
                    + "\nMasukkan angka saja !");
            eksepsiInpBiner();
        }
    }

    public static void eksepsiInpHexa() {
        inputDesJOption();
        try { //konsepnya seperti if dan else ------ try-catch-catch----finally
            validDes = Integer.parseInt(des);

            System.out.print("\nDesimal dari " + des
                    + ", Hexanya adalah = ");
            Hexa(validDes);
            System.out.println();
            JOptionPane.showMessageDialog(null, "Bilangan desimal :" + des
                    + " maka hexanya adalah :" + hasilHexa, "KONVERSI BILANGAN", JOptionPane.PLAIN_MESSAGE);
            hasilHexa = new StringBuilder();
        } catch (NumberFormatException nfe) {// dirun saat kesalahan formatnumber
            JOptionPane.showMessageDialog(null, des
                    + "bukan angka !"
                    + "\nMasukkan angka saja !");
            eksepsiInpHexa();
        }
    }

    public static void eksepsiInpOktal() {
        inputDesJOption();
        try { //konsepnya seperti if dan else ------ try-catch-catch----finally
            validDes = Integer.parseInt(des);
            System.out.print("\nDesimal dari " + des
                    + ", Oktalnya adalah = ");
            keOktal(validDes);
            System.out.println();
            JOptionPane.showMessageDialog(null, "Bilangan desimal :" + des
                    + " maka oktalnya adalah :" + hasilOktal, "KONVERSI BILANGAN", JOptionPane.PLAIN_MESSAGE);
            hasilOktal = new StringBuilder();
        } catch (NumberFormatException nfe) {// dirun saat kesalahan formatnumber
            JOptionPane.showMessageDialog(null, des
                    + "bukan angka !"
                    + "\nMasukkan angka saja !");
            eksepsiInpOktal();
        }
    }
    public static void outHasilBiner() {
        eksepsiInpBiner();
    }
    public static void outHasilHexa() {
        eksepsiInpHexa();
    }
    public static void outHasilOktal() {
        eksepsiInpHexa();
    }
    public static void inpNama() {
        name = JOptionPane.showInputDialog("Masukkan"
                + "Nama Anda :");
        try {
            if (name.isEmpty()) {
                JOptionPane.showMessageDialog(null,
                        "nama tidak boleh kosong !");
                inpNama();//kembali input nama
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null,
                    "Harap diisi Nama dahulu !");
            inpNama();//kembali input nama

        } catch (NumberFormatException nfe) {// dirun saat kesalahan formatnumber
            JOptionPane.showMessageDialog(null, name
                    + "bukan karakter !"
                    + "\nMasukkan karakter saja !");
            inpNama();

        }
    }
     // coding selanjutnya untuk konversi bilangan pecahan dan terbilang
String[] angka = {"", "Satu", "Dua", "Tiga",
        "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"};

    private String keTerbilang(int a) {
        String bilang = "";
        int b = a / 100;
        if (b > 0) {
            bilang = angka[b] + " Ratus ";
            if (b == 1) {
                bilang = "Seratus ";
            }
            a %= 100;
        }
        if (a < 12) {
            bilang += angka[a];
        } else {
            b = a / 10;
            a %= 10;
            if (b == 1) {
                bilang += angka[a] + " Belas";
            } else {
                bilang += angka[b] + " Puluh " + angka[a];
            }
        }
        return bilang;
    }

    private String terbilang(long a) {
        int b;
        String bilang = "";
        String[] satuan = {"", " Ribu ", " Juta ", " Milyar ", " Trilyun ", " Quadrilyun ", " Quintilyun "};
        if (a > Math.pow(10, 20)) {
            return "Bilangan terlalu besar";
        }
        for (int i = 6; i > 0; i--) {
            b = (int) (a / Math.pow(10, i * 3));
            if (b > 0) {
                if (b == 1 && i == 1) {
                    bilang += " Seribu ";
                } else {
                    bilang += keTerbilang(b) + satuan[i];
                }
            }
            a %= Math.pow(10, i * 3);
        }
        bilang += keTerbilang((int) a);
        return bilang;
    }

    public static void outTerbilang() {
        inpTerbilang = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
        JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(inpTerbilang)),
                "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
    }

    public static void hasilPecahan() {
        int desimal;

        String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
        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 menuJOption() {
    //...Text untuk tombol.
        inpNama();
        inpKelamin();

        String[] pilihan = {"BINER", "HEXA", "OKTAL",
            "<< KELUAR >>"};
    //..."Infinite" loop, selesai jika System.exit(0)
        while (true) {
            int response = JOptionPane.showOptionDialog(
                null //Tengah window.
                , "Met Datang agan/aganwati "+name+" !!"
    + "\nPilih Konversi Bilangan dibawah ini?" //Pesan
                    , "Konversi Bilangan" //Judul Bar
            , JOptionPane.YES_NO_OPTION //tipe pilihan
            , JOptionPane.PLAIN_MESSAGE //tipe pesan
            , null
            , pilihan
            , null     //label tombol default
            );
    // Menggunakan switch untuk mengecek tombol yang ditekan.
            switch (response) {
                case 0:
                    outHasilBiner();
                    break;
                case 1:
                    outHasilHexa();
                    ;
                    break;
                case 2:
                    outHasilOktal();
                    ;
                    break;
                case 3:
                    outTerbilang();
                    ;
                    break;
                case 4:
                    hasilPecahan();
                    ;
                    break;
                case 5:
                    inpNama();
                    inpKelamin();
                    ;
                    break;
                case 6:
                    System.exit(0);
                    break;

                case -1://mengeksekusi keluaran agar tidak ke default
                    //antara tombol 3 dan close box -1 ditangani disini
                    System.exit(0);//keluar looping tapi
                default:
                    // jika kita disini ada kesalahan
                    JOptionPane.showMessageDialog(null,
                            "response salah" + response);
                    break;

            }
        }
    }

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


Hasil nya :
1. Akan muncul input dialog dari JoptionPane untuk menginputkan nama anda .

2.Jika di klik "Cancel",maka akan keluar seperti dibawah ini .


3.Jika nama tidak diisi atau kosong,maka akan keluar seperti ini .

 4.Maka isilah nama anda terlebih dahulu,lalu klik "OK"


5.Setelah itu akan muncul input dialog,untuk memasukkan Gender Anda.


6.Jika tidak diisi,maka akan muncul :

 7.Jika diisi dengan selain perempuan/laki-laki.


 maka akan muncul seperti ini.


8.Jadi masukkan perempuan/laki-laki saja.

 9.Lalu akan muncul pilihan menu untuk memililih konversi bilangan yg diinginkan.


Disini saya memilih "HEXA"
Pada saat ada input dialog untuk memasukkan bilangan desimalnya,jika tidak diisi/kosong,maka akan muncul seperti ini.

10.Lalu,masukkan bilangan yg mau di konversikan
contoh : 28 , lalu klik ok

 11. Maka hasilnya,akan seperti ini.


12.Setelah di klik OK,maka menu akan kembali pada menu konversi bilangan.


13.Jika di klik <<KELUAR>> Maka akan muncul input dialog untuk memasukkan bilangan yg akan disebut.

 Hasil terbilang nya adalah :

14.Jika di klik OK, maka akan kembali pada menu konversi bilangan.


Jika anda telah benar-benar selesai mengkonversi bilangan dan ingin keluar,maka klik tanda "X" pada pojok kanan atas dialog.


SELESAI ...
SELAMAT MENCOBA YA !!!

Rabu, 05 September 2012

Konversi Bilangan dan pilih Gender

Konversi Bilangan Biner,Hexa,Oktal dan memilih Gender :

Disini saya akan sharing tentang tugas java yg minggu kemarin baru saja diberikan:
yaitu tentang cara membuat konversi bilangan biner,hexa,oktal,serta cara memilih gender pada java.


berikut ini adalah codingnya :

 package project.java;

import java.util.Scanner;
import javax.swing.JOptionPane;

/**
 *
 * @author henis yus eva
 */
//class utama
public class KonversiBilangan {
    //global variable
    static String name;//object
    static String kelamin;
    static int bilDes;//variable
  
    //fungsi/method rekursi
    public static void Biner(int n){
        if(n>1){
        Biner(n/2);
        }
        System.out.print(n%2);
    }
    public static void Hexa(int n){
        char[] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        int sisaBagi = n%16;
        if(n>1){
            Hexa((n - sisaBagi) / 16);
            System.out.print(daftarHexa[n%16]);
        }
    }
     public static void Oktal(int n){
         int sisaBagi = n % 8;
        if(n>0){
            Oktal((n - sisaBagi)/8);
            System.out.print(n%8);
        }   
    }
    public static void inputDes(){
        System.out.print("Masukkan Bilangan desimal = ");
        Scanner inputan=new Scanner(System.in);
        bilDes=inputan.nextInt();
        //return bilDes;
    }
    public static void tampilBiner(){
        inputDes();
        System.out.print("Binernya adalah ");
        Biner(bilDes);
    }
    public static void tampilHexa(){
        inputDes();
        System.out.print("Hexanya adalah ");
        Hexa(bilDes);
    }
  
  
    public static void tampilOktal(){
        inputDes();
        System.out.println("Oktalnya adalah ");
        Oktal(bilDes);
    }
    public static int inpBil(){
        System.out.println("==============================="
                + "\nSelamat datang bro/sis "+name+"("+kelamin+")"+",");
        System.out.println("Silahkan memilih Menu Konversi "
                + "Bilangan ke: "+
                "\n1. Biner \n2. Hexa \n3. Oktal \n4. Exit" );
        System.out.print("Masukkan Angka Menu = ");
        Scanner inputan=new Scanner (System.in);
        int pilmenu=inputan.nextInt();
        return pilmenu;
    }
    public static void menU(int pil){
        System.out.println("\033");//clear screen
        switch(pil){
            case 1: tampilBiner(); break;
            case 2: tampilHexa(); break;
            case 3: tampilOktal(); break;
            case 4: System.out.println("Kamsia ya, sudah mampir.");
                    System.exit(0); break;//memberikan kondisi FALSE
            default:System.out.println("Maaf. Pilih angka 1-4 saja ");
            break;
        }
        System.out.println("\033");//clear screen
    }
    public static void main(String aKU[]){
        name=JOptionPane.showInputDialog("Masukkan Nama Anda :");
        //terus mengulang menu jika bukan angka 4
        //menampilkan Option Dialog untuk memilih jenis kelamin
        String[] choices = {"Perempuan", "Laki-Laki", "Quit"};
     
        String Perempuan="Perempuan";
        String Laki="Laki-Laki";
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                    
                             , "Apa jenis kelamin Anda ?"    // Pesan
                             , "Jenis Kelamin"               // Judul di Tittlebar
                             , JOptionPane.YES_NO_OPTION  // Tipe Option
                             , JOptionPane.QUESTION_MESSAGE  // Tipe Pesan
                             , null                    
                             , choices  
                             , "Quit"    // Default button
                           );
            switch(response){
                case 0 : kelamin=Perempuan;
                    break;
                case 1 : kelamin=Laki;
                    break;
                default : kelamin="Tidak Ada";
            }
            do{
                menU (inpBil());
            }
            while(true);
        }
    }
}


Setelah membuat codingnya pada netbeans,maka jika di RUN, hasilnya akan seperti ini :
1. Akan muncul dialognya JOptionPane yang mengharuskan anda untuk mengisi nama anda.


2.Setelah itu akan muncul dialog JOptionPane juga yang mengharuskan anda untuk memilih jenis kelamin anda.





3.Jika anda telah memilih jenis kelamin anda,maka anakn muncul seperti ini pada outpu-project java (run) .
yang saya pilih disini adalah nomor 2,pada nomor 2 ini saya akan mengkonversikan bilangan decimal ke Hexa.



4. Setelah itu akan muncul seperti ini :
Bilangan decimal yg saya input disini adalah 45, maka hasilnya adalah : 2D.
Lalu jika telah muncul hasil konversinya,akan muncul menu konversi bilangan lagi secara otomatis. 

5. Jika anda memilih angka menu selain 1,2,3,dan 4 , maka akan muncul sperti ini :




Sekian !
SELAMAT MENCOBA YA !!