Untuk postingan kali ini emang bikin gemeeees. Codingnya lumayan banyak dan ngeselin. Nah, untungnya ane masi bisa nge post postingan ini untuk dinikmati. Kalo gitu selamat ngulik!
ini nih codingnya :3
package Praktikum1;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Talitha
*/
import javax.swing.JOptionPane;
public class MenuDariJOption{
private static String name;
private static String des;
private static String gender;
private static String kelamin;
private static int validDes;
static StringBuilder binerHasil= new StringBuilder();
static StringBuilder hexaHasil= new StringBuilder();
static StringBuilder oktalHasil= new StringBuilder();
static String tr;
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) {//int n : parameter
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]);
}
}
public static void inputDesJOption(){
des=JOptionPane.showInputDialog("Masukkan Bilangan Desimal : ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Bilangan Desimal Wajib diisi!!");
inputDesJOption();
}
}
catch(NullPointerException npa){
JOptionPane.showMessageDialog(null, "Wajib di isi !!");
inputDesJOption();
}
}
public static void outHasilBiner() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Biner hasilnya : ");
keBiner(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Biner hasilnya : " + binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
// reset object binerHasil
binerHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilBiner();
}
}
public static void outHasilHexa() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Hexa hasilnya : ");
keHexa(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Hexa hasilnya : " + hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
hexaHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilHexa();
}
}
public static void outHasilOktal() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Oktal hasilnya : ");
keOktal(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Oktal hasilnya : " + oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
oktalHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilOktal();
}
}
//menampilkan input dialog nama
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan nama Anda : ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong !!");
inpNama();
}
else{
for(int a=0; a<name.length();a++)
if(!Character.isLetter(name.charAt(a))){
JOptionPane.showMessageDialog(null, "Harus diisi dengan huruf!!");
inpNama();
}
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Nama Wajib Di isi !!");
inpNama();
}
}
//menampilkan input dialog jenis Kelamin (gender)
public static void jenisKelamin(){
gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (Laki/Perempuan) : ");
try{
if(gender.isEmpty()){
JOptionPane.showMessageDialog(null, "Jenis Kelamin Harus Di isi!!");
jenisKelamin();
}
}
catch(NullPointerException npt){
JOptionPane.showMessageDialog(null, "Apa Jenis Kelamin anda??");
jenisKelamin();
}
if ("Laki".equals(gender)) {
kelamin="abang kece, ";
}
else{
if("Perempuan".equals(gender)){
kelamin="kakak kece, ";
}
else{
JOptionPane.showMessageDialog(null, "Hanya bisa diisi Laki / Perempuan !!");
jenisKelamin();
}
}
}
//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() {
tr = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
try {
if (tr.isEmpty()) {
JOptionPane.showMessageDialog(null, "isi dulu bilangannya !!");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(tr)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Jangan keluar dulu, harus diisi dulu ya!!");
outTerbilang();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + tr + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outTerbilang();
}
}
public static void hasilPecahan() {
int desimal;
String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
try {
if (str.isEmpty()) {
JOptionPane.showMessageDialog(null, "Isi woy bilangannya");
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, "Bilangan Wajib Di isi!!");
hasilPecahan();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + str + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
hasilPecahan();
}
}
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: keluar();
case -1:
System.exit(0);
default:
JOptionPane.showMessageDialog(null, "response salah"
+ response); break;
}
}
}
public static void main(String[] args){
menuJOption();
}
public static void keluar()
{
JOptionPane.showMessageDialog(null, "Terima Kasih Sudah Berkunjung :)");
System.exit(0);
}
}
udah puas liat codingnya? sekarang monggo liat hasilnya! :)
Ini tampilan awalnya
»» READMORE...
ini nih codingnya :3
package Praktikum1;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Talitha
*/
import javax.swing.JOptionPane;
public class MenuDariJOption{
private static String name;
private static String des;
private static String gender;
private static String kelamin;
private static int validDes;
static StringBuilder binerHasil= new StringBuilder();
static StringBuilder hexaHasil= new StringBuilder();
static StringBuilder oktalHasil= new StringBuilder();
static String tr;
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) {//int n : parameter
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]);
}
}
public static void inputDesJOption(){
des=JOptionPane.showInputDialog("Masukkan Bilangan Desimal : ");
try{
if(des.isEmpty()){
JOptionPane.showMessageDialog(null, "Bilangan Desimal Wajib diisi!!");
inputDesJOption();
}
}
catch(NullPointerException npa){
JOptionPane.showMessageDialog(null, "Wajib di isi !!");
inputDesJOption();
}
}
public static void outHasilBiner() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Biner hasilnya : ");
keBiner(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Biner hasilnya : " + binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
// reset object binerHasil
binerHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilBiner();
}
}
public static void outHasilHexa() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Hexa hasilnya : ");
keHexa(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Hexa hasilnya : " + hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
hexaHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilHexa();
}
}
public static void outHasilOktal() {
inputDesJOption();
try {//untuk melakukan penanganan kesalahan
validDes = Integer.parseInt(des);
System.out.print("\n Bilangan desimal : " + des + " jika dijadikan Oktal hasilnya : ");
keOktal(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " jika dijadikan Oktal hasilnya : " + oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
oktalHasil = new StringBuilder();
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "'" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outHasilOktal();
}
}
//menampilkan input dialog nama
public static void inpNama(){
name=JOptionPane.showInputDialog("Masukkan nama Anda : ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong !!");
inpNama();
}
else{
for(int a=0; a<name.length();a++)
if(!Character.isLetter(name.charAt(a))){
JOptionPane.showMessageDialog(null, "Harus diisi dengan huruf!!");
inpNama();
}
}
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Nama Wajib Di isi !!");
inpNama();
}
}
//menampilkan input dialog jenis Kelamin (gender)
public static void jenisKelamin(){
gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (Laki/Perempuan) : ");
try{
if(gender.isEmpty()){
JOptionPane.showMessageDialog(null, "Jenis Kelamin Harus Di isi!!");
jenisKelamin();
}
}
catch(NullPointerException npt){
JOptionPane.showMessageDialog(null, "Apa Jenis Kelamin anda??");
jenisKelamin();
}
if ("Laki".equals(gender)) {
kelamin="abang kece, ";
}
else{
if("Perempuan".equals(gender)){
kelamin="kakak kece, ";
}
else{
JOptionPane.showMessageDialog(null, "Hanya bisa diisi Laki / Perempuan !!");
jenisKelamin();
}
}
}
//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() {
tr = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
try {
if (tr.isEmpty()) {
JOptionPane.showMessageDialog(null, "isi dulu bilangannya !!");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(tr)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Jangan keluar dulu, harus diisi dulu ya!!");
outTerbilang();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + tr + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outTerbilang();
}
}
public static void hasilPecahan() {
int desimal;
String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
try {
if (str.isEmpty()) {
JOptionPane.showMessageDialog(null, "Isi woy bilangannya");
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, "Bilangan Wajib Di isi!!");
hasilPecahan();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + str + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
hasilPecahan();
}
}
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: keluar();
case -1:
System.exit(0);
default:
JOptionPane.showMessageDialog(null, "response salah"
+ response); break;
}
}
}
public static void main(String[] args){
menuJOption();
}
public static void keluar()
{
JOptionPane.showMessageDialog(null, "Terima Kasih Sudah Berkunjung :)");
System.exit(0);
}
}
udah puas liat codingnya? sekarang monggo liat hasilnya! :)
Ini tampilan awalnya
Jika tidak mengisi nama maka akan muncul pesan tersebut
Jik kita akan menekan button ok lalu menekan button cancel pada tampilan awal makan akan keluar notife berikut
Lalu isikan nama
Lalu muncul box jenis kelamin
Jika kita menekan tombol ok tapa mengisinya maka akan muncul seperti ini
Begitu pula jika kita menekan tombol cancel makan akun muncul seperti ini
Jika kita mengisikan jenis kelamin yang tidak ada
Maka muncul messago box seperti dibawah ini
Setelah itu, isilah dengan benar, misal
lalu langsung mucul kotak konversi
Jika memilih biner
Lalu masukkanlah angka, seperti
Dan hasilnya seperti ini
Apabila kita mengisikannya dengan huruf maka
Lalu muncul seperti ini
Begitu pula dengan hexa
Kalo yang ini octal
Jika kita memencet tombol terbilang
Kita ketikkan 12
Dan akan muncul seperti ini
Lalu jika pecahan, maka
Misal diisi 10
Ini hasilnya pecahan
Jika kita menekan button kembali pada kotak konversi maka akan kembali pada tampilan awal, begitu pula jika kita menekan tombol keluar maka akan keluar program. Dan akan tampil box seperti dibawah ini
Dan ini hasil yang tampil pada program NetBeans.
Cukup segini dulu ya untuk postingan kali ini :)) udah pegel nih. Bye!