Pada sesi ini saya akan post.kan program konversi bilangan dan menampilkan terbilang dan pecahan dari suatu bilangan desimal. Berikut langkah-langkahnya :
1. Buka netbeans anda dan buat java class baru
2. Lalu tuliskan deklarasi berikut :
3. Setelah itu ketikkan coding dibawah ini untuk memproses konversi ke hexa,octal dan desimal serta untuk menampilkannya :
public static void tampilBiner(int n) {
if (n > 1) {
tampilBiner(n / 2);
}
System.out.print(n % 2);
binerHasil.append(n % 2);
// binerHasil.append("\033");
}
public static void tampilHexa(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) {
tampilHexa(n / 16);
System.out.print(daftarHexa[n % 16]);
hexaHasil.append(daftarHexa[n % 16]);
}
}
public static void tampilOctal(int n) {
char[] daftarOktal = {'0', '1', '2', '3', '4', '5', '6', '7'};
if (n > 0) {
tampilOctal(n / 8);
System.out.print(daftarOktal[n % 8]);
oktalHasil.append(daftarOktal[n % 8]);
}
}
public static void inputDesJOption() {
des = JOptionPane.showInputDialog("Ketikkan Bilangan Desimal : ");
try {
if (des.isEmpty()) {
JOptionPane.showMessageDialog(null, "Desimal Wajib Diisi Ya !!");
inputDesJOption();
}
} catch (NullPointerException npa) {
JOptionPane.showMessageDialog(null, "ISI DONG<JANGAN KOSONG !!!");
inputDesJOption();
}
}
public static void outHasilBiner() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " dalam Biner hasilnya : ");
tampilBiner(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " dalam Biner hasilnya : " + binerHasil, "Hasil Konversi", JOptionPane.PLAIN_MESSAGE);
// reset object binerHasil
binerHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... tidak dikenal !!"
+ "\nKetik angka aja dong !!");
outHasilBiner();
}
}
public static void outHasilHexa() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " dalam Hexa hasilnya : ");
tampilHexa(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " dalam Hexa hasilnya : " + hexaHasil, "Hasil Konversi", JOptionPane.PLAIN_MESSAGE);
hexaHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... tidak dikenal !!"
+ "\nKetik angka aja dong !!");
outHasilHexa();
}
}
public static void outHasilOktal() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " dalam Octal hasilnya : ");
tampilOctal(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " dalam Octal hasilnya : " + oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
oktalHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... tidak dikenal !!"
+ "\nKetik angka aja dong !!");
outHasilOktal();
}
}
4. Ketikkan coding dibawah ini untuk menampilkan dialog nama
public static void inpNama() {
name = JOptionPane.showInputDialog("Siapa nama Anda : ");
try {
if (name.isEmpty()) {
JOptionPane.showMessageDialog(null, "Gak Punya Nama Ya ??!!!");
inpNama();
}
} catch (NullPointerException npe) {
JOptionPane.showMessageDialog(null, "Kalau Punya Isi Dong !!");
inpNama();
}
}
5. Ketikkan coding dibawah ini yang fungsinya untuk menampilkan dialog jenis kelamin
public static void jenisKelamin() {
gender = JOptionPane.showInputDialog("Apa Jenis Kelamin Anda ? (isi huruf kecil semua hanya cewek/cowok) : ");
try {
if (gender.isEmpty()) {
JOptionPane.showMessageDialog(null, "Waji Isi .... Jenis Kelamin ???");
jenisKelamin();
}
} catch (NullPointerException npt) {
JOptionPane.showMessageDialog(null, "Apa jenis kelamin kamu ???");
jenisKelamin();
}
if ("cowok".equals(gender)) {
kelamin = "Tuan, ";
} else {
if ("cewek".equals(gender)) {
kelamin = "Nona, ";
} else {
JOptionPane.showMessageDialog(null, "Disini Bukan Area Waria !! :p ");
jenisKelamin();
}
}
}
6. Dan coding dibawah ini digunakan untuk memproses penampilan terbilang dari desimal yang diinputkan
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 hendak disebut : ");
try {
if (sc.isEmpty()) {
JOptionPane.showMessageDialog(null, "Eh kenapa bilangannya kosong ?!!");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new Finna().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Isi dulu dong, jangan keluar dulu .. !!");
outTerbilang();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hei '" + sc + "'"
+ " .... tidak dikenal !!"
+ "\nKetik angka aja dong !!");
outTerbilang();
}
}
7. Yang diubawah ini untuk memproses dan menampilkan tampilan pecahan
public static void hasilPecahan() {
int desimal;
String str = JOptionPane.showInputDialog("Bilangan berapa yang ingin dipecah ? ");
try {
if (str.isEmpty()) {
JOptionPane.showMessageDialog(null, "Lho,apa yang mau dipecah kalau kosong,isi dong !!");
hasilPecahan();
} else {
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);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Isi dulu dong, jangan keluar dulu .. !!");
hasilPecahan();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hei '" + str + "'"
+ " .... tidak dikenal !!"
+ "\nKetik angka aja dong !!");
hasilPecahan();
}
}
8. Sedangkan codning berikut untuk mengatur tampilan JOptionPane dan dialog yang ada pada program
public static void kembaliMenu() {
inpNama();
jenisKelamin();
}
public static void menuJOption() {
inpNama();
jenisKelamin();
String[] pilihan = {"Biner", "Hexa", "Octal", "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, "wrong response"
+ response);
break;
}
}
}
public static void main(String[] args) {
menuJOption();
}
}
HASIL TAMPILAN PROGRAM
Gambar satu tampilan utk input nama :
Gambar dua untuk input jenis kelamin :
Gambar tiga untuk memilih konversi yang diinginkan :
Gambar empat untuk menginputkan bilangan desimal :
Gambar lima untuk menampilkan hasil konversi yang berlaku untuk menampilkan biner,hexa dan octal :
Gambar enam untuk memasukkan angka jika anda awalnya memilih untuk menampilkan terbilang dari suatu desimal :
Gambar tujuh untuk menampilkan hasil tampilan untuk terbilang suatu desimal :
Gambar delapan untuk menampilkan dialog input untuk menginputkan desimal yang akan dipecah jika anda memilih menu pecahan :
Gambar sembilan untuk menampilkan hasil pecahan dari bilangan yang diinputkan :
Jika anda menekan tombol close atau cancel pada dialog input nama,maka akan muncul tampilan ini :
Jika anda menekan tombol close atau cancel pada dialog input jenis kelamin,maka akan muncul tampilan ini :
Jika anda menulis kata selain cowok atau cewek pada dialog input jenis kelamin,maka akan muncul tampilan :
Jika anda menekan tombol kembali pada dialog menu,maka anda akan masuk kembali untuk menginputkan nama. Jika anda menekan tombol keluar,maka program akan selesai.
Nah,itu tadi coding programnya,semoga bermanfaat :)