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