Rabu, 12 September 2012

KONVERTER JOption yang buanyaaakkk -_-

Hai temen-temen, ini shely udah upload tugas java yang konverter banyaknya minta ampuuun -_-
Ini nih scripnya yang bejibun ..... :3

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package konverterShely;
import javax.swing.JOptionPane;
/**
 *
 * @author Selli
 */
public class  konverterShely  {
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);
              // binerHasil.append("\033");
          }

           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 Desimal : ");
            try {
            if (des.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Bilangan Desimalnya harus diisi dong !!");
                inputDesJOption();
            }
         } catch (NullPointerException npa) {
            JOptionPane.showMessageDialog(null, "Waah.... Harus diisi yaa !!");
            inputDesJOption();
            }
        }
            public static void outHasilBiner() {
          inputDesJOption();
          try {//untuk melakukan penanganan kesalahan
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Biner hasilnya : ");
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Biner hasilnya : " + binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            // reset object binerHasil
            binerHasil = new StringBuilder();

        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + des + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilBiner();
          }
      }

    public static void outHasilHexa() {
        inputDesJOption();
        try {//untuk melakukan penanganan kesalahan
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Hexa hasilnya : ");
            keHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Hexa hasilnya : " + hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            hexaHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + des + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilHexa();
          }
      }

    public static void outHasilOktal() {
        inputDesJOption();
        try {//untuk melakukan penanganan kesalahan
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Oktal hasilnya : ");
            keOktal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Oktal hasilnya : " + oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            oktalHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + des + "'"
                    + " .... bukan 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, "Nama nggak boleh kosong woy !!");
                inpNama();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "lhohh, main pergi gitu aja -_- !!");
            inpNama();
        }
    }
    //menampilkan input dialog jenis Kelamin (gender)

    public static void jenisKelamin() {
        gender = JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (cowok/cewek) : ");
        try {
            if (gender.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Harus diisi lho yaa .... Jenis Kelamin!!");
                jenisKelamin();
            }
        } catch (NullPointerException npt) {
            JOptionPane.showMessageDialog(null, "jangan kabur, isi dulu apa jenis kelaminmu ??");
            jenisKelamin();
        }
        if ("cowok".equals(gender)) {
            kelamin = "Saudara, ";
        } else {
            if ("cewek".equals(gender)) {
                kelamin = "Saudari, ";
            } else {
                JOptionPane.showMessageDialog(null, "Hanya bisa diisi cowok dan cewek doang woy !!");
                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("Masukan Bilangan yang akan disebut : ");
        try {
            if (sc.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Waah.. mana bilangannya ?? Isi dulu yaa.. !!");
                outTerbilang();
            } else {

                JOptionPane.showMessageDialog(null, new  konverterShely ().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "eiits, ga boleh keluar dulu, harus diisi dulu nih.. !!");
            outTerbilang();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Hey '" + sc + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka aja ya ??");
            outTerbilang();
        }
    }
    public static void hasilPecahan() {
        int desimal;

        String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
        try {
            if (str.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Kok kosong sih?? Isi dulu ya.. !!");
                hasilPecahan();
            } else {

                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);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Eitss mau kemana ?? Isi dulu bilangannya.. !!");
            hasilPecahan();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Hey '" + str + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            hasilPecahan();
        }
    }
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) {
        // TODO code application logic here
    menuJOption();
    }
}

Kalo yang ini hasil running nya friend :3 buanyakkk banget deh printscreennya
Sampek bingung sendiri jadinya hehe

1. running pertama muncul kayak gini nih

2. kalo gambar 1 (input nama) langsung di click CANCEL muncul begini
3. running pertama muncul kayak gini nih 


4. kalau nama sudah di input dan di click ok muncul kayak gini
5. kalau input jenis kelaminnya salah --> bukan cewek/cowok
6. kalau jenis kelamin nggak di isi dan di click cancel
7.  kalau jenis kelamin di OK dengam keadaan kosong
8. kalau jenis kelamin udah di isi dengan benar, muncul kayak gini
9. kalau gambar 9 di click biner/hexa/oktal muncul gini 
10. menginputkan no. 33 pada bilangan desimal
11. Hasil biner

12. Hasil hexa
13. Hasil oktal


14. bilangan desimal di biner, hexa, dan oktal kalo dikosongi dan langsung di ok

 15. bilangan desimal di biner, hexa, dan oktal kalau diisi dengan bukan angka

 16. input bilangan di biner, hexa, atau oktal kalo di cancel


  17. jika gambar ini di klik terbilang


 maka muncul gambar di bawah ini.




 18. jika di cancel





19. terbilang kalo langsung di OK







20. jika di inputkan nomor seperti dibawah ini

21. hasilnya jadi seperti ini


 22. jika gambar ini di klik yang pecahan 


 maka muncul gambar di bawah ini.

 21. Kalau di cancel muncul gini


 23. pecahan kalo kosongi trus di click ok


 24. inputkan nilai di pecahan


 25. Hasilnya :



26. Kalau gambar ini di klik kembali 

maka muncul gambar ini
dan kalau di klik keluar berarti selesai~


yap, inilah temen2 konverter yang buanyaaaak banget, dan printscreen nya yang buanyaaaakkk pula -_-, tapi semoga bermanfaat ya :D

Tidak ada komentar:

Posting Komentar