8 Sep 2012

java : menuJOption

Assalamualaikum wr.wb
sebelumnya saya akan menampilkan menu Joption dari java yang telah saya sempurnakan terlebih dahulu, langsung saja ke TKP :)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Praktek1;

/**
 *
 * @author -
 */
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
public class Menu_DariJOption {
    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 pecahan(){
        int desimal;
       
       
        String str=JOptionPane.showInputDialog("Masukkan jumlah 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 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 "
            + "Bil.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,"Angka di luar range!!!","WARNING",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,
                        " Janagn Dikosong' !!");
                eksepsiInpBiner();
            }
            validDes=Integer.parseInt(des);
            System.out.printf("\nDesimal dari "+des+
                    ", Binernya adalah = ");
            keBiner(validDes);
            System.out.println();
            JOptionPane.showMessageDialog(null, "JADI HASIL BINER " + X);
            X.delete(0, validDes);
           
        }catch(NumberFormatException err){
            JOptionPane.showMessageDialog(null, des
                    +" bukan angka!! "
                    + "\nMasukkan angka saja!!");
            eksepsiInpBiner();
            }catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Tolong inputkan angka lebih dulu");
            eksepsiInpBiner();
        }
    }
    public static void eksepsiInpHexa(){
        inputDesJOption();
        try {
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null,
                        " Janagn Dikosong' !!");
                eksepsiInpHexa();
            }
            validDes=Integer.parseInt(des);
            System.out.printf("\nDesimal dari "+des+
                    ", Hexanya adalah = ");
            keHexa(validDes);
            System.out.println();
            JOptionPane.showMessageDialog(null, "JADI HASIL HEXA " + Y);
            Y.delete(0, validDes);
           
           
        }catch(NumberFormatException err){
            JOptionPane.showMessageDialog(null, des
                    +" bukan angka!! "
                    + "\nMasukkan angka saja!!");
            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,
                        " Janagan Dikosong' !!");
                eksepsiInpOktal();
            }
            validDes=Integer.parseInt(des);
            System.out.printf("\nDesimal dari "+des+
                    ", Oktalnya adalah = ");
            Oktal(validDes);
            System.out.println();
           
            JOptionPane.showMessageDialog(null, "JADI HASIL OKTAL " + 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 inpNama(){
    name=JOptionPane.showInputDialog("masukan "
            + "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 dulu donk !!");
            inpNama();//kembali input nama
        }
    }
public static void gender() {
        gender = JOptionPane.showInputDialog("Jenis Kelamin Anda ? "
                + "(L / P)");
        if ("L".equals(gender)) {
            JOptionPane.showMessageDialog(null, "Selamat Datang brow "
                    + name
                    + "\nSilahkan Memilih Menu Konversi :)");
        } else {
            if ("P".equals(gender)) {
                JOptionPane.showMessageDialog(null, "Selamat Datang Sist "
                        + name
                        + "\nSilahkan Memilih Menu Konversi :)");
            } try{
    if(gender.isEmpty()){
        JOptionPane.showMessageDialog(null,
                "Jenis Kelamin Harus Diisi  !!");
             gender();//membeli input nama
    }

    }catch(NullPointerException ade){
        JOptionPane.showMessageDialog(null,
               "Mohon diisi Form 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.
                , "Met datang agan/aganwati "+name+" !!"
        + "\npilih 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();}
}

setelah membuat JOption  kemudian kita melangkah ke menu terbilang dan pecahan , sebelumnya buat file new kemudian buawat terbilang , ini codingnya ...

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package praktek1;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
/**
 *
 * @author DRAGONMASTER
 */
public class terbilang  {
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() {
        do{
try {
terbilang num = new terbilang();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));

if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Angka di luar range!!!","WARNING",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);
}
}
while(JOptionPane.showConfirmDialog(null,"Ingin Mengulang??","OPTION",JOptionPane.ERROR_MESSAGE)==JOptionPane.YES_NO_OPTION);
}
}// TODO code application logic here
   
setelah proses menu terbilang kemudian proses pecahan
ini coding scripcnya ....

import java.util.Scanner; 
 
public class pecahan 

public static void main (String args[]) 

  long bil1, uang; 
 
  do 
  { 
    //inputan dari keyboard 
    System.out.print("Jumlah uang = "); 
    Scanner obj = new Scanner(System.in); 
    uang = obj.nextLong(); 
    
    if (uang<50) 
    {  
       System.out.println("Maaf, tidak ada nominal uang "+ 
                          "sebesar "+uang+" rupiah"); 
       continue; 
    } 
    else 
    { 
       // besar 100000 
       if (uang >= 100000) 
       { 
           bil1 = uang / 100000; 
           System.out.println("Pecahan 100000 sebanyak "+bil1); 
       } 
 
       // antara 50000-100000 
       uang = uang % 100000; 
       if ((uang >= 50000) && (uang <100000)) 
       { 
           bil1 = uang / 50000; 
           System.out.println("Pecahan  50000 sebanyak "+bil1); 
       } 
   
       // antara 20000-50000 
       uang = uang % 50000; 
       if ((uang >= 20000) && (uang <50000)) 
       { 
           bil1 = uang / 20000; 
           System.out.println("Pecahan  20000 sebanyak "+bil1); 
       } 
 
       // antara 10000-20000 
       uang = uang % 20000; 
       if ((uang >= 10000) && (uang <20000)) 
       { 
           bil1 = uang / 10000; 
           System.out.println("Pecahan  10000 sebanyak "+bil1); 
       } 
 
       // antara 5000-10000 
       uang = uang % 10000; 
       if ((uang >= 5000) && (uang <10000)) 
       { 
           bil1 = uang / 5000; 
           System.out.println("Pecahan   5000 sebanyak "+bil1); 
       } 
 
       // antara 2000-5000 
       uang = uang % 5000; 
       if ((uang >= 2000) && (uang <5000)) 
       { 
           bil1 = uang / 2000; 
           System.out.println("Pecahan   2000 sebanyak "+bil1); 
       } 
 
       // antara 1000-2000 
       uang = uang % 2000; 
       if ((uang >= 1000) && (uang <2000)) 
       { 
           bil1 = uang / 1000; 
           System.out.println("Pecahan   1000 sebanyak "+bil1); 
       } 
 
       // antara 500-1000 
       uang = uang % 1000; 
       if ((uang >= 500) && (uang <1000)) 
       { 
           bil1 = uang / 500; 
           System.out.println("Pecahan    500 sebanyak "+bil1); 
       } 
 
       // antara 200-500 
       uang = uang % 500; 
       if ((uang >= 200) && (uang <500)) 
       { 
          bil1 = uang / 200; 
          System.out.println ("Pecahan    200 sebanyak "+bil1); 
       } 
 
       // antara 100-200 
       uang = uang % 200; 
       if ((uang >= 100) && (uang <200)) 
       { 
          bil1 = uang / 100; 
          System.out.println ("Pecahan    100 sebanyak "+bil1); 
       } 
 
       // antara 50-100 
       uang = uang % 100; 
       if ((uang >= 50) && (uang <100)) 
       { 
          bil1 = uang / 50; 
          System.out.println ("Pecahan     50 sebanyak "+bil1); 
       } 
   
       // kurang 50 
       uang = uang % 50; 
       if ((uang > 0) && (uang <50)) 
       { 
          bil1 = uang ; 
          //satuan 
          if (bil1<10) 
         System.out.println ("Pecahan      "+bil1+ 
                                 " ikhlaskan saja"); 
      else if (bil1>=10)//puluhan 
         System.out.println ("Pecahan     "+bil1+ 
                                 " ikhlaskan saja"); 
       } 
     } 
   }while(uang!=0); 
 
 } 


untuk hasilnya dapat dilihat dibawah sini :)

-disini adalah tampilan awalnya ~>
-tampilan masuk kejendela jenis kelamin ~>

 -setelah itu akan keluar textbox seperti ini ~>
 -kemudaian menuju tampial menu yang ada menu pilhan dari menu JOption tadi ~>
 -disini saya mengambil contoh dari menu hexa dan ini adalah tampilan setelah memasukan bil ~>

 -kemudian kita masuk ke tampilan dari menu terbilang ~>
 -ini hasil dari menu terbilang ~>
 -yang terahir adalh menu pecahan dan ini hasil dari nilai 69000

Tidak ada komentar:

Posting Komentar