INI GAMBARNYA :
Berikut langkah-langkahnya :
1. Buat NetBeans , New Java Class , beri nama menuDariJOPtion.java
2. kemudian ketikkan code berikut , letakkan dibawah packages :
package Praktek1;
import javax.swing.JOptionPane;
3.Kemudian deklarasikan variable yang akan digunakan di bawah class :
public class MenuDariJOption {
private static String name;
private static String des;
private static String gender;
private static String kelamin;
private static int validDes;
static StringBuilder binerHasil = new StringBuilder();
static StringBuilder hexaHasil = new StringBuilder();
static StringBuilder oktalHasil = new StringBuilder();
static String sc;
4. Kemudian ketikkan coding berikut untuk menampilkan proses konversi bilangan ke biner , hexa , dan oktal :
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]);
}
}
5. kemudian tuliskan coding berikut untuk menginputkan bilangan decimal :
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 dulu donk!!");
inputDesJOption();//kembali input angka
}
}
6. dan tuliskan coding berikut untuk menampilkan hasil konversi bilangan :
public static void eksepsiInpBiner(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Binernya adalah = ");
keBiner(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" dikonversikan dalam Biner hasilnya : "+binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE );
binerHasil = new StringBuilder();
}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");
JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" dikonversikan dalam Biner hasilnya : "+hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE );
hexaHasil = new StringBuilder();
}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");
JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" dikonversikan dalam Biner hasilnya : "+oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE );
oktalHasil = new StringBuilder();
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka!! "+ "\nMasukkan angka saja!!");
eksepsiInpOktal();
}
}
public static void outHasilBiner(){
eksepsiInpBiner();
}
public static void outHasilHexa(){
eksepsiInpHexa();
}
public static void outHarilOktal(){
eksepsiInpOktal();
}
7.kemudian untuk menampilkan input dialog nama dan gender :
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 donk!!");
inpNama();//kembali input nama
}
}
//menampilkan input dialog jenis Kelamin (gender)
public static void jenisKelamin(){
gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (laki-laki/perempuan) : ");
try{
if(gender.isEmpty()){
JOptionPane.showMessageDialog(null, "Harus diisi lho yaa .... Jenis Kelamin ???");
jenisKelamin();
}
}
catch(NullPointerException npt){
JOptionPane.showMessageDialog(null, "Apa jenis kelamin kamu ???");
jenisKelamin();
}
if ("laki-laki".equals(gender)) {
kelamin="Saudara, ";
}
else{
if("perempuan".equals(gender)){
kelamin="Saudari, ";
}
else{
JOptionPane.showMessageDialog(null, "Hanya bisa diisi laki-laki dan perempuan saja !!");
jenisKelamin();
}
}
}
8.dan ini untuk menampilkan Terbilang dan Pecahan :
//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);
 $3B return bilang;
}
public static void outTerbilang() {
sc = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
try {
if (sc.isEmpty()) {
JOptionPane.showMessageDialog(null, "Waa.. mana bilangannya ?? Isi dulu yaa.. !!");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Jangan keluar dulu, harus diisi dulu.. !!");
outTerbilang();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + sc + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outTerbilang();
}
}
public static void hasilPecahan() {
int desimal;
String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
try {
if (str.isEmpty()) {
JOptionPane.showMessageDialog(null, "Kok kosong ?? Isi dulu ya.. !!");
hasilPecahan();
} else {
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;
&nbrp; 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);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Eitss mau kemana ?? Isi dulu bilangannya.. !!");
hasilPecahan();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + str + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
hasilPecahan();
}
}
9.dan ini untuk proses kembali ke awal menginputkan nama :
public static void kembaliMenu(){
inpNama();
jenisKelamin();
}
10.dan ini untuk proses end atau exit :
public static void thanks(){
JOptionPane.showMessageDialog(
$26nbsp; null
, "Terima Kasih "+kelamin+name+" !"
+ " sudah mau mampir di program konversi bilangan saya :)"
, "Thank you"
, JOptionPane.PLAIN_MESSAGE
, null
);
}
10.dan ini untuk proses end atau exit :
public static void thanks(){
JOptionPane.showMessageDialog(
$26nbsp; null
, "Terima Kasih "+kelamin+name+" !"
+ " sudah mau mampir di program konversi bilangan saya :)"
, "Thank you"
, JOptionPane.PLAIN_MESSAGE
, null
);
}
11. coding untuk menampilkan pilihan menu :
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:
thanks();
default:
System.exit(0);
thanks();
default:
System.exit(0);
}
}
}
12. ini untuk menampilkan hasil dari coding keseluruhan :
public static void main (String[] args){
menuJOption();
}
}
0 komentar:
Posting Komentar