My Music

Sabtu, 08 September 2012

Mengkonversi Bilangan Desimal dengan JOptionPane Java

Saya dapat tugas nih dari guru saya. Tugasnya diperintahkan untuk melengkapi Konversi Bilangan Desimal dengan JOptionPane Java. Setelah saya coba-coba dan mencari referensi darimana-mana, alhamdulillah akhirnya bisa. Dan ini hasilnya ...





  • Syntax :



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

import javax.swing.JOptionPane;

/**
 *
 * @author MISS WIDYA
 */
public class Tugas {
    
    private static String name;
    private static String des;
    private static String gender;
    private static String kelamin;
    private static int validDes;
    static StringBuilder binerResult= new StringBuilder();
    static StringBuilder hexaResult= new StringBuilder();
    static StringBuilder oktalResult= new StringBuilder();
    static String sc;
public static void toBiner(int n){
        if(n>1){
            toBiner(n/2);
        }
        System.out.print(n%2);
        binerResult.append(n%2);
    }
public static void toHexa(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){
            toHexa(n/16);
            System.out.print(daftarHexa[n%16]);
            hexaResult.append(daftarHexa[n%16]);
        }
    }
public static void toOktal(int n){
        char[] daftarOktal={'0','1','2','3','4','5','6','7'};
        if(n>0){
            toOktal(n/8);
            System.out.print(daftarOktal[n%8]);
        oktalResult.append(daftarOktal[n%8]);
        }
    }
public static void inputDesJOption(){
        des=JOptionPane.showInputDialog("Masukkan bilangan Desimalnya : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "Anda harus mengisikan bilangan desimalnya terlebih dahulu");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "Maaf, mohon isi bilangan desimal dibawah ini");
            inputDesJOption();
        }
    }
public static void outHasilBiner(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Biner adalah: ");
            toBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Biner adalah : "
                    + ""+binerResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilBiner();
        }
    }
public static void outHasilHexa(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\nBilangan Decimal "+des+" dalam Hexa adalah: ");
            toHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Hexa adalah : "
                    + ""+hexaResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilHexa();
        }
    }
public static void outHasilOktal(){
        inputDesJOption();
        try{
            validDes=Integer.parseInt(des);
            System.out.print("\nBilangan Desimal "+des+" dalam Oktal adalah: ");
            toOktal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan "+des+"  Desimal dalam Octal adalah : "
                    + ""+oktalResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka"
                    + "\nMohon isikan angka saja");
            outHasilOktal();
        }
    }
public static void inpNama(){
        name=JOptionPane.showInputDialog("Masukkan nama Anda : ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "Mohon isikan nama Anda dibawah ini");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Harap diisi");
            inpNama();
        }
    }
 public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Pilih Jenis Kelamin Anda (Laki-laki/Perempuan) dengan awalan huruf besar : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Mohon diisi dulu (Laki-laki/Perempuan");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "Harap diisi ");
            jenisKelamin();
        }
        if ("Laki-laki".equals(gender)) {
            kelamin="Mr. ";
        }
        else{
            if("Perempuan".equals(gender)){
                kelamin="Mrs. ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Mohon isikan (Laki-laki/Perempuan) tidak yang lain");
                jenisKelamin();
            }
        }
        
    }
 String[] number={"","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 = number[y]+" ratus ";
            if(y == 1)bilang=" seratus ";
            x%=100;
        }
        if(x<12)bilang += number[x];
        else{
            y=x/10;
            x%=10;
            if(y==1)
                bilang +=number[x] + " belas ";
            else
                bilang += number[y]+ " puluh "+ number[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 disebutkan : ");
    JOptionPane.showMessageDialog(null, new Tugas ().terbilang(new Long(sc)), "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 kembaliMenu(){
        inpNama();
        jenisKelamin();
    }
  public static void menuJOption(){
        inpNama();
        jenisKelamin();
        String[] pilihan = {"Biner", "Hexa", "Oktal", "Terbilang", "Pecahan", "Kembali", "Keluar"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                       
                             , "Selamat Datang "+kelamin+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();
    }

}





  • Hasil :



















 "SELAMAT MENCOBA"










Tidak ada komentar:

Posting Komentar