Senin, 17 September 2012

InputJOptionPane Java


Malam ini saya akan memperkenalkan tentang JOptionPane, terutama dalam program yang sudah jadi. Langsung aja simak :D


package Praktek1;

import javax.swing.JOptionPane;


/**
 *
 * @author FERIYAL
 */


public class InputJOptionPane {
  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();
 
  }
 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");
}
}

Selasa, 04 September 2012

Konversi Bilangan (Bin, Oct dan hex)

Malam ini saya mau memperkenalkan dengan konversi bilangan menggunakan Java, monggo disimak :D


package Praktek1;

import java.util.Scanner;
import javax.swing.JOptionPane;

/**
 *
 * @author FERIYAL
 */
public class KonversiBilangan {
    //global variable
    static String name;//object
    static String gender;//object
    static int bilDes;//variable
   
    //fungsi/method rekursi biner
    public static void Biner(int n){
        if(n>1){
            Biner(n/2);
        }
        System.out.print(n%2);
    }
          //method Hexa
    public static void Hexa(int n){
        char[] daftarHexa={'0','1','2','3','4','5','6','7','8','8','9','A',
            'B','C','D','E','F'};
        if(n>1){
            Hexa(n/16);
        }
        System.out.print(daftarHexa[n%16]);
    }
         //method Oktal
    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 int inputDes(){
       
        System.out.print("Masukkan bilangan desimal =");
        Scanner inputan=new Scanner(System.in);
        bilDes=inputan.nextInt();
        return bilDes;
    }
          //method menampilkan Biner
    public static void tampilBiner(){
        inputDes();
        System.out.print("Binernya adalah ");
        Biner(bilDes);
    }
          //method menampilkan Hexa
    public static void tampilHexa(){
        inputDes();
        System.out.print("Hexanya adalah ");
        Hexa(bilDes);
    }
          //method menampilkan Oktal
    public static void tampilOktal(){
        inputDes();
        System.out.print("Oktalnya adalah ");
        Oktal(bilDes);
    }
          //method untuk menampilkan inputan bilangan
    public static int inpBil(){
        System.out.println("========================="
                + "\nSelamat datang "+gender+" "+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;
       }
         //method dari Menu
    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("Arigato Gozaimas");
                    System.exit(0); break;
            default:System.out.println("(maaf. pilih angka 1-4 saja)");
                break;
        }
        System.out.println("\033"); //clear screen
    }
         //main method berfungsi untuk menampilkan proses pertama kali program dijalankan
    public static void main(String arg[]){
    name=JOptionPane.showInputDialog("Masukkan nama Anda : ");
        String[] choices = {"Cowok", "Cewek", "Exit"};
       
        String Cowok="Cowok";
        String Cewek="Cewek";
        while (true) {
            int response = JOptionPane.showOptionDialog(
                               null                      
                             , "Apakah anda cowok atau cewek?"  
                             , "Gender"              
                             , JOptionPane.YES_NO_OPTION
                             , JOptionPane.QUESTION_MESSAGE
                             , null                      
                             , choices    
                             , "Exit"  
                           );
        switch(response){
            case 0: gender="Brada";  
                break;
            case 1: gender="Sista";
                break;
            default : System.exit(0);
        }
    do{
        menU(inpBil());
    }
    while(true);
        }
  }
}

Konversi Inputan menggunakan Radio Button


Kali ini saya akan menunjukan anda suatu Konversi Inputan menggunakan Radio Button dalam bentuk PHP. Monggo silahkan lihat codingnya :D

<?php
error_reporting(0);
$des = $_REQUEST['des'];//deklarasi var desimal
$option = $_REQUEST['option'];//deklarasi var pilihan
//Membuat function bin untuk konversi ke biner
    function bin($bil){
      $decimal= $bil;
      $ori=$decimal;;
      while ($decimal>0){ //Looping memutuskan apakah inputan 1 atau 0 yang ditampilkan
                    if($decimal%2 == 0){ // menampbah 0
                        $binary .= 0; //$binary=0+$binary
                        $decimal /= 2; //$decimal=$decimal/2
                    }
                    else{   //menambah 1
                        $binary .= 1; //$binary=1+$binary
                        $decimal = ($decimal/2)-0.5;

                    }
                }
                $result = strrev($binary);
      return "Biner dari : $ori adalah : $result <br/>"; //funngsi ini mereturn hasil
    }
//Membuat function oct untuk konversi ke octal
    function oct($bil){
        $des= $bil;
        $ori=$des;
        $oct='';
        while($des>0){
            $hasil=$des%8;
                switch($hasil){
                    case 0: $oct.="0"; break;
                    case 1: $oct.="1"; break;
                    case 2: $oct.="2"; break;
                    case 3: $oct.="3"; break;
                    case 4: $oct.="4"; break;
                    case 5: $oct.="5"; break;
                    case 6: $oct.="6"; break;
                    case 7: $oct.="7"; break;
                    default : break;
                }
                if($des/8==0){
                    $sisa=($des%8);
                    $des=$sisa;
                }
                else{
                    $sisa=($des/8);
                    $des=$sisa%8;
                }
        }
        $result = strrev($oct);
         return "Octal dari : $ori adalah : $result <br/>"; //funngsi ini mereturn hasil
    }
//Membuat function hex untuk konversi ke hexa
    function hex($bil){
        $des= $bil;
        $ori=$des;
        $hex='';
        while($des>0){
        $hasil=$des%16;
            switch($hasil){
                case 0: $hex.="0"; break;
                case 1: $hex.="1"; break;
                case 2: $hex.="2"; break;
                case 3: $hex.="3"; break;
                case 4: $hex.="4"; break;
                case 5: $hex.="5"; break;
                case 6: $hex.="6"; break;
                case 7: $hex.="7"; break;
                case 8: $hex.="8"; break;
                case 9: $hex.="9"; break;
                case 10: $hex.="A"; break;
                case 11: $hex.="B"; break;
                case 12: $hex.="C"; break;
                case 13: $hex.="D"; break;
                case 14: $hex.="E"; break;
                case 15: $hex.="F";
                default : break;
            }
            if($des/16==0){
                $sisa=($des%16);
                $des=$sisa;
            }
            else{
                $sisa=($des/16);
                $des=$sisa%16;
            }
            }
         $result = strrev($hex);
         return "Hexa dari : $ori adalah : $result <br/>"; //funngsi ini mereturn hasil
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Converter Option for Biner by Firayz</title>
    </head>
    <body>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>"
                method="post" name="form1">
            <p>Inputkan bilangan desimal :
                <input type="text" name="des" value="<?php echo $des ?>" /></p>
            <p>Pilih konversi : <br/>
                <input type="radio" name="option" value="bin"
                    <?php ($option=="bin") ? print 'checked=""': print ''; ?>/>
                        Desimal to Biner<br/>
                <input type="radio" name="option" value="hex"
                    <?php ($option=="hex") ? print 'checked=""': print ''; ?>/>
                        Desimal to Hexa<br/>
                <input type="radio" name="option" value="oct"
                    <?php ($option=="oct") ? print 'checked=""': print ''; ?>/>
                        Desimal to Octal<br/>
            </p>
            <input type="submit" name="submit" value="Submit"/>
        </form>
        <?php
            if(isset($_POST['des'])){ //apakah data tersubmit?
                /*mambuat variable untuk menyimpan data yang dikirim*/
                $des = $_REQUEST['des'];
                $option = $_REQUEST['option'];
                //cek apakah data yang dikirim tidak kosong ?
                if($des=='' || $option==''){
                    echo '<h2>Maaf data Kurang Lengkap</h2>';
                }
                else{
                    //cek jenis kelamin
                    switch($option){
                        case 'bin' : echo "<h3>".bin($des)."</h3>"; break;
                        case 'hex' : echo "<h3>".hex($des)."</h3>"; break;
                        case 'oct' : echo "<h3>".oct($des)."</h3>"; break;
                        default : break;
                    }
                }
                echo "<a href='".$_SERVER['PHP_SELF']."'>Reset</a>"; //hasil
            }
         ?>
    </body>
</html>