Minggu, 16 September 2012

Menu Dari JOption

Untuk postingan kali ini emang bikin gemeeees. Codingnya lumayan banyak dan ngeselin. Nah, untungnya ane masi bisa nge post postingan ini untuk dinikmati. Kalo gitu selamat ngulik!

ini nih codingnya :3




package Praktikum1;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Talitha
 */
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 tr;
    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();
            }
            else{
                for(int a=0; a<name.length();a++)
                    if(!Character.isLetter(name.charAt(a))){
                        JOptionPane.showMessageDialog(null, "Harus diisi dengan huruf!!");
                        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="abang kece, ";
        }
        else{
            if("Perempuan".equals(gender)){
                kelamin="kakak kece, ";
            }
            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() {
        tr = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
        try {
            if (tr.isEmpty()) {
                JOptionPane.showMessageDialog(null, "isi dulu bilangannya !!");
                outTerbilang();
            } else {

                JOptionPane.showMessageDialog(null, new MenuDariJOption().terbilang(new Long(tr)), "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Jangan keluar dulu, harus diisi dulu ya!!");
            outTerbilang();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, "Hey '" + tr + "'"
                    + " .... 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: keluar();
                    
                case -1:
                    System.exit(0);
                default:
                    JOptionPane.showMessageDialog(null, "response salah"
                                                    + response); break;
            }
        }
    }
    public static void main(String[] args){
        menuJOption();
    }
    public static void keluar()
    {
        JOptionPane.showMessageDialog(null, "Terima Kasih Sudah Berkunjung :)");
        System.exit(0);
    }
    
}


udah puas liat codingnya? sekarang monggo liat hasilnya! :)

Ini tampilan awalnya


Jika tidak mengisi nama maka akan muncul pesan tersebut



Jik kita akan menekan button ok lalu menekan button cancel pada tampilan awal makan akan keluar notife berikut




Lalu isikan nama


Lalu muncul box jenis kelamin


Jika kita menekan tombol ok tapa mengisinya maka akan muncul seperti ini



Begitu pula jika kita menekan tombol cancel makan akun muncul seperti ini


Jika kita mengisikan jenis kelamin yang tidak ada


Maka muncul messago box seperti dibawah ini


Setelah itu, isilah dengan benar, misal



lalu langsung mucul kotak konversi




Jika memilih biner

Lalu masukkanlah angka, seperti 


Dan hasilnya seperti ini 


Apabila kita mengisikannya dengan huruf maka 


Lalu muncul seperti ini


Begitu pula dengan hexa


Kalo yang ini octal



Jika kita memencet tombol terbilang


Kita ketikkan 12

Dan akan muncul seperti ini

Lalu jika pecahan, maka



Misal diisi 10


Ini hasilnya pecahan



Jika kita menekan button kembali pada kotak konversi maka akan kembali pada tampilan awal, begitu pula jika kita menekan tombol keluar maka akan keluar program. Dan akan tampil box seperti dibawah ini


Dan ini hasil yang tampil pada program NetBeans.



Cukup segini dulu ya untuk postingan kali ini :)) udah pegel nih. Bye!

»»  READMORE...

Minggu, 09 September 2012

Konversi Bilangan Biner, Hexa, Octal (Scanner)

Halloo again! :D ada tugas baru lagi nih, beda sih sama yang dulu tapi gak beda beda amat kok. Yang kali ini    tak lagi menggunakan JOptionPane tetapi menggunakan perintah Scanner! Kayak gimana ya codingnya? Nih, cobain ya! 

package Praktikum1;
import java.util.Scanner;
/**
 *
 * @author Talitha
 */
public class konversibilscanner {
// Global Variable
static String name; //object
static String jenis_kelamin; //object
static String jk; //object
static int bilDes; // variable
// fungsi/method rekursi
public static void Biner(int n)
{
if(n>1)
{
Biner(n/2);
}
System.out.print(n%2);
}
public static void Oktal(int n)
{
char[] daftarOktal={'0','1','2','3','4','5','6','7'};
int sisaBagi = n % 8;
if(n>0)
{
Oktal((n - sisaBagi)/8);
System.out.print(daftarOktal[n%8]);
}
}
public static void Hexa(int n)
{
char[] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int sisaBagi = n % 16;
if(n>0)
{
Hexa((n - sisaBagi)/16);
System.out.print(daftarHexa[n%16]);
}
}
public static void inputDes()
{
System.out.print("Masukkan Bilangan Desimal = ");
Scanner inputan = new Scanner(System.in);
bilDes = inputan.nextInt();
// return bilDes;
}
public static void tampilBiner()
{
inputDes();
System.out.print("Binernya Adalah ");
Biner(bilDes);
}
public static void tampilHexa()
{
inputDes();
System.out.print("Hexanya Adalah ");
Hexa(bilDes);
}
public static void tampilOktal()
{
inputDes();
System.out.print("Oktalnya Adalah ");
Oktal(bilDes);
}
public static int inpBil()
{
System.out.println("=================================="
+ "\nSelamat Datang " + jk + ", " + name + ",");
System.out.println("Silahkan memilih Menu Konversi "
+ "Bilangan ke: " +
"\n1.Biner \n2.Hexa \n3.Oktal \n4.Exit");
System.out.print("Masukkan Angka Menu = ");
Scanner inputan = new Scanner(System.in);
int pilMenu = inputan.nextInt();
return pilMenu;
}
public static void menU(int pil)
{
System.out.println("\033"); // Clear Screen
switch(pil)
{
case 1: tampilBiner(); break;
case 2: tampilHexa(); break;
case 3: tampilOktal(); break;
case 4: System.out.println("Kamsia ya, sudah mampir.");
System.exit(0); break; // Memberikan Kondisi False
default : System.out.println("(Maaf. Pilih Angka 1 - 4 Saja)"); break;
}
System.out.println("\033"); // clear screen
}
public static void input()
{
Scanner input = new Scanner(System.in);
System.out.println("Masukkan Nama Anda :");
name = input.nextLine();
if(name.equals(""))
{
nama_kosong();
input();
}
else
{
jenis_kelamin();
}
}
public static void nama_kosong()
{
Scanner nama_kosong = new Scanner(System.in);
System.out.println("Maaf, Nama Harus Diisi !!!");
}
public static void jenis_kelamin()
{
Scanner jenis = new Scanner(System.in);
System.out.println("Masukkan Jenis Kelamin = ");
System.out.println("Pilih : \n 1 Laki-Laki, \n 2 Perempuan");
int response = jenis.nextInt();

switch(response)
{
case 1 :
jk = "Bro";
break;
case 2 :
jk = "Sist";
break;
default :
Scanner waria = new Scanner(System.in);
System.out.println("Wah, Anda tak punya kelamin ya ? \n Cap cus tentuin dulu! :D");
jenis_kelamin();
break;
}
}
public static void main(String aKU[]) // Guna Static -> Tidak Perlu Pembentukan Objek
{
input();
// terus mengulang menu jika bukan angka 4
do
{
menU(inpBil()); // atau KonversiBilangan.menU(inpBil());
}
while(true);
}    
}


Mau tau hasilnya? Nih, monggo di liat!


ini tampilan awal, untuk mengisikan nama :


masukkan jenis kelamin dan akan langsung menuju ke menu konversi :


lalu inputkan bilangan yang akan di konversi:


Done! :) makasi, mampir lagi ya!

»»  READMORE...

Konversi Bilangan Biner, Hexa, Octal (JOptionPane)

Untuk postingan kali ini gak agak beda sih dari postingan yang lama, cuma yang ini konversi bilangan menggunakan JOptionPane dan menggunakan java. Nah, untuk lebih selengkapnya yuk intip codingnya! :)


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Praktikum1;
import java.util.Scanner;
import javax.swing.JOptionPane;
//class utama
/**
 *
 * @author Talitha
 */
public class konversibilanganjoption {
 //global variable
    static String name; //object
    static String JK;
    static int bilDes;//variable
    //fungsi/method rekursi
    public static void Biner(int n){
    if (n>1){
        Biner(n/2);
    }
    System.out.print(n%2);
    }
    public static void Hexa(int n){
        char[] daftarHexa={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    if(n>1){
        Hexa(n/16);
        }
    System.out.print(daftarHexa[n%16]);
    }
    public static void Oktal(int n){
    char[] daftarOktal={'0','1','2','3','4','5','6','7'};
    if(n>1){
        Oktal(n/8);
        }
    System.out.print(daftarOktal[n%8]);
    }
    public static void inputDes(){
    System.out.print("Masukkan Bilangan Desimal = ");
    Scanner inputan=new Scanner(System.in);
    bilDes=inputan.nextInt();
    }
    
    public static void tampilBiner(){
    inputDes();
        System.out.print("Binernya adalah : ");
    Biner(bilDes);
    }
    public static void tampilHexa(){    
    inputDes();
        System.out.println("Hexanya adalah = ");    
    Hexa(bilDes);
    }
    public static void tampilOktal(){
    inputDes();
        System.out.println("Oktalnya adalah = ");
    Oktal(bilDes);
    }
    public static int inpBil(){
    System.out.println("==================================" 
            + "\nSelamat datang "+JK+" "+name+",");
    System.out.println("Silahkan memilih Menu Konversi"
            + "Bilangan ke : "+
            "\n1. Biner \n2. Hexa \n3. Oktal \n4. Exit");
    System.out.print("Masukkan Angka Menu = ");
    Scanner inputan=new Scanner(System.in);
    int pilmenu=inputan.nextInt();
    return pilmenu;
    }
    
    public static void menU(int pil){
    System.out.println("\033");//clear screen
    switch(pil){
        case 1: tampilBiner(); break;
        case 2: tampilHexa(); break;
        case 3: tampilOktal(); break;
        case 4: System.out.println("Makasih Sudah Mampir :D");
                System.exit(0); break;//memberikan kondisi FALSE
        default:System.out.println("(Maaf. Pilih angka 1-4 saja)");
        break;
    }
    System.out.println("\033");//clear screen
    }
    public static void main(String aKU[]){
        name=JOptionPane.showInputDialog("Masukkan Nama Anda : ");
        if(name.equals(""))
        {
            JOptionPane.showInputDialog("Silahkan Isi Nama Anda terlebih dahulu : ");
        }
            String[] choices = {"Perempuan", "Laki-Laki"};
        
        String Perempuan="Sist";
        String Laki="Bro";
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                       
                             , "Apa jenis kelamin Anda ?"    // Pesan
                             , "Jenis Kelamin"               // Judul di Tittlebar
                             , JOptionPane.YES_NO_OPTION  // Tipe Option
                             , JOptionPane.QUESTION_MESSAGE  // Tipe Pesan
                             , null                       
                             , choices     
                             , "Quit"    // Default button
                           );
        switch(response){
            case 0 : JK=Perempuan;
                break;
            case 1 : JK=Laki;
                break;            
        }
        do{
            menU(inpBil());
        }
        while(true);
    }
    }   
}

1.


2.


3.


4.


5.



Makasi ya, udah liat dan ngulik ngulik coding nya :)
»»  READMORE...