Dibawah ini adalah sebuah project Java yang menggunakan "JOption"
Tampilan pertama adalah tampilan penginputan nama kalau di isi dengan benar, maka kita akan menuju ke penginputan jenis kelamin dan jika salah kita akan diberi peringatan untuk mengisinya.
Tampilan yang di isi dengan benar :
Tampilan yang diisi tidak sesuai yang diinginkan :
Setelah mengisi nama selesai, kita akan menuju ke penginputan jenis kelamin :
Jika kita tidak menginputkan jenis kelamin atau menekan tombol "cancel" maka akan muncul peringatan seperti dibawah ini :
Setelah kita sukses di penginputan jenis kelamin kita akan memasuki menu seperti di bawah ini :
Menu Pertama Biner:
Setelah kita menekan menu biner maka muncul seperti dibawah ini :
Menu Kedua Hexa:
Setelah kita menekan menu hexa maka muncul seperti dibawah ini :
Menu Ketiga Octal:
Setelah kita menekan menu octal maka muncul seperti dibawah ini :
Menu Keempat Terbilang:
Setelah kita menekan menu terbilang maka muncul seperti dibawah ini :
Menu Kelima Pecahan:
Setelah kita menekan menu pecahan maka muncul seperti dibawah ini :
Menu Keenam Back:
Menu Keenam ini adalah menu untuk menuju ke penginputan nama
Menu Ketujuh Keluar:
menu ketujuh ini adalah menu untuk menutup program ini
Berikut ini adalah script dari program di atas
import java.awt.HeadlessException;
import java.lang.NumberFormatException;
import javax.swing.JOptionPane;
public class MenudariJoption {
private static String name;
private static String kelamin;
private static String gender;
private static String des;
private static int validDes;
static StringBuilder A= new StringBuilder();
static StringBuilder P= new StringBuilder();
static StringBuilder W= new StringBuilder();
//stringbuilder untuk memunculakan hasil akhir dari hasil konversi supaya bisa di tampilkan di JOption
//deklarasi
public static void keBiner(int n){
if(n>1){
keBiner(n/2);
}
System.out.println(n%2);
A.append(n%2);
//script untuk menghitung nilai desimal ke biner
}
public static void keHexa(int n) {
char[] daftarHexa = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
'9', 'A', 'B', 'C', 'D', 'E', 'F'};
if (n > 1) {
keHexa(n / 16);
}
System.out.print(daftarHexa[n % 16]);
P.append(n%16);
//script untuk menghitung nilai desimal ke hexa
}
public static void keOctal(int n) {
char[] daftarOctal = {'0', '1', '2', '3', '4', '5', '6', '7'};
if (n > 1) {
keOctal(n / 8);
}
System.out.print(daftarOctal[n % 8]);
W.append(n%8);
//script untuk menghitung nilai desimal ke Octal
}
public static void inputDesJOption(){
des = JOptionPane.showInputDialog("Masukkan " + "Bilangan Desimalnya = ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null,
"wajib menginputkan angka !!");
inputDesJOption();//memberi input nama
}
}catch(NullPointerException ade){
JOptionPane.showMessageDialog(null,
"Mohon diinputkan !!");
inputDesJOption();//kembali inputkan nama
}
//script di atas ini sebagai tempat penginputan angka desimal agar bisa konversikan
}
public static void eksepsiInpBiner(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ "adalah: " +A);
keBiner(validDes);
System.out.println();
}catch(NumberFormatException ase){
JOptionPane.showMessageDialog(null, des
+" bukan angka !"
+ "\nMasukkan angka saja !!");
eksepsiInpBiner();
//ini adalah script hasil akhir yang berupa bilangan biner
}
}
public static void eksepsiInpHexa(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ " adalah : " +P);
keHexa(validDes);
System.out.println();
}catch(NumberFormatException ase){
JOptionPane.showMessageDialog(null, des
+" bukan angka !"
+ "\nMasukkan angka saja !!");
eksepsiInpHexa();
//ini adalah script hasil akhir yang berupa bilangan hexa
}
}
public static void eksepsiInpOctal(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal " +des+ "adalah : " +W);
keOctal(validDes);
System.out.println();
}catch(NumberFormatException ase){
JOptionPane.showMessageDialog(null, des
+" bukan angka !"
+ "\nMasukkan angka saja !!");
eksepsiInpOctal();
//ini adalah script hasil akhir yang berupa bilangan Octal
}
}
public static void pecahan(){
int desimal;
String str=JOptionPane.showInputDialog("Masukkan Angka");
desimal=Integer.parseInt(str);
int j100rbu, j10rbu, j1rbu, j1rtus, j10, j1;
j100rbu=desimal/100000;
desimal%=100000;
j10rbu=desimal/10000;
desimal%=10000;
j1rbu=desimal/1000;
desimal%=1000;
j1rtus=desimal/100;
desimal%=100;
j10=desimal/10;
desimal%=10;
j1=desimal/1;
desimal%=1;
JOptionPane.showMessageDialog(null,
'\n'+"Jumlah ratusan ribu = "+j100rbu+
'\n'+"Jumlah puluhan ribu = "+j10rbu+
'\n'+"Jumlah seribu = " +j1rbu+
'\n'+"Jumlah ratusan = "+j1rtus+
'\n'+"Jumlah puluhan = "+j10+
'\n'+"Jumlah satuan = "+j1
);
//ini Script untuk menampilakan menu pecahan
}
public String konversi (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
public String pecahan (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
public static void outHasilBiner(){
eksepsiInpBiner();
}
public static void outHasilHexa(){
eksepsiInpHexa();
}
public static void outHasilOctal(){
eksepsiInpOctal();
}
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan "+ "Nama Anda : ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null,
"Nama Harus Diisi !!");
inpNama();//membeli input nama
}
}catch(NullPointerException ade){
JOptionPane.showMessageDialog(null,
"Mohon diisi Namanya !!");
inpNama();//kembali input nama
}
//sebuah script untuk menampilkan sebuah pengimputan nama
}
public static void jenisKelamin(){
gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (L/P) : ");
try{
if(gender.isEmpty()){
JOptionPane.showMessageDialog(null, "Harus diisi !!");
jenisKelamin();
}
}
catch(NullPointerException ase){
JOptionPane.showMessageDialog(null, "Masukan Jenis Kelamin Anda !! ");
jenisKelamin();
}
if ("L".equals(gender)) {
kelamin="Brow, ";
}
else{
if("P".equals(gender)){
kelamin="Sist, ";
}
else{
JOptionPane.showMessageDialog(null, "Hanya bisa diisi L/P saja !!");
jenisKelamin();
}
//sebuah script untuk menginputkan jenis kelamin
}
}
public static void terbilang() {
try {
MenudariJoption num = new MenudariJoption();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));
if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Angka di luar range!!!","WARNING",JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch( HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
//script untuk menampilkan bilangan
}
}
public static void menuJOption(){
//...Text untuk tombol.
inpNama();
jenisKelamin();
String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN" , "<<BACK>>", "<< KELUAR >>"};
while (true)
{
int response = JOptionPane.showOptionDialog(
null //tengah window.
, "Selamat Datang " +kelamin+name+" !! "
+ "\nPilih Konversi Bilangan dibawah ini ?"// Pesan
, "Konversi Bilangan" // Judul Bar
, JOptionPane.YES_NO_OPTION // tipe pilihan
, JOptionPane.PLAIN_MESSAGE // tipe pesan
, null // icon(none)
, pilihan // tombol text.
, null // label tombol default
);
//menggunakan switch untuk mengecek tombol yang ditekan.
switch(response){
case 0:
outHasilBiner();
break;
case 1:
outHasilHexa();
break;
case 2:
outHasilOctal();
break;
case 3: terbilang();
break;
case 4: pecahan();
break;
case 5:inpNama();
jenisKelamin();
break;
case 6:
case -1:
//antara tombol (3) dan close box(-1) ditangani disini.
System.exit(0); //keluar looping
default:
//...Jika disini kita ada kesalahan,
JOptionPane.showMessageDialog(null, "response salah"
+ response); break;
}
}
//adalah menu tampilan yang berisikan semua script
}
public static void main(String[]args){
menuJOption();
}
}
Tampilan pertama adalah tampilan penginputan nama kalau di isi dengan benar, maka kita akan menuju ke penginputan jenis kelamin dan jika salah kita akan diberi peringatan untuk mengisinya.
Tampilan yang di isi dengan benar :
Tampilan yang diisi tidak sesuai yang diinginkan :
Setelah mengisi nama selesai, kita akan menuju ke penginputan jenis kelamin :
Jika kita tidak menginputkan jenis kelamin atau menekan tombol "cancel" maka akan muncul peringatan seperti dibawah ini :
Setelah kita sukses di penginputan jenis kelamin kita akan memasuki menu seperti di bawah ini :
Menu Pertama Biner:
Setelah kita menekan menu biner maka muncul seperti dibawah ini :
Menu Kedua Hexa:
Setelah kita menekan menu hexa maka muncul seperti dibawah ini :
Menu Ketiga Octal:
Setelah kita menekan menu octal maka muncul seperti dibawah ini :
Menu Keempat Terbilang:
Setelah kita menekan menu terbilang maka muncul seperti dibawah ini :
Menu Kelima Pecahan:
Setelah kita menekan menu pecahan maka muncul seperti dibawah ini :
Menu Keenam Back:
Menu Keenam ini adalah menu untuk menuju ke penginputan nama
Menu Ketujuh Keluar:
menu ketujuh ini adalah menu untuk menutup program ini
Berikut ini adalah script dari program di atas
import java.awt.HeadlessException;
import java.lang.NumberFormatException;
import javax.swing.JOptionPane;
public class MenudariJoption {
private static String name;
private static String kelamin;
private static String gender;
private static String des;
private static int validDes;
static StringBuilder A= new StringBuilder();
static StringBuilder P= new StringBuilder();
static StringBuilder W= new StringBuilder();
//stringbuilder untuk memunculakan hasil akhir dari hasil konversi supaya bisa di tampilkan di JOption
//deklarasi
public static void keBiner(int n){
if(n>1){
keBiner(n/2);
}
System.out.println(n%2);
A.append(n%2);
//script untuk menghitung nilai desimal ke biner
}
public static void keHexa(int n) {
char[] daftarHexa = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
'9', 'A', 'B', 'C', 'D', 'E', 'F'};
if (n > 1) {
keHexa(n / 16);
}
System.out.print(daftarHexa[n % 16]);
P.append(n%16);
//script untuk menghitung nilai desimal ke hexa
}
public static void keOctal(int n) {
char[] daftarOctal = {'0', '1', '2', '3', '4', '5', '6', '7'};
if (n > 1) {
keOctal(n / 8);
}
System.out.print(daftarOctal[n % 8]);
W.append(n%8);
//script untuk menghitung nilai desimal ke Octal
}
public static void inputDesJOption(){
des = JOptionPane.showInputDialog("Masukkan " + "Bilangan Desimalnya = ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null,
"wajib menginputkan angka !!");
inputDesJOption();//memberi input nama
}
}catch(NullPointerException ade){
JOptionPane.showMessageDialog(null,
"Mohon diinputkan !!");
inputDesJOption();//kembali inputkan nama
}
//script di atas ini sebagai tempat penginputan angka desimal agar bisa konversikan
}
public static void eksepsiInpBiner(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ "adalah: " +A);
keBiner(validDes);
System.out.println();
}catch(NumberFormatException ase){
JOptionPane.showMessageDialog(null, des
+" bukan angka !"
+ "\nMasukkan angka saja !!");
eksepsiInpBiner();
//ini adalah script hasil akhir yang berupa bilangan biner
}
}
public static void eksepsiInpHexa(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ " adalah : " +P);
keHexa(validDes);
System.out.println();
}catch(NumberFormatException ase){
JOptionPane.showMessageDialog(null, des
+" bukan angka !"
+ "\nMasukkan angka saja !!");
eksepsiInpHexa();
//ini adalah script hasil akhir yang berupa bilangan hexa
}
}
public static void eksepsiInpOctal(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal " +des+ "adalah : " +W);
keOctal(validDes);
System.out.println();
}catch(NumberFormatException ase){
JOptionPane.showMessageDialog(null, des
+" bukan angka !"
+ "\nMasukkan angka saja !!");
eksepsiInpOctal();
//ini adalah script hasil akhir yang berupa bilangan Octal
}
}
public static void pecahan(){
int desimal;
String str=JOptionPane.showInputDialog("Masukkan Angka");
desimal=Integer.parseInt(str);
int j100rbu, j10rbu, j1rbu, j1rtus, j10, j1;
j100rbu=desimal/100000;
desimal%=100000;
j10rbu=desimal/10000;
desimal%=10000;
j1rbu=desimal/1000;
desimal%=1000;
j1rtus=desimal/100;
desimal%=100;
j10=desimal/10;
desimal%=10;
j1=desimal/1;
desimal%=1;
JOptionPane.showMessageDialog(null,
'\n'+"Jumlah ratusan ribu = "+j100rbu+
'\n'+"Jumlah puluhan ribu = "+j10rbu+
'\n'+"Jumlah seribu = " +j1rbu+
'\n'+"Jumlah ratusan = "+j1rtus+
'\n'+"Jumlah puluhan = "+j10+
'\n'+"Jumlah satuan = "+j1
);
//ini Script untuk menampilakan menu pecahan
}
public String konversi (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
public String pecahan (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
public static void outHasilBiner(){
eksepsiInpBiner();
}
public static void outHasilHexa(){
eksepsiInpHexa();
}
public static void outHasilOctal(){
eksepsiInpOctal();
}
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan "+ "Nama Anda : ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null,
"Nama Harus Diisi !!");
inpNama();//membeli input nama
}
}catch(NullPointerException ade){
JOptionPane.showMessageDialog(null,
"Mohon diisi Namanya !!");
inpNama();//kembali input nama
}
//sebuah script untuk menampilkan sebuah pengimputan nama
}
public static void jenisKelamin(){
gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (L/P) : ");
try{
if(gender.isEmpty()){
JOptionPane.showMessageDialog(null, "Harus diisi !!");
jenisKelamin();
}
}
catch(NullPointerException ase){
JOptionPane.showMessageDialog(null, "Masukan Jenis Kelamin Anda !! ");
jenisKelamin();
}
if ("L".equals(gender)) {
kelamin="Brow, ";
}
else{
if("P".equals(gender)){
kelamin="Sist, ";
}
else{
JOptionPane.showMessageDialog(null, "Hanya bisa diisi L/P saja !!");
jenisKelamin();
}
//sebuah script untuk menginputkan jenis kelamin
}
}
public static void terbilang() {
try {
MenudariJoption num = new MenudariJoption();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));
if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Angka di luar range!!!","WARNING",JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch( HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
//script untuk menampilkan bilangan
}
}
public static void menuJOption(){
//...Text untuk tombol.
inpNama();
jenisKelamin();
String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN" , "<<BACK>>", "<< KELUAR >>"};
while (true)
{
int response = JOptionPane.showOptionDialog(
null //tengah window.
, "Selamat Datang " +kelamin+name+" !! "
+ "\nPilih Konversi Bilangan dibawah ini ?"// Pesan
, "Konversi Bilangan" // Judul Bar
, JOptionPane.YES_NO_OPTION // tipe pilihan
, JOptionPane.PLAIN_MESSAGE // tipe pesan
, null // icon(none)
, pilihan // tombol text.
, null // label tombol default
);
//menggunakan switch untuk mengecek tombol yang ditekan.
switch(response){
case 0:
outHasilBiner();
break;
case 1:
outHasilHexa();
break;
case 2:
outHasilOctal();
break;
case 3: terbilang();
break;
case 4: pecahan();
break;
case 5:inpNama();
jenisKelamin();
break;
case 6:
case -1:
//antara tombol (3) dan close box(-1) ditangani disini.
System.exit(0); //keluar looping
default:
//...Jika disini kita ada kesalahan,
JOptionPane.showMessageDialog(null, "response salah"
+ response); break;
}
}
//adalah menu tampilan yang berisikan semua script
}
public static void main(String[]args){
menuJOption();
}
0 komentar:
Posting Komentar