Programmer Stories
This is all about script
Rabu, 12 September 2012
Menu Dari JOptionPane
package awal; 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 sc; 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, "Maaf Harus Diisi"); inputDesJOption(); } } catch(NullPointerException npa){ JOptionPane.showMessageDialog(null, "Harap Diisi"); inputDesJOption(); } } public static void outHasilBiner() { inputDesJOption(); try {//untuk melakukan penanganan kesalahan validDes = Integer.parseInt(des); System.out.print("\n Bilangan desimal : " + des + " Binernya : "); keBiner(validDes); System.out.println("\n"); JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " Binernya : " + binerHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE); // reset object binerHasil binerHasil = new StringBuilder(); } catch (NumberFormatException nfe) { JOptionPane.showMessageDialog(null, "" + des + "'" + " Maaf 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 + " Hexanya : "); keHexa(validDes); System.out.println("\n"); JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " Hexanya : " + hexaHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE); hexaHasil = new StringBuilder(); } catch (NumberFormatException nfe) { JOptionPane.showMessageDialog(null, "" + des + "'" + " Maaf 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 + " Oktalnya : "); keOktal(validDes); System.out.println("\n"); JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " Oktalnya : " + oktalHasil, "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE); oktalHasil = new StringBuilder(); } catch (NumberFormatException nfe) { JOptionPane.showMessageDialog(null, "" + des + "'" + " Maaf 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(); } } catch(NullPointerException npe){ JOptionPane.showMessageDialog(null, "Nama Harap Diisi"); inpNama(); } } //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, "Harap Diisi"); jenisKelamin(); } } catch(NullPointerException npt){ JOptionPane.showMessageDialog(null, "Pilih Jenis Kelamin"); 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(); } } } //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, "Harap Diisi"); outTerbilang(); } else { JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(sc)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE); } } catch (NullPointerException not) { JOptionPane.showMessageDialog(null, "Maaf Harus Diisi Dulu"); outTerbilang(); } catch (NumberFormatException nae) { JOptionPane.showMessageDialog(null, "" + sc + "'" + " Maaf 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, "Harap Diisi"); 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, "Harap Diisi Dulu"); hasilPecahan(); } catch (NumberFormatException nae) { JOptionPane.showMessageDialog(null, "" + str + "'" + " Maaf 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: case -1: System.exit(0); default: JOptionPane.showMessageDialog(null, "response salah" + response); break; } } } public static void main(String[] args){ menuJOption(); } } <.textarea>
Tidak ada komentar :
Posting Komentar
Posting Lebih Baru
Posting Lama
Beranda
Langganan:
Posting Komentar ( Atom )
Tidak ada komentar :
Posting Komentar