Hay kawan , ayok bermain lagi dengan NetBeans
. Ayok klik kanan di praktek1 , lalu
klik java class dan beri nama menudariJOption :))
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package praktek1;
import javax.swing.JOptionPane;
/**
*
* @author paradise
*/
public class JOptionmenu {
private static String name;
private static String des;
private static String gender;
private static int validDes;
static StringBuilder binerHasil= new StringBuilder();
static StringBuilder hexaHasil= new StringBuilder();
static StringBuilder oktalHasil= new StringBuilder();
static String sc;
public static void keBiner(int n){
if(n>1){
keBiner(n/2);
}
binerHasil.append(n%2);
}
public static 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'};
if(n>0){
keHexa(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);
oktalHasil.append(daftarOktal[n%8]);
}
}
public static void inputDesJOption(){
des=JOptionPane.showInputDialog("Masukkan Bilangan Desimal : ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Anda harus mengisi bilangan desimalnya");
inputDesJOption();
}
}
catch(NullPointerException npa){
JOptionPane.showMessageDialog(null, "Wajib diisi !");
inputDesJOption();
}
}
public static void outHasilBiner(){
inputDesJOption();
try{//untuk melakukan penanganan kesalahan
validDes=Integer.parseInt(des);
keBiner(validDes);
JOptionPane.showMessageDialog(null, "\nDesimal dari "+des+ ", Binernya adalah = "+binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilBiner();
}
}
public static void outHasilHexa(){
inputDesJOption();
try{//untuk melakukan penanganan kesalahan
validDes=Integer.parseInt(des);
keHexa(validDes);
JOptionPane.showMessageDialog(null, "\nDesimal dari "+des+ ", Hexanya adalah = "+hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilHexa();
}
}
public static void outHasilOktal(){
inputDesJOption();
try{//untuk melakukan penanganan kesalahan
validDes=Integer.parseInt(des);
keOktal(validDes);
JOptionPane.showMessageDialog(null, "\nDesimal dari "+des+ ", Oktanya adalah = "+oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilOktal();
}
}
//
//menampilkan input dialog nama
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan Nama Anda : ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong !");
inpNama();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Wajib diisi nama anda !");
inpNama();
}
}
//menampilkan input dialog jenis Kelamin (gender)
public static void jenisKelamin(){
// menampilkan pilihan gender
Object[] options = { "Girl", "Boy" };
int choice = JOptionPane.showOptionDialog(null,
"Jenis kelamin anda ?",
"Jenis Kelamin?",
JOptionPane.YES_NO_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
options,
options[0]);
try{
if (choice == JOptionPane.YES_OPTION)
{
gender="mbak, ";
menuJOption1();
}
else if(choice == JOptionPane.NO_OPTION)
{
gender="mas, ";
menuJOption1();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi dulu !");
inpNama();
}
}
//terbilang
//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 : ");
JOptionPane.showMessageDialog(null, new JOptionmenu().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
//pecahan
public static void hasilPecahan(){
int desimal;
String str=JOptionPane.showInputDialog("Masukkan Bilangan : ");
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);
}
//kembali ke inputan nama dan gender
public static void kembaliMenu(){
inpNama();
jenisKelamin();
}
public static void menuJOption(){
inpNama();
jenisKelamin();
String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI", "KELUAR"};
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Selamat Datang "+gender+name+" :)"
+ "\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:
outHasilBiner();
break;
case 1:
outHasilHexa();
break;
case 2:
outHasilOktal();
break;
case 3:
outTerbilang();
break;
case 4:
hasilPecahan();
break;
case 5:
kembaliMenu();
break;
case 6:
case -1:
System.exit(0);
default:
JOptionPane.showMessageDialog(null, "response salah"
+ response); break;
}
}
}
public static void menuJOption1(){
String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI", "KELUAR"};
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Selamat Datang "+gender+name+" !!"
+ "\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:
outHasilBiner();
break;
case 1:
outHasilHexa();
break;
case 2:
outHasilOktal();
break;
case 3:
outTerbilang();
break;
case 4:
hasilPecahan();
break;
case 5:
kembaliMenu();
break;
case 6:
case -1:
System.exit(0);
default:
JOptionPane.showMessageDialog(null, "response salah"
+ response); break;
}
}
}
public static void main(String[] args){
menuJOption();
}
}
DAN INI HASILNYA :)
1.
HASIL
AWAL , MASUKKAN NAMA ANDA
2.
APABILA
KAMU TIDAK MENGISI NAMA , ATAU ANDA MENGKLIK CANCEL MAKA OUTPUTNYA SEPERTI BERIKUT
3.
SETELAH
MEMASUKKAN NAMA ANDA , MAKA KLIKLAH “OK” , DAN AKAN MENUJU HALAMAN SELANJUTNYA
YAITU HALAMAN JENIS KELAMIN
4.
APABILA
CEWEK , MAKA OUTPUTNYA
5.
APABILA
COWOK , MAKA OUTPUTNYA
6.
PILIH
KONVERSI YANG ANDA INGINKAN , MAKA AKAN KELUAR HASIL SEBAGAI BERIKUT . ISI
KOTAK TERSEBUT SESUAI ANGKA YANG ANDA INGINKAN .
7.
APABILA
ANDA MENGKLIK CANCEL ATAU SILANG , MAKA OUTPUTNYA
8. APABILA YANG ANDA MASUKKAN BUKAN ANGKA
9.
APABILA
ANDA MEMILIH KONVERSI BINER DAN ANGKA DESIMALNYA ADALAH 100
10.
APABILA
ANDA MEMILIH KONVERSI HEXA DAN ANGKA DESIMALNYA ADALAH 100
11. APABILA ANDA MEMILIH KONVERSI
OKTAL DAN ANGKA DESIMALNYA ADALAH 100
12. APABILA ANDA MENGKLIK "TERBILANG" , MASUKKAN ANGKA YANG ANDA INGINKAN , LALU KLIK OK UNTUK KE TAHAP SELANJUTNYA
13. HASILNYA DARI TERBILANG " 98367 "
14. HASIL DARI ANDA MENGKLIK "PECAHAN" DENGAN NOMINAL "98367"
15. BUTTON “ KEMBALI“ DIGUNAKAN UNTUK
KEMBALI KE MENU AWAL
16. BUTTON “ KELUAR “ DIGUNAKAN UNTUK
KELUAR DARI PROGRAM
Terimakasih dan Selamat Mencoba :)
0 komentar:
Posting Komentar