Asalamualaikum Wr,wb
Disini saya akan mencoba membuat Aplikasi Konversi bilangan dengan Java yang sebelumnya mengunakan PHP .
nha, prinsip kerja dari aplikasi bilangan ini adalah mengkonversi kan bilangan yang di inputkan oleh user ,dan sebelumnya kita harus menginputkan nama dan gender untuk masuk ke Konversi bilangan..
Ada 7 menu yaitu Biner, Hexa, Oktal , Terbilang, Pecahan , Kembali , dan keluar...
lebih mudahnya langsung prakteknya saja ...:)
Disini saya akan mencoba membuat Aplikasi Konversi bilangan dengan Java yang sebelumnya mengunakan PHP .
nha, prinsip kerja dari aplikasi bilangan ini adalah mengkonversi kan bilangan yang di inputkan oleh user ,dan sebelumnya kita harus menginputkan nama dan gender untuk masuk ke Konversi bilangan..
Ada 7 menu yaitu Biner, Hexa, Oktal , Terbilang, Pecahan , Kembali , dan keluar...
lebih mudahnya langsung prakteknya saja ...:)
//1.Buka neetbeans , new Java class lalu copy script berikut:
- //kemudian ketikkan code berikut , letakkan dibawah packages :
package Praktek1;
import javax.swing.JOptionPane;//digunakan untuk menampilkan Joption
//2.Lalau deklarasikan variable yang akan digunakan di bawah class :
public class konversibilanganbaru{
private static String name;
private static String des;
private static int validDes;
private static String inpGender;
private static String sc;
static StringBuilder hasilbiner = new StringBuilder();
static StringBuilder hasiloktal = new StringBuilder();
static StringBuilder hasilhexa = new StringBuilder();
//3.lalu buat coding untuk mengkonversi bilangan hexa:
private static String name;
private static String des;
private static int validDes;
private static String inpGender;
private static String sc;
static StringBuilder hasilbiner = new StringBuilder();
static StringBuilder hasiloktal = new StringBuilder();
static StringBuilder hasilhexa = new StringBuilder();
//3.lalu buat coding untuk mengkonversi bilangan hexa:
public static void keBiner (int n){
if(n>1){
keBiner(n/2);
}
System.out.print (n%2);
hasilbiner.append(n%2);
}
//4.lalu buat coding untuk mengkonversi bilangan Hexa:
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>1)
{
keHexa(n/16);
}
System.out.print(daftarHexa[n%16]);
hasilhexa.append(daftarHexa[n%16]);
}
char [] daftarHexa={'0','1','2','3','4','5','6','7','8'
,'9','A','B','C','D','E','F'};
if (n>1)
{
keHexa(n/16);
}
System.out.print(daftarHexa[n%16]);
hasilhexa.append(daftarHexa[n%16]);
}
//5.lalu buat coding untuk mengkonversi bilangan Oktal:
public static void keoktal(int n){
char[] daftarOktal={'0','1','2','3','4','5','6','7','8'};
if(n>1)
{
keoktal(n/8);
}
System.out.print(daftarOktal[n%8]);
hasiloktal.append(n%8);
}
//6.buat coding untuk menampilkan hasil konversi bilangan sebagai berikut :
public static void inputDesJOption (){
des=JOptionPane.showInputDialog("Masukan Bil.desimal");
try {
if (des.isEmpty()) {
JOptionPane.showMessageDialog(null, "Isi dulu bilanganya");
inputDesJOption();
}
} catch (NullPointerException npe) {
JOptionPane.showMessageDialog(null, "Jangan keluar dulu, Harap di isi dulu !!");
inputDesJOption();
} catch (NumberFormatException npe) {
JOptionPane.showMessageDialog(null, "Hey '" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
inputDesJOption();
}}
public static void eksepsiInpBiner (){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+ des +
",BInernya Adalah = ");
keBiner(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam binernya adalah ="+ hasilbiner ,
"KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
hasilbiner=new StringBuilder();
}catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, des+"bukan angaka!!"
+"\nMasukan Angka saja!!");
eksepsiInpBiner();
}
}
public static void eksepsiInphexa(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Desimal dari"+des+
",Hexanya adalah= ");
keHexa(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam Hexanya adalah ="+ hasilhexa ,
"KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
hasilhexa=new StringBuilder();
}catch (NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des +"bungkan Angaka!!"//di gunakan untuk memberitahu User bahwa hanya angka yang bisa di inputkan
+"\n Masukan angka saja!!");
eksepsiInphexa();
}
}
public static void eksepsiInpOktal(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Desimal dari"+des+
",Oktalnya adalah= ");
keoktal(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam Hexanya adalah ="+ hasiloktal,
"KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
hasiloktal=new StringBuilder();
}catch (NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des +"bungkan Angaka!!"
+"\n Masukan angka saja!!");
eksepsiInpOktal();
}
}
public static void outHasilBIner (){
eksepsiInpBiner();
}
public static void outHasilhexa (){
eksepsiInphexa();
}
public static void outHasilOktal (){
eksepsiInpOktal();
}
//7.buat script untuk konversi pecahan sebagai berikut :
des=JOptionPane.showInputDialog("Masukan Bil.desimal");
try {
if (des.isEmpty()) {
JOptionPane.showMessageDialog(null, "Isi dulu bilanganya");
inputDesJOption();
}
} catch (NullPointerException npe) {
JOptionPane.showMessageDialog(null, "Jangan keluar dulu, Harap di isi dulu !!");
inputDesJOption();
} catch (NumberFormatException npe) {
JOptionPane.showMessageDialog(null, "Hey '" + des + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
inputDesJOption();
}}
public static void eksepsiInpBiner (){
inputDesJOption();
try {
validDes=Integer.parseInt(des);
System.out.print("\nDesimal dari "+ des +
",BInernya Adalah = ");
keBiner(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam binernya adalah ="+ hasilbiner ,
"KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
hasilbiner=new StringBuilder();
}catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, des+"bukan angaka!!"
+"\nMasukan Angka saja!!");
eksepsiInpBiner();
}
}
public static void eksepsiInphexa(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Desimal dari"+des+
",Hexanya adalah= ");
keHexa(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam Hexanya adalah ="+ hasilhexa ,
"KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
hasilhexa=new StringBuilder();
}catch (NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des +"bungkan Angaka!!"//di gunakan untuk memberitahu User bahwa hanya angka yang bisa di inputkan
+"\n Masukan angka saja!!");
eksepsiInphexa();
}
}
public static void eksepsiInpOktal(){
inputDesJOption();
try{
validDes=Integer.parseInt(des);
System.out.print("\n Desimal dari"+des+
",Oktalnya adalah= ");
keoktal(validDes);
System.out.println("\n");
JOptionPane.showMessageDialog(null, "Bialanga Decimal" + des +", dalam Hexanya adalah ="+ hasiloktal,
"KONVERSI BILANGAN " ,JOptionPane.INFORMATION_MESSAGE);
hasiloktal=new StringBuilder();
}catch (NumberFormatException nfe){
JOptionPane.showMessageDialog(null, des +"bungkan Angaka!!"
+"\n Masukan angka saja!!");
eksepsiInpOktal();
}
}
public static void outHasilBIner (){
eksepsiInpBiner();
}
public static void outHasilhexa (){
eksepsiInphexa();
}
public static void outHasilOktal (){
eksepsiInpOktal();
}
//7.buat script untuk konversi pecahan sebagai berikut :
public static void hasilPecahan() {
int desimal;
String str = JOptionPane.showInputDialog("Masukan bil.untuk di pecah ");
try {
if (str.isEmpty()) {
JOptionPane.showMessageDialog(null, "Harus di isi dulu ya");
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, "Eitss mau kemana ?? Isi dulu bilangannya.. !!");
hasilPecahan();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Maaf '" + str + "'"
+ " BUkan angka !!"
+ "\nMasukkan angka ya !!");
hasilPecahan();
}
}
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;
}
//8.buat script untuk konversi terbilang sebagai berikut :
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 disebut : ");
try {
if (sc.isEmpty()) {
JOptionPane.showMessageDialog(null, "Isi dulu bilanganya");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new konversibilanganbaru().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Jangan keluar dulu, Harap di isi dulu !!");
outTerbilang();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + sc + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outTerbilang();
}
}
public static void kembalinama(){
inpNama();
}
9.Buat coding untuk menginputkan nama user :
public static void inpNama (){
name=JOptionPane.showInputDialog("masukan nama anda: ");
try{
if(name.isEmpty()){
JOptionPane.showMessageDialog(null,"nama tidak boleh kosong");
inpNama();//kembali input nama
}
else {
for(int i=0;i <name.length();i++){
if(!Character.isLetter(name.charAt(i))){
JOptionPane.showMessageDialog(null,"hanya bisa Isi dengan huruf");
inpNama();
}
} }
}catch (NullPointerException npe){
JOptionPane.showMessageDialog(null,"Isi dulu nama anda");
inpNama();
}}
//10.Buat coding untuk menginputkan Gender user :
public static void inpGender(){
String[] choices={"Cowok","Cewek"};
String cowok ="cowok";
String cewek ="cewek ";
int response = JOptionPane.showOptionDialog(
null
,"Apakah anda cowok atau cewek?"
,"Gender"
,JOptionPane.YES_NO_OPTION
,JOptionPane.QUESTION_MESSAGE
,null
,choices
,"exit"
);
switch(response){
case 0: inpGender ="Bro,";
break;
case 1 :inpGender="Sis,";
break;
default:
JOptionPane.showMessageDialog(null,"Pilih dulu gender anda");
inpGender();
break;
}
}
//11. nha ,ini adalah bagian terpenting dalam pembuatan sebuah aplikasi java ,
yaitu pemanggilan method-method sesuai fungsi masing-masing dan di gabung menjadi satu
yaitu pemanggilan method-method sesuai fungsi masing-masing dan di gabung menjadi satu
tampilan utama/menu :
public static void menuJOption (){
//...text untuk tombol
String[] pilihan ={"BINER","HEXA","OKTAL","PECAHAN","TERBILANG","Kembali","KELUAR "};
//..."Infinite" loop, selesai jika System.exit(0)
while(true){
int response = JOptionPane.showOptionDialog(//di bawah ini adalah parameter jOption
null //tengah window.
,"selamat datang "+ inpGender + name+"!"
+"\nPilih Konversi Bilangan di bawah ini ?"//pesan
,"Konversi Bilangan"//judul Bar
,JOptionPane.YES_NO_OPTION //tipe pilihan
,JOptionPane.PLAIN_MESSAGE//tipe pesan
,null //icon (none)
,pilihan //tombol text.
,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:
hasilPecahan();
break;
case 4:
outTerbilang();
break;
case 5:
kembalinama();
break;
case 6:
case -1:
//,......antara tombol(3) dan close box(-1) ditangani di sini.
System.exit(0); //keluar looping tapi...
default :
//...jika disini kita ada kesalahan ,
JOptionPane.showMessageDialog(null,"response tak terduga"
+ response); break;
}}}
public static void seluruh(){
inpNama();
inpGender();
menuJOption();
}
public static void main (String [] args){
seluruh();
}}
Ttulah sedikit ilmu yang dapat saya sampaikan ,Dan terimakasih untuk bapak hadi selaku pembimbin dan teman-teman atas bantuanya..
bila teman-teman ingin melihan langsung hasilnya bisa di lihat di bawah ini...
bila user menekan tombol exit/cancle maka akan muncul message seperti di bawah ini,
INI adalah tampilan dimana user menginputkan bilangan yang sudah sesuai:
SEKIAN DARI SAYA,semoga bisa bermanfaat..
bila teman-teman ingin melihan langsung hasilnya bisa di lihat di bawah ini...
ini adalah tampilan utama,dimana user harus menginputkan nama
bila,user menekan tombol cancel/exit maka akan muncul message seperti ini
bila user belum memasukan nama tetapi sudah menekan oke akan muncul messeage seperti di bawah ini,
bila user memasukan nama dengan format angka maka akan muncul message seperti dibawah ini,
Setelah,memasukan angka dengan benar akan muncul JOption seperti ini,
bila user menekan exit maka akan muncul messeage seperti di bawah ini,
Bila sudah memilih gender maka akan masuk ke menu utama ,
ini adalah tampilan input bilangan setelah user memilih konversi bilangan,
kebetulan percobaan ini memilih Konversi BINNER
kebetulan percobaan ini memilih Konversi BINNER
Bila user menginputkan selain bilangan akan muncul messeage seperti di bawah ini,
bila user menekan tombol exit/cancle maka akan muncul message seperti di bawah ini,
bila user belum menginputkan bilangan tetapi menekan tombol ok maka akan muncul messeage seperti ini,
INI adalah tampilan dimana user menginputkan bilangan yang sudah sesuai:
KONVERSI BINNER
KONVERSI HEXA
KONVERSI PECAHAN
KONVERSI TERBILANG
SEKIAN DARI SAYA,semoga bisa bermanfaat..