Berikut caranya:
- Buka Netbeans , lalu klik kanan New Java Class
- Tuliskan coding berikut:package
Praktek1;
import javax.swing.JOptionPane;
public class MenuDariJOption {
//global variabel
private static String name; //object
private static String des; //object
private static String jk; //object
private static String kelamin; //object
private static int validDes; //variabel
static StringBuilder binerHasil= new StringBuilder();
static StringBuilder hexaHasil= new StringBuilder();
static StringBuilder oktalHasil= new StringBuilder();
static String vk;
//fungsi/method nya
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){
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]);
}
}
//pendeklarasian inputin bilangan desimalnya
public static void inputDesJOption(){
des=JOptionPane.showInputDialog("Masukkan Bilangan Desimal : ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Tolong diisi dengan lengkap ");
inputDesJOption(); //kembali input bilangan desimal
}
}
catch(NullPointerException nfe){
JOptionPane.showMessageDialog(null, "Isi dulu yaaa ");
inputDesJOption(); //kembali input bilangan desimal
}
}
//ini hasil nya di messagedialog
public static void outHasilBiner(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
keBiner(validDes);
JOptionPane.showMessageDialog(null, "Binernya adalah "+binerHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan hanya angka saja !!!");
outHasilBiner();
}
}
public static void outHasilHexa(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
keHexa(validDes);
JOptionPane.showMessageDialog(null, des+" Hexanya adalah: "+hexaHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan hanya angka saja !!!");
outHasilHexa();
}
}
public static void outHasilOktal(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
keOktal(validDes);
JOptionPane.showMessageDialog(null, des+" Oktalnya adalah: "+oktalHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan hanya angka saja !!!");
outHasilOktal();
}
}
//pendeklarasian inputin nama
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan Nama Anda ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Isi nama anda");
inpNama(); //kembali input nama
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Tolong masukkan nama anda");
inpNama(); //kembali input nama
}
}
//pendeklarasian jenis kelamin nya
public static void jenisKelamin(){
jk=JOptionPane.showInputDialog("Masukkan jenis kelamin anda(Perempuan / Laki-laki )");
try{
if(jk.isEmpty()){
JOptionPane.showMessageDialog(null, "Isi dulu jenis kelamin anda(Perempuan / Laki-laki)");
jenisKelamin();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Tolong isi jenis kelamin anda (Perempuan / Laki-laki)");
jenisKelamin();
}
if ("Laki-laki".equals(jk)) {
kelamin="Bro";
}
else{
if("Perempuan".equals(jk)){
kelamin="Sis, ";
}
else{
JOptionPane.showMessageDialog(null, "Pilihan jenis kelamin hanya 'Perempuan dan Laki-laki");
jenisKelamin();
}
}
}
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;
}
//scriptnya TERBILANG kayak gini
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 nya";
for(int a=6;a>0;a--){
y = (int) (x/Math.pow(10, a*3));
if(y > 0){
if(y==1 && a==1) bilang += " Seribu "; else bilang += sebut(y) + satuan[a];
} x %= Math.pow(10, a*3);
}
bilang+=sebut((int)x);
return bilang;
}
public static void outTerbilang(){
vk = JOptionPane.showInputDialog("Masukan Bilangan yang akan dibilang: ");
JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(vk)), "TERBILANG nya", JOptionPane.INFORMATION_MESSAGE);
}
//script PECAHAN kayak gini
public static void hasilPecahan(){
int desimal;
String str=JOptionPane.showInputDialog("Masukkan bilangan yang akan kamu pecahkan: ");
desimal=Integer.parseInt(str);
int satu,dua,tiga,empat,lima,enam,tujuh,delapan,sembilan,sepuluh;
satu=desimal/100000;
desimal%=100000;
dua=desimal/50000;
desimal%=50000;
tiga=desimal/10000;
desimal%=10000;
empat=desimal/5000;
desimal%=5000;
lima=desimal/1000;
desimal%=1000;
enam=desimal/500;
desimal%=500;
tujuh=desimal/100;
desimal%=100;
delapan=desimal/50;
desimal%=50;
sembilan=desimal/10;
desimal%=10;
sepuluh=desimal/1;
desimal%=1;
JOptionPane.showMessageDialog(null,"Jumlah seratus ribuan = "+satu
+"\nJumlah lima puluh ribuan = "+dua
+"\nJumlah sepuluh ribuan = "+tiga
+"\nJumlah lima ribuan = "+empat
+"\nJumlah seribuan = "+lima
+"\nJumlah lima ratusan = "+enam
+"\nJumlah seratusan = "+tujuh
+"\nJumlah lima puluhan = "+delapan
+"\nJumlah limaan = "+sembilan
+"\nJumlah satuan = "+sepuluh
, "PECAHAN nya", JOptionPane.INFORMATION_MESSAGE);
}
//
public static void kembalikeMenu(){
inpNama();
jenisKelamin();
}
//menu semuanya ada di bagian ini
public static void menuJOption(){
// . . .teks untuk tombol
inpNama();
jenisKelamin();
String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI", "<<KELUAR>>"};
// "Infinite" loop, selesai jika sistem exit(0)
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Welcome "+kelamin+name+" !!"
+ "\nPilih Konversi Bilangan dibawah ini?"// Pesan
, "Konversi Bilangan" // //judul bar
, JOptionPane.YES_NO_OPTION // Tipe Option/pilihan
, JOptionPane.PLAIN_MESSAGE // Tipe Pesan
, null // icon(none)
, pilihan // tombol teks
, null // label tombol Default
);
//menggunakan switch untuk mengecek tombol yang di tekan.
switch(response){
case 0:
outHasilBiner();
break;
case 1:
outHasilHexa();
break;
case 2:
outHasilOktal();
break;
case 3:
outTerbilang();
break;
case 4:
hasilPecahan();
break;
case 5:
kembalikeMenu();
break;
case 6:
case -1:
// ...antara tombol(3) dan close box(-1) di tangani disini.
System.exit(0); // keluar looping tapi
default:
//...Jika kita disini ada kesalahan,
JOptionPane.showMessageDialog(null, "response tak terduga"
+ response); break;
}
}
}
public static void main(String[] args){
menuJOption();
}
}
Setelah selesai maka hasilnya seperti berikut:
Isikan Nama
Bila tidak diisi nama dan kita klik ok
jika kita klik cancel dan exit
Bila sudah diisi nama dan kita klik ok maka akan muncul dibawah ini
Bila kosong dan di klik ok
Bila Kita klik cancel dan exit
Bila sudah diisi jenis kelamin maka hasilnya ini
Jika kita pilih biner
Jika kosong kita klik ok
Bila kita klik cancel dan exit
dan hasilnya bila diisi
Bila kita pilih lagi ke hexa maka hasilnya seperti ini dan bila kosong kita klik maka hasilnya sama dengan seperti biner begitu juga jika kita klik cancel dan exit
Bila kita pilih lagi ke oktal maka hasilnya seperti ini dan bila kosong kita klik maka hasilnya sama dengan seperti biner begitu juga jika kita klik cancel dan exit
Jika kita kembali dan memilih terbilang kita klik ok waktu masih kosong maka hasilnya
Jika kita isi maka hasilnya seperti di bawah ini
kita pilih lagi pecahan
maka hasilnya
Jika kita klik kembali maka kita akan kembali ke message dialog mengisi nama
dan jika keluar maka akan selesai
selamat mencoba :)
Tidak ada komentar:
Posting Komentar