Assalammualaikum wr.wb
Ehhh , kita ketemu lagi :D , ini aku mau nampilin tugas baruku lagi nih , judulnya itu menu dari Option, semoga bermanfaat ya :D
.
>Syntaxnya :
public class MenuDariOption2 {
private static String name;
private static String des;
private static String gender;
private static String kelamin;
private static int validDes;
static StringBuilder binerResult= new StringBuilder();
static StringBuilder hexaResult= new StringBuilder();
static StringBuilder oktalResult= new StringBuilder();
static String sc;
public static void toBiner(int n){
if(n>1){
toBiner(n/2);
}
System.out.print(n%2);
binerResult.append(n%2);
}
public static void toHexa(int n){//int n : parameter
char[] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
if(n>0){
toHexa(n/16);
System.out.print(daftarHexa[n%16]);
hexaResult.append(daftarHexa[n%16]);
}
}
public static void toOktal(int n){
char[] daftarOktal={'0','1','2','3','4','5','6','7'};
if(n>0){
toOktal(n/8);
System.out.print(daftarOktal[n%8]);
oktalResult.append(daftarOktal[n%8]);
}
}
public static void inputDesJOption(){
des=JOptionPane.showInputDialog("Masukkan bilangan Desimalnya : ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Anda harus mengisikan bilangan desimalnya terlebih dahulu");
inputDesJOption();
}
}
catch(NullPointerException npa){
JOptionPane.showMessageDialog(null, "Maaf, mohon isi bilangan desimal dibawah ini");
inputDesJOption();
}
}
public static void outHasilBiner(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Bilangan Desimal "+des+" dalam Biner adalah: ");
toBiner(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Biner adalah : "
+ ""+binerResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " bukan angka!"
+ "\nMohon isikan angka saja");
outHasilBiner();
}
}
public static void outHasilHexa(){
inputDesJOption();
try{//untuk melakukan penanganan kesalahan
validDes=Integer.parseInt(des);
System.out.print("\nBilangan Decimal "+des+" dalam Hexa adalah: ");
toHexa(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan Desimal "+des+" dalam Hexa adalah : "
+ ""+hexaResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " bukan angka!"
+ "\nMohon isikan angka saja");
outHasilHexa();
}
}
public static void outHasilOktal(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
System.out.print("\nBilangan Desimal "+des+" dalam Oktal adalah: ");
toOktal(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan "+des+" Desimal dalam Octal adalah : "
+ ""+oktalResult, "Kotak Hasil", JOptionPane.PLAIN_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "'"+des+"'"
+ " bukan angka"
+ "\nMohon isikan angka saja");
outHasilOktal();
}
}
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan nama Anda : ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Mohon isikan nama Anda dibawah ini");
inpNama();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi");
inpNama();
}
}
public static void jenisKelamin(){
gender=JOptionPane.showInputDialog("Pilih Jenis Kelamin Anda (Laki-laki/Perempuan) dengan awalan huruf besar : ");
try{
if(gender.isEmpty()){
JOptionPane.showMessageDialog(null, "Mohon diisi dulu (Laki-laki/Perempuan");
jenisKelamin();
}
}
catch(NullPointerException npt){
JOptionPane.showMessageDialog(null, "Harap diisi ");
jenisKelamin();
}
if ("Laki-laki".equals(gender)) {
kelamin="Mr. ";
}
else{
if("Perempuan".equals(gender)){
kelamin="Mrs. ";
}
else{
JOptionPane.showMessageDialog(null, "Mohon isikan (Laki-laki/Perempuan) tidak yang lain");
jenisKelamin();
}
}
}
String[] number={"","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 = number[y]+" ratus ";
if(y == 1)bilang=" seratus ";
x%=100;
}
if(x<12)bilang += number[x];
else{
y=x/10;
x%=10;
if(y==1)
bilang +=number[x] + " belas ";
else
bilang += number[y]+ " puluh "+ number[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 disebutkan : ");
JOptionPane.showMessageDialog(null, new MenuDariOption2 ().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);
}
public static void kembaliMenu(){
inpNama();
jenisKelamin();
}
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;
}
}
}
public static void main(String[] args){
menuJOption();
}
}
Lalu hasilnya ?
1.Klik Shift+F6 , Lalu akan keluar kotak seperti ini , dan isi nama kamu :
2.Apabila anda memilih Cancel , maka akan keluar pernyataan ini :
3.Apabila anda memilih OK , maka anda akan bisa melanjutkannya , pilih Perempuan:
4.Pilih Biner :
5.Masukkan angka dari Desimal ke Biner :
6.Hasil dari Desimal ke Biner :
7. Pilih Hexa :
8..Masukkan angka dari Desimal ke Hexa :
9.Hasil dari Desimal ke Hexa :
10.Pilih Oktal :
11.Masukkan angka dari Desimal ke Oktal :
12.Hasil dari Desimal ke Oktal :
13.Pilih Terbilang :
14.Masukkan angka :
15.Hasilnya :
16.Pilih Pecahan :
17.Masukkan angka :
18.Hasilnya:
0 komentar:
Posting Komentar