Senin, 03 Desember 2012

Kembali ke Dasar

Hello , sudah lama tak berjumpa :D . Dari postingan yang sebelumnya kita banyak membicarakan masalah coding dan praktikum nih , kali ini saya akan mengulas kembali konsep dasar pemrograman java .

Percuma , bila kita hanya menuliskan coding-coding sebanyak itu tanpa kita ketahui dasar pemrogramannya dan apa yang terbentuk dari coding tersebut .

Mari kita mulai :) --->

PEMAKETAN


Pemaketaan merupakan pengelompokan class pada Java, layaknya file yang dikelompokkan ke dalam folder-folder menurut kategorinya.
Dalam Java folder tersebut di sebut package.
Package membantu mengelola/memanajemen source code java dalam skala besar.
Package bisa terdiri dari class dan sub-package.
Bila package tidak dinyatakan, maka class tersebut berada pada package default.

Fungsinya seperti folder pada windows Explorer, yaitu mengumpulkan dengan tujuan memudahkan pencarian, untuk mengelompokkan jenis  dan memungkinkan penamaan class yang sama.
Fungsi lainnya adalah untuk memberitahu compiler dimana untuk menemukan class-class yang ter-relasi.

Sifatnya adalah case-sensitif, yang berarti harus sama. Beda dan besar kecilnya huruf sangat diperhitungkan, sehinggak berbeda sedikit saja program akan error.
Hanya ada satu pendeklarasian package.

Cirinya adalah coding ini selalu berada pada baris pertama di program/class.

CLASS

Class adalah blue print dari objek-objek, maksudnya adalah class adalah pencetak objek.
Class menggambarkan data yang mencakup setiap object dan menggambarkan perilaku nbject tersebut.
Class mendefinisikan bentuk dan perilaku object.
Class merupakan pengkapsulan data-data dan metode pengoperasian pada data tersebut.
Class menjelaskan tentang apa yang diketahui dari object dan apa yang dapat dilakukan oleh object tersebut.
Class adalah pola/ template untuk pembuatan object, dan object adalah wujud nyata/instance dari sebuah kelas

Fungsi class adalah untuk menciptakan dan mendekripsikan object dengan properties dan atribut.

Sifat class adalah abstract. Class adalah tipe data abstrak.

Ciri-ciri class adalah penulisannya berawalan huruf besar, tanpa spasi bila terdiri lebih dari 1 kata, pemisahnya adalah pada awal kata berhuruf besar.

Object


Object adalah contoh dari suatu class .
Object adalah hasil cetakan atau implementasi dari class.
Object adalah sebuah entity yang memiliki keadaan, behavior, dan identitas yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik.
Object juga disebut instance/instans (proses pembuatan/perwujudan suatu kelas menjadi object)
Dalam membuat object baru tipe kelas yang telah didefinisikan yaitu :
Tahap 1 : mendeklarasikan variabel yang digunakan sebagai referensi ke objek dari      kelas yang bersangkutan.
Tahap 2 : Menginstansiasi (instans) kelas dengan menggunakan kata kunci new dan memasukkan instanc – nya ke dalam referensi yang baru dideklarasikan.

Sifat object adalah konkrit.

Ciri-cirinya adalah biasanya berwarna hijau pada netbeans, huruf kecil semua bila dua kata maka kata kedua huruf pertama tersebut besar, tidak boleh spasi.

Constructor


Constructor adalah method yang pertama kali dijalankan ketika object diciptakan dari suatu class.
Constructor adalah method khusus tanpa return type yang dipanggil secara ot
omatis setiap kali suatu object atau class diciptakan.
Constructor adalh pemberi nilai awal pada object.
Selalu ada setidaknya 1 constructor pada setiap class. Jika tidak disediakan oleh programmer, maka Java secara otomatis membuatnya dengan 2 kriteria :
Ø  Default constructor tidak memerlukan argument
Ø  Default constructor tidak memiliki statement
Ø   
Fungsi constructor adalah untuk melakukan inisialisasi nilai terhadap data-data ysng terdapat pada kelas bersangkutan.

Sifatnya adalh case sensitive, berarti harus sama persis de ngan nama class.

Ciri-Ciri constructor adalah bernama sama seperti nama kelas lalu dilanjutkan tanda ‘()’.
Penulisan tyersebut merupakan penulisan method, namu java menganggap itu constructorbukan method.

Method

Method adalah aksi yang dapat dilakukan oleh suatu object.
Method dalam java terbagi menjadi 2 :
1.    Void, method void adalah method yang tidak mengembailkan nilai
2.    Return, return adalah method yang mengembalikan nilai.
Method merupakan sarana untuk melakukan abstraksi procedural.

Fungsi method adalah untuk memodulasi program melalui pemisah satu tugas menjadi satu unit tersendiri.

Sifatnya case sensitive, yang berarti ketika method dipanggil penulisannya harus sama seperti saat method di deklarasikan.

Ciri-cirinya adalah hanya nama yang bersangkutan lalu tanda ‘()’, bila namanya sama dengan kelas maka bukan lagi method, melainkan constructor.

Modifier

Modifier merupaka  keyword yang digunakan untuk menentukan spesifikasi tingkat akses suatu variable atau method. Pengaksesan yang dimaksud bisa berupa pengaksesan dalam kelas maupun luar kelas dimana variable dan method dideklarasikan.
Macam-macam modifier :
Ø  Private, merupakan tingkatan akses yang sangat terbatas. Modifier ini menspesifikasikan anggota class yang hanya bisa diakses oleh kelas dimana anggota-anggota kclass tersebut dideklarasikan.
Ø  Default, Hanya menspesifikasikan class-class di paket yang sama yang bisa mengakses variabel dan method suatu kelas. Anggota kelas dengan modifier default bisa melihat kelas lain di package yang sama.
Ø  Protected, menspesifikasikan atau menentukan anggota class yang hanya bisa diakses
Ø  Public anggota class yang dideklarasikan sebagai baik dariclass yang sama maupun class yang berbeda public, maka anggotanya  akan bisa digunakan oleh siapa saja,

Fungsinya yaitu untuk menentukan spesifikasi tingkat akses suatu variable atau method.

Sifat Modifier adalah case sensitive, artinya modifier hanya ada 4 saja.

Ciri-cirinya adalah biasanya berwarna biru pada netbeans dan penulisannya huruf kecil semua.


ACCESS CONTROL

Modifier
Same Class
Same Package
Subclass
Universe
private
Yes



default
Yes
Yes


protected
Yes
Yes
Yes

public
Yes
Yes
Yes
Yes
Continue lendo

Senin, 24 September 2012

Membuat Menu Sign Up , Sign In , Sign Out dengan Java

Disini kita akan coba membuat menu Sign In , Sign Up serta Sign Out dengan Java , menu yang kita buat ini sama dengan membuat sebuah akun user pada sebuah program . Dalam pembuatan program ini masih belum terhubung dengan database jadi pada saat data user disimpan , datanya akan hilang .

Ini langkah-langkahnya :

1.Buat Packages Baru "Praktek1.Login" lalu buat New Java Class "MainMethod.java"
 
 package Praktek1.Login;
 import Praktek1.Login.Data;

/**
 *
 * @author dery
 */
public class MainMethod {
    public static void main(String[] args) {
        Data data = new Data(); 
        data.mainMenu();
    }
}

2.Buat New Java Class lagi dengan nama "Data.java" --> untuk menu sign in , sign up , sign out




package Praktek1.Login;
import javax.swing.JOptionPane;
import java.util.*;
/**
 *
 * @author acer
 */
public class Data {
    public int countSignIn;
    public int nameLength;
    public int genderLength;
    public int passLength;
    public ArrayList name = new ArrayList();
    public ArrayList gender = new ArrayList();
    public ArrayList password = new ArrayList();

    public void mainMenu() {
        String[] menu = {"Sign Up", "Sign In", "Sign Out"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Selamat Datang ^^",
                "Main menu",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                null, menu, null);
        switch (pilihan) {
            case 0:
                signUp();
                break;
            case 1:
                signIn();
                break;
            case 2:
                System.exit(0);
                break;
            default:
                JOptionPane.showMessageDialog(null, "Maaf jika ingin keluar mohon Sign Out terlebih dahulu");
                mainMenu();
                break;
        }
    }

    public void signUp() {
        Object nameSuit[] = name.toArray();
        Object passSuit[] = password.toArray();
        String nama = Nama();
        int i;
        for (i = 0; i < name.size(); i++) {
            if (nameSuit[i].equals(nama)) {
                JOptionPane.showMessageDialog(null, "Maaf User Name yang anda masukkan sudah terdaftar");
                signUp();
            }
        }
        if (i == name.size()) {
            name.add(nama);
        }
        gender.add(Gender());
        int a = 0;
        while (a < 2) {
            String pass = Password();
            if (!pass.matches(".{2,}")) {
                JOptionPane.showMessageDialog(null, "Maaf password minimal 2 karakter");
            } else if (pass.matches(".{2,}")) {
                password.add(pass);
                mainMenu();
            } else if (a == 2) {
                a = 0;
            }
        }
    }

    public String Nama() {
        String nama = JOptionPane.showInputDialog("Silahkan masukkan nama anda : ");
        try {
            if (nama.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Maaf nama tidak boleh kosong");
                Nama();
            } else if (!nama.matches("[a-z A-Z]+")) {
                JOptionPane.showMessageDialog(null, "Maaf masukkan huruf saja");
                Nama();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Masukkan nama anda terlebih dahulu");
            Nama();
        }
        return nama;
    }

    public String Gender() {
        String gender = "";
        String[] opGender = {"Boys", "Girl"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Silahkan pilih jenis kelamin anda",
                "Gender",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                null, opGender, null);
        switch (pilihan) {
            case 0:
                gender = "Abang";
                break;
            case 1:
                gender = "Neng";
                break;
            default:
                JOptionPane.showMessageDialog(null, "Pilih jenis kelamin anda terlenih dahulu");
                Gender();
                break;
        }
        return gender;
    }

    public String Password() {
        String password = JOptionPane.showInputDialog("Silahkan masukkan passoword anda");
        try {
            if (password.isEmpty()) {
                JOptionPane.showMessageDialog(null, "password tidak boleh kosong");
                Password();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf masukkan password anda terlebih dahulu");
            Password();
        }
        return password;
    }

    public void signIn() {
        Object nameSuit[] = name.toArray();
        Object passSuit[] = password.toArray();
        Object genderSuit[] = gender.toArray();
        String nama = Nama();
        String password = Password();
        String kesalahan = "";
        String betul = "";
        int i;
        for (i = 0; i < name.size(); i++) {
            if (nameSuit[i].equals(nama) && passSuit[i].equals(password)) {
                JOptionPane.showMessageDialog(null,
                        " Selamat datang " + genderSuit[i] + " " + nameSuit[i] + "");
                menuJOption();
            } else if (!nameSuit[i].equals(nama) && !passSuit[i].equals(password)) {
                kesalahan = "nama dan password";
                betul = "ada";
            } else {
                if (!passSuit[i].equals(password)) {
                    kesalahan = "password";
                    betul = "cocok dengan nama";
                }
                if (!nameSuit[i].equals(nama)) {
                    kesalahan = "nama";
                    betul = "cocok dengan password";
                }
            }
        }
        if (i == name.size()) {
            JOptionPane.showMessageDialog(null, "Maaf password tidak cocok" + betul + "\ncoba lagi");
            mainMenu();
        }
    }

    public void menuJOption() {
        Konversi konv = new Konversi();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                    null, "Selamat Datang !!"
                    + "\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:
                    konv.setPilih("Biner");
                    konv.outHasilBiner();
                    break;
                case 1:
                    konv.setPilih("Hexadesimal");
                    konv.outHasilHexa();
                    break;
                case 2:
                    konv.setPilih("Oktal");
                    konv.outHasilOktal();
                    break;
                case 3:
                    konv.setPilih("Terbilang");
                    konv.outTerbilang();
                    break;
                case 4:
                    konv.setPilih("Pecahan");
                    konv.hasilPecahan();
                    break;
                case 5:
                    mainMenu();
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "Untuk keluar harap Sign Out");
                    break;
            }
        }
    }
}




3. Create New Java Class lagi dengan nama "Konversi.java" --> untuk menampilkan menu konversi setelah menu sign in , sign up , sign out


package Praktek1.Login;
import javax.swing.JOptionPane;
/**
 *
 * @author dery
 */
public class Konversi {
    private static String des;
    private String pilih;
    private static int validDes;
    private static long bilTerbilang;
    static String[] angka = {"", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"};
    static StringBuilder binerHasil = new StringBuilder();
    static StringBuilder hexaHasil = new StringBuilder();
    static StringBuilder oktalHasil = new StringBuilder();

    public void setPilih(String pilih) {
        this.pilih = pilih;
    }

    public static void keBiner(int n) {
        if (n > 1) {
            keBiner(n / 2);
        }
        System.out.print(n % 2);
        binerHasil.append(n % 2);
    }

    public 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'};
        int sisaBagi = n % 16;
        if (n > 0) {
            keHexa((n - sisaBagi) / 16);
            System.out.print(daftarHexa[n % 16]);
            hexaHasil.append(daftarHexa[n % 16]);
        }
    }

    public void keOktal(int n) {
        int sisaBagi = n % 8;
        if (n > 0) {
            keOktal((n - sisaBagi) / 8);
            System.out.print(n % 8);
            oktalHasil.append(n % 8);
        }
    }

    public void inputDesJOption(String pilih) {
        des = JOptionPane.showInputDialog("Masukkan bilangan Desimalnya : ");
        try {
            if (des.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Anda harus mengisikan bilangan desimalnya terlebih dahulu");
                inputDesJOption(pilih);
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "maaf, mohon isi bilangan desimal dibawah ini");
            inputDesJOption(pilih);
        }
    }

    public void outHasilBiner() {
        inputDesJOption(pilih);
        try {
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Biner adalah: ");
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Biner adalah : "
                    + ""+binerHasil, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
            binerHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilBiner();
        }
    }

    public void outHasilHexa() {
        inputDesJOption(pilih);
        try {
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Hexa adalah: ");
            keHexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Hexa adalah : "
                    + ""+hexaHasil, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
            hexaHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilHexa();
        }
    }

    public void outHasilOktal() {
        inputDesJOption(pilih);
        try {
            validDes = Integer.parseInt(des);
            System.out.print("\n Bilangan Desimal "+des+" dalam Oktal adalah: ");
            keOktal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Hexa adalah : "
                    + ""+oktalHasil, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
            oktalHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outHasilOktal();
        }
    }
    
    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 "maaf 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 void outTerbilang() {
        inputDesJOption(pilih);
        try {
            bilTerbilang = Long.parseLong(des);
            JOptionPane.showMessageDialog(null, new Konversi().terbilang(bilTerbilang), "Terbilang", JOptionPane.INFORMATION_MESSAGE);
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            outTerbilang();
        }
    }

    public void hasilPecahan() {
        inputDesJOption(pilih);
        try {
            long desimal = Long.parseLong(des);
            long 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, "Bilangan " + des + " dalam : "
                    + "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 (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "'"+des+"'"
                    + " bukan angka!"
                    + "\nMohon isikan angka saja");
            hasilPecahan();
        }
    }
}


Ini Tampilannya :






Proses setelah itu sama dengan postingan konversi sebelumnya :)
oke selamat mencoba !!





Continue lendo

Jumat, 07 September 2012

Konversi Bilangan Menggunakan JOPtionPane

Ya ketemu lagi disini , kali ini saya akan membahas lagi yang namanya konversi bilangan di JAVA , tapi yang ini berbeda .
Nanti saat program dijalankan maka kita harus mengisikan nama , memilih gender , dan memilih menu dimana terdapat 7 menu yaitu Biner, Hexa, Oktal , Terbilang, Pecahan , Kembali , dan keluar

Berikut langkah-langkahnya :


1. Buat NetBeans , New Java Class , beri nama menuDariJOPtion.java
2. kemudian ketikkan code berikut , letakkan dibawah packages :

package Praktek1;
import javax.swing.JOptionPane;

3.Kemudian deklarasikan variable yang akan digunakan di bawah class :
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;

4. Kemudian ketikkan coding berikut untuk menampilkan proses konversi bilangan ke biner , hexa , dan oktal :
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){
    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','8'};
        if(n>0){
            keHexa(n/8);
            System.out.print(daftarOktal[n%8]);
            oktalHasil.append(daftarOktal[n%8]);
        }
    }

5. kemudian tuliskan coding berikut untuk menginputkan bilangan decimal :
public static void inputDesJOption(){
    des=JOptionPane.showInputDialog("Masukkan " + "Bil.Desimalnya = ");
    try{
        if(des.isEmpty()){
            JOptionPane.showMessageDialog(null, "Inputan angka tidak boleh kosong!!");
            inputDesJOption();//kembali input angka
        }
    }catch(NullPointerException npe){
        JOptionPane.showMessageDialog(null, "Harap diisi Angka dulu donk!!");
        inputDesJOption();//kembali input angka
    }
    }

6. dan tuliskan coding berikut untuk menampilkan hasil konversi bilangan :


 public static void eksepsiInpBiner(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
        keBiner(validDes);
        JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" dikonversikan dalam Biner hasilnya : "+binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE );
        binerHasil = new StringBuilder();
        
    }catch(NumberFormatException nfe){
        JOptionPane.showMessageDialog(null, des+" bukan angka!! "+ "\nMasukkan angka saja!!");
        eksepsiInpBiner();
    }
    }
    public static void eksepsiInpHexa(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
        keHexa(validDes);
        JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" dikonversikan dalam Biner hasilnya : "+hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE );
        hexaHasil = new StringBuilder();
        
    }catch(NumberFormatException nfe){
        JOptionPane.showMessageDialog(null, des+" bukan angka!! "+ "\nMasukkan angka saja!!");
        eksepsiInpHexa();
    }
    }
    public static void eksepsiInpOktal(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
        keOktal(validDes);
        JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" dikonversikan dalam Biner hasilnya : "+oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE );
        oktalHasil = new StringBuilder();
    }catch(NumberFormatException nfe){
        JOptionPane.showMessageDialog(null, des+" bukan angka!! "+ "\nMasukkan angka saja!!");
        eksepsiInpOktal();
    }
    }
    
    public static void outHasilBiner(){
    eksepsiInpBiner();
    }
     public static void outHasilHexa(){
    eksepsiInpHexa();
    }
     public static void outHasilOktal(){
    eksepsiInpOktal();
    }

7.kemudian untuk menampilkan input dialog nama dan gender :
public static void inpNama(){
    name=JOptionPane.showInputDialog("Masukkan Nama Anda :");
    try{
        if(name.isEmpty()){
            JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong!!");
            inpNama();//kembali input nama
        }
    }catch(NullPointerException npe){
        JOptionPane.showMessageDialog(null, "Harap diisi Nama dulu donk!!");
        inpNama();//kembali input nama
    }
    }
    //menampilkan input dialog jenis Kelamin (gender)
    public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (laki-laki/perempuan) : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Harus diisi lho yaa .... Jenis Kelamin ???");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "Apa jenis kelamin kamu ???");
            jenisKelamin();
        }
        if ("laki-laki".equals(gender)) {
            kelamin="Saudara, ";
        }
        else{
            if("perempuan".equals(gender)){
                kelamin="Saudari, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Hanya bisa diisi laki-laki dan perempuan saja !!");
                jenisKelamin();
            }
        }
    }

8.dan ini untuk menampilkan Terbilang dan Pecahan :

//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, "Waa.. mana bilangannya ?? Isi dulu yaa.. !!");
                outTerbilang();
            } else {

                JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Jangan keluar dulu, harus diisi dulu.. !!");
            outTerbilang();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Hey '" + sc + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            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 ?? 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();
        }
    }

9.dan ini untuk proses kembali ke awal menginputkan nama :
public static void kembaliMenu(){
        inpNama();
        jenisKelamin();
    }

10.dan ini untuk proses end atau exit :

public static void thanks(){
        JOptionPane.showMessageDialog(
                               null                       
                             , "Terima Kasih "+kelamin+name+" !"
                                + " sudah mau mampir di program konversi bilangan saya :)"
                             , "Thank you"                
                             , JOptionPane.PLAIN_MESSAGE 
                             , null                              
                           ); 
    }

11. coding untuk menampilkan pilihan menu :
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:
                    thanks();
                default:
                System.exit(0);
            }
        }
    }

12. ini untuk menampilkan hasil dari coding keseluruhan :
public static void main (String[] args){
    menuJOption();
    }
}


Coding ini sebagian saya ambil dari referensi internet beserta hasil sharing dengan teman , apabila anda ingin mencoba tapi pada saat dicoba masih ada kesalahan , dimohon untuk saling share mana yang salah dan perbaikannya seperti apa , oke sekian dulu terimakasih :)

dan dalam program ini , tampilan untuk menampilkan proses konversi ada yang menggunkanan message dialog dan satunya di console , tunggu perkembangan selanjutnya saja :)


ini dia tampilan testing programnya :

ini tampilan awal ketika program dijalankan , kita harus menginputkan nama terlebih dahulu

ini tampilan apabila kita tidak menginputkan nama tapi langsung di klik ok

ini tampilan apabila kita tidak menginputkan nama tapi langsung di klik cancel



baru setelah kita menginputkan nama , maka akan muncul input dialog untuk menginputkan jenis kelamin

ini kotak dialog yang muncul akibat kita langsung mengklik ok tanpa harus menginputkan jenis kelamin terlebih dahulu
ini kotak dialog yang muncul akibat kita langsung mengklik cancel tanpa harus menginputkan jenis kelamin terlebih dahulu


ini kotak dialog yang muncul akibat kita menginputkan jenis kelamin yang bukan laki-laki/perempuan



ini pilihan menu setelah kita menginputkan nama


 ini input dialog untuk memasukkan bilangan desimal yang kita inginkan untuk dikonversikan
ini kotak dialog yang tampil ketika kita mengklik ok namun belum menginputkan bilangan desimal


ini bila kita menginputkan selain angka

ini jika kita mencancel sebelum kita menginputkan angka


 ini hasil konversi ke biner
  ini hasil konversi ke hexa
 ini hasil konversi ke otal


ini merupakan proses menampilkan inputan yang terbilang


ini merupakan proses menampilkan inputan menjadi pecahan


dan apabila kita mengklik menu kembali maka kita akan kembali dimana muncul tampilan input dialog nama

 dan ini kotak dialog yang tampil pada saat kita memilih menu keluar


Continue lendo
 

Deryan E.M. Copyright © 2011 | Template design by O Pregador | Powered by Blogger Templates