Baiklah para teman Blogger, kali ini kita akan membuat menu Sign In, Sign Out, dan Sign Up menggunakan JAVA.
mari ikuti tutorial yang telah saya buat berikut ini.
1.
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.