11 Sep 2012

MenuDariJOption

Hallo smua.... kali ini saya akan mbagi in tugas JAVA yg memusingkan ini....

- Tampilan awal...

- Apabila di pencet cancel akan muncul...

- Jika di pencet OK tetapi nama tetap kosong akan muncul...




-Setelah itu silahkan memilih jenis kelamin...


- Apabila setelah kita memilih akan muncul seperti ini...


- Apabila memilih biner akan muncul ...


- Lalu pencet OK untuk kembali, setelah itu pilih HEXA lalu akan muncul...



- Lalu pencet OK untuk kembali, setelah itu pilih OKTAL lalu akan muncul...



- Selanjutnya apa bila anda mengklik "TERBILANG" maka hasilnya seperti berikut


- Jika anda mengklik "PECAHAN" , OK untuk kembali ke menu sebelumnya


- "KEMBALI" dugunakan untuk kembali ke menu awal


- "KELUAR" dugunakan untuk keluar dari program 

DAN INI CODINGNYA . GOOD LUCK :)


package praktek1;

/**
 *
 * @author triftian
 */
import java.awt.HeadlessException;
import javax.swing.JOptionPane;

public class menujoption {
    private static String name;
    private static String des;
    private static int validDes;
    private static String Gender;
       static StringBuilder X= new StringBuilder();
       static StringBuilder Y= new StringBuilder();
       static StringBuilder Z= new StringBuilder();          
    public static void keBiner(int y){
        if(y>1){
            keBiner(y/2);
        }
        System.out.print(y%2);
        X.append(y%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'};
    int sisabagi = n%16;
    if(n>0){
        keHexa((n-sisabagi) /16);    
        System.out.print(daftarHexa[n%16]);
        Y.append(daftarHexa[n%16]);
    }
    }
    public static void Oktal(int n){ 
        char [] daftarOktal = {'1', '2', '3', '4', '5', '6', '7',};
        if(n>0){
            Oktal(n/8);
        }
        System.out.print(daftarOktal[n%8]);
        Z.append(daftarOktal[n%8]);
    }
    public static void inputDesJOption(){
    des = JOptionPane.showInputDialog("Masukkan "
            + "Bilangan Desimalnya = ");
    }
    
    public String konversi (int angka){
            String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
    /**
     * @param args the command line arguments
     */
    public static void bacabil() {
        
try {
praktek1.terbilang num = new praktek1.terbilang();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));

if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Maaf angka diluar batas ","PERINGATAN",JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null,"Hasil \n " + konvert + " = " + num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch(      HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
}


    public static void eksepsiInpBiner(){
        inputDesJOption();
        try {
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null,
                        " Tidak Boleh Kosong !");
                eksepsiInpBiner();
            }
            validDes=Integer.parseInt(des);
            System.out.printf("\nDesimal dari "+des+
                    ", Binernya adalah = ");
            keBiner(validDes);
            System.out.println();
            JOptionPane.showMessageDialog(null, "JADI HASIL BINER DARI" +des+ "adalah"+ X);
            X.delete(0, validDes);
            
        }catch(NumberFormatException err){
            JOptionPane.showMessageDialog(null, des
                    +" Maaf bukan angka "
                    + "\nMasukkan angka saja, jangan yang lain ");
            eksepsiInpBiner();
            }catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Silahkan masukkan angka terlebih dahulu");
            eksepsiInpBiner();
        }
    }
    public static void eksepsiInpHexa(){
        inputDesJOption();
        try {
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null,
                        " Tidak Boleh Kosong !");
                eksepsiInpHexa();
            }
            validDes=Integer.parseInt(des);
            System.out.printf("\nDesimal dari "+des+
                    ", Hexanya adalah = ");
            keHexa(validDes);
            System.out.println();
            JOptionPane.showMessageDialog(null, "JADI HASIL HEXA DARI " + des+ "adalah "+ Y);
            Y.delete(0, validDes);
            
            
        }catch(NumberFormatException err){
            JOptionPane.showMessageDialog(null, des
                    +" Maaf bukan angka" + "\nMasukkan angka jangan yang lain");
            eksepsiInpHexa();
            }catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, " Tolong inputkan angka lebih dulu");
            eksepsiInpHexa();
        }
        }
    public static void eksepsiInpOktal(){
        inputDesJOption();
        try {
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null,
                        "  Tidak Boleh Kosong !");
                eksepsiInpOktal();
            }
            validDes=Integer.parseInt(des);
            System.out.printf("\nDesimal dari "+des+
                    ", Oktalnya adalah = ");
            Oktal(validDes);
            System.out.println();
            
            JOptionPane.showMessageDialog(null, "JADI HASIL OKTAL DARI" + des + "ADALAH" + Z);
            Z.delete(0, validDes);
        }catch(NumberFormatException err){
            JOptionPane.showMessageDialog(null, des
                    +" bukan angka!! "
                    + "\nMasukkan angka saja!!");
            eksepsiInpOktal();
        }catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Tolong inputkan angka lebih dulu");
            eksepsiInpOktal();
        }
    }
    public static void outHasilBiner(){
        eksepsiInpBiner();
    }
    public static void outHasilHexa(){
    eksepsiInpHexa();
    }
    public static void outHasilOktal(){
     eksepsiInpOktal();   
    }
    public static void pecahan(){
        int desimal;
        String str=JOptionPane.showInputDialog("Masukkan nominal uang : ");
        desimal=Integer.parseInt(str);
        int j100rbu, j50rbu, j20rbu, j10rbu, j5rbu, j2rbu, j1rbu, j5rtus, j2rtus, j1rtus, j50, j10, j1;
        j100rbu=desimal/100000;
        desimal%=100000;
        j50rbu=desimal/50000;
        desimal%=50000;
        j20rbu=desimal/20000;
        desimal%=20000; 
        j10rbu=desimal/10000;
        desimal%=10000;
        j5rbu=desimal/5000;
        desimal%=5000;
        j2rbu=desimal/2000;
        desimal%=2000;
        j1rbu=desimal/1000;
        desimal%=1000;
        j5rtus=desimal/500;
        desimal%=500;
        j2rtus=desimal/200;
        desimal%=200;
        j1rtus=desimal/100;
        desimal%=100;
        j50=desimal/50;
        desimal%=50;
        j10=desimal/10;
        desimal%=10;
        j1=desimal/1;
        desimal%=1;
    
    
            JOptionPane.showMessageDialog(null,"Jumlah uang seratus ribu = "+j100rbu+
            '\n'+"Jumlah uang lima puluh ribu = "+j50rbu+
            '\n'+"Jumlah uang dua puluh ribu = "+j20rbu+
            '\n'+"Jumlah uang sepuluh ribu = "+j10rbu+
            '\n'+"Jumlah uang lima ribu = "+j5rbu+
            '\n'+"Jumlah uang dua ribu = "+j2rbu+
            '\n'+"Jumlah uang seribu = "+j1rbu+
            '\n'+"Jumlah uang lima ratus = "+j5rtus+
            '\n'+"Jumlah uang dua ratus = "+j2rtus+
            '\n'+"Jumlah uang seratus = "+j1rtus+
            '\n'+"Jumlah uang lima puluh = "+j50+
            '\n'+"Jumlah uang sepuluh puluh = "+j10+
            '\n'+"Jumlah uang satu puluh = "+j1 );        
}
    public static void inpNama(){
    name=JOptionPane.showInputDialog("Inputkan nama anda...?");
    try{
        if(name.isEmpty()){
            JOptionPane.showMessageDialog(null,
                    "Nama tidak boleh kosong !!");
            inpNama();//kembali input nama
        }
        }catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null,
                    "Trima kasih atas kunjungannya ");
            System.exit(0);//kembali  nama
        }
    }
    public static void Gender(){
        String[] G={"Laki-laki","Perempuan"};
        int j= JOptionPane.showOptionDialog(null, "Pilih Gender", "pilihan", JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,G,null);
        switch(j){
            case 0:
                Gender="Abang";
                break;
            case 1:
                Gender="Kakak";
                break;
            default: 
                JOptionPane.showMessageDialog(null,"Harus menginputkan jenis kelamin !! ");
                Gender();
        }
    }

    public static void menuJOption(){
//...Text untuk tombol.
    inpNama();
    Gender();
    String[] pilihan = {"BINER" , "HEXA" , "OKTAL" ,"TERBILANG" ,"PECAHAN","KEMBALI" ,
        "KELUAR"};
    //"Infinite" loop, selesai jika system.exit(0)
    while (true){
        int respone = JOptionPane.showOptionDialog
                (null    // Tengah Window.
                , "Selamat datang "+Gender+" "+name+" !!"
        + "\nSilahkan pilih Konversi Bilangan dibawah ini?" // Pesan
            ,"Konversikan Bilangan" // Judul Bar
        ,JOptionPane.YES_NO_OPTION // tipe pilihan
        ,JOptionPane.PLAIN_MESSAGE // tipe pesan
        ,null                      // Icon (none)
        ,pilihan                   // tombol text.
        ,null   // label tombol default
        );
        //menggunakan switch untuk mengecek tombol yang ditekan.
        switch (respone){
            case 0:
                outHasilBiner();
                break;
            case 1:
               outHasilHexa() ;
                break;
            case 2:
                outHasilOktal();
                break;
            case 3:bacabil();
                    break;
            case 4:
                pecahan();
                break;
            case 5:
                inpNama();
                    Gender();
                    break;
            case 6:
                System.exit(0);
                break;
            case -1:
                //...antara tomnol (3) dan close box (-1) ditangani disini.
                System.exit(0); //keluar looping
            default:
                //...jika kita disini ada kesalahan
                JOptionPane.showMessageDialog(null,
                        "response salah "+ respone);break;
        }
    }
  }
    public static void main(String[] args){
    menuJOption();}

}
SELESAI :3
















Tidak ada komentar:

Posting Komentar