Salam salam buat semua kawan-kawan, hehehe :D Setelah semingguan puasa posting (hehehe.. soalnya posting terakhir [JAVA] Konverter Bilangan full Scanner
udah semingguan yang lalu postingnya) kali ini SyarifMoklet mau posting lagi :D Sekarang postingnya juga konverter bilangan, tapi disini kita ada bonusnya yaitu menu terbilang untuk membaca bilangan, dan pecahan rupiah untuk memecah uang dalam rupiah serta ada juga pecahan dalam bilangan desimal (satuan,puluhan,ratusan,dst.).
Oke, dari pada bosen baca-baca, lihat dulu screenshot nya aja ya :D
- Ini screenshot Dialog awalnya, yaitu inputan nama
- Jika dialog diclose atau dicancel
- Jika dikosongi
- Jika inputan nama didahului angka (contoh: 45SYARIF)
- Jika inputan benar, akan muncul dialog Pilih Jenis Kelamin, ini digunakan untuk penentuan sapaan (agan/sist/bapak/ibu)
- Jika dicancel atau diclose
- Jika sudah memilih jenis kelamin, maka dibawa inputan umur (untuk penentuan sapaan, jika dibawah 30 : agan/sist, jika diatas 30 Bapak/Ibu)
- Jika dicancel
- Jika dikosongi
- Jika inputan mengandung huruf
- Jika inputan >50, muncul pesan error
- Jika inputan benar, akan ditampilkan menu utama
- Tampilan menu konversi bilangan desimal
- Tampilan inputan desimal
- Jika dicancel atau inputan mengandung huruf
- Hasil konversi
- Berikut tampilan menu Membilang & Pecahan
- Hasil terbilang
- Hasil pecahan rupiah
- Hasil pecahan desimal
Sekarang ane share codingnya, buat file Konversi_Bilangan_JenisKelamin_Scanner_Full.java di package Praktik1; berikut codingnya...
******KONVERSI BILANGAN JOptionPane and Terbilang,pecahan Bilangan and Uang****** * SEMUA Inputan dan Output menggunakan JOptionPane * Terbilang untuk membaca bilangan (maksimal 1 milyar) * Pecahan Bilangan desimal adalah >> satuan, puluhan, ratusan, ribuan, dst. * Pecahan unang menurut pecahan uang di Indonesia, digunakan pecahan terbesar dahulu */ package Praktik1; import javax.swing.JOptionPane;
/** * f projects 2012 * @author SYARIF-FIRAYZ * AHMAD SYARIF ROSIDY MOKLET'20 * 2 RPL 4 / 01 */
public class Konversi_Bilangan_JOption_JK_TB { private static String nama; private static String sapaan; private static String age; private static String jenis_kl; public static int gender; private static int des; private static int validDes; private static StringBuilder hasil; public static void main(String ftm[]){ inpNama(); } public static void inpNama() { nama = JOptionPane.showInputDialog(null,"Siapa nama anda ?","Input nama",JOptionPane.QUESTION_MESSAGE); try{ //TIDAK BOLEH DIDAHULUI ANGKA if(nama.isEmpty()){ JOptionPane.showMessageDialog(null,"Nama tidak boleh kosong","Error!", JOptionPane.ERROR_MESSAGE); inpNama(); } else if(nama.matches("^([0-9]{1,})|([0-9]{1,})+([a-zA-Z_]{1,})")){ JOptionPane.showMessageDialog(null,"Tidak boleh didahului angka","Notice!", JOptionPane.INFORMATION_MESSAGE); inpNama(); } else{ inpJK(); } /* SAMA SEKALI TANPA ANGKA for(int f=0;f<nama.length();f++){ if(Character.isDigit(nama.charAt(f))){ JOptionPane.showMessageDialog(null,"Tidak boleh mengandung angka","Notice!", JOptionPane.INFORMATION_MESSAGE); inpNama(); } } inpJK(); */ } catch(NullPointerException f){ JOptionPane.showMessageDialog(null,"Jangan di Cancel","Error!", JOptionPane.ERROR_MESSAGE); inpNama(); } } public static void inpJK() { String[] pilihan = {"Laki-laki","Perempuan"}; gender = JOptionPane.showOptionDialog(null ,"Jenis Kelamin anda?" ,"Pilih Jenis Kelamin" ,JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE ,null ,pilihan ,null ); if(gender==-1){ JOptionPane.showMessageDialog(null, "Pilih jenis kelamin dulu","Jenis Kelamin!",JOptionPane.ERROR_MESSAGE); inpJK(); } else{ inpAge(); } } public static void inpAge(){ age = JOptionPane.showInputDialog(null, "Umum berapa anda sekarang ?", "Input umur",JOptionPane.QUESTION_MESSAGE); try{ int validAge; validAge=Integer.parseInt(age); if(validAge>50){ JOptionPane.showMessageDialog(null, "Tampaknya anda terlalu tua :D","Umur over!",JOptionPane.ERROR_MESSAGE); inpAge(); } else if(validAge>30){ switch(gender){ case 0 : sapaan="Bapak"; break; case 1 : sapaan="Ibu"; break; } menu_1(); } else{ switch(gender){ case 0 : sapaan="agan"; break; case 1 : sapaan="sist"; break; } menu_1(); } } catch(NumberFormatException ft){ try{ if(age.isEmpty()){ JOptionPane.showMessageDialog(null, "Jangan dikosongi dong,\n kami perlu tahu umur anda!", "Error!", JOptionPane.ERROR_MESSAGE); inpAge(); } else{ JOptionPane.showMessageDialog(null, "Inputkan angka !", "Error!", JOptionPane.ERROR_MESSAGE); inpAge(); } } catch(NullPointerException f){ JOptionPane.showMessageDialog(null, "Jangan dicancel dong,\n kami perlu tahu umur anda!", "Error!", JOptionPane.ERROR_MESSAGE); inpAge(); } } } public static void menu_1() { int konv_bilang; String options[] = {"Konversi Bilangan","Membilang & Pecahan","<<BACK","KELUAR>>"}; konv_bilang = JOptionPane.showOptionDialog(null, "Selamat datang "+sapaan+" "+nama+"!!!\nPilih menu berikut", "Main Menu", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, null); switch(konv_bilang){ case 0 : menu_konversi(); break; case 1 : menu_bilangan(); break; case 2 : inpNama(); break; case 3 : case -1 : konfirm_exit("menu_1"); break; } } public static void konfirm_exit(String menu) { int konfirmasi ; konfirmasi = JOptionPane.showConfirmDialog(null, sapaan+" "+nama+", Anda yakin mau keluar ?","Exit Confirmation", JOptionPane.YES_NO_OPTION); switch(konfirmasi){ case -1: case 0 : System.exit(0); break; case 1 : if("menu_1".equals(menu)){ menu_1(); } else if("menu_konversi".equals(menu)){ menu_konversi(); } else if("menu_bilangan".equals(menu)){ menu_bilangan(); } break; } } public static void menu_konversi() { String option[] = {"BINER","HEXA","OKTAL","<<BACK>>","KELUAR>>"}; int respons = JOptionPane.showOptionDialog(null ,"Konversi dari Desimal ke ?" ,"Pilih Konversi" ,JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE ,null ,option ,null ); switch(respons){ case 0 : konv("Biner"); break; case 1 : konv("Heksa"); break; case 2 : konv("Oktal"); break; case 3 : menu_1(); break; case 4 : case -1 : konfirm_exit("menu_konversi"); break; } } private static void tampilkonv(int des, String ke) { hasil= new StringBuilder(); if(ke.equals("Biner")){ Biner(des); } else if(ke.equals("Oktal")){ Oktal(des); } else if(ke.equals("Heksa")){ Heksa(des); } System.out.println("\n\nBilangan desimal : "+des+" "+ke+"nya Adalah: "+hasil); JOptionPane.showMessageDialog(null, "Bilangan desimal : "+des+" "+ke+"nya Adalah: "+hasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE); menu_konversi(); } private static void InpBil(String fungsi) { String apa = null; if("Biner".equals(fungsi)||"Heksa".equals(fungsi)||"Oktal".equals(fungsi)){ apa = "dikonversikan ke "+fungsi; } else if("bilang".equals(fungsi)){ apa = "di"+fungsi+"kan/dibaca (maksimal satu milyard)"; } else if("desimal".equals(fungsi)||"rupiah".equals(fungsi)){ apa = "dipecah dalam "+fungsi+" (maksimal satu milyard)"; } String bildes = JOptionPane.showInputDialog(null, "Inputkan bilangan desimal \n untuk "+apa, "Input desimal", JOptionPane.INFORMATION_MESSAGE); try{ validDes=Integer.parseInt(bildes); if(validDes>1000000000){ JOptionPane.showMessageDialog(null, "Nilai terlalu besar, maksimal satu milyard !", "Error!", JOptionPane.ERROR_MESSAGE); InpBil(fungsi); } } catch(NumberFormatException ft){ JOptionPane.showMessageDialog(null, "Inputkan angka !", "Error!", JOptionPane.ERROR_MESSAGE); InpBil(fungsi); } } private static void konv(String konv) { if(konv.equals("Biner")){ InpBil("Biner"); des = validDes; tampilkonv(des,"Biner"); } else if (konv.equals("Heksa")){ InpBil("Heksa"); des = validDes; tampilkonv(des,"Heksa"); } else if (konv.equals("Oktal")){ InpBil("Oktal"); des = validDes; tampilkonv(des,"Oktal"); } } private static void Biner(int n) { String biner = null; if(n>1){ Biner(n/2); } hasil.append(n%2); } private static void Heksa(int n) { char [] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C', 'D','E','F'}; if (n>1){ Heksa (n/16); } hasil.append(daftarHexa[n%16]); } private static void Oktal(int n) { if(n>1){ Oktal(n/8); } hasil.append(n%8); } private static void menu_bilangan() { String option[] = {"TERBILANG","PECAHAN RUPIAH","PECAHAN DESIMAL","<<BACK>>","KELUAR>>"}; int respons = JOptionPane.showOptionDialog(null ,"Pilih :" ,"Pilih Menu Membilang atau Pecahan" ,JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE ,null ,option ,null ); switch(respons){ case 0 : bil_pec("bilang"); break; case 1 : bil_pec("rupiah"); break; case 2 : bil_pec("desimal"); break; case 3 : menu_1(); break; case 4 : case -1 : konfirm_exit("menu_bilangan"); break; } } private static void bil_pec(String bilang) { if(bilang.equals("bilang")){ InpBil("bilang"); des = validDes; tampilbil(des,"bilang"); } else if(bilang.equals("rupiah")){ InpBil("rupiah"); des = validDes; tampilbil(des,"rupiah"); } else if(bilang.equals("desimal")){ InpBil("desimal"); des = validDes; tampilbil(des,"desimal"); } } private static void tampilbil(int des, String bilang) { hasil= new StringBuilder(); String apase = "Bilangan"; String diapakan = " dipecah menjadi"; String petik=" "; String apa="Pecahan"; if(bilang.equals("bilang")){ Bilang(des); diapakan = " dibaca"; petik="'"; apa = "Terbilang"; } else if(bilang.equals("rupiah")){ Pecah_rupiah(des); apase="Uang Rp."; apa+=" rupiah"; } else if(bilang.equals("desimal")){ Pecah_desimal(des); apa+=" desimal"; } System.out.println("\n"+apase+" "+des+diapakan+" : \n\n"+petik+hasil+petik); JOptionPane.showMessageDialog(null,apase+" "+des+diapakan+" : \n"+petik+hasil+petik,"Hasil "+apa,JOptionPane.INFORMATION_MESSAGE); menu_bilangan(); }
Untuk lanjutannya (ma'af tidak dijadikan satu :D)
public static void Bilang(int des) { int f = 0; String angka[] = {""," Se"," Dua "," Tiga "," Empat "," Lima "," Enam "," Tujuh "," Delapan "," Sembilan "}; String angka_2[] = {""," Satu "," Dua "," Tiga "," Empat "," Lima "," Enam "," Tujuh "," Delapan "," Sembilan "}; //String satuan[] = {""," puluh "," belas "," ratus "," ribu "," belas ribu "}; if(des>=1000000000){ hasil.append(angka_2[des/1000000000]); hasil.append("milyar "); des%=1000000000; } if(des>=100000000){ hasil.append(angka[des/100000000]); if(des%100000000>1000000){ hasil.append("ratus "); } else{ hasil.append("ratus juta "); } des%=100000000; } if(des>=10000000){ int bantuan=des/1000000; if(bantuan<20&&bantuan>10){ hasil.append(angka[bantuan%=10]); hasil.append("belas juta "); des=(des%10000000)-(bantuan%=10)*1000000; } else{ hasil.append(angka[des/10000000]); if(des%10000000>=1000000){ hasil.append("puluh "); } else{ hasil.append("puluh juta "); } des%=10000000; } } if(des>=1000000){ hasil.append(angka_2[des/1000000]); hasil.append("juta "); des%=1000000; } if(des>=100000){ hasil.append(angka[des/100000]); if(des%100000>1000){ hasil.append("ratus "); } else{ hasil.append("ratus ribu "); } des%=100000; } if(des>=10000){ f++; int bantuan=des/1000; if(bantuan<20&&bantuan>10){ hasil.append(angka[bantuan%=10]); hasil.append("belas ribu "); des=(des%10000)-(bantuan%=10)*1000; } else{ hasil.append(angka[des/10000]); if(des%10000>=1000){ hasil.append("puluh "); } else{ hasil.append("puluh ribu "); } des%=10000; } } if(des>=1000){ if(f==1){ hasil.append(angka_2[des/1000]); } else{ hasil.append(angka[des/1000]); } hasil.append("ribu "); des%=1000; } if(des>=100){ hasil.append(angka[des/100]); hasil.append("ratus "); des%=100; } if(des>=10){ if(des<20&&des>10){ hasil.append(angka[des%=10]); hasil.append("belas "); des=0; } else{ hasil.append(angka[des/10]); hasil.append("puluh "); des%=10; } } hasil.append(angka_2[des]); } public static void Pecah_rupiah(int des) { int A,B,C,D,E,F,G,H,I,J,K ; A=des/100000; des%=100000; B=des/50000; des%=50000; C=des/20000; des%=20000; D=des/10000; des%=10000; E=des/5000; des%=5000; F=des/2000; des%=2000; G=des/1000; des%=1000; H=des/500; des%=500; I=des/100; des%=100; J=des/50; des%=50; K=des/1; hasil.append( "Banyaknya seratus ribuan = "+A +"\n Banyaknya lima puluh ribuan = "+B +"\n Banyaknya dua puluh ribuan = "+C +"\n Banyaknya sepuluh ribuan = "+D +"\n Banyaknya lima ribuan = "+E +"\n Banyaknya dua ribuan = "+F +"\n Banyaknya seribuan = "+G +"\n Banyaknya lima ratusan = "+H +"\n Banyaknya seratusan = "+I +"\n Banyaknya lima puluhan = "+J +"\n sisa = "+K +"\n\n *) pecahan menurut pecahan rupiah\n Digunakan pecahan terbesar dahulu"); } public static void Pecah_desimal(int des) { int A,B,C,D,E,F,G,H,I,J,K,L,M ; A=des/1000000000; des%=1000000000; B=des/100000000; des%=100000000; C=des/10000000; des%=10000000; D=des/1000000; des%=1000000; E=des/100000; des%=100000; F=des/10000; des%=10000; G=des/1000; des%=1000; H=des/100; des%=100; I=des/10; des%=10; J=des/1; hasil.append( "Nilai milyaran = "+A +"\n Nilai ratusan juta = "+B +"\n Nilai puluhan juta = "+C +"\n Nilai jutaan = "+D +"\n Nilai ratusan ribu = "+E +"\n Nilai puluhan ribu = "+F +"\n Nilai ribuan = "+G +"\n Nilai ratusan = "+H +"\n Nilai puluhan = "+I +"\n Nilai satuan = "+J +"\n\n *) pecahan menurut bilangan desimal"); } }
Ma'af untuk masalah penjelasan dan lain-lain, lain waktu aja masih sibuk :D Makasi telah berkunjung
0 komentar:
Posting Komentar