Ini sharingan tugas-tugas php ku
Konversi
Bilangan Menggunakan JOption
·
Pertama
buat java class panggilan, dengan coding sebagai berikut :
/*
* To change this template, choose Tools |
Templates
* and open the template in the editor.
*/
package
Praktek1;
/**
*
* @author Herlin
*/
public
class Panggilan {
String nama;
//contractor
public Panggilan (String nama){
this.nama=nama;
}
public Panggilan (String nama, String jk){
this.nama=nama;
}
//method1
public void ucapanSelamat(){
System.out.println("met
datang" + nama + "!!!");
}
//method2
public void ucapanMaaf(){
System.out.println("bubye" +
nama + "!!!");
}
}
·
Kedua
buat class input array, dengan coding sbb ;
package
Praktek1;
import
java.util.Scanner;
public
class InputArray {
public Scanner in=new Scanner (System.in);
public String data[]=new String[3];
public void daftar(){
for (int i=0;i<data.length;i++){
System.out.print("Masukkan
kata/kalimat (String)=");
data[i]=in.nextLine();
}
}
public void cari(){
System.out.print("Masukkan kata yang
dicari = ");
String cari=in.nextLine();
Panggilan objek=new Panggilan (cari);
int j;
for (j=0;j<data.length;j++){
if(data[j].equals(cari)){
System.out.println("Data
ada!!");
objek.ucapanSelamat();
break;
}
}
if(j==data.length){
System.out.println("Data tidak
ada!!");
objek.ucapanMaaf();
}
}
public static void main(String[]args){
InputArray inArray=new InputArray();
inArray.daftar();
inArray.cari();
}
}
Kedua kelas tersebut digunakan untuk inputan yang dimasukkan ke class
konversiBilanganMenggunakanJOption
Dan ini coding dari class konversiBilanganMenggunakanJOption
/*
* To
change this template, choose Tools | Templates
*
and open the template in the editor.
*/
package Praktek1;
import javax.swing.JOptionPane;
/**
*
*
@author Herlin
*/
public class
JAVAKonversiBilanganmenggunakanJOptionPane {
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, "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();
}
}
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="Agan, ";
}
else{
if("Perempuan".equals(gender)){
kelamin="Aganwati, ";
}
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() {
sc = JOptionPane.showInputDialog("Masukan Bilangan yang akan
disebut : ");
try {
if (sc.isEmpty()) {
JOptionPane.showMessageDialog(null, "isi dulu bilangannya
!!");
outTerbilang();
} else {
JOptionPane.showMessageDialog(null, new
JAVAKonversiBilanganmenggunakanJOptionPane().terbilang(new Long(sc)),
"TERBILANG", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NullPointerException not) {
JOptionPane.showMessageDialog(null, "Jangan keluar dulu, harus
diisi dulu.. !!");
outTerbilang();
} catch (NumberFormatException nae) {
JOptionPane.showMessageDialog(null, "Hey '" + sc +
"'"
+ " .... 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:
case -1:
System.exit(0);
default:
JOptionPane.showMessageDialog(null,
"response salah"
+ response); break;
}
}
}
public static void main(String[] args){
menuJOption();
}
}
Ini hasil-hasil setelah di run
Mengisi nama
Jika nama tidak diisi dan di cancel
Jika kelamin di cancel
Isi kelamin anda dengan benar
Maka nanti akan keluar menu seperti dibawah
ini
Hasil konversi ke biner
Hasil konversi octal
Hasil dari menu terbilang
Menu pecahan
Setelah di OK akan kembali ke menu awal
Jika memilih KEMBALI maka akan kembali ke
menu nama untuk mengisi identitas anda
Dan jika anda memilih untuk KELUAR maka
anda langsung keluar.