Minggu, 09 September 2012


Konversi Bilangan Ke Biner, Hexa, Oktal (JOptionPane) Di JAVA


Untuk postingan saya kali ini, sebenarnya tidak terlalu berbeda jauh dari postingan ane yang sebelumnya. Intinya tetap sama, yaitu konversi bilangan desimal. Hanya saja, kali ini saya akan membagikan konversi desimal di JAVA.

Daripada terlalu banyak omong, langsung saja ke coding nya :


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

//memanggil kelas yang akan dipakai
import java.util.Scanner;
import javax.swing.JOptionPane;
//clas utama
public class Konversi_Bilangan_JOptionPane{
//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="Mbak";
        String Laki="Mas";
        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);
    }
    }
}

Di bawah ini adalah hasilnya :





Konversi Desimal ke Biner, Hexa, dan Oktal di PHP


Sebelum mengkonversikan bilangan, kita diminta untuk menuliskan nama dan memilih jenis kelamin. Dan jika salah satu dari itu ada yang tidak diisi, kita tidak akan bisa masuk ke area konversi bilangan. Jadi harus diisi semua.
Setelah itu, jika sudah masuk ke area konversi bilangan, konsepnya sama seperti saat akan masuk, kita diharuskan mengisi semua yang ada, jika tidak yaa jelas bilangan tidak akan di konversi.
Dan, kali ini bahasa yang kita gunakan ada 4 yaitu : HTML, CSS, Javascript, dan PHP.
Javascript disini memang tidak terlalu mendominasi, fungsinya disini hanya untuk menampilkan 'alert' saja.
Dimana letak javascriptnya ??? Nanti akan Anda temukan setelah Anda menuliskan code-code  di bawah ini.

Daripada kelamaan, langsung aja kita lihat codenya :


1. Buka Netbeans, buat New PHP Web Page. Terserah mau Anda letakkan dimana saja. Beri nama misalnya : Validator.php. Apabila anda ingin merubah backgroundnya, anda bisa mengganti (background:url('3.jpg')).
Dan anda bisa mengganti 3.jpg dengan file anda Usahakan file gambar tersebut anda letakkan dalam satu folder.



<!DOCTYPE html>
<?php
if(isset($_POST['submit'])){//isset : penekanan form
$nama=$_REQUEST['nama'];
    if(isset($_POST['gender'])){
        $gender=$_REQUEST['gender'];
    }
    else{
        $gender='';
    }
$cek='';
}
else{
    $nama='';
    $gender='';
    $cek='Sebelum Masuk, Silahkan Isi Form Di Bawah ini Dahulu';
}
?>

<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Konversi Bilangan ke Biner,Oktal,Hexa</title>
                <style type="text/css">
            body{
                background: url('3.jpg') no-repeat;
            }
            .a{                               
                color:lightblue;
                text-align: center;
            }
            .b{                
                color:blue;
                text-align: center;
            }
            form input.highlight{
                background: aquamarine;                
                border-radius:5px;
                padding: 5px;
            }
            form input.highlight:focus {                
                background: whitesmoke;
                border-radius:5px;
                box-shadow:2px 2px 5px blue;
            }
        </style>
    </head>
    <body>
       <h1 class='a'><?php echo $cek ?></h1>
<br>
        <form action="Konversi_bilangan.php" method="post" name="form1">
            <p>
<h3 class='b'>
Nama : <input class='highlight' placeholder="Masukkan Nama Anda disini" required="required" type="text" name="nama" size ="30" value="<?php echo $nama ?>"/></h3>
</p>
<p>
<h3 class='b'>
Jenis Kelamin : <br>
                <input type="radio" name="gender" value="L"
                               <?php ($gender=="L")? print 'checked=""' : print ''; ?>/>
                Laki-Laki<br>
                <input type="radio" name="gender" value="P"
                       <?php ($gender=="P")? print 'checked=""' : print ''; ?>/>
                Perempuan
            </h3>
</p>
<center><input type="submit" name="submit" value="Masuk" /></center>
        </form>
    </body>
</html>

2. Buat New PHP Web Page, dan letakkan pada satu folder yang sama dan beri nama misalnya : Konversi_Bilangan. Seperti yang di atas tadi, apabila ingin merubah backgroundnya, bisa anda ganti. Dan letakkan dalam folder yang sama.


<!DOCTYPE html><?php
if(isset($_POST['submit1'])){
$decimal=$_REQUEST['decimal'];
    if(isset($_POST['pilih'])){
        $pilih=$_REQUEST['pilih'];
    }
    else{
        $pilih='';
    }
}
else{
    $decimal='';
    $pilih='';
}
?>

<html>
    <head>
                <style type="text/css">
            body{
                background:url('3.jpg');
            }
            a {
                width: 230px;
                border: 5px solid blue;                
                font:18px;
                font-weight: bold;
                color: white;
                margin: 20px;
                text-align: center;
                padding: 10px;
                border-radius: 12px;                
                -webkit-border-radius: 12px;
                background: lightblue;                
            }
            a:hover{
                background: purple;
            }
            a:active{
                color: #990000;
            }
            .b{
                color: lightgreen;                                
            }
            
                .bayangan1{                               
                font-family:Calibri;
                font-weight:bold;
                color:blue;
            }
            form input.highlight{
                background: aquamarine;                
                border-radius:5px;
                padding: 5px;
            }
            form input.highlight:focus {
                border: solid 1px #D9AD00;                
                border-radius:5px;
                box-shadow:2px 2px 5px blue;
            }
        </style>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>

    <h1 class="b">
<center>Selamat Datang di Tempat Konversi Bilangan</center></h1>
<table border="0" width="900px" heigh="900px" align ="center">
<tr>
    <td align ="center">
    <!-- Proses Pilih Gender dari file Validator.php -->
    <?php
        if(isset ($_POST['submit'])){
            $nama=$_REQUEST['nama'];
            if(isset($_POST['gender'])){
                $gender=$_REQUEST['gender'];
            }
            else{
                $gender='';
            }
        }
        if(isset ($_POST['submit'])){
        if($nama==''|| $gender==''){// tanda || : OR
            echo"<script>
                 alert('Maaf data kurang lengkap ? Isi Nama dan Jenis Kelamin');
                 document.location.href='Validator.php';
                 </script>";//menggunakan javascript
        }
        else{
            //cek jenis kelamin
            //yang ini pakek petik dua
            if($gender=='L'){
                echo"<br><h1>
Selamat Datang Mas $nama !!</h1>
";
                
            }
            else{
                echo"<br><h1>
Selamat Datang Mbak $nama !!</h1>
";
            }
        }
        }
    ?>
    <!-- End proses pilih Gender -->
    </td>
    </tr>
</table>                        
    <table border="1" width="900px" heigh="900px" align ="center" class='bayangan1'>
<tr> 
    <td align ="center">
    <p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>
"
          method="POST" name="form1">
        <h2>
 Tuliskan nilai bilangan Desimal nya : </h2>
<input class='highlight' placeholder="Masukkan Bilangan Desimal disini" required="required" type="text" name="decimal" size ="25" value="<?php echo $decimal ?>"/><br>
        <h2>
 Pilih salah satu Konversi : <br>
        <input type="radio" name="pilih" value="B"
               <?php ($pilih=="B")? print 'checked=""' : print ''; ?>/>
        Biner<br>
        <input type="radio" name="pilih" value="H"
               <?php ($pilih=="H")? print 'checked=""' : print ''; ?>/>
        Hexa<br>
         <input type="radio" name="pilih" value="O"
               <?php ($pilih=="O")? print 'checked=""' : print ''; ?>/>
        Oktal<br>
        </h2>
<input type="submit" name="submit1" value="Konversikan"><br>
    </form>
    <!-- Proses Konversi -->
        <?php
        if(isset($_POST['submit1'])){//isset : penekanan form
        $decimal=$_REQUEST['decimal'];
            if(isset($_POST['pilih'])){
                $pilih=$_REQUEST['pilih&];
            }   
            else{
                $pilih='';
            }
        }
        else{
            $decimal='';
            $pilih='';
        }
        if(isset ($_POST['submit1'])){
        if($decimal==''|| $pilih==''){
            echo"<script>alert('Silahkan pilih dahulu konversi apa yang akan anda lakukan..')</script>";//menggunakan javascript
        }
        else{
            if($pilih=='B'){
            //Konversi ke Biner
            if (isset($_POST['decimal'])) {
                $decimal = $_POST['decimal'];
                $original = $_POST['decimal'];
                $binary = '';
                if (preg_match('/[^0-9]/',$decimal)) {
                        die ("Yang anda inputkan salah, seharusnya anda menginputkan bilangan desimal saja..");
                }
                else {
                    while ($decimal > 0) {
                        if ($decimal%2 == 0) {
                            $binary .= 0;
                            $decimal /= 2;
                        }
                        else {
                            $binary .= 1;
                            $decimal = ($decimal/2)-0.5;
                        }
                    }
                    $result = strrev($binary);
                    echo "<br><h2>
Bilangan decimal : $original jika dijadikan Biner hasilnya adalah $result.</h2>
";
                    }
                }
                else {

                }
            }
            else{
                    if($pilih=='H'){
                    //Konversi ke Hexa
                        if(isset($_POST['decimal'])){
                        $des=$_POST['decimal'];
                        $original=$_POST['decimal'];
                        $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);
                                    echo "<br><h2>
Bilangan decimal : $original jika dijadikan Hexadecimal hasilnya adalah $result.</h2>
";
                        }
                    }
                    else{
                        //Konversi ke Oktal
                         if(isset($_POST['decimal'])){
                         $des=$_POST['decimal'];
                         $original=$_POST['decimal'];
                         $octal='';
                         while ($des>0){
                         $hasil=$des%8;
                         switch($hasil){
                         case 0 : $octal.="0"; break;
                         case 1 : $octal.="1"; break;
                         case 2 : $octal.="2"; break;
                         case 3 : $octal.="3"; break;
                         case 4 : $octal.="4"; break;
                         case 5 : $octal.="5"; break;
                         care 6 : $octal.="6"; break;
                         case 7 : $octal.="7";
                         default:break;
                         }
                         if($des/8>0){
                            $sisa=($des/8);
                            $des=$sisa%8;
                            }
                            else{
                            $sisa=($des%8);
                            $des=$sisa;
                            }}
                            $result = strrev($octal);
                            echo "<br><h2>
Bilangan decimal : $original jika dijadikan Oktal hasilnya adalah $result.</h2>
";
                            }
                            else{

                            }
                    }
            }
        }
        }
        echo "<br><h2>
<a href='Validator.php'>RESET</a></h2>
<br><br>";
        ?>
    <!-- End proses Konversi -->
    </td>
    </tr>
</table>

    </body>
</html>

Jika semuanya sudah Anda lakukan, sekarang Anda coba jalankan. Jalankan file Validator.php , tekan Shift + F6 .
Untuk Hasilnya :

Ini adalah tampilan awalnya :


\
Anda harus mengisi nama dan jenis kelamin seperti di bawah ini, kalau tidak akan muncul notifikasi seperti di bawah ini :



Jika Anda selesai mengisi Nama dan Jenis Kelamin, setelah tekan masuk, langsung menuju Halaman Konversi : 



Kalau anda hanya mengisikan bilangan desimal tanpa mencentang konversinya, akan terjadi seperti ini :



Kalau Bilangan Desimal telah terisi dan sudah terpilih konversinya, akan tampil hasilnya :



Jika anda menekan reset, akan kembali ke halaman awal :