Hello guys . . . :D kali ini saya akan berbagi ilmu tentang cara membuat "Konverter Bilangan Dengan Menu Pilihan Menggunakan JOptionPane".Tau gak apa itu JOptionPane,Kalo gak tau sini ,simak pengertiannya dahulu.. :
Class JOptionPane merupakan class yang sangat penting dan sering digunakan. JOptionPane digunakan untuk menginput dan output data dengan tampilan GUI atau grafis, sehingga pemakai lebih mudah menggunakan program. Class JOptionPane adalah sebuah package dari
javax.swing .
Inilah beberapa method dalam class JOptionPane yang sangat sering digunakan:
1. showInputDialog()
2. showMessageDialog()
3. showConfirmDialog()
Untuk lebih jelasnya langsung coba ajja belajar "Membuat "Konverter Bilangan Dengan Menu Pilihan Menggunakan JOptionPane" . Cekidot.. :D
Jangan lupa pertama-tama : Buka NetBean --> Buat New Project beri nama Menu_Dari_JOptionPane
1. Ketikan coding berikut dibawah tulisan package
2.Kemudian ketikkan coding berikut di bawah coding diatas untuk mendeklarasikan variabel..
3.Lalu tuliskan coding berikut ini dibawah coding diatas untuk menkonversikan bilangan..
public static void keBiner(int n){
if(n>1){
keBiner(n/2);
}
BinerHasil.append(n%2);
System.out.print(n%2);
}
public static void Hexa(int n){
char[] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
if(n>0){
Hexa(n/16);
HexaHasil.append(n%16);
System.out.print(daftarHexa[n%16]);
}
}
public static void Oktal(int n){
char[] daftarOktal={'0','1','2','3','4','5','6','7'};
if(n>0){
Oktal(n/8);
OktalHasil.append(n%8);
System.out.print(daftarOktal[n%8]);
}
}
4.Ketikan coding berikut ini setelah coding diatas untuk Menginputkan Bilangan Desimal
5.Ketikan coding berikut untuk untuk menampilkan konversi
di showMessageDialog JOptionPane
public static void eksepsiInpBiner(){
inputDesJOption();
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null,
"Jangan dikosongi!");
eksepsiInpBiner();}
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+
", Binernya adalah = ");
keBiner(validDes);
System.out.println();
///Untuk Menampilkan konversi di showMessageDialog JOptionPane
validDes = Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Bilangan Desimal : " + des + " Hexanya adalah :"
+ BinerHasil, "HasilKonversi", JOptionPane.PLAIN_MESSAGE);
BinerHasil = new StringBuilder();
//Untuk mensetting supaya cuma bisa dimasuki angka saja
}catch(NumberFormatException rrr){
JOptionPane.showMessageDialog(null, des
+" bukan angka!! "
+"\nMasukkan Angka !!!!!");
eksepsiInpBiner();
//Untuk mensetting supaya mengisi /tidak dikosongi
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Isi terlebih dahulu!");
eksepsiInpBiner();
}
}
public static void eksepsiInpHexa(){
inputDesJOption();
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null,
"Jangan dikosongi !!!!!");
eksepsiInpHexa();//kembali input bilangan
}
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+
", Hexanya adalah = ");
Hexa(validDes);
System.out.println();
///Untuk Menampilkan konversi di showMessageDialog JOptionPane
validDes = Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Bilangan Desimal : " + des + " Hexanya adalah :"
+ HexaHasil, "HasilKonversi", JOptionPane.PLAIN_MESSAGE);
HexaHasil = new StringBuilder();
//Untuk mensetting supaya cuma bisa dimasuki angka saja
}catch(NumberFormatException rrr){
JOptionPane.showMessageDialog(null, des
+" bukan angka!! "
+ "\nMasukkan angka saja!!");
eksepsiInpHexa();
//Untuk mensetting supaya mengisi /tidak dikosongi
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Isi terlebih dahulu!");
eksepsiInpHexa();
}
}
public static void eksepsiInpOktal(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+
", Oktalnya adalah = ");
Oktal(validDes);
System.out.println();
///Untuk Menampilkan konversi di showMessageDialog JOptionPane
validDes = Integer.parseInt(des);
JOptionPane.showMessageDialog(null, "Bilangan Desimal : " + des + " Oktalnya adalah :"
+ OktalHasil, "HasilKonversi", JOptionPane.PLAIN_MESSAGE);
OktalHasil = new StringBuilder();
//Untuk mensetting supaya cuma bisa dimasuki angka saja
}catch(NumberFormatException rrr){
JOptionPane.showMessageDialog(null, des
+" bukan angka!! "
+ "\nMasukkan angka saja!!");
eksepsiInpOktal();
//Untuk mensetting supaya mengisi /tidak dikosongi
}catch(NullPointerException fgh){
JOptionPane.showMessageDialog(null, "Isi terlebih dahulu!");
eksepsiInpOktal();
}
}
6.Kemudian ketikkan coding berikut untuk Menampilkan output hasil bilangan
7.setelah itu ketikan coding berikut untuk menampilkan input nama
8.Lalu ketikan coding berikut untuk menampilkan Jenis Kelamin
9.Kemudian ketikan coding berikut untuk menampilkan menu "Kembali"
10.Setelah itu ketikan coding berikut untuk menuJOption (yang dipakai untuk tombol)
public static void menuJOption(){
//... Text untuk tombol.
inpNama();
JenisKelamin();
String[] pilihan = {"BINER", "HEXA", "OKTAL","Kembali","Pecahan","Terbilang",
"<< KELUAR >>"};
//... "Infinite" loop, selesai jika System.exit(0)
while (true) {
int response = JOptionPane.showOptionDialog (
null //Tengah window.
, "Selamat Datang "+JenisKelamin+" "+nama+" :) "
+ "\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:
outHasilOktal();
;
break;
case 3:
Kembali();
break;
case 4:
Pecahan();
break;
case 5:
outTerbilang();
break;
case 6:
case -1:
//... antara tombol (3) dan clos box (-1) ditangani disini.
System.exit(0); //keluar looping
default:
//... Jika kita disini ada kesalahan,
JOptionPane.showMessageDialog(null,
"response salah "+ response);break;
}
}
}
11.Kemudian ketikan coding berikut untuk menampilkan menu "Terbilang"
//Coding Untuk 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 dibilang : ");
try {
if (sc.isEmpty()) {
JOptionPane.showMessageDialog(null, "Jangan dikosongi !!!");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new Menu_Dari_JOptionPane().terbilang(new Long(sc)), "Terbilang", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException abc) {
JOptionPane.showMessageDialog(null, "Harap diisi dulu !!");
outTerbilang();
} catch (NumberFormatException def) {
JOptionPane.showMessageDialog(null, sc
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outTerbilang();
}
}
12.Lalu ketikan coding berikut untuk menampilkan menu "Pecahan"
//Coding Untuk Pecahan
public static void Pecahan (){
int desimal;
String str=JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
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);
}
13.Yang terkhir jangan lupa ketikan coding berikut ini..
kalau udah langsung ajja Run : Shift + F6
Dan ini Hasilnya . . :
1.Inputkan nama.. ,disini saya contoh namanya pake' "Lintang Aziz"
Yang ini terjadi sa'at tidak ada inputan nama (Inputan nama kosong)
Kalau yang ini terjadi sa'at mencoba keluar/menekan tombol cancel tapi belum menginputkan nama
2.Kemudian Inputkan jenis kelamin
Masukkan jenis kelamin..
Disini saya memberi option jenis kelamin hanya Laki-Laki/Perempuan ,tidak untuk lainnya..
Jika menginputkan jenis kelamin selain Laki-Laki/Perempuan maka akan terjadi ini..
Yang ini terjadi sa'at gender dikosongi..
Kalau yang ini terjadi saat mencoba cancel sebelum mengisi jenis kelamin..
Setelah memilih jenis kelamin akan masuk ke menu pilihan..
Disitu tertuliskan "Selamat Datang Eneng Lintang Aziz" ,Disitu tertulis eneng karena pada sa'at memilih gender tadi saya ambil contoh memilih "Perempuan"
Jika pada sa'at memilih gender memilih "Laki-Laki" akan muncul "Selamat Datang abang"
3.Pilih salah satu menu konversi
Disini saya ambil contoh konversi Desimal ke biner..
Bilangan desimal yang akan dikonversikan saya ambil contoh:2345
Hasil dari konversinya (Tampilan di MessageDialog) :
Hasil dari konversinya (Tampilan di form) :
Jika keluar tanpa menginputkan bilangan terlebih dahulu ,akan keluar ini.. :
Jika input Bilangan dikosongi akanmuncul ini :
4.Pilih menu pecahan ,kemudian inputkan bilangan yang akan dipecah
Disini bilangan yang akan dipecah saya ambil contoh :23456
Hasinya :
5.Untuk menu terbilang..
pilih menu terbilang ,lalu masukkan angka
Disini saya ambil contoh 7896
Hasilnya :
6.Dan yang terakhir untuk menu "Kembali"
pilih menu "Kembali"
Sa'at dipencet kembali ,disini saya buat kembalinya kembali ke input nama
Terima kasih . . ,Semoga Bermanfa'at.. :)
Selamat Mencoba.. :)
Tidak ada komentar:
Posting Komentar