*hening
*bingung mau ngomong apa
oke fren ini udah malam , *trus masalah buat gw?* sumpah bingung banget mau ngawalin ini dengan apa . udah deh langsung aja ke intinya ya fren . oke fren aku mau share sedikit ilmu nih yang aku dapet dari sekolah , kata ibu ku "kalo kita punya ilmu itu harus saling dishare biar ilmu nya tambah berkah" jadi sekarang akan aku amalkan ilmu yang telah aku dapat disekolah . .
ini tentang program java fren . program ini hampir sama dengan yang aku post dulu . intinya program ini ya konversi biner hexa dan oktal , oke semoga kalian tidak bosan . . :)
langsung aja aku kasih gambaran program yang akan kita buat freenn . .
nah gimana fren rencana program yang ingin kita buat ? keren kan ? yuk mari kita buat :)
4. buat coding untuk mengkonversi bilangan hexa :
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]);
}
5. buat coding untuk mengkonversi bilangan oktal :
//menampilkan input dialog jenis Kelamin (gender)
public static void jenisKelamin() {
gender = JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (cowok/cewek) : ");
try {
if (gender.isEmpty()) {
JOptionPane.showMessageDialog(null, "diisi dulu ya :)");
jenisKelamin();
}
} catch (NullPointerException npt) {
JOptionPane.showMessageDialog(null, "hey kenapa ga diisi? isi dulu dong , ga bayar nih");
jenisKelamin();
}
if ("cowok".equals(gender)) {
kelamin = "Saudara, ";
} else {
if ("cewek".equals(gender)) {
kelamin = "Saudari, ";
} else {
JOptionPane.showMessageDialog(null, "Hanya bisa diisi cowok dan cewek saja !!");
jenisKelamin();
}
}
}
11. ini adalah bagian terpenting dalam pembuatan sebuah aplikasi java ,
ini tampilan awal dari program yang ingin kita buat . |
dari tampilan awal itu jika kita tidak mengisikan nama kita tapi langsung menklik tombol "ok" maka akan keluar peringatan seperti itu . |
dan yang ini adalah peringatan jika kita menekan tombol cancel |
jika kita telah mengisikan nama dan telah menekan tombol ok maka kita langsung mendapatkan tampilan mengisikan jenis kelamin . |
jika kita tidak mengisi jenis kelamin lalu menekan tombol oke maka tampilan peringatan yang akan disampaikan seperti ini |
ini peringatan jika di jenis kelamin kita menekan cancel |
ini tampilan menu fren , disitu ada banyak pilihan yang bisa kita pilih jika kalian memilih kembali maka akan kembali ke tampilan awal tadi yang nama itu loh fren |
ini jika kita memilih biner maka akan keluar seperti ini |
ini peringatan jika kita tidak mengisi lalu langsung menekan oke |
ini jika kita menekan cancel |
ini jika kita mengisi di input biner dengan huruf maka akan keluar tampilan peringatan ini |
ini hasil pengkonversian pada biner , untuk konverisan hexa dan oktal cara nya sama dengan ini |
ini tampilan untuk terbilang dan isikan bilangan yang ingin disebut |
ini tampilan peringatan jika kita menekan oke sebelum ngisikan bilangan yang ingin disebutkan |
dan yang ini peringatan jika menekan button cancel |
ini tampilan jika kita mengisikan bilangan 90 lalu akan muncul seperti ini |
ini tampilan untuk pecahan |
ini jika kita tidak mengisikan lalu langsung menekan oke |
ini tampilan jika kita menekan tombol cancel |
ini hasil pecahan dari 3000 |
ini jika kita menekan button keluar dan akan muncul tampilan seperti ini |
nah gimana fren rencana program yang ingin kita buat ? keren kan ? yuk mari kita buat :)
1. kemudian ketikkan code berikut , letakkan dibawah packages :
import javax.swing.JOptionPane;
2. deklarasikan variable yang akan digunakan di bawah class :
public class binerhexaoktal {
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 sc;
3. buat coding untuk mengkonversi bilangan biner:
public static void keBiner(int n) {
if (n > 1) {
keBiner(n / 2);
}
System.out.print(n % 2);
binerHasil.append(n % 2);
// binerHasil.append("\033");
}
4. buat coding untuk mengkonversi bilangan hexa :
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]);
}
}
5. buat coding untuk mengkonversi bilangan oktal :
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]);
}
}
6. 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();
}
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.
script untuk konversi pecahan sebagai berikut :
public static void hasilPecahan() {
int desimal;
String str = JOptionPane.showInputDialog("Masukkan bilangan yang akan dipecah : ");
try {
if (str.isEmpty()) {
JOptionPane.showMessageDialog(null, "loh mau kemana ? 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, "kemana sih?? Isi dulu bilangannya.. !!");
hasilPecahan();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + str + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
hasilPecahan();
}
}
8.script untuk konversi terbilang sebagai berikut :
//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 disebut : ");
try {
if (sc.isEmpty()) {
JOptionPane.showMessageDialog(null, "isi dulu dong ya ya");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new binerhexaoktal().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "mau kemana sih ? isi dulu yaa");
outTerbilang();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + sc + "'"
+ " .... bukan angka !!"
+ "\nMasukkan angka saja !!");
outTerbilang();
}
}
9. coding untuk menginputkan nama user :
//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();
}
} catch (NullPointerException npe) {
JOptionPane.showMessageDialog(null, "Harap diisi nama dulu doonk !!");
inpNama();
}
}
10. coding untuk menginputkan Gender user :
//menampilkan input dialog jenis Kelamin (gender)
public static void jenisKelamin() {
gender = JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (cowok/cewek) : ");
try {
if (gender.isEmpty()) {
JOptionPane.showMessageDialog(null, "diisi dulu ya :)");
jenisKelamin();
}
} catch (NullPointerException npt) {
JOptionPane.showMessageDialog(null, "hey kenapa ga diisi? isi dulu dong , ga bayar nih");
jenisKelamin();
}
if ("cowok".equals(gender)) {
kelamin = "Saudara, ";
} else {
if ("cewek".equals(gender)) {
kelamin = "Saudari, ";
} else {
JOptionPane.showMessageDialog(null, "Hanya bisa diisi cowok dan cewek saja !!");
jenisKelamin();
}
}
}
11. ini adalah bagian terpenting dalam pembuatan sebuah aplikasi java ,
yaitu pemanggilan jantung alias method sesuai fungsi masing-masing dan di gabung menjadi satu
tampilan utama/menu :
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:
//...antara tombol (3) danclose box (-1) ditangani disini.
System.out.println("Terimakasih atas Kunjungan Anda");
JOptionPane.showMessageDialog(null, "Terimakasih Atas Kunjungan Anda");
System.exit(0);
//keluar looping
default:
JOptionPane.showMessageDialog(null, "response salah"
+ response);
break;
}
}
}
public static void main(String[] args) {
menuJOption();
}
}
Aulia Iklima