Senin, 24 September 2012

Java dengan Sign Up, Sign In, dan Sign Outnya

Hari ini saya akan menuliskan script untuk Sign Up, Sign In, Sign Out!!
  1. Kita membuat Java Package baru dengan nama LOGIN
  2. Kemudian klik kanan pada Java Package pilih new - lalu java class dengan nama Data, kemudian masukkan script berikut :
package Praktek1.Login;
import javax.swing.JOptionPane;
import java.util.*;

public class Data{
    public ArrayList nameArray = new ArrayList();
    public ArrayList genderArray = new ArrayList();
    public ArrayList passArray = new ArrayList();
    public int countSignIn;
    public int nameLength;
    public int genderLength;
    public int passLength;

    public void mainMenu() {
        String[] menu = {"Sign Up", "Sign In", "Sign Out"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Welcome",
                "Main menu",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                null, menu, null);
        switch (pilihan) {
            case 0:
                signUp();
                break;
            case 1:
                signIn();
                break;
            case 2:
                System.exit(0);
                break;
            default:
                JOptionPane.showMessageDialog(null, "Maaf jika ingin keluar mohon Sign Out terlebih dahulu");
                mainMenu();
                break;
        }
    }

    public void signUp() {
        Object nameSuit[] = nameArray.toArray();
        Object passSuit[] = passArray.toArray();
        String nama = inpNama();
        int i;
        for (i = 0; i < nameArray.size(); i++) {
            if (nameSuit[i].equals(nama)) {
                JOptionPane.showMessageDialog(null, "Maaf User Name yang anda masukkan sudah terdaftar");
                signUp();
            }
        }
        if (i == nameArray.size()) {
            nameArray.add(nama);
        }
        genderArray.add(inpGender());
        int a = 0;
        while (a < 2) {
            String pass = inpPassword();
            if (!pass.matches(".{8,}")) {
                JOptionPane.showMessageDialog(null, "Maaf password minimal 8 karakter");
            } else if (pass.matches(".{8,}")) {
                passArray.add(pass);
                mainMenu();
            } else if (a == 2) {
                a = 0;
            }
        }
    }

    public String inpNama() {
        String nama = JOptionPane.showInputDialog("Silahkan masukkan nama anda : ");
        try {
            if (nama.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Maaf nama tidak boleh kosong");
                inpNama();
            } else if (!nama.matches("[a-z A-Z]+")) {
                JOptionPane.showMessageDialog(null, "Maaf masukkan huruf saja");
                inpNama();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf memasukkan nama anda terlebih dahulu");
            inpNama();
        }
        return nama;
    }

    public String inpGender() {
        String gender = "";
        String[] opGender = {"Boys", "Girl"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Silahkan pilih jenis kelamin anda",
                "Gender",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                null, opGender, null);
        switch (pilihan) {
            case 0:
                gender = "Bro";
                break;
            case 1:
                gender = "Sis";
                break;
            default:
                JOptionPane.showMessageDialog(null, "Maaf anda harus memilih jenis kelamin anda terlenih dahulu");
                inpGender();
                break;
        }
        return gender;
    }

    public String inpPassword() {
        String password = JOptionPane.showInputDialog("Silahkan masukkan passoword anda");
        try {
            if (password.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Maaf password tidak boleh kosong");
                inpPassword();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf anda harus masukkan password anda terlebih dahulu");
            inpPassword();
        }
        return password;
    }

    public void signIn() {
        Object nameSuit[] = nameArray.toArray();
        Object passSuit[] = passArray.toArray();
        Object genderSuit[] = genderArray.toArray();
        String nama = inpNama();
        String password = inpPassword();
        String kesalahan = "";
        String betul = "";
        int i;
        for (i = 0; i < nameArray.size(); i++) {
            if (nameSuit[i].equals(nama) && passSuit[i].equals(password)) {
                JOptionPane.showMessageDialog(null,
                        " Selamat datang " + genderSuit[i] + " " + nameSuit[i] + "");
                menuJOption();
            } else if (!nameSuit[i].equals(nama) && !passSuit[i].equals(password)) {
                kesalahan = "nama dan password";
                betul = "ada";
            } else {
                if (!passSuit[i].equals(password)) {
                    kesalahan = "password";
                    betul = "cocok dengan nama";
                }
                if (!nameSuit[i].equals(nama)) {
                    kesalahan = "nama";
                    betul = "cocok dengan password";
                }
            }
        }
        if (i == nameArray.size()) {
            JOptionPane.showMessageDialog(null, "Maaf password yang anda masukkan tidak cocok" + betul + "\ncoba lagi");
            mainMenu();
        }
    }

    public void menuJOption() {
        Konversi konv = new Konversi();
        String[] pilihan = {"Biner", "Hexa", "Oktal", "Terbilang", "Pecahan", "Kembali"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                    null, "Selamat Datang !!"
                    + "\nPilih 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:
                    konv.setPilih("Biner");
                    konv.outHasilBiner();
                    break;
                case 1:
                    konv.setPilih("Hexadesimal");
                    konv.outHasilHexa();
                    break;
                case 2:
                    konv.setPilih("Oktal");
                    konv.outHasilOktal();
                    break;
                case 3:
                    konv.setPilih("Terbilang");
                    konv.outTerbilang();
                    break;
                case 4:
                    konv.setPilih("Pecahan");
                    konv.hasilPecahan();
                    break;
                case 5:
                    mainMenu();
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "Maaf jika anda ingin keluar, klik tombol keluar");
                    break;
            }
        }
    }

3.  Lalu buat Java Class baru dengan nama Konversi tulis script berikut :
package Praktek1.Login;

import javax.swing.JOptionPane;

/**
 *
 * @author katharina
 */
public class Konversi {
    private static String des;
    private String pilih;
    private static int validDes;
    private static long bilTerbilang;
    static String[] angka = {"", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"};
    static StringBuilder binerHasil = new StringBuilder();
    static StringBuilder hexaHasil = new StringBuilder();
    static StringBuilder oktalHasil = new StringBuilder();

    public void setPilih(String pilih) {
        this.pilih = pilih;
    }

    public static void keBiner(int n) {
        if (n > 1) {
            keBiner(n / 2);
        }
        System.out.print(n % 2);
        binerHasil.append(n % 2);
    }

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

    public void keOktal(int n) {
        int sisaBagi = n % 8;
        if (n > 0) {
            keOktal((n - sisaBagi) / 8);
            System.out.print(n % 8);
            oktalHasil.append(n % 8);
        }
    }

    public void inputDesJOption(String pilih) {
        des = JOptionPane.showInputDialog("Masukkan bilangan Desimalnya : ");
        try {
            if (des.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Anda harus mengisikan bilangan desimalnya terlebih dahulu");
                inputDesJOption(pilih);
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "maaf, mohon isi bilangan desimal dibawah ini");
            inputDesJOption(pilih);
        }
    }

    public void outHasilBiner() {
        inputDesJOption(pilih);
        try {
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Biner adalah: ");
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Biner adalah : "
                    + ""+binerHasil, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
            binerHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilBiner();
        }
    }

    public void outHasilHexa() {
        inputDesJOption(pilih);
        try {
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Hexa adalah: ");
            keHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Hexa adalah : "
                    + ""+hexaHasil, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
            hexaHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilHexa();
        }
    }

    public void outHasilOktal() {
        inputDesJOption(pilih);
        try {
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Oktal adalah: ");
            keOktal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Hexa adalah : "
                    + ""+oktalHasil, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
            oktalHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilOktal();
        }
    }
   
    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 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 void outTerbilang() {
        inputDesJOption(pilih);
        try {
            bilTerbilang = Long.parseLong(des);
            JOptionPane.showMessageDialog(null, new Konversi().terbilang(bilTerbilang), "Terbilang", JOptionPane.INFORMATION_MESSAGE);
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outTerbilang();
        }
    }

    public void hasilPecahan() {
        inputDesJOption(pilih);
        try {
            long desimal = Long.parseLong(des);
            long 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, "Bilangan " + des + " dalam : "
                    + "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 (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            hasilPecahan();
        }
    }
}


4. Lalu buat Java Class baru dengan nama Method tulis script berikut :
 package Praktek1.Login;

/**
 *
 * @author katharina
 */
public class Method {
    public static void main(String[] args) {
        Data data = new Data();
        data.mainMenu();
    }
}



Senin, 10 September 2012

Ini program Java menggunakan MenuJOptionPane !!

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package praktek1;
import javax.swing.JOptionPane;
/**
 *
 * @author deadit
 */
public class Java {
    private static String name;
    private static String des;
    private static String gender;
    private static int validDes;
    static StringBuilder binerHasil= new StringBuilder();
    static StringBuilder hexaHasil= new StringBuilder();
    static StringBuilder oktalHasil= new StringBuilder();
    static String sc;
   
     public static void keBiner(int n){
        if(n>1){
            keBiner(n/2);
        }
        binerHasil.append(n%2);
    }
    public static void keHexa(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){
            keHexa(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);
            oktalHasil.append(daftarOktal[n%8]);
        }
    }

        public static void inputDesJOption(){
        des=JOptionPane.showInputDialog("Masukkan Bilangan Desimal : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "Bilangan Desimalnya harus diisi yaa !!");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "Waa.... Harus diisi yaa !!");
            inputDesJOption();
        }
    }

    public static void outHasilBiner(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            keBiner(validDes);
            JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" jika dijadikan Biner hasilnya : "+binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilBiner();
        }
    }
    public static void outHasilHexa(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            keHexa(validDes);
            JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" jika dijadikan Hexa hasilnya : "+hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilHexa();
        }
    }
    public static void outHasilOktal(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            keOktal(validDes);
            JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" jika dijadikan Oktal hasilnya : "+oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilOktal();
        }
    }
    //
    //menampilkan input dialog nama
    public static void inpNama(){
        name=JOptionPane.showInputDialog("Masukkan Nama Anda : ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong !!");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Harap diisi nama dulu doonk !!");
            inpNama();
        }
    }
    //menampilkan input dialog jenis Kelamin (gender)
    public static void jenisKelamin(){
  // menampilkan pilihan gender
  Object[] options = { "cewek", "cowok" };
  int choice = JOptionPane.showOptionDialog(null,
      "Apa jenis kelamin kamu?",
      "Jenis Kelamin?",
      JOptionPane.YES_NO_OPTION,
      JOptionPane.PLAIN_MESSAGE,
      null,
      options,
      options[0]);
  try{
            if (choice == JOptionPane.YES_OPTION)
  {
    gender="Sist, ";
    menuJOption1();
  }
  else if(choice == JOptionPane.NO_OPTION)
  {
      gender="Bro, ";
      menuJOption1();
  }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Harap diisi dulu doongg !!");
            inpNama();
        }
}
    //terbilang
    //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 "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 yang akan disebut : ");
    JOptionPane.showMessageDialog(null, new Java().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
    }
    //pecahan
    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);
    }
    //kembali ke inputan nama dan gender
    public static void kembaliMenu(){
        inpNama();
        jenisKelamin();
    }

   public static void menuJOption(){
       inpNama();
       jenisKelamin();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "BACK", "<<EXIT>>"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                      
                             , "Selamat Datang "+gender+name+" !!"
                                + "\nPilih 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:
                    kembaliMenu();
                    break;
                case 6:
                case -1:
                    System.exit(0);
                default:
                    JOptionPane.showMessageDialog(null, "response salah"
                                                    + response); break;
            }
        }
    }
   public static void menuJOption1(){
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "BACK", "<<EXIT>>"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                      
                             , "Selamat Datang "+gender+name+" !!"
                                + "\nPilih 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:
                    kembaliMenu();
                    break;
                case 6:
                case -1:
                    System.exit(0);
                default:
                    JOptionPane.showMessageDialog(null, "response salah"
                                                    + response); break;
            }
        }
    }
    public static void main(String[] args){
        menuJOption();
    }

}

Setelah di tulis coding lalu di tekan shift+F6 untuk menjalankan : 


Setelah itu akan muncul pilihan jenis kelamin :


Jika belum memilih jenis kelamin maka akan muncul Message Dialog seperti ini :

 
Jika sudah memilih maka message selanjutnya akan muncul :


Ini hasil setelah memasukkan angka :


Menginputkan bilangan TERBILANG :


Hasil TERBILANG :


Menginputkan bilangan PECAHAN :


Hasil PECAHAN :