Powered by Blogger.

Blog Archive

Monday, May 09, 2016

Tag: , , , ,

Cara Konversi Bilangan Menggunakan Java

Oke, saat ini saya akan mengepost sebuah artikel tentang konversi bilangan menggunakan JOption untuk semua kodingannya.
Mungkin hal ini adalah sekedar sharing saya yang sederhana namun saya berharap ilmu yang saya bagikan dapat membantu agan yang membutuhkan referensi untuk membuat kodingan sederhana ini.
Pertama-tama, silahkan masuk ke aplikasi Netbeans. 
Bagi yang belum mengerti Netbean, NetBeans IDE adalah sebuah lingkungan pengembangan - sebuah kakas untuk pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan.
NetBeans mengelola fitur platform berikut dan komponen:
·         Pengaturan pengguna
·         Jendela (penempatan, penampilan, dll)
·         NetBeans Visual Perpustakaan
·         Penyimpanan
·         Terpadu alat pengembangan
·         Kerangka Wizard
Jadi intinya adalah, Netbean adalah software yang paling sering digunakan orang untuk membuat kodingan..
nah lanjut kepermasalahan..
Silahkan anda membuat kodingan seperti yang kurang lebih sudah saya buat ini.
package praktik1;
import javax.swing.JOptionPane;
/**
 *
 * @author krezna
 */
public class KonversiBilJOption {

    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");
    }
//Hexa
    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]);
        }
    }
//Oktal
    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("Input Bilangan Decimall : ");
        try {
            if (des.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Harus diisi dengan Bilangan Decimal !!");
                inputDesJOption();
            }
        } catch (NullPointerException npa) {
            JOptionPane.showMessageDialog(null, "Silahkan Diisi Dahulu ");
            inputDesJOption();
        }
    }
     //biner
    public static void outHasilBiner() {
        inputDesJOption();
        try {//penanganan kesalahan
            validDes = Integer.parseInt(des);
            System.out.print("\n bilangan desimal : " + des + " akan berubah menjadi Biner  : ");
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " dirubah ke Biner hasilnya : " + binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            // reset object binerHasil
            binerHasil = new StringBuilder();
   
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + des + "'"
                    + " .... Mohon Diisi Dengan Angka Saja.."
                    + "\nMasukkan angka saja !!");
            outHasilBiner();
        }
    }//hexa
    public static void outHasilHexa() {
        inputDesJOption();
        try {// penanganan kesalahan
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan desimal : " + des + " berubah ke Bilangan Hexa hasilnya : ");
            keHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " berubah ke Bilangan Hexa hasilnya : " + hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            hexaHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'" + des + "'"
               + " .... Mohon Diisi Dengan Angka Saja.."
                    + "\nMasukkan angka saja !!");
            outHasilHexa();
        }
    }
//oktal
    public static void outHasilOktal() {
        inputDesJOption();
        try {//untuk melakukan penanganan kesalahan
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan desimal : " + des + " dalam Oktal  : ");
            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 + "'"
                    + " .... Mohon Diisi Dengan Angka Saja.."
                    + "\nMasukkan angka saja !!");
            outHasilOktal();
        }
    }
      public static void inpNama() {
        name = JOptionPane.showInputDialog("Masukan Nama Anda : ");
        try {
            if (name.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Nama Harus Diisi Dahulu .. ");
                inpNama();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Harap Masukan Nama Anda Terlebih Dahulu! ");
            inpNama();
        }
    }
       public static void jenisKelamin() {
        gender = JOptionPane.showInputDialog("Apakah Anda Cowok atau Cewek ? ");
        try {
            if (gender.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Please input again latter?");
                jenisKelamin();
            }
        } catch (NullPointerException npt) {
            JOptionPane.showMessageDialog(null, "Apakah Anda Cowok atau Cewek ?");
            jenisKelamin();
        }
        if ("cowok".equals(gender)) {
            kelamin = "Saudara, ";
        } else {
            if ("cewek".equals(gender)) {
                kelamin = "Saudari, ";
            } else {
                JOptionPane.showMessageDialog(null, "Masukan Inputan Dengan Cowok atau Cewek saja");
                jenisKelamin();
            }
        } }
         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;
    }
//untuk Outputnya
    public static void outTerbilang() {
        sc = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
        JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
    }
    public static void hasilPecahan() {
        int desimal;
        String str = JOptionPane.showInputDialog("Masukan bilangan anda : ");
        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", "exit"};
        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, "Laptop Anda Bermasalah!"
                            + response);
                    break;
            }
        }
    }
      public static void main(String[] args) {
        menuJOption();
    }

Setelah anda lengkapi kodingan seperti yang diatas, maka hasilnya akan seperti ini.
proses input nama

proses optional jenis kelamin

proses validasi

proses validasi jika kita salah menginputkan jenis kelamin

proses pemilihan bilangan yang akan dikonversikan

hasil dari proses konversi

Sekian ilmu yang dapat saya bagikan pada kalian semua. Semoga ilmu ini dapat bermanfaat  kedepanya..

Semoga bermanfaat and keep sharing the good thing

About Unknown

Hi, My Name is Yosafat. Im a Student Engineering and im here to share some of good things so hope you all enjoy this blog.keep sharing the good things.

3 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. mantep, sangat bermanfaat. terimakasih sudah berbagi ilmunya,..
    solder uap

    ReplyDelete
  3. kalau rumus buat tampilan di cmd bagaimana min?

    ReplyDelete