Thursday, December 20, 2012

Konversi Terbilang menggunakan Passing By Value pada JAVA

Tak ada gading yang tak retak, dan harus diingat bahwa di atas langit pasti masih ada langit.
Justru itulah, kita harus tetap semangat dan fight untuk belajar, agar kita bisa menempuh "langit" yang lebih tinggi.
Alhamdulillah, hari ini Kamis, 20 Desember 2012 saya sangat berbahagia, karena telah menyelesaikan sebuah project pada JAVA yang mengulas konversi bilangan ke dalam bentuk terbilang. sebenarnya ini bukan proyek terbilang yang pertama, proyek terbilang juga pernah saya tulis di blog tercinta ini sekitar hampir dua bulan yang lalu, tepatnya 31 Oktober 2012. Linknya masih aktif koq :


Heheheheh, saya sendiri geli melihat coding-an di alamat itu. Tidak hanya bertele-tele, tapi panjangnya yang hampir 10 meter itu seakan-akan menggambarkan betapa sulitnya menggunakan bahasa pemrograman pada JAVA. Maklum, waktu itu di perkuliahan saya materinya masih nyampe switch-case, kebetulan saya sendiri tidak memiliki hobi untuk bereksplorasi, sehingga apa yang diajarkan dosen, ya cuman itu aja yang dibuat referensi (jangan ditiru ya gan kebiasaan buruk ane...!!).
Nah, oleh karena itu tadi saya bilang hari ini sangat berbahagia. Karena lagi-lagi dengan modal ilmu dari dosen, saya dapat membuat bahkan menyederhanakan proyek saya tersebut, kali ini mulai memasuki Object Oriented Programming (OOP) atau Pemrograman Berorientasi Objek (PBO) dengan sentuhan makhluk yang bernama "Passing By Value", jika proyek sebelumnya sepanjang 10 meter, kali ini coba saya sajikan yang 1 meter.
Saya berharap, bagi seluruh pembaca untuk dapat menyempurnakannya. Sehingga mungkin dua bulan lagi, saya akan merasa geli dengan posting-an saya hari ini.
Saya tunggu komentarnya . . .

Selamat mencoba :

package konversi_angka_ke_terbilang;

/**
 *
 * @author ERFAN FEBRIANTORO, NIM.1210652040
 * @campuss TEKNIK INFORMATIKA - UNMUH JEMBER
 */
import javax.swing.JOptionPane;

public class PETRUK_Proyek_UAS_Terbilang {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String angka, input, welcome, ulangi, warning1, warning2, bye;
        welcome = "Selamat Datang."
                + "\nAnda sedang menjalankan Aplikasi JAVA Sederhana"
                + "\nMengkonversi Angka Menjadi Terbilang."
                + "\nPresented by :"
                + "\nerfan2040.blogspot.com (c) 2012";
        input = "Masukkan angka yang Anda inginkan :";
        bye = "Terima kasih telah mencoba Aplikasi ini."
                + "\nJika Anda suka,"
                + "\nDon't forget to LIKE this post or SHARE it."
                + "\nPresented by :"
                + "\nerfan2040.blogspot.com (c) 2012";
        ulangi = "Maaf, Aplikasi ini hanya mensupport bilangan bulat mulai"
                + "\n =1= sampai dengan =2.147.483.647=."
                + "\nULANGI LAGI . . .";
        warning1 = "Maaf, data yang Anda inputkan BUKAN ANGKA."
                + "\nTERIMA KASIH.";
        warning2 = "Maaf, data yang Anda inputkan SALAH."
                + "\nTERIMA KASIH.";

        try {
            do {
                int a = 0;
                String terbilang = null;

                JOptionPane.showMessageDialog(null, welcome);

                angka = JOptionPane.showInputDialog(null, input);
                a = Integer.parseInt(angka);
                if ((a >= 1) & (a <= 2147483647)) {

                    if ((a >= 1) & (a <= 99)) {
                        terbilang = satuan(a);
                    } else if ((a >= 100) & (a <= 999)) {
                        terbilang = ratusan(a);
                    } else if ((a >= 1000) & (a <= 999999)) {
                        terbilang = ribuan(a);
                    } else if ((a >= 1000000) & (a <= 999999999)) {
                        terbilang = jutaan(a);
                    } else if ((a >= 1000000000) & (a <= 2147483647)) {
                        terbilang = milyaran(a);
                    }

                    // Menampilkan hasil :
                    JOptionPane.showMessageDialog(null, "Angka yang anda inputkan adalah :"
                            + "\n== " + angka + " =="
                            + "\nDikonversikan menjadi :"
                            + "\n== " + terbilang + " ==");

                    JOptionPane.showMessageDialog(null, bye);
                    break;
                } else {
                    JOptionPane.showMessageDialog(null, ulangi);
                }

            } while (true);

        } catch (NumberFormatException n) {
            JOptionPane.showMessageDialog(null, warning1);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, warning2);
        }
    }

    // Membuat Class untuk mengkonversi bilangan 1 - 99
    public static String satuan(int x) {
        String teks = "";
        if ((x >= 1) & (x <= 11)) {
            teks = (konversi(x));
        } else if ((x >= 12) & (x <= 19)) {
            teks = (konversi(x % 10) + "Belas ");
        } else if ((x >= 20) & (x <= 99)) {
            teks = (konversi(x / 10) + "Puluh " + konversi(x % 10));
        }
        return teks;
    }

    // Membuat Class untuk mengkonversi bilangan 100 - 999
    public static String ratusan(int x) {
        String teks = "";
        if ((x >= 100) & (x <= 199)) {
            teks = ("Seratus ") + (satuan(x - 100));
        } else if ((x >= 200) & (x <= 999)) {
            teks = (konversi(x / 100) + "Ratus ") + (satuan(x % 100));
        }
        return teks;
    }

    // Membuat Class untuk mengkonversi bilangan 1000 - 999.999
    public static String ribuan(int x) {
        String teks = "";
        if ((x >= 1000) & (x <= 1999)) {
            teks = ("Seribu ") + (ratusan(x % 1000));
        } else if ((x >= 2000) & (x <= 99999)) {
            teks = (satuan(x / 1000) + "Ribu ") + (ratusan(x % 1000));
        } else if ((x >= 100000) & (x <= 999999)) {
            teks = (ratusan(x / 1000) + "Ribu ") + (ratusan(x % 1000));
        }
        return teks;
    }

    // Membuat Class untuk mengkonversi bilangan 1.000.000 - 999.999.999
    public static String jutaan(int x) {
        String teks = "";
        if ((x >= 1000000) & (x <= 99999999)) {
            teks = (satuan(x / 1000000) + "Juta ") + (ribuan(x % 1000000));
        } else if ((x >= 100000000) & (x <= 999999999)) {
            teks = (ratusan(x / 1000000) + "Juta ") + (ribuan(x % 1000000));
        }
        return teks;
    }

    // Membuat Class untuk mengkonversi bilangan 1.000.000.000 - 2.147.483.647 (max. Integer)
    public static String milyaran(int x) {
        String teks = "";
        if ((x >= 1000000000) & (x <= 2147483647)) {
            teks = (satuan(x / 1000000000) + "Milyar ") + (jutaan(x % 1000000000));
        }
        return teks;
    }

    // Membuat Class untuk mengkonversi Bilangan Dasar
    public static String konversi(int a) {
        String teks = "";
        switch (a) {
            case 0:
                return teks = "";
            case 1:
                return teks = "Satu ";
            case 2:
                return teks = "Dua ";
            case 3:
                return teks = "Tiga ";
            case 4:
                return teks = "Empat ";
            case 5:
                return teks = "Lima ";
            case 6:
                return teks = "Enam ";
            case 7:
                return teks = "Tujuh ";
            case 8:
                return teks = "Delapan ";
            case 9:
                return teks = "Sembilan ";
            case 10:
                return teks = "Sepuluh ";
            case 11:
                return teks = "Sebelas ";
            default:
                return teks;
        }
    }
}

Semoga bermanfaat . . .

No comments:

Post a Comment