Blogger Widgets -->

Senin, 24 September 2012

JAVA Sign Up Sign In dan Sign Out pada Konversi Bilangan

1.Buat file Java Package baru dengan nama LOGIN kemudian pilih Java Class dengan nama Data.java
2.Masukkan script seperti dibawah ini:

  •  Dibawah package LOGIN; ketik script berikut;


import javax.swing.JOptionPane;
import java.util.*;

  • Dibawah public class Data{  ketik script berikut:
public ArrayList nameArray = new ArrayList();
    public ArrayList genderArray = new ArrayList();
    public ArrayList passArray = new ArrayList();
    public int countSignIn;
    public int nameLength;
    public int genderLength;
    public int passLength;
 public void mainMenu() {
        String[] menu = {"Sign Up", "Sign In", "Sign Out"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Welcome",
                "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[] = nameArray.toArray();
        Object passSuit[] = passArray.toArray();
        String nama = inpNama();
        int i;
        for (i = 0; i < nameArray.size(); i++) {
            if (nameSuit[i].equals(nama)) {
                JOptionPane.showMessageDialog(null, "Maaf User Name yang anda masukkan sudah terdaftar");
                signUp();
                      }
        }
        if (i == nameArray.size()) {
            nameArray.add(nama);
        }
        genderArray.add(inpGender());
        int a = 0;
        while (a < 2) {
            String pass = inpPassword();
            if (!pass.matches(".{8,}")) {
                JOptionPane.showMessageDialog(null, "Maaf password minimal 8 karakter");
            } else if (pass.matches(".{8,}")) {
                passArray.add(pass);
                mainMenu();
            } else if (a == 2) {
                a = 0;
            }
        }
    }
      public String inpNama() {
        String nama = JOptionPane.showInputDialog("Silahkan masukkan nama anda : ");
        try {
            if (nama.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Maaf nama tidak boleh kosong");
                inpNama();
            } else if (!nama.matches("[a-z A-Z]+")) {
                JOptionPane.showMessageDialog(null, "Maaf masukkan huruf saja");
                inpNama();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf memasukkan nama anda terlebih dahulu");
            inpNama();
        }
        return nama;
    }
       public String inpGender() {
        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 = "Bro";
                break;
            case 1:
                gender = "Sis";
                break;
            default:
                JOptionPane.showMessageDialog(null, "Maaf anda harus memilih jenis kelamin anda terlenih dahulu");
                inpGender();
                break;
        }
        return gender;
    }
        public String inpPassword() {
        String password = JOptionPane.showInputDialog("Silahkan masukkan passoword anda");
        try {
            if (password.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Maaf password tidak boleh kosong");
                inpPassword();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf anda harus masukkan password anda terlebih dahulu");
            inpPassword();
        }
        return password;
    }
  public void signIn() {
        Object nameSuit[] = nameArray.toArray();
        Object passSuit[] = passArray.toArray();
        Object genderSuit[] = genderArray.toArray();
        String nama = inpNama();
        String password = inpPassword();
        String kesalahan = "";
        String betul = "";
        int i;
        for (i = 0; i < nameArray.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 == nameArray.size()) {
            JOptionPane.showMessageDialog(null, "Maaf password yang anda masukkan 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, "Maaf jika anda ingin keluar, klik tombol keluar");
                    break;
            }
        }
    }
}

3.Buat lagi Java Class dengan nama konversi.java




  • Dibawah package LOGIN; tulis syntax berikut:

import javax.swing.JOptionPane;

  •  Dibawah public class konversi { tulis syntax berikut:
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();
        }
    }
}

   4.Buat lagi new Java Class dengan nama method.java

  • Dibawah package LOGIN;

          public class method {  ketik syntax berikut:


 public static void main(String[] args) {
        Data data = new Data();
        data.mainMenu();
     }
 
}

5.Setelah menginputkan codingnya coba di run shift+f6 untuk melihat programnya
hasilnya;
Tampilan awal

 klik Sign up dan isi inputan nama dengan bilangan misal 12

hasilnya:
jika input box tidak diisi dan diklik ok maka interaksinya:
dan jika kita klik cancel atau close akan muncul message seperti ini:
ini berarti bahwa input box nama harus diisi,kemudian masukkan namamu ,setelah itu muncul seperti ini:
pilih menurut jenis kelaminmu.kemudian akan muncul input box memasukkan password .ketentuan minimal 8 karakter.klik ok maka yang terjadi akan kembali ke main menu pertama.coba Sign In .Isikan sama seperti pada waktu kamu Sign Up hingga muncul message berikut:
klik ok dan muncul:

selamat mencoba :)


















Tidak ada komentar:

Posting Komentar