Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

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);

            }
        }
    }
}

Rabu, 12 September 2012

Menu Dari JOption


package Java_Praktek;
import javax.swing.JOptionPane;

public class Menu {
   private static String name;
   private static String des;
   private static String gender;
   private static String kelamin;
   private static int validDes;
   static StringBuilder binerHasil= new StringBuilder();
   static StringBuilder hexaHasil= new StringBuilder();
   static StringBuilder oktalHasil= new StringBuilder();
   static String sc;
  
 public static void keBiner(int n) {
        if (n > 1) {
            keBiner(n / 2);
        }
        System.out.print(n % 2);
        binerHasil.append(n % 2);
    }

    public static 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'};
        if (n > 0) {
            keHexa(n / 16);
            System.out.print(daftarHexa[n % 16]);
            hexaHasil.append(daftarHexa[n % 16]);
        }
    }

    public static void keOktal(int n) {
        char[] daftarOktal = {'0', '1', '2', '3', '4', '5', '6', '7'};
        if (n > 0) {
            keOktal(n / 8);
            System.out.print(daftarOktal[n % 8]);
            oktalHasil.append(daftarOktal[n % 8]);
        }
    }
    
public static void inputDesJOption(){
        des=JOptionPane.showInputDialog("Masukkan Bilangan Desimal : ");
        try{
            if(des.isEmpty()){
                JOptionPane.showMessageDialog(null, "Bilangan Desimal harus diisi !!");
                inputDesJOption();
            }
        }
        catch(NullPointerException npa){
            JOptionPane.showMessageDialog(null, "Harus diisi yaa !!");
            inputDesJOption();
        }
    }

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

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

    public static void outHasilOktal() {
        inputDesJOption();
        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, "'" + des + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outHasilOktal();
        }
    } 
       
//menampilkan input dialog nama
 public static void inpNama(){
        name=JOptionPane.showInputDialog("Masukkan nama Anda : ");
        try{
            if(name.isEmpty()){
                JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong !!");
                inpNama();
            }
        }
        catch(NullPointerException npe){
            JOptionPane.showMessageDialog(null, "Harap diisi nama dulu doonk !!");
            inpNama();
        }
    }
  
 //menampilkan input dialog jenis Kelamin (gender)
    public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (cowok/cewek) : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Harus diisi lho yaa .... Jenis Kelamin ???");
                jenisKelamin();
            }
        }
        catch(NullPointerException npt){
            JOptionPane.showMessageDialog(null, "Apa jenis kelamin kamu ???");
            jenisKelamin();
        }
        if ("cowok".equals(gender)) {
            kelamin="Saudara, ";
        }
        else{
            if("cewek".equals(gender)){
                kelamin="Saudari, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Hanya bisa diisi cowok dan cewek saja !!");
                jenisKelamin();
            }
        }
       
    }
 
    //Terbilang
    String[] angka = {"", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"};

    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 static void outTerbilang() {
        sc = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
        try {
            if (sc.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Waa.. mana bilangannya ?? Isi dulu yaa.. !!");
                outTerbilang();
            } else {
                JOptionPane.showMessageDialog(null, new Menu().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Jangan keluar dulu, harus diisi itunya.. !!");
            outTerbilang();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Hey '" + sc + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            outTerbilang();
        }
    }
 
    public static void hasilPecahan() {
        int desimal;
        String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
        try {
            if (str.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Kok kosong ?? Isi dulu ya.. !!");
                hasilPecahan();
            } else {
                desimal = Integer.parseInt(str);
                int 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, "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 (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Eitss mau kemana ?? Isi dulu bilangannya.. !!");
            hasilPecahan();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Hey '" + str + "'"
                    + " .... bukan angka !!"
                    + "\nMasukkan angka saja !!");
            hasilPecahan();
        }
    }
   
public static void kembaliMenu(){
        inpNama();
        jenisKelamin();
    }
  
 public static void menuJOption(){
        inpNama();
        jenisKelamin();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI", "KELUAR"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                       
                             , "Selamat Datang "+kelamin+name+" !!"
                                + "\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:
                    outHasilBiner();
                    break;
                case 1:
                    outHasilHexa();
                    break;
                case 2:
                    outHasilOktal();
                    break;
                case 3:
                    outTerbilang();
                    break;
                case 4:
                    hasilPecahan();
                    break;
                case 5:
                    kembaliMenu();
                    break;
                case 6:
                case -1:
                    System.exit(0);
                default:
                    JOptionPane.showMessageDialog(null, "response salah"
                                                    + response); break;
            }
        }
    }
    public static void main(String[] args){
        menuJOption();
    }
}
Hasilnya …….