Menu dari JOptionPane (konversi 3 bilangan, terbilang, sama pecahan)
September 06, 2012Kali ini aku kembali mosting konversi 3 bilangan program java menggunakan JOptionPane, emang sebenarnya apa sih JOptionPane itu? kita lihat aja script di bawah ini.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package PRAKTEK1;
import javax.swing.JOptionPane;
/**
*
* @author Sarre_Chuaa
*/
public class MenudariJOptionLengkap {
//global variabel
private static String name; //object
private static String des; //object
private static String jk; //object
private static String kelamin; //object
private static int validDes; //variabel
static StringBuilder binerHasil= new StringBuilder();
static StringBuilder hexaHasil= new StringBuilder();
static StringBuilder oktalHasil= new StringBuilder();
static String vk;
//fungsi/method nya (sama kayak konversi bilangan sebelumnya)
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'};
if(n>0){
keOktal(n/8);
System.out.print(daftarOktal[n%8]);
oktalHasil.append(daftarOktal[n%8]);
}
}
//pendeklarasian inputin bilangan desimalnya
public static void inputDesJOption(){
des=JOptionPane.showInputDialog("Masukkan Bilangan Desimalmu : ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Isi nya yang lengkap yah ");
inputDesJOption(); //kembali input bilangan desimal
}
}
catch(NullPointerException nfe){
JOptionPane.showMessageDialog(null, "Kok nggak di isi");
inputDesJOption(); //kembali input bilangan desimal
}
}
//ini hasil nya di messagedialog
public static void outHasilBiner(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
keBiner(validDes);
JOptionPane.showMessageDialog(null, "Binernya adalah "+binerHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilBiner();
}
}
public static void outHasilHexa(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
keHexa(validDes);
JOptionPane.showMessageDialog(null, des+" Hexanya adalah: "+hexaHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilHexa();
}
}
public static void outHasilOktal(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
keOktal(validDes);
JOptionPane.showMessageDialog(null, des+" Oktalnya adalah: "+oktalHasil, "Alhamdulillah Jadi", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilOktal();
}
}
//pendeklarasian inputin nama
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan Namamu ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Tolong namanya jangan di kosongi ya!!");
inpNama(); //kembali input nama
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Isi dulu tuh Namamu!!");
inpNama(); //kembali input nama
}
}
//pendeklarasian jenis kelamin nya
public static void jenisKelamin(){
jk=JOptionPane.showInputDialog("Jenis Kelamin? ");
try{
if(jk.isEmpty()){
JOptionPane.showMessageDialog(null, "Tolong jenis kelaminnya jangan di kosongi ya!!");
jenisKelamin();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Isi dulu tuh Jenis Kelaminmu!! ");
jenisKelamin();
}
if ("Laki-laki".equals(jk)) {
kelamin="Bro";
}
else{
if("Perempuan".equals(jk)){
kelamin="Sis, ";
}
else{
JOptionPane.showMessageDialog(null, "Pilihan nya cuma ada dua yah, jangan milih yang lain");
jenisKelamin();
}
}
}
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;
}
//scriptnya TERBILANG kayak gini
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 nya";
for(int a=6;a>0;a--){
y = (int) (x/Math.pow(10, a*3));
if(y > 0){
if(y==1 && a==1) bilang += " Seribu "; else bilang += sebut(y) + satuan[a];
} x %= Math.pow(10, a*3);
}
bilang+=sebut((int)x);
return bilang;
}
public static void outTerbilang(){
vk = JOptionPane.showInputDialog("Masukan Bilangan yang akan dibilang: ");
JOptionPane.showMessageDialog(null, new MenudariJOptionLengkap().terbilang(new Long(vk)), "TERBILANG nya", JOptionPane.INFORMATION_MESSAGE);
}
//script PECAHAN kayak gini
public static void hasilPecahan(){
int desimal;
String str=JOptionPane.showInputDialog("Masukkan bilangan yang akan kamu pecahkan: ");
desimal=Integer.parseInt(str);
int satu,dua,tiga,empat,lima,enam,tujuh,delapan,sembilan,sepuluh;
satu=desimal/100000;
desimal%=100000;
dua=desimal/50000;
desimal%=50000;
tiga=desimal/10000;
desimal%=10000;
empat=desimal/5000;
desimal%=5000;
lima=desimal/1000;
desimal%=1000;
enam=desimal/500;
desimal%=500;
tujuh=desimal/100;
desimal%=100;
delapan=desimal/50;
desimal%=50;
sembilan=desimal/10;
desimal%=10;
sepuluh=desimal/1;
desimal%=1;
JOptionPane.showMessageDialog(null,"Jumlah seratus ribuan = "+satu
+"\nJumlah lima puluh ribuan = "+dua
+"\nJumlah sepuluh ribuan = "+tiga
+"\nJumlah lima ribuan = "+empat
+"\nJumlah seribuan = "+lima
+"\nJumlah lima ratusan = "+enam
+"\nJumlah seratusan = "+tujuh
+"\nJumlah lima puluhan = "+delapan
+"\nJumlah limaan = "+sembilan
+"\nJumlah satuan = "+sepuluh
, "PECAHAN nya", JOptionPane.INFORMATION_MESSAGE);
}
//
public static void kembalikeMenu(){
inpNama();
jenisKelamin();
}
//menu semuanya ada di bagian ini
public static void menuJOption(){
// . . .teks untuk tombol
inpNama();
jenisKelamin();
String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN", "KEMBALI", "<<KELUAR>>"};
// "Infinite" loop, selesai jika sistem exit(0)
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Welcome "+kelamin+name+" !!"
+ "\nPilih Konversi Bilangan dibawah ini?"// Pesan
, "Konversi Bilangan" // //judul bar
, JOptionPane.YES_NO_OPTION // Tipe Option/pilihan
, JOptionPane.PLAIN_MESSAGE // Tipe Pesan
, null // icon(none)
, pilihan // tombol teks
, null // label tombol Default
);
//menggunakan switch untuk mengecek tombol yang di tekan.
switch(response){
case 0:
outHasilBiner();
break;
case 1:
outHasilHexa();
break;
case 2:
outHasilOktal();
break;
case 3:
outTerbilang();
break;
case 4:
hasilPecahan();
break;
case 5:
kembalikeMenu();
break;
case 6:
case -1:
// ...antara tombol(3) dan close box(-1) di tangani disini.
System.exit(0); // keluar looping tapi
default:
//...Jika kita disini ada kesalahan,
JOptionPane.showMessageDialog(null, "response tak terduga"
+ response); break;
}
}
}
public static void main(String[] args){
menuJOption();
}
}
NB. ini kalo bilangan desimalnya kamu kosongi sama kamu "cancel" muncul nya gini
7.Ini kita ganti nyobain yang bagian "PECAHAN" atau "Memilah sekelompok angka"
8.Sekarang beralih ke bagian "KEMBALI" yah, sebelum tahu screenshotnya pasti kalian semua udah pada ngerti semua kan jika "KEMBALI" kita pilih apa yang terjadi :)))) yuhuuu, bener sekali hasilnya kayak ini "kembali ke inputan pertama setelah program di running"
0 komentar