Senin, 24 September 2012

Sign In , Sign Up dan Sign Out melalu JOptionPane

Diposting oleh dessy setyo di 06.16
Halo semua :D , lama ya nggak berjumpa :D , Dessy dapet tugas lagi nih :)
mari kita coba yuk :D

1. Ini Syntaxnya :
A.pada file method :
package Praktek1.tugas;

import Praktek1.Tugas.login;

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

B.Pada file  Konversi :
package Praktek1.tugas;

import javax.swing.JOptionPane;

/**
 *
 * @author Desi
 */
public class konversibilangan {
    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 konversibilangan ().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();
        }
    }
}


C.Pada file Sign Up , Sign In dan Sign Out
package Praktek1.Tugas;
import Praktek1.tugas.konversibilangan;
import javax.swing.JOptionPane;
import java.util.*;

public class login {
    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, "User name anda 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, "Password minimal 10 karakter!");
            } else if (pass.matches(".{10,}")) {
                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 = {"Abang", "Kakak"};
        int pilihan = JOptionPane.showOptionDialog(null,
                "Monggo 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 = "Kakak";
                break;
            default:
                JOptionPane.showMessageDialog(null, "Coba anda pilih jenis kelamin anda terlebih dahulu!");
                inpGender();
                break;
        }
        return gender;
    }

    public String inpPassword() {
        String password = JOptionPane.showInputDialog("Monggo masukkan passoword anda");
        try {
            if (password.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Password harus diisi!");
                inpPassword();
            }
        } catch (NullPointerException npe) {
            JOptionPane.showMessageDialog(null, "Masukkan password anda terlebih daahulu ");
            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 = "sesuai dengan nama";
                }
                if (!nameSuit[i].equals(nama)) {
                    kesalahan = "nama";
                    betul = "sesuai dengan password";
                }
            }
        }
        if (i == nameArray.size()) {
            JOptionPane.showMessageDialog(null, "Passwordnya tidak cocok tuh!Coba Lagi!" + betul + "\ncoba lagi");
            mainMenu();
        }
    }

    public void menuJOption() {
        konversibilangan konv = new konversibilangan();
        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;
            }
        }
    }
}

2.Lalu hasilnya ?Klik Shift+F6 :



Pilih Sign Up , maka akan keluar , lalu masukkan nama :

Enter dan masukkan password :


Enter,Pilih Gender, jika cewek pilih Kakak dan cowok pilih Abang :





Pilih Sign In :



maka akan keluar , lalu masukkan nama :

Enter dan masukkan password :



Enter,Pilih Gender, jika cewek pilih Kakak dan cowok pilih Abang :


Enter ,tekan OK :


Lalu , Biner :


Masukkan angka :

Hasilnya :

Pilih Hexa :

Hasilnya:

Pilih Oktal :

Hasilnya:
  Pilih Terbilang :

  
Hasilnya:


Pilih Pecahan :

Hasilnya:



Pilih Kembali :


Lalu akan muncul :
 

Pilih Sign Out maka akan keluar dari program

Trimakasi anda telah mampir dan mempelajari materi ini :) , semoga bermanfaat :)








0 komentar:

Posting Komentar

 

Desi Template by Ipietoon Blogger Template | Gadget Review