Rabu, 26 September 2012

MENU SIGN UP, SIGN IN, SIGN OUT Dengan JAVA

Baiklah para teman Blogger, kali ini kita akan membuat menu Sign In, Sign Out, dan Sign Up menggunakan JAVA.
Bagaimanakah cara membuatnya ?
mari ikuti tutorial yang telah saya buat berikut ini.

1.Buatlah satu class yang terserah anda menamai nya apa, kemudian tulis coding seperti dibawah ini.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Praktek1;
import javax.swing.JOptionPane;

/**
 *
 * @author Bayu
 */
public class Main {
    public static void main(String[] args) {
        Main main = new Main();
        UserData data = new UserData();
        main.mainMenu(data, main);
    }

    public void mainMenu(UserData data, Main main) {
        String[] menu = {"SIGN UP", "SIGN IN", "SIGN OUT"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Selamat Datang di Program brae : ",
                "Main menu",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                null, menu, null);
        switch (pilihan) {
            case 0:
                data.signUp(data, main);
                break;
            case 1:
                data.signIn(data, main);
                break;
            case 2:
                System.exit(0);
                break;
            default:
                JOptionPane.showMessageDialog(null, 
"Maaf jika ingin keluar harus menekan tombol SIGN OUT");
                main.mainMenu(data, main);
                break;
        }
    }
}

2.Kemudian buat sebuah class lagi terserah anda namai seperti apa.
Lalu tulis coding seperti berikut ini.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Praktek1;
import javax.swing.JOptionPane;
import java.util.*;

/**
 *
 * @author Bayu
 */
public class UserData {
     public ArrayList nameArray = new ArrayList();
    public ArrayList genderArray = new ArrayList();
    public ArrayList passArray = new ArrayList();
    public ArrayList emailArray = new ArrayList();

    public void signUp(UserData dataDup, Main mainDup) {
        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 nama yang anda masukkan sudah terdaftar silahkan coba lagi");
                signUp(dataDup, mainDup);
            }
        }
        if (i == nameArray.size()) {
            nameArray.add(nama);
        }
        String email = inpEmail();
        genderArray.add(inpGender()); /* jenis kelamin*/
        int a = 0;
        while (a < 2) {
            String pass = inpPassword();
            if (!pass.matches(".{8,}")) {
                JOptionPane.showMessageDialog(null, "Maaf password harus mengandung minimal 8 karakter");
            } else if (pass.matches(".{8,}")) {
                passArray.add(pass); /* password*/
                mainDup.mainMenu(dataDup, mainDup);
            } else if (a == 2) {
                a = 0;
            }
        }
        emailArray.add(email);
    }

    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 nama hanya bisa mengndung huruf");
                inpNama();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf anda harus memasukkan nama anda");
            inpNama();
        }
        return nama;
    }

    public String inpGender() {
        String gender = "";
        String[] opGender = {"LAKI-LAKI", "PEREMPUAN"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Silahkan pilih jenis kelamin",
                "Gender",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                null, opGender, null);
        switch (pilihan) {
            case 0:
                gender = "mas bro";
                break;
            case 1:
                gender = "jeng";
                break;
            default:
                JOptionPane.showMessageDialog(null, "Maaf anda harus memilih jenis kelamin");
                inpGender();
                break;
        }
        return gender;
    }

    public String inpPassword() {
        String password = JOptionPane.showInputDialog("Silahkan tentukan password anda");
        try {
            if (password.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Maaf password tidak boleh kosong");
                inpPassword();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf anda harus menentukan password anda");
            inpPassword();
        }
        return password;
    }

    public String inpEmail() {
        String email = JOptionPane.showInputDialog("Silahkan masukkan email anda");
        try {
            if (email.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Maaf email tidak boleh kosong");
                inpEmail();
            }
if (!email.matches("[a-zA-Z]+@[a-zA-Z]+[.][a-zA-Z]+")) {
JOptionPane.showMessageDialog(null, "Maaf format email salah");
inpEmail();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Maaf anda harus memasukkan email anda");
            inpEmail();
        }
        return email;
    }

    public void signIn(UserData dataDup, Main mainDup) {
        KonversiBilangan1 konv = new KonversiBilangan1();
        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] + "\nAnda memasuki program konversi bilangan");
                konv.menuJOption(dataDup,mainDup,genderSuit[i].toString(),nameSuit[i].toString());
            } else if (!nameSuit[i].equals(nama) && !passSuit[i].equals(password)) {
                kesalahan = "nama dan password";
                betul = "tidak ada";
            } else if (!passSuit[i].equals(password) 
|| !nameSuit[i].equals(nama)) {
                kesalahan = "data";
                betul = "salah";
            }
        }
        if (i == nameArray.size()) {
            JOptionPane.showMessageDialog(null, "Maaf " 
+ kesalahan + " yang anda masukkan " + betul + "\ncoba lagi");
            mainDup.mainMenu(dataDup, mainDup);
        }
    }
}

3.Kemudian buatlah sebuah class lagi dengan nama terserah anda, Tuliskan lagi coding seperti berikut ini. Ini berguna jika user setelah memasuki menu Sign Up dan Sign In, maka user akan memasuki program untuk mengkonversi bilangan tersebut.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Praktek1;
import javax.swing.JOptionPane;

/**
 *
 * @author Bayu
 */
public class KonversiBilangan1 {
    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 void menuJOption(UserData data, Main main,
 String gender, String nama) {
        KonversiBilangan1 konv = new KonversiBilangan1();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", 
"TERBILANG", "PECAHAN", "KEMBALI"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
null, "Selamat Datang " + gender + " " + nama + "!!"
+ "\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:
                    main.mainMenu(data, main);
                    break;
                default:
                    JOptionPane.showMessageDialog(null,
 "Maaf jika anda ingin keluar, klik tombol keluar");
                    break;
            }
        }
    }

    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 Desimal konversi ke \n" 
+ pilih + " :");
        try {
            if (des.isEmpty()) {
JOptionPane.showMessageDialog(null, 
"Bilangan Desimal tidak boleh kosong !!");
                inputDesJOption(pilih);
            }
        } catch (NullPointerException npe) {
JOptionPane.showMessageDialog(null, "Maaf harus diisi !!");
            inputDesJOption(pilih);
        }
    }

    public void outHasilBiner() {
        inputDesJOption(pilih);
        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,"Maaf '" + des + "' bukan bilangan \nMasukkan bilangan saja !!");
            outHasilBiner();
        }
    }

    public void outHasilHexa() {
        inputDesJOption(pilih);
        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,
                    "Maaf '" + des + "' bukan bilangan \nMasukkan bilangan saja !!");
            outHasilHexa();
        }
    }

    public void outHasilOktal() {
        inputDesJOption(pilih);
        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,
 "Maaf '" + des + "' bukan bilangan \nMasukkan bilangan saja !!");
            outHasilOktal();
        }
    }

    //Terbilang
    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 void outTerbilang() {
        inputDesJOption(pilih);
        try {
            bilTerbilang = Long.parseLong(des);
            JOptionPane.showMessageDialog(null, new KonversiBilangan1().terbilang(bilTerbilang),
 "Terbilang", JOptionPane.INFORMATION_MESSAGE);
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null,
 "Maaf '" + des + "' bukan bilangan \nMasukkan bilangan 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,
 "Maaf '" + des + 
"' bukan bilangan \nMasukkan bilangan saja !!");
            hasilPecahan();
        }
    }
}
    
Maka program pun siap untuk dijalankan.

Jika program dijalankan maka akan muncul pertama kali


Lalu harus memasukkan nama seperti ini



Jika ingin Sign Up, nama user hanya boleh mengandung huruf jadi jika salah maka seperti ini


Jika ingin Sign Up, nama user hanya boleh mengandung huruf jadi jika salah maka seperti ini


Jika di cancel maka


Jika nama nya kosong maka


Lalu masukkan Email seperti dibawah ini


Jika anda mengisikan seperti ini 


Maka


Jika Tidak mengisi maka


Lalu Akan muncul menu untuk memilih gender


Setelah itu akan muncul menu untuk memasukkan password


Jika tidak maka akan




Setelah benar maka akan muncul menu


Setelah itu anda Sign In kembali dan akan muncul menu seperti ini.
Inilah menu Konversi Bilangan yang telah dibuat tadi.






Dan Selesailah program kita


























 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cheap international calls