Halo semua!! kita ketemu lagi!
kali ini ane bakal ngejelasin tentang konversi bilangan di java dengan menggunakan fungsi joptionpane.. joptionpane itu sendiri adalah metode untuk menampilkan outputan secara GUI.. sekarang,tidak hanya konversi bilangan saja yang ada di program ini,tetapi juga terdapat konversi pecahan dan terbilang..check this script! (script tutorial by As'ari Setya)
package praktek1;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
public class menu_dari_joption {
private static String name;
private static int g;
private static int y;
private static String des;
private static String a;
private static String b;
static String gender;
private static int validDes;
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 lima puluh = "+j10+
'\n'+"Jumlah uang lima puluh = "+j1
);
}
public String konversi (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12 p="p">temp = "" + bilangan[angka];
}
else if(angka<20 p="p">temp = konversi(angka-10) + " belas";
}
else if(angka<100 p="p">temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200 p="p">temp = "seratus" + konversi(angka-100);
}
else if(angka<1000 p="p">temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000 p="p">temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000 p="p">temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
public String pecahan (int angka){
String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12 p="p">temp = "" + bilangan[angka];
}
else if(angka<20 p="p">temp = konversi(angka-10) + " belas";
}
else if(angka<100 p="p">temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200 p="p">temp = "seratus" + konversi(angka-100);
}
else if(angka<1000 p="p">temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000 p="p">temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000 p="p">temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
public static void Biner(int y){
if(y>0){
Biner(y/2);
}
System.out.print(y%2);
X.append(y%2);
}
public static void Octal(int g){
char[] daftaroctal={'0','1','2','3','4','5','6','7'
,'8','9','A','B','C','D','E','F'};
int sisa =g% 8;
if(g>0){
Octal((g-sisa)/8);
System.out.print(daftaroctal[g % 8]);
}Y.append(daftaroctal[g % 8]);
}
public static void Hexa(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){
Hexa((n - sisaBagi)/16);
System.out.print(daftarHexa[n%16]);
}Z.append(daftarHexa[n%16]);
}
public static void inputDesJOption (){
des=JOptionPane.showInputDialog("masukkan " + "Bil.Desimalnya = ") ;
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, " tidak boleh kosong!!");
inpNama();
}
}catch(NullPointerException nperror){
JOptionPane.showMessageDialog(null,
" diisi dulu donk!!");
inpNama();
}
}
public static void eksepsiInpBiner (){
inputDesJOption ();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Desimal dari "+des+", Binernya adalah = ");
Biner(validDes);
System.out.println();
JOptionPane.showMessageDialog(null,"hasil perubahan dari desimal"+ des+ " adalah : "+X);
X.delete(0,validDes);
}catch
(NumberFormatException error){
JOptionPane.showMessageDialog(null, des+" bukan angka !! " + "\nMasukkan angka saja !!");
eksepsiInpBiner();
} }
public static void eksepsiInpOctal (){
inputDesJOption ();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Desimal dari "+des+", octalnya adaalah = ");
Octal(validDes);
System.out.println();
JOptionPane.showMessageDialog(null,"hasil perubahan dari desimal"+ des+ " adalah : "+Y);
Y.delete(0,validDes);
}catch
(NumberFormatException error){
JOptionPane.showMessageDialog(null, des+" bukan angka !! " + "\nMasukkan angka saja !!");
eksepsiInpOctal();
}
}
public static void eksepsiInpHexa (){
inputDesJOption ();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Desimal dari "+des+", hexanya adalah = ");
Hexa(validDes);
System.out.println();
JOptionPane.showMessageDialog(null,"hasil perubahan dari desimal"+ des+ " adalah : "+Z);
Z.delete(0,validDes);
}catch
(NumberFormatException error){
JOptionPane.showMessageDialog(null, des+" bukan angka !! " + "\nMasukkan angka saja !!");
eksepsiInpHexa();
}
}
public static void outHasilBiner (){
eksepsiInpBiner();
}
public static void outHasilOctal (){
eksepsiInpOctal();
}
public static void outHasilHexa (){
eksepsiInpHexa();
}
public static void inpNama () {
name=JOptionPane.showInputDialog("Masukkan " + "Nama Anda : ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Nama Anda tidak boleh kosong!!");
inpNama();
}
}catch(NullPointerException nperror){
System.exit(0);
}
}
public static void inpGender(){
gender=JOptionPane.showInputDialog("Masukkan" + "Gender Anda : " + " agan / aganwati only");
a="agan";
b="aganwati";
try{
if(gender.equals(a)) {
JOptionPane.showMessageDialog(null,"selamat datang " + a +" "+ name);
}else if(gender.equals(b)){
JOptionPane.showMessageDialog(null,"selamat datang " + b +" "+ name);}
else {
JOptionPane.showMessageDialog(null,"hanya boleh agan atau aganwati ");
inpGender();}
if (gender.isEmpty()){ JOptionPane.showMessageDialog(null,
"Harap diisi dulu Gan!!");
inpGender();}
}catch(NullPointerException nperror){System.exit(0);}
}
public static void huruf() {
try {
menu_dari_joption num = new menu_dari_joption();
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, num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch( HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
}
public static void menuJOption(){
//..Text untuk tombol.
inpNama();
inpGender();
String[] pilihan = {"BINER","OCTAL","HEXA","PECAHAN","TERBILANG","<
//..."Infinite" loop, selseai jika System.exit(0)
while (true){
int response = JOptionPane.showOptionDialog(
null // Tengah Window).
, "Welcome "+gender+" "+name+" !! " + "\nPilih Konversi Bilangan dibawah ini?"// Pesan
, "Konversi Bilangan"
, JOptionPane.YES_NO_OPTION
, JOptionPane.PLAIN_MESSAGE
, null
, pilihan
, null
);
switch (response){
case 0:
outHasilBiner();break;
case 1:
outHasilOctal();break;
case 2:
outHasilHexa();break;
case 3:
pecahan();break;
case 4:
huruf();break;
case 5:
System.exit(0);break;
case 6:
inpNama();
inpGender();
break;
case 7:
;break;
case -1:
System.exit(0);
default:
JOptionPane.showMessageDialog(null, "Salah Gan! "+ response);break;
}
}
}
public static void main(String [] args){
menuJOption();
}
}
nb:nama package tidak perlu digunakan.
Sekarang tentang hasil outputnya :D check this out!
Tampilan Awal Program. jika yang ditekan tomblo cancel,langsung akan keluar dari program |
Tampilan jika nama tidak diisi |
Tampilan Untuk Memasukkan gender |
Tampilan apabila kosong atau tidak ditulis agan/aganwati |
Tampilan ketika sukses memasukkan nama dan gender |
Tampilan untuk memilih menu konversi |
Tampilan Input desimal pada pilihan biner,hexa,&oktal. |
Tampilan jika angka desimal tidak dimasukkan pada pilihan biner,hexa,&oktal |
Hasil konversi yang muncul |
Hasil konversi yang muncul |
Hasil konversi yang muncul |
Tampilan pada pilihan pecahan |
tampilan outputan pilihan pecahan |
Tampilan inputan terbilang |
outputan pilihan terbilang
sekian postingan dari saya,jika ada salah coding silahkan di coment saja :)
|
0 komentar: (+add yours?)
Post a Comment