Senin, 10 September 2012
konversi bilangan menggunakan JOptionpane
07.33 | Diposting oleh
Rima P Lestari |
Edit Entri
postingan ini sama dengan menu "konversi bilangan" namun yang sekarang kita tambah dengan pemanggilan JOptionpane
ini nih codingnya
package praktek1;
import javax.swing.JOptionPane;
public class JOptionkonversibilangan {
// pendeklarasian var
private static String name;
private static String des;
private static String gender;
private static int validDes;
static StringBuilder binerHasil= new StringBuilder();
static StringBuilder hexaHasil= new StringBuilder();
static StringBuilder oktalHasil= new StringBuilder();
static String sc;
//proses konversi
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]);
}
}
//penginputan desimal
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 terlebih dahulu!!");
inputDesJOption();// kembali input angka
}
}
//pengekspresian
public static void eksepsiInpBiner(){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+des+ ", Binernya adalah = ");
keBiner(validDes);
System.out.println("\n");
}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");
}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");
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des+" bukan angka!! "+ "\nMasukkan angka saja!!");
eksepsiInpOktal();
}
}
//output proses konversi
public static void outHasilBiner(){
eksepsiInpBiner();
}
public static void outHasilHexa(){
eksepsiInpHexa();
}
public static void outHasilOktal(){
eksepsiInpOktal();
}
//penginputan nama
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 dong !");
inpNama();//kembali input nama
}
}
//menampilkan input dialog jenis Kelamin
public static void jenisKelamin()
{
// menampilkan pilihan gender
Object[] options = { "cewek", "cowok" };
int choice = JOptionPane.showOptionDialog(null,
"Apa jenis kelamin kamu?",
"Jenis Kelamin?",
JOptionPane.YES_NO_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
options,
options[0]);
try{
if (choice == JOptionPane.YES_OPTION)
{
gender="saudari, ";
menuJOption1();
}
else if(choice == JOptionPane.NO_OPTION)
{
gender="saudara, ";
menuJOption1();
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Harap diisi terlebih dahulu !!");
inpNama();
}
}
// untuk penghitungan bilangan 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);
return bilang;
}
public static void outTerbilang(){
sc = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebutkan : ");
JOptionPane.showMessageDialog(null, new JOptionkonversibilangan().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);
}
// untuk reset
public static void kembaliMenu(){
inpNama();
jenisKelamin();
}
//ini untuk menu dari konversi bilangan
public static void menuJOption(){
inpNama();
jenisKelamin();
String[] pilihan = {"biner", "hexa", "oktal", "terbilang", "pecahan", "kembali", "keluar"};
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Selamat Datang "+gender+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;
}
}
}
// pemanggilan data menuJOption untuk jenis kelamin
public static void menuJOption1(){
String[] pilihan = {"biner", "hexa", "oktal", "terbilang", "pecahan", "kembali", "keluar"};
while (true) {
int response = JOptionPane.showOptionDialog(
null
, "Selamat Datang "+gender+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;
}
}
}
//untuk pemanggilan seluruh method
public static void main (String[] args){
menuJOption();
}
}
daaan ini hasil gambarnya
- menginputkan nama
-jenis kelamin kamu
-selamaat dataang
-jika memilih salah satu dari opsidiatas (biner,hexa,oktal)
-jika tidak ada inputan bilangan
-jika inputan bukan angka
-inilah hasilnya jika inputan benar
-jika anda memilih hasil "terbilang"
-hasil "terbilang"
-jika anda memilih opsi "pecahan"
-hasil "pecahan"
-jika anda memilih opsi "kembali" maka anda kembali di perintahkan untuk menuliskan nama anda
- jika anda memilih opsi "exit" maka anda keluar
Label:
JAVA
Langganan:
Posting Komentar (Atom)
About Me

- Rima P Lestari
- Pegawai kantoran yang bermimpi menjadi happy mom working at home
Lencana Facebook
Labels
- ATTITUDE (2)
- Islamic world (3)
- JAVA (4)
- PHP (7)
Diberdayakan oleh Blogger.
Followers
0 komentar:
Posting Komentar