halo semua , sebenarnya konversi ini sama aja kayak postingan sebelumnya , tapi berbeda karena menggunakan JOptionPane :)
#Buka netbeans , buatlah package dengan nama Praktek1 dan buat java class dengan nama MenudariJOption.java
1. lalu ketik coding dibawah ini
import javax.swing.JOptionPane;
2. kemudian ketik coding dibawah class java untuk pendeklarasian var
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;
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;
3. ketikkan koding dibawah ini untuk prose konversi
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','8'};
if(n>0){
keHexa(n/8);
System.out.print(daftarOktal[n%8]);
oktalHasil.append(daftarOktal[n%8]);
}
}
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','8'};
if(n>0){
keHexa(n/8);
System.out.print(daftarOktal[n%8]);
oktalHasil.append(daftarOktal[n%8]);
}
}
4. lalu ini untuk penginputan desimal
public static void inputDesJOption(){
des=JOptionPane.showInputDialog("Masukkan " + "Bil.Desimalnya = ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Inputan angka tidak boleh kosong!");
inputDesJOption(); //kembali input angka
}
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi angka terlebih dahulu!!");
inputDesJOption();// kembali input angka
}
}
des=JOptionPane.showInputDialog("Masukkan " + "Bil.Desimalnya = ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Inputan angka tidak boleh kosong!");
inputDesJOption(); //kembali input angka
}
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi angka terlebih dahulu!!");
inputDesJOption();// kembali input angka
}
}
5. lalu koding dibawah ini untuk pengekspresian
public static void eksepsiInpBiner(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Binernya adalah = ");
keBiner(validDes);
System.out.println("\n");
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka! "+ "\nMasukkan angka saja !");
eksepsiInpBiner();
}
}
public static void eksepsiInpHexa(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Hexanya adalah = ");
keHexa(validDes);
System.out.println("\n");
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka ! "+ "\nMasukkan angka saja !");
eksepsiInpHexa();
}
}
public static void eksepsiInpOktal(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Oktalnya adalah = ");
keOktal(validDes);
System.out.println("\n");
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka!! "+ "\nMasukkan angka saja!!");
eksepsiInpOktal();
}
}
6. naah dan ini untuk output proses konversi
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Binernya adalah = ");
keBiner(validDes);
System.out.println("\n");
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka! "+ "\nMasukkan angka saja !");
eksepsiInpBiner();
}
}
public static void eksepsiInpHexa(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Hexanya adalah = ");
keHexa(validDes);
System.out.println("\n");
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka ! "+ "\nMasukkan angka saja !");
eksepsiInpHexa();
}
}
public static void eksepsiInpOktal(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Oktalnya adalah = ");
keOktal(validDes);
System.out.println("\n");
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka!! "+ "\nMasukkan angka saja!!");
eksepsiInpOktal();
}
}
6. naah dan ini untuk output proses konversi
public static void outHasilBiner(){
eksepsiInpBiner();
}
public static void outHasilHexa(){
eksepsiInpHexa();
}
public static void outHasilOktal(){
eksepsiInpOktal();
}
eksepsiInpBiner();
}
public static void outHasilHexa(){
eksepsiInpHexa();
}
public static void outHasilOktal(){
eksepsiInpOktal();
}
7. penginputan nama
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan Nama Anda :");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong !");
inpNama();//kembali input nama
}
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi Nama dulu dong !");
inpNama();//kembali input nama
}
}
name=JOptionPane.showInputDialog("Masukkan Nama Anda :");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong !");
inpNama();//kembali input nama
}
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi Nama dulu dong !");
inpNama();//kembali input nama
}
}
8.untuk menampilkan jenis kelamin
//menampilkan input dialog jenis Kelamin
public static void jenisKelamin()
{
// menampilkan pilihan gender
Object[] options = { "cewek", "cowok" };
int choice = JOptionPane.showOptionDialog(null,
"Apa jenis kelamin kamu?",
"Jenis Kelamin?",
JOptionPane.YES_NO_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
options,
options[0]);
try{
if (choice == JOptionPane.YES_OPTION)
{
gender="saudari, ";
menuJOption1();
}
else if(choice == JOptionPane.NO_OPTION)
{
gender="saudara, ";
menuJOption1();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi terlebih dahulu !!");
inpNama();
}
}
public static void jenisKelamin()
{
// menampilkan pilihan gender
Object[] options = { "cewek", "cowok" };
int choice = JOptionPane.showOptionDialog(null,
"Apa jenis kelamin kamu?",
"Jenis Kelamin?",
JOptionPane.YES_NO_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
options,
options[0]);
try{
if (choice == JOptionPane.YES_OPTION)
{
gender="saudari, ";
menuJOption1();
}
else if(choice == JOptionPane.NO_OPTION)
{
gender="saudara, ";
menuJOption1();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi terlebih dahulu !!");
inpNama();
}
}
9. untuk penghitungan bilangan terbilang
//Bilangan 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 disebut : ");
JOptionPane.showMessageDialog(null, new menuJOptionPane().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
public static void hasilPecahan(){
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);
}
10. untuk reset
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 disebut : ");
JOptionPane.showMessageDialog(null, new menuJOptionPane().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
public static void hasilPecahan(){
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);
}
10. untuk reset
public static void kembaliMenu(){
inpNama();
jenisKelamin();
}11. ini untuk menu dari konversi bilangan
inpNama();
jenisKelamin();
}11. ini untuk menu dari konversi bilangan
public static void menuJOption(){
inpNama();
jenisKelamin();
String[] pilihan = {"biner", "hexa", "oktal", "terbilang", "pecahan", "kembali", "keluar"};
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Selamat Datang "+kelamin+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;
}
}
}
12. pemanggilan data menuJOption untuk jenis kelamin
inpNama();
jenisKelamin();
String[] pilihan = {"biner", "hexa", "oktal", "terbilang", "pecahan", "kembali", "keluar"};
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Selamat Datang "+kelamin+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;
}
}
}
12. pemanggilan data menuJOption untuk jenis kelamin
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;
}
}
}
13. untuk pemanggilan seluruh method
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;
}
}
}
13. untuk pemanggilan seluruh method
public static void main (String[] args){
menuJOption();
}
}
menuJOption();
}
}
lalu shift+F6 untuk runningnyaa
nah ini hasilnya :)
1. input awal adalah nama
2. jika nama belum diisi atau di cancel maka yang tampil adalah
3. nah silahkan inputkan nama anda
4. setelah itu pilih gender melalui button seperti dibawah ini
5. yak seluruh menu akan muncul dan terlihat seperti dibawah ini
6. karena pada konversi ini bilangan desimal dikonvert menjadi iner/hexa/octal dan lain lainnya maka input awalnya adalah bilangan desimal
7. dan inputkan sesuka hatii ~
8. ini hasilnya dari konversi bilangan tersebut adalaah
kalo ini hasilnya bukan di message dialog tapi di console nyaa
3. nah silahkan inputkan nama anda
4. setelah itu pilih gender melalui button seperti dibawah ini
5. yak seluruh menu akan muncul dan terlihat seperti dibawah ini
6. karena pada konversi ini bilangan desimal dikonvert menjadi iner/hexa/octal dan lain lainnya maka input awalnya adalah bilangan desimal
7. dan inputkan sesuka hatii ~
8. ini hasilnya dari konversi bilangan tersebut adalaah
kalo ini hasilnya bukan di message dialog tapi di console nyaa
9. nah ini jika pecahan ~
10. dan ini hasil pecahan dari 12 itu sendiri
11. dan ini yang terbilang~
jika kita langsung enter atau memencet button tanpa menginputkan apa apa maka yang terjadi adalah
dan ini saat langsung di exit
jika kita menginputkan huruf maka yang terjadi adalah
nah sekian dari saya , kurang lebihnya mohon maaf , sampai jumpaa :)))))))))
10. dan ini hasil pecahan dari 12 itu sendiri
11. dan ini yang terbilang~
jika kita langsung enter atau memencet button tanpa menginputkan apa apa maka yang terjadi adalah
dan ini saat langsung di exit
jika kita menginputkan huruf maka yang terjadi adalah
nah sekian dari saya , kurang lebihnya mohon maaf , sampai jumpaa :)))))))))
No comments:
Post a Comment