Assalamualaikum wr.wb
sebelumnya saya akan menampilkan menu Joption dari java yang telah saya sempurnakan terlebih dahulu, langsung saja ke TKP :)
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Praktek1;
/**
*
* @author -
*/
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
public class Menu_DariJOption {
private static String name;
private static String des;
private static int validDes;
private static String gender;
static StringBuilder X= new StringBuilder();
static StringBuilder Y= new StringBuilder();
static StringBuilder Z= new StringBuilder();
public static void pecahan(){
int desimal;
String str=JOptionPane.showInputDialog("Masukkan jumlah uang");
desimal=Integer.parseInt(str);
int j100rbu, j50rbu, j20rbu, j10rbu, j5rbu, j2rbu, j1rbu, j5rtus, j2rtus, j1rtus, j50, j10, j1;
j100rbu=desimal/100000;
desimal%=100000;
j50rbu=desimal/50000;
desimal%=50000;
j20rbu=desimal/20000;
desimal%=20000;
j10rbu=desimal/10000;
desimal%=10000;
j5rbu=desimal/5000;
desimal%=5000;
j2rbu=desimal/2000;
desimal%=2000;
j1rbu=desimal/1000;
desimal%=1000;
j5rtus=desimal/500;
desimal%=500;
j2rtus=desimal/200;
desimal%=200;
j1rtus=desimal/100;
desimal%=100;
j50=desimal/50;
desimal%=50;
j10=desimal/10;
desimal%=10;
j1=desimal/1;
desimal%=1;
JOptionPane.showMessageDialog(null,"Jumlah uang seratus ribu = "+j100rbu+
'\n'+"Jumlah uang lima puluh ribu = "+j50rbu+
'\n'+"Jumlah uang dua puluh ribu = "+j20rbu+
'\n'+"Jumlah uang sepuluh ribu = "+j10rbu+
'\n'+"Jumlah uang lima ribu = "+j5rbu+
'\n'+"Jumlah uang dua ribu = "+j2rbu+
'\n'+"Jumlah uang seribu = "+j1rbu+
'\n'+"Jumlah uang lima ratus = "+j5rtus+
'\n'+"Jumlah uang dua ratus = "+j2rtus+
'\n'+"Jumlah uang seratus = "+j1rtus+
'\n'+"Jumlah uang lima puluh = "+j50+
'\n'+"Jumlah uang sepuluh puluh = "+j10+
'\n'+"Jumlah uang satu puluh = "+j1
);
}
public static void keBiner(int y){
if(y>1){
keBiner(y/2);
}
System.out.print(y%2);
X.append(y%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'};
int sisabagi = n%16;
if(n>0){
keHexa((n-sisabagi) /16);
System.out.print(daftarHexa[n%16]);
Y.append(daftarHexa[n%16]);
}
}
public static void Oktal(int n){
char [] daftarOktal = {'1', '2', '3', '4', '5', '6', '7',};
if(n>0){
Oktal(n/8);
}
System.out.print(daftarOktal[n%8]);
Z.append(daftarOktal[n%8]);
}
public static void inputDesJOption(){
des = JOptionPane.showInputDialog("Masukkan "
+ "Bil.Desimalnya = ");
}
public String konversi (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
/**
* @param args the command line arguments
*/
public static void bacabil() {
try {
praktek1.terbilang num = new praktek1.terbilang();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));
if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Angka di luar range!!!","WARNING",JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null,"Hasil = \n " + konvert + " = " + num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch( HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
}
public static void eksepsiInpBiner(){
inputDesJOption();
try {
if(des.isEmpty()){
JOptionPane.showMessageDialog(null,
" Janagn Dikosong' !!");
eksepsiInpBiner();
}
validDes=Integer.parseInt(des);
System.out.printf("\nDesimal dari "+des+
", Binernya adalah = ");
keBiner(validDes);
System.out.println();
JOptionPane.showMessageDialog(null, "JADI HASIL BINER " + X);
X.delete(0, validDes);
}catch(NumberFormatException err){
JOptionPane.showMessageDialog(null, des
+" bukan angka!! "
+ "\nMasukkan angka saja!!");
eksepsiInpBiner();
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Tolong inputkan angka lebih dulu");
eksepsiInpBiner();
}
}
public static void eksepsiInpHexa(){
inputDesJOption();
try {
if(des.isEmpty()){
JOptionPane.showMessageDialog(null,
" Janagn Dikosong' !!");
eksepsiInpHexa();
}
validDes=Integer.parseInt(des);
System.out.printf("\nDesimal dari "+des+
", Hexanya adalah = ");
keHexa(validDes);
System.out.println();
JOptionPane.showMessageDialog(null, "JADI HASIL HEXA " + Y);
Y.delete(0, validDes);
}catch(NumberFormatException err){
JOptionPane.showMessageDialog(null, des
+" bukan angka!! "
+ "\nMasukkan angka saja!!");
eksepsiInpHexa();
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, " Tolong inputkan angka lebih dulu");
eksepsiInpHexa();
}
}
public static void eksepsiInpOktal(){
inputDesJOption();
try {
if(des.isEmpty()){
JOptionPane.showMessageDialog(null,
" Janagan Dikosong' !!");
eksepsiInpOktal();
}
validDes=Integer.parseInt(des);
System.out.printf("\nDesimal dari "+des+
", Oktalnya adalah = ");
Oktal(validDes);
System.out.println();
JOptionPane.showMessageDialog(null, "JADI HASIL OKTAL " + Z);
Z.delete(0, validDes);
}catch(NumberFormatException err){
JOptionPane.showMessageDialog(null, des
+" bukan angka!! "
+ "\nMasukkan angka saja!!");
eksepsiInpOktal();
}catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Tolong inputkan angka lebih dulu");
eksepsiInpOktal();
}
}
public static void outHasilBiner(){
eksepsiInpBiner();
}
public static void outHasilHexa(){
eksepsiInpHexa();
}
public static void outHasilOktal(){
eksepsiInpOktal();
}
public static void inpNama(){
name=JOptionPane.showInputDialog("masukan "
+ "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
}
}
public static void gender() {
gender = JOptionPane.showInputDialog("Jenis Kelamin Anda ? "
+ "(L / P)");
if ("L".equals(gender)) {
JOptionPane.showMessageDialog(null, "Selamat Datang brow "
+ name
+ "\nSilahkan Memilih Menu Konversi :)");
} else {
if ("P".equals(gender)) {
JOptionPane.showMessageDialog(null, "Selamat Datang Sist "
+ name
+ "\nSilahkan Memilih Menu Konversi :)");
} try{
if(gender.isEmpty()){
JOptionPane.showMessageDialog(null,
"Jenis Kelamin Harus Diisi !!");
gender();//membeli input nama
}
}catch(NullPointerException ade){
JOptionPane.showMessageDialog(null,
"Mohon diisi Form Jenis Kelamin !!");
gender();
}
}
}
public static void menuJOption(){
//...Text untuk tombol.
inpNama();
gender();
String[] pilihan = {"BINER" , "HEXA" , "OKTAL" ,"TERBILANG" ,"PECAHAN","<<KEMBALI>>" ,
"<< KELUAR >>"};
//"Infinite" loop, selesai jika system.exit(0)
while (true){
int respone = JOptionPane.showOptionDialog(
null // Tengah Window.
, "Met datang agan/aganwati "+name+" !!"
+ "\npilih Konversi Bilangan dibawah ini?//" // Pesan
,"Konversikan 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 (respone){
case 0:
outHasilBiner();
break;
case 1:
outHasilHexa() ;
break;
case 2:
outHasilOktal();
break;
case 3:bacabil();
break;
case 4:pecahan();break;
case 5:inpNama();
gender();
break;
case 6:System.exit(0);break;
case -1:
//...antara tomnol (3) dan close box (-1) ditangani disini.
System.exit(0); //keluar looping
default:
//...jika kita disini ada kesalahan
JOptionPane.showMessageDialog(null,
"response salah "+ respone);break;
}
}
}
public static void main(String[] args){
menuJOption();}
}
setelah membuat JOption kemudian kita melangkah ke menu terbilang dan pecahan , sebelumnya buat file new kemudian buawat terbilang , ini codingnya ...
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package praktek1;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
/**
*
* @author DRAGONMASTER
*/
public class terbilang {
public String konversi (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
/**
* @param args the command line arguments
*/
public static void bacabil() {
do{
try {
terbilang num = new terbilang();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));
if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Angka di luar range!!!","WARNING",JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null,"Hasil = \n " + konvert + " = " + num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch( HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
}
while(JOptionPane.showConfirmDialog(null,"Ingin Mengulang??","OPTION",JOptionPane.ERROR_MESSAGE)==JOptionPane.YES_NO_OPTION);
}
}// TODO code application logic here
setelah proses menu terbilang kemudian proses pecahan
ini coding scripcnya ....
import java.util.Scanner;
public class pecahan
{
public static void main (String args[])
{
long bil1, uang;
do
{
//inputan dari keyboard
System.out.print("Jumlah uang = ");
Scanner obj = new Scanner(System.in);
uang = obj.nextLong();
if (uang<50)
{
System.out.println("Maaf, tidak ada nominal uang "+
"sebesar "+uang+" rupiah");
continue;
}
else
{
// besar 100000
if (uang >= 100000)
{
bil1 = uang / 100000;
System.out.println("Pecahan 100000 sebanyak "+bil1);
}
// antara 50000-100000
uang = uang % 100000;
if ((uang >= 50000) && (uang <100000))
{
bil1 = uang / 50000;
System.out.println("Pecahan 50000 sebanyak "+bil1);
}
// antara 20000-50000
uang = uang % 50000;
if ((uang >= 20000) && (uang <50000))
{
bil1 = uang / 20000;
System.out.println("Pecahan 20000 sebanyak "+bil1);
}
// antara 10000-20000
uang = uang % 20000;
if ((uang >= 10000) && (uang <20000))
{
bil1 = uang / 10000;
System.out.println("Pecahan 10000 sebanyak "+bil1);
}
// antara 5000-10000
uang = uang % 10000;
if ((uang >= 5000) && (uang <10000))
{
bil1 = uang / 5000;
System.out.println("Pecahan 5000 sebanyak "+bil1);
}
// antara 2000-5000
uang = uang % 5000;
if ((uang >= 2000) && (uang <5000))
{
bil1 = uang / 2000;
System.out.println("Pecahan 2000 sebanyak "+bil1);
}
// antara 1000-2000
uang = uang % 2000;
if ((uang >= 1000) && (uang <2000))
{
bil1 = uang / 1000;
System.out.println("Pecahan 1000 sebanyak "+bil1);
}
// antara 500-1000
uang = uang % 1000;
if ((uang >= 500) && (uang <1000))
{
bil1 = uang / 500;
System.out.println("Pecahan 500 sebanyak "+bil1);
}
// antara 200-500
uang = uang % 500;
if ((uang >= 200) && (uang <500))
{
bil1 = uang / 200;
System.out.println ("Pecahan 200 sebanyak "+bil1);
}
// antara 100-200
uang = uang % 200;
if ((uang >= 100) && (uang <200))
{
bil1 = uang / 100;
System.out.println ("Pecahan 100 sebanyak "+bil1);
}
// antara 50-100
uang = uang % 100;
if ((uang >= 50) && (uang <100))
{
bil1 = uang / 50;
System.out.println ("Pecahan 50 sebanyak "+bil1);
}
// kurang 50
uang = uang % 50;
if ((uang > 0) && (uang <50))
{
bil1 = uang ;
//satuan
if (bil1<10)
System.out.println ("Pecahan "+bil1+
" ikhlaskan saja");
else if (bil1>=10)//puluhan
System.out.println ("Pecahan "+bil1+
" ikhlaskan saja");
}
}
}while(uang!=0);
}
}
untuk hasilnya dapat dilihat dibawah sini :)
-disini adalah tampilan awalnya ~>
-tampilan masuk kejendela jenis kelamin ~>
-setelah itu akan keluar textbox seperti ini ~>
-kemudaian menuju tampial menu yang ada menu pilhan dari menu JOption tadi ~>
-disini saya mengambil contoh dari menu hexa dan ini adalah tampilan setelah memasukan bil ~>
-kemudian kita masuk ke tampilan dari menu terbilang ~>
-ini hasil dari menu terbilang ~>
-yang terahir adalh menu pecahan dan ini hasil dari nilai 69000