Minggu, 16 September 2012

KONVERSI BILANGAN JOPTION PANE

1. tampilan awal dari program ini :
     a. masukkan nama anda :
      b. masukkan gender anda :
       c. pilih konversi :
       d. contoh konversi yang dipilih biner
       e. ini adalah hiasilnya konversi :
         
       f. dan ini adalah kodingnya :
         

package Praktik1;
import javax.swing.JOptionPane;
public class terbilangterpecah {
        private static String name;
    private static String des;
    private static String gender;
    private static String kelamin;
    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);
        }
        System.out.print(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);
            System.out.print(daftarHexa[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);
            System.out.print(daftarOktal[n%8]);
        oktalHasil.append(daftarOktal[n%8]);
        }
    }
    public static void inputDesJOption(){
        des=JOptionPane.showInputDialog("masukkan bilangan : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "bilangan tidak boleh kosong");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "jangan pergi dulu, bilangan masukkan dulu");
            inputDesJOption();
        }
    }
    public static void outHasilBiner(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\n desimalnya : "+des+" kalau dijadikan biner : ");
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "bilangan desimalnya  : "+des+" kalau dijadikan biner : "+binerHasil, "hasilnya", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan merupakan angka!"
                    + "\nmasukkan angka saja");
            outHasilBiner();
        }
    }
    public static void outHasilHexa(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\n desimalnya : "+des+" kalau dijadikan hexa : ");
            keHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "bilangan desimalnya : "+des+" kalau dijadikan hexa : "+hexaHasil, "hasilnya", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan merupakan angka!"
                    + "\nmasukkan angka saja");
            outHasilHexa();
        }
    }
    public static void outHasilOktal(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\n desimalnya : "+des+" kalau dijadikan oktal : ");
            keOktal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "bilangan desimalnya : "+des+" kalau dijadikan oktal : "+oktalHasil, "hasilnya", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan merupakan 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, "tidak boleh kosong!");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "masukkan nama anda dulu!");
            inpNama();
        }
    }
    //menampilkan input dialog jenis Kelamin (gender)
    public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("masukkan gender anda L/P) : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "gender tidak boleh kosong");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "masukkan gender anda dulu");
            jenisKelamin();
        }
        if ("L".equals(gender)) {
            kelamin="mas bro, ";
        }
        else{
            if("P".equals(gender)){
                kelamin="mbak bro, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "hanya boleh diisi L or P Doang");
                jenisKelamin();
            }
        }
     
    }
    //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("lebokno ongko seng kate disebutno : ");
    JOptionPane.showMessageDialog(null, new terbilangterpecah().terbilang(new Long(sc)), "TERCELUK", JOptionPane.INFORMATION_MESSAGE);
    }
    public static void hasilPecahan(){
        int desimal;
     
        String str=JOptionPane.showInputDialog("lebokno ongko seng katene 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]", "<BACK>", "<EXIT!!>"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                    
                             , "selamat datang "+kelamin+name+" !!"
                                + "\n silahkan pilih konversi"// 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, "responmu salah"
                                                    + response); break;
            }
        }
    }
    public static void main(String[] args){
        menuJOption();
    }
}

NB : jangan lupa kata2 terbilangterpecah dengan nama file anda. dan jangan lupa di coba.


         

Selasa, 04 September 2012

KONVERSI BILANGAN DI JAVA

1. tampilan input nama anda pada JOption.

 2. tampilan pilihan gender anda pada JOption.

 3. tampilan pilihan menu konversi.

4. tampilan menu 1.


5. tampilan hasil menu 1
6. iini adalah kodingnya.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package praktik1;
import java.util.Scanner;
import javax.swing.JOptionPane;


/**
 *
 * @author Roni
 */
public class konversibilangan2 {
    static String name;
    static String kelamin;
    static int bilDes;
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'};
    if(n>0){
        Hexa(n/16);
        System.out.print(daftarHexa[n%16]);
    }
}
public static void Oktal(int n){
    char[] daftarOktal={'0','1','2','3','4','5','6','7'};
    if(n>0){
        Oktal(n/8);
        System.out.print(daftarOktal[n%8]);
    }
}
public static void inputDes(){
    System.out.print("Masukkan Bilangan Desimal = ");
    Scanner inputan=new Scanner(System.in);
    bilDes=inputan.nextInt();
}
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.print("Oktalnya adalah ");
    Oktal(bilDes);
}
public static int inpBil(){
    System.out.println("=========================="
            + "\nYey, Selamat datang "+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"); //clean sreen
    switch(pil){
        case 1 : tampilBiner(); break;
        case 2 : tampilHexa(); break;
        case 3 : tampilOktal(); break;
        case 4 : System.out.println("Terimakasih sudah mampir :)");
            System.exit(0); break;
        default : System.out.println("(Maaf. Pilih angka 1-4 saja)");
        break;
    }
    System.out.println("\033");
}
public static void main(String arg[]){
    name=JOptionPane.showInputDialog("Masukkan nama Anda : ");//menampilkan input dialog untuk memasukkan nama
    //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    
                             , "Exit"    // Default button
                           );
        switch(response){
            case 0 : kelamin=Perempuan;
                break;
            case 1 : kelamin=Laki;
                break;
            default : kelamin="Tidak Ada";
        }
    do{
        menU(inpBil());
    }
    while(true);
        }
}
}