Minggu, 09 September 2012

Menu Konversi Bilangan Dari JOption

Kali ini saya akan memposting project java menu konversi bilangan melalui joptionpane.

1. isi dulu nama pada kotak

2. bila nama tidak di isi atau menekan tombol cancel/close maka akan keluar notif seperti ini



3. setelah menginputkan nama kemudian kamu harus mengisikan jenis kelamin harus diisi bila tidak akan keltar seperti ini. Juga harus diisi dengan lanang/wedok bila tidak akan keluar seperti ini



4. setelah mengisi jenis kelamin anda akan diberi pilihan menu konversi bilangan, silahkan memilih salah satu bila tidak silahkan memilih menu keluar

5. saya memilih salah satu menu konversi yaitu biner

6. masukkan angka yang anda inginkan, kemudian pilih konversi maka akan keluar pada konsole dan popup joption hasil konversinya.

7. kemudian klik ok, anda akan dihadapkan pada menu lagi, bila ingin keluar dari program konversi silahkan pilih menu keluar


dibawah ini script lengkapnya

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Praktek1;
import javax.swing.JOptionPane;
public class MenuDariJOption {
        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("Lebokno bilangan desimal : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "bilangan desimale kudu di isi sek!");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "Lo, kudu di isi!");
            inputDesJOption();
        }
    }
    public static void outHasilBiner(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\n bilangan desimale : "+des+" lek didadekno biner : ");
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "bilangan desimale : "+des+" lek didadekno biner : "+binerHasil, "hasile", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " duduk ongko bos!"
                    + "\nLebokno ongko ae bos");
            outHasilBiner();
        }
    }
    public static void outHasilHexa(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\n bilangan desimale : "+des+" lek didadekno hexa : ");
            keHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "bilangan desimale : "+des+" lek didadekno hexa : "+hexaHasil, "hasile", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " duduk ongko bos!"
                    + "\nLebokno ongko ae bos");
            outHasilHexa();
        }
    }
    public static void outHasilOktal(){
        inputDesJOption();
        try{//untuk melakukan penanganan kesalahan
            validDes=Integer.parseInt(des);
            System.out.print("\n bilangan desimale : "+des+" lek didadekno oktal : ");
            keOktal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "bilangan desimale : "+des+" lek didadekno oktal : "+oktalHasil, "hasile", JOptionPane.PLAIN_MESSAGE);
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " duduk ongko bos!"
                    + "\nLenbokno ongko ae bos");
            outHasilOktal();
        }
    }
    //menampilkan input dialog nama
    public static void inpNama(){
        name=JOptionPane.showInputDialog("Lebokno Jenengmu bos : ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "Jeneng ga oleh kosong!");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "tolong jenenge diisi sek!");
            inpNama();
        }
    }
    //menampilkan input dialog jenis Kelamin (gender)
    public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Lebokno jenis kelaminmu lanang/wedok) : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "kudu di isi jenis kelaminmu");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "opo jenis kelaminmu");
            jenisKelamin();
        }
        if ("lanang".equals(gender)) {
            kelamin="masbro, ";
        }
        else{
            if("wedok".equals(gender)){
                kelamin="mbakbro, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "mek oleh diisi lanang ta wedok");
                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 MenuDariJOption().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]", "[TERCELUK]", "[PECAHAN]", "<BALEK>", "<METU>"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                      
                             , "Sugeng rawuh "+kelamin+name+" !!"
                                + "\nSilahken milih konversi ongko"// Pesan
                             , "Konversi ongko"               // 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();
    }
}

Rabu, 05 September 2012

Konversi Bilangan Java

Kali ini saya akan memposting tentang program java Konversi Bilangan dari Desimal ke Hexa, Octal dan Biner.
Berikut ini programnya

1. inputan nama menggunakan show message JOptionpane

2. Pilihan gender JOptionPane choices

3. Bila anda laki laki akan tampil sperti ini


4. Bila perempuan akan tampil seperti ini

5. Untuk memilih silahkan anda ketikkan angka 1-4 saja karena hanya terdapat 4 menu saja. Konversi Bilangan Menggunakan Inputan Scanner, ini hasil untuk konversi bilangan desimal ke biner


6. Program akan terus mengulang sampai anda memilih menu 4 yaitu exit maka program akan berhenti

Dibawah ini script lengkapnya dan berupa sedikit penjelasannya


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

import java.util.Scanner;
import javax.swing.JOptionPane;

/**
 *
 * @author BAGAS
 */
public class KonversiBilangan {
    //global variable
    static String name;//object
    static String gender;//object
    static int bilDes;//variable
    
    //fungsi/method rekursi biner
    public static void Biner(int n){
        if(n>1){
            Biner(n/2);
        }
        System.out.print(n%2);
    }
          //method Hexa
    public static void Hexa(int n){
        char[] daftarHexa={'0','1','2','3','4','5','6','7','8','8','9','A',
            'B','C','D','E','F'};
        if(n>1){
            Hexa(n/16);
        }
        System.out.print(daftarHexa[n%16]);
    }
         //method Oktal
    public static void Oktal(int n){
        char[] daftarOktal={'0','1','2','3','4','5','6','7'};
        if(n>1){
            Oktal(n/8);
        }
        System.out.print(daftarOktal[n%8]);
    }
    public static int inputDes(){
        
        System.out.print("Masukkan bilangan desimal =");
        Scanner inputan=new Scanner(System.in);
        bilDes=inputan.nextInt();
        return bilDes;
    }
          //method menampilkan Biner
    public static void tampilBiner(){
        inputDes();
        System.out.print("Binernya adalah ");
        Biner(bilDes);
    }
          //method menampilkan Hexa
    public static void tampilHexa(){
        inputDes();
        System.out.print("Hexanya adalah ");
        Hexa(bilDes);
    }
          //method menampilkan Oktal
    public static void tampilOktal(){
        inputDes();
        System.out.print("Oktalnya adalah ");
        Oktal(bilDes);
    }
          //method untuk menampilkan inputan bilangan
    public static int inpBil(){
        System.out.println("========================="
                + "\nSelamat datang "+gender+" "+name+",");
        System.out.println("Silahkan mileh menu konversi "
                + "Bilangan ke: "+
                "\n1. Biner \n2. Hexa \n3. Oktal \n4. Exit" );
        System.out.print("Lebokno ongko menu = ");
        Scanner inputan=new Scanner(System.in);
        int pilmenu=inputan.nextInt();
        return pilmenu;
       }
         //method dari Menu
    public static void menU(int pil){
        System.out.println("\033"); //clear screen
        switch(pil){
            case 1: tampilBiner(); break;
            case 2: tampilHexa(); break;
            case 3: tampilOktal(); break;
            case 4: System.out.println("suwon yo wes mampir");
                    System.exit(0); break;
            default:System.out.println("(sepurane, milih ongko 1-4 ae yo)");
                break;
        }
        System.out.println("\033"); //clear screen
    }
         //main method berfungsi untuk menampilkan proses pertama kali program dijalankan
    public static void main(String arg[]){
    name=JOptionPane.showInputDialog("Lebokno Jenengmu : ");
        String[] choices = {"Lanang", "Wedok", "Metu"};
        
        String Cowok="Lanang";
        String Cewek="Wedok";
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                       
                             , "sampeyan lanang opo wedok?"    
                             , "jenis kelamin"               
                             , JOptionPane.YES_NO_OPTION  
                             , JOptionPane.QUESTION_MESSAGE  
                             , null                       
                             , choices     
                             , "Metu"    
                           );
        switch(response){
            case 0: gender="Bro";   
                break;
            case 1: gender="Sis";
                break;
            default : System.exit(0);
        }
    do{
        menU(inpBil());
    }
    while(true);
        }
  }


 

Copyright © 2012 Bagas Haryo Didukung oleh Blogger