Minggu, 09 September 2012

Tugas Java Konversi Bilangan


 Script Java :



package Praktek_1;

import java.awt.HeadlessException;
import javax.swing.JOptionPane;
public class MenuDariJOption {
    private static String name;
    private static String kelamin;
    private static String gender;
    private static String des;
    private static int validDes;
     static StringBuilder A= new StringBuilder();
     static StringBuilder P= new StringBuilder();
     static StringBuilder W= new StringBuilder();
     //stringbuilder untuk memunculakan hasil akhir dari hasil konversi supaya bisa di tampilkan di JOption
     //deklarasi

    public static void keBiner(int n){
        if(n>1){
            keBiner(n/2);
        }
        System.out.println(n%2);
           A.append(n%2);
           //script untuk menghitung nilai desimal ke biner
    }
     public static void keHexa(int n) {
        char[] daftarHexa = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
            '9', 'A', 'B', 'C', 'D', 'E', 'F'};
        if (n > 1) {
            keHexa(n / 16);
        }
        System.out.print(daftarHexa[n % 16]);
           P.append(n%16);
           //script untuk menghitung nilai desimal ke hexa
    }
     public static void keOctal(int n) {
        char[] daftarOctal = {'0', '1', '2', '3', '4', '5', '6', '7'};
        if (n > 1) {
            keOctal(n / 8);
        }
        System.out.print(daftarOctal[n % 8]);
           W.append(n%8);
           //script untuk menghitung nilai desimal ke Octal
    }
    public static void inputDesJOption(){
    des = JOptionPane.showInputDialog("Masukkan " + "Bilangan Desimalnya = ");
    try{
    if(des.isEmpty()){
        JOptionPane.showMessageDialog(null,
                "wajib menginputkan angka  !!");
             inputDesJOption();//memberi input nama
    }

    }catch(NullPointerException ade){
        JOptionPane.showMessageDialog(null,
               "Mohon diinputkan !!");
        inputDesJOption();//kembali inputkan nama
    }
    //script di atas ini sebagai tempat penginputan angka desimal agar bisa konversikan
    }
    public static void eksepsiInpBiner(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
        JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ "adalah: " +A);
        keBiner(validDes);
        System.out.println();

       }catch(NumberFormatException ase){
           JOptionPane.showMessageDialog(null, des
                   +" bukan angka !"
                   + "\nMasukkan angka saja !!");
           eksepsiInpBiner();
           //ini adalah script hasil akhir yang berupa bilangan biner
       }
    }
    public static void eksepsiInpHexa(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
        JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ " adalah : " +P);
        keHexa(validDes);
        System.out.println();

       }catch(NumberFormatException ase){
           JOptionPane.showMessageDialog(null, des
                   +" bukan angka !"
                   + "\nMasukkan angka saja !!");
           eksepsiInpHexa();
             //ini adalah script hasil akhir yang berupa bilangan hexa
        }
    }
    public static void eksepsiInpOctal(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
         JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal " +des+ "adalah : " +W);
        keOctal(validDes);
        System.out.println();

       }catch(NumberFormatException ase){
           JOptionPane.showMessageDialog(null, des
                   +" bukan angka !"
                   + "\nMasukkan angka saja !!");
           eksepsiInpOctal();
             //ini adalah script hasil akhir yang berupa bilangan Octal
       }
    }
    public static void pecahan(){
        int desimal;


        String str=JOptionPane.showInputDialog("Masukkan Angka");
        desimal=Integer.parseInt(str);
        int j100rbu, j10rbu, j1rbu, j1rtus, j10, j1;
        j100rbu=desimal/100000;
        desimal%=100000;
        j10rbu=desimal/10000;
        desimal%=10000;
        j1rbu=desimal/1000;
        desimal%=1000;
        j1rtus=desimal/100;
        desimal%=100;
        j10=desimal/10;
        desimal%=10;
        j1=desimal/1;
        desimal%=1;


            JOptionPane.showMessageDialog(null,
            '\n'+"Jumlah ratusan ribu = "+j100rbu+
            '\n'+"Jumlah puluhan ribu = "+j10rbu+
            '\n'+"Jumlah seribu = " +j1rbu+
            '\n'+"Jumlah ratusan = "+j1rtus+
            '\n'+"Jumlah puluhan = "+j10+
            '\n'+"Jumlah satuan = "+j1
                    );
        //ini Script untuk menampilakan menu pecahan
}
          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;
}
          public String pecahan (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;
}
    public static void outHasilBiner(){
            eksepsiInpBiner();
    }
     public static void outHasilHexa(){
            eksepsiInpHexa();
    }
      public static void outHasilOctal(){
            eksepsiInpOctal();
    }
    public static void inpNama(){
    name=JOptionPane.showInputDialog("Masukkan "+ "Nama Anda : ");

    try{
    if(name.isEmpty()){
        JOptionPane.showMessageDialog(null,
                "Nama Harus Diisi  !!");
             inpNama();//membeli input nama
    }

    }catch(NullPointerException ade){
        JOptionPane.showMessageDialog(null,
               "Mohon diisi Namanya !!");
        inpNama();//kembali input nama
    }
    //sebuah script untuk menampilkan sebuah pengimputan nama
    }

public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (L/P) : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Harus diisi !!");
                jenisKelamin();
            }
        }
        catch(NullPointerException ase){
            JOptionPane.showMessageDialog(null, "Masukan Jenis Kelamin Anda !! ");
            jenisKelamin();
        }
        if ("L".equals(gender)) {
            kelamin="Browwww, ";
        }
        else{
            if("P".equals(gender)){
                kelamin="Sistttt, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Hanya bisa diisi L/P saja !!");
                jenisKelamin();
            }
            //sebuah script untuk menginputkan jenis kelamin
        }

    }
public static void terbilang() {
try {
MenuDariJOption num = new MenuDariJOption();
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, num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch(      HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
//script untuk menampilkan bilangan
}

    public static void menuJOption(){
    //...Text untuk tombol.
        inpNama();
        jenisKelamin();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN" , "<<BACK>>", "<< KELUAR >>"};
    while (true)
        {
        int response = JOptionPane.showOptionDialog(
                null         //tengah window.
                , "Selamat Datang " +kelamin+name+" !! "
                + "\nPilih Konversi Bilangan dibawah ini ?"// Pesan
                    , "Konversi 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(response){
                    case 0:
                            outHasilBiner();
                            break;
                    case 1:
                            outHasilHexa();                  
                            break;
                    case 2:
                            outHasilOctal();
                            break;
                    case 3: terbilang();
                             break;
                    case 4: pecahan();
                            break;
                    case 5:inpNama();
                            jenisKelamin();
                            break;
                    case 6:
                    case -1:
        //antara tombol (3) dan close box(-1) ditangani disini.
                    System.exit(0); //keluar looping
                    default:
        //...Jika disini kita ada kesalahan,
                    JOptionPane.showMessageDialog(null, "response salah"
                            + response); break;
            }
        }
        //adalah menu tampilan yang berisikan semua script
    }
    public static void main(String[]args){
        menuJOption();
    }
}

Hasil Screennya...
Masukkan nama Anda


Jika kita tekan tombol cancel maka akan keluar gambar dibawah ini...


Jika Nama tidak di Isi dari inputan nama lalu kita tekan tombol Ok maka akan keluar error seperti dibawah ini


 Lalu Masukkan jenis kelamin Anda....
 

 Jika kita isi Cowok atau perempuan...maka akan keluar seperti di bawah ini
Jadi kita hanya boleh mengisi L atau P...


Jika kita tidak memasukkan jenis kelamin dari inputan jenis kelamin lalu kita tekan tombol CANCEL maka akan keluar seperti dibawah ini..



 Jika kita tidak memasukkan jenis kelamin dari inputan jenis kelamin lalu kita tekan tombol OK maka akan keluar seperti dibawah ini..

 Lalu kita akan memsuki pilihan konversi dan program Terbilang dan juga Pecahan...


 Jika kita pilih binner atau hexa atau Oktal dan kita memasukkan bilangan desimal 90....seperti dibawah ini..


 Jika kita memasukkan huruf sperti JK atau apalah yang berbau huruf makan akan keluar tampilan seperti dibawah ini..


Jika kita tidak menginputkan angka dari inputan bilangan desimal lalu Tekan OK maka akan keluat tampilan dibawah ini...


 Jika kita tidak menginputkan angka dari inputan bilangan desimal lalu Tekan CANCEL maka akan keluat tampilan dibawah ini


Dari inputan bilangan desimal maka binernya adalah...


 Hasil binnernya adalah gambr dibawah ini..


 Dari inputan bilangan desimal maka Hexa adalah...


Hasil Hexanya adalah tampilan dibawah ini...


  Hasil Oktal dari inputan desimal....


Jika kita pilih Pecahan dari pilihan Program maka akan keluar...



Jika kita pilih Terbilang dari pilihan Program maka akan keluar...



 Jikat tidak inputkan dari progran terbilang dan pecahan maka akan keluar sperti dibawah ini


Hasil dari Terbilang..

   Hasil Dari Pecahan




SEMOGA BERMAMFAAT..... :D

Tidak ada komentar:

Posting Komentar