Rabu, 26 September 2012

SIGN UP, SIGN IN, SIGN OUT DENGAN MENGGUNAKAN JAVA

package praktek1;

/**
 *
 * @author user
 */

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

public class data{
    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"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Selamat Datang Di Program Ini",
                "Menu",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                null, menu, null);
        switch (pilihan) {
            case 0:
                signUp();
                break;
            case 1:
                signIn();
                break;
            default:
                JOptionPane.showMessageDialog(null, "Tolong Sign In dulu ya");
                mainMenu();
                break;
        }
    }

    public void signUp() {
        Object nameSuit[] = nameArray.toArray();
        Object passSuit[] = passArray.toArray();
        String nama = inpNama();
        int d;
        for (d = 0; d < nameArray.size(); d++) {
            if (nameSuit[d].equals(nama)) {
                JOptionPane.showMessageDialog(null, "User sudah ada!!");
                signUp();
            }
        }
        if (d == nameArray.size()) {
            nameArray.add(nama);
        }
        genderArray.add(inpGender());
        int i = 0;
        while (i < 2) {
            String pass = inpPassword();
            if (!pass.matches(".{6,}")) {
                JOptionPane.showMessageDialog(null, "Maaf, password minimal 6 karakter");
            } else if (pass.matches(".{6,}")) {
                passArray.add(pass);
                mainMenu();
            } else if (i == 2) {
                i = 0;
            }
        }
    }

    public String inpNama() {
        String nama = JOptionPane.showInputDialog("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 = {"cewek", "cowok"};
        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 = "Sista";
                break;
            case 1:
                gender = "Brader";
                break;
            default:
                JOptionPane.showMessageDialog(null, "Maaf Anda harus memilih jenis kelamin Anda terlebih dahulu");
                inpGender();
                break;
        }
        return gender;
    }

    public String inpPassword() {
        String password = JOptionPane.showInputDialog("Silahkan masukkan password 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"
                    +" atau mungkin anda belum terdaftar"+ betul + "\ncoba lagi");
            mainMenu();
        }
    }

    public void menuJOption() {
        MenuDariJOption konv = new MenuDariJOption();
        String[] pilihan = {"Biner", "Hexa", "Oktal", "Terbilang", "Pecahan", "Log Out", "Sign Out"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                    null, "Selamat Datang !"
                    + "\nPilih Konversi Bilangan di bawah 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");
                    MenuDariJOption.outHasilBiner();
                    break;
                case 1:
                    konv.setPilih("Hexadesimal");
                    MenuDariJOption.outHasilHexa();
                    break;
                case 2:
                    konv.setPilih("Oktal");
                    MenuDariJOption.outHasilOktal();
                    break;
                case 3:
                    konv.setPilih("Terbilang");
                    konv.outTerbilang();
                    break;
                case 4:
                    konv.setPilih("Pecahan");
                    konv.hasilPecahan();
                    break;
                case 5:
                    mainMenu();
                    break;
                case 6:
                    default:
                    JOptionPane.showMessageDialog(null, "Terima Kasih :)");
                    System.exit(0);

            }
        }
    }
}

1 komentar: