Minggu, 09 September 2012

Buat posting yang kali ini saya bakalan bahas tentang Konversi bilangan yang menggunakan log in menggunakan PHP.


1. Kita harus buat halaman log innya dulu, halaman log ini, saya beri nama validator, ini scriptnya :


<!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='Selamat datang di halaman konversi berikut<br>Masukkan nama anda di bawah ini';

}

?>

<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('D:\PICT\conan\ai.jpg') no-repeat;

}

.a{

padding-top: 25px;

color: blueviolet;

font-family: snap itc;

text-align: center;

text-shadow: 4px 0px 5px blue;

}

.b{

color:blue;

text-align: center;

font-family: Arial ;

}

.c {

color:skyblue;

text-align: center;

font-family: arachind;

}

form input.highlight{

background:red;


padding: 5px;

}

form input.highlight:focus {

background:snow;


}

</style>

</head>

<body>

<h1 class='a'><?php echo $cek ?></h1>

<br>

<form action="Konversi.php" method="post" name="form1">

<p>

<h3 class='b'>

Nama : <input class='highlight' placeholder="Insert Your Name Here" required="required" type="text" name="nama" size ="30" value="<?php echo $nama ?>"/></h3>

</p>

<p>

<h3 class='c'>

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="NEXT"></center>

</form>

</body>


Dari coding tersebut maka akan tampil tampilan seperti berikut

jika kolom jenis kelamin tidak di isi



2. Nah sekarang kita buat proses konversinya, jadi kita harus punya 2 php web page (1 sebagai validator, dan yang ini sebagai halaman proses konversinya). Pada page yang ini saya beri nama konversi bilangan, kita lihat codingnya saja:<!--

To change this template, choose Tools | Templates

and open the template in the editor.

-->

<!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('D:\PICT\conan\ah-h.jpg');

}

a {

width: 100px;

border: 2px aquamarine;

font:12px;

font-weight: bold;

color: burlywood;

margin: 20px;

text-align: center;

padding: 10px;

border-radius: 12px;

-webkit-border-radius: 12px;

background: cadetblue;

}

a:hover{

background: chartreuse;

}

a:active{

color: #990000;

}

.b{

color: lightgreen;

}

.bayangan1{

font-family:Calibri;

font-weight:bold;

color: chocolate;

}

form input.highlight{

background:  coral;

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>This page for "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('Isi 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>

Hello My brother, $nama :)</h1>

";

}

else{

echo"<br><h1>

Hello My sister, $nama :)</h1>

";

}

}

}

?>

<!-- End proses pilih Gender -->

</td>

</tr>

</table>

<table border="10" 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>

Insert decimal number here </h2>

<input class='highlight' placeholder="Desimal" required="required" type="text" name="decimal" size ="25" value="<?php echo $decimal ?>"/><br>

<h2>

Pilih Proses 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 ''; ?>/>

Octal<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('Pilih dahulu proses konversinya')</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 ("Silahkan hanya menginputkan bilangan desimal");

}

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>

Binernya 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>

Hexanya 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;

case 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>

Octalnya adalah $result.</h2>";

}

else{

}

}

}

}

}

echo "<br><h2>

<a href='Validator.php'>RESET</a></h2>

<br><br>";

?>

<!-- End proses Konversi -->

</td>

</tr>

</table>

</body>

</html>
Dari hasil coding tersebut kita bisa dapatkan tampilan seperti berikut ini




















 Dibawah ini adalah sebuah project Java yang menggunakan "JOption"

Tampilan pertama adalah tampilan penginputan nama kalau di isi dengan benar, maka kita akan menuju ke penginputan jenis kelamin dan jika salah kita akan diberi peringatan untuk mengisinya.

Tampilan yang di isi dengan benar :




 Tampilan yang diisi tidak sesuai yang diinginkan :





Setelah mengisi nama selesai, kita akan menuju ke penginputan jenis kelamin :



Jika kita tidak menginputkan jenis kelamin atau menekan tombol "cancel" maka akan muncul peringatan seperti dibawah ini :





 Setelah kita sukses di penginputan jenis kelamin kita akan memasuki menu seperti di bawah ini :



Menu Pertama Biner:
Setelah kita menekan menu biner maka muncul seperti dibawah ini :





Menu Kedua Hexa:
Setelah kita menekan menu hexa maka muncul seperti dibawah ini :





Menu Ketiga Octal:
Setelah kita menekan menu octal maka muncul seperti dibawah ini :





Menu Keempat Terbilang:
Setelah kita menekan menu terbilang maka muncul seperti dibawah ini :






Menu Kelima Pecahan:
Setelah kita menekan menu pecahan maka muncul seperti dibawah ini :






Menu Keenam Back:
Menu Keenam ini adalah menu untuk menuju ke penginputan nama

 Menu Ketujuh Keluar:
menu ketujuh ini adalah menu untuk menutup program ini



Berikut ini adalah script dari program di atas



import java.awt.HeadlessException;
import java.lang.NumberFormatException;
import javax.swing.JOptionPane;
public class MenudariJoption {
    private static String name;
    private static String kelamin;
    private static String gender;
    private static String des;
    private static int validDes;
     static StringBuilder A= new StringBuilder();
     static StringBuilder P= new StringBuilder();
     static StringBuilder W= new StringBuilder();
     //stringbuilder untuk memunculakan hasil akhir dari hasil konversi supaya bisa di tampilkan di JOption
     //deklarasi

    public static void keBiner(int n){
        if(n>1){
            keBiner(n/2);
        }
        System.out.println(n%2);
           A.append(n%2);
           //script untuk menghitung nilai desimal ke biner
    }
     public static void keHexa(int n) {
        char[] daftarHexa = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
            '9', 'A', 'B', 'C', 'D', 'E', 'F'};
        if (n > 1) {
            keHexa(n / 16);
        }
        System.out.print(daftarHexa[n % 16]);
           P.append(n%16);
           //script untuk menghitung nilai desimal ke hexa
    }
     public static void keOctal(int n) {
        char[] daftarOctal = {'0', '1', '2', '3', '4', '5', '6', '7'};
        if (n > 1) {
            keOctal(n / 8);
        }
        System.out.print(daftarOctal[n % 8]);
           W.append(n%8);
           //script untuk menghitung nilai desimal ke Octal
    }
    public static void inputDesJOption(){
    des = JOptionPane.showInputDialog("Masukkan " + "Bilangan Desimalnya = ");
    try{
    if(des.isEmpty()){
        JOptionPane.showMessageDialog(null,
                "wajib menginputkan angka  !!");
             inputDesJOption();//memberi input nama
    }

    }catch(NullPointerException ade){
        JOptionPane.showMessageDialog(null,
               "Mohon diinputkan !!");
        inputDesJOption();//kembali inputkan nama
    }
    //script di atas ini sebagai tempat penginputan angka desimal agar bisa konversikan
    }
    public static void eksepsiInpBiner(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
        JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ "adalah: " +A);
        keBiner(validDes);
        System.out.println();

       }catch(NumberFormatException ase){
           JOptionPane.showMessageDialog(null, des
                   +" bukan angka !"
                   + "\nMasukkan angka saja !!");
           eksepsiInpBiner();
           //ini adalah script hasil akhir yang berupa bilangan biner
       }
    }
    public static void eksepsiInpHexa(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
        JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal" +des+ " adalah : " +P);
        keHexa(validDes);
        System.out.println();

       }catch(NumberFormatException ase){
           JOptionPane.showMessageDialog(null, des
                   +" bukan angka !"
                   + "\nMasukkan angka saja !!");
           eksepsiInpHexa();
             //ini adalah script hasil akhir yang berupa bilangan hexa
        }
    }
    public static void eksepsiInpOctal(){
    inputDesJOption();
    try {
        validDes=Integer.parseInt(des);
         JOptionPane.showMessageDialog(null, "Hasil dari perubahan desimal " +des+ "adalah : " +W);
        keOctal(validDes);
        System.out.println();

       }catch(NumberFormatException ase){
           JOptionPane.showMessageDialog(null, des
                   +" bukan angka !"
                   + "\nMasukkan angka saja !!");
           eksepsiInpOctal();
             //ini adalah script hasil akhir yang berupa bilangan Octal
       }
    }
    public static void pecahan(){
        int desimal;


        String str=JOptionPane.showInputDialog("Masukkan Angka");
        desimal=Integer.parseInt(str);
        int j100rbu, j10rbu, j1rbu, j1rtus, j10, j1;
        j100rbu=desimal/100000;
        desimal%=100000;
        j10rbu=desimal/10000;
        desimal%=10000;
        j1rbu=desimal/1000;
        desimal%=1000;
        j1rtus=desimal/100;
        desimal%=100;
        j10=desimal/10;
        desimal%=10;
        j1=desimal/1;
        desimal%=1;


            JOptionPane.showMessageDialog(null,
            '\n'+"Jumlah ratusan ribu = "+j100rbu+
            '\n'+"Jumlah puluhan ribu = "+j10rbu+
            '\n'+"Jumlah seribu = " +j1rbu+
            '\n'+"Jumlah ratusan = "+j1rtus+
            '\n'+"Jumlah puluhan = "+j10+
            '\n'+"Jumlah satuan = "+j1
                    );
        //ini Script untuk menampilakan menu pecahan
}
          public String konversi (int angka){
            String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
          public String pecahan (int angka){
            String [] bilangan ={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas"};
String temp=" ";
if (angka<12){
temp = "" + bilangan[angka];
}
else if(angka<20){
temp = konversi(angka-10) + " belas";
}
else if(angka<100){
temp = konversi(angka/10) + " puluh" + konversi(angka%10);
}
else if(angka<200){
temp = "seratus" + konversi(angka-100);
}
else if(angka<1000){
temp = konversi(angka/100) + "ratus" + konversi(angka%100);
}
else if(angka<2000){
temp = "seribu"+ konversi(angka-1000);
}
else if(angka<1000000){
temp = konversi(angka/1000) + " ribu" + konversi (angka%1000);
}
return temp;
}
    public static void outHasilBiner(){
            eksepsiInpBiner();
    }
     public static void outHasilHexa(){
            eksepsiInpHexa();
    }
      public static void outHasilOctal(){
            eksepsiInpOctal();
    }
    public static void inpNama(){
    name=JOptionPane.showInputDialog("Masukkan "+ "Nama Anda : ");

    try{
    if(name.isEmpty()){
        JOptionPane.showMessageDialog(null,
                "Nama Harus Diisi  !!");
             inpNama();//membeli input nama
    }

    }catch(NullPointerException ade){
        JOptionPane.showMessageDialog(null,
               "Mohon diisi Namanya !!");
        inpNama();//kembali input nama
    }
    //sebuah script untuk menampilkan sebuah pengimputan nama
    }

public static void jenisKelamin(){
        gender=JOptionPane.showInputDialog("Masukkan Jenis Kelamin Anda (L/P) : ");
        try{
            if(gender.isEmpty()){
                JOptionPane.showMessageDialog(null, "Harus diisi !!");
                jenisKelamin();
            }
        }
        catch(NullPointerException ase){
            JOptionPane.showMessageDialog(null, "Masukan Jenis Kelamin Anda !! ");
            jenisKelamin();
        }
        if ("L".equals(gender)) {
            kelamin="Brow, ";
        }
        else{
            if("P".equals(gender)){
                kelamin="Sist, ";
            }
            else{
                JOptionPane.showMessageDialog(null, "Hanya bisa diisi L/P saja !!");
                jenisKelamin();
            }
            //sebuah script untuk menginputkan jenis kelamin
        }

    }
public static void terbilang() {
try {
MenudariJoption num = new MenudariJoption();
int konvert = Integer.parseInt(JOptionPane.showInputDialog("Masukkan Nilai"));

if (konvert < 0 || konvert >999999) {
JOptionPane.showMessageDialog(null,"Angka di luar range!!!","WARNING",JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, num.konversi(konvert),"RESULT",JOptionPane.INFORMATION_MESSAGE);
}
}
catch(      HeadlessException | NumberFormatException e){
JOptionPane.showMessageDialog(null,"ERROR","WARNING",JOptionPane.ERROR_MESSAGE);
}
//script untuk menampilkan bilangan
}
    }

    public static void menuJOption(){
    //...Text untuk tombol.
        inpNama();
        jenisKelamin();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN" , "<<BACK>>", "<< KELUAR >>"};
    while (true)
        {
        int response = JOptionPane.showOptionDialog(
                null         //tengah window.
                , "Selamat Datang " +kelamin+name+" !! "
                + "\nPilih Konversi Bilangan dibawah ini ?"// Pesan
                    , "Konversi Bilangan" // Judul Bar
                , JOptionPane.YES_NO_OPTION // tipe pilihan
                , JOptionPane.PLAIN_MESSAGE // tipe pesan
                , null                      // icon(none)
                , pilihan                   // tombol text.
                , null // label tombol default
                                                    );
         //menggunakan switch untuk mengecek tombol yang ditekan.
                switch(response){
                    case 0:
                            outHasilBiner();
                            break;
                    case 1:
                            outHasilHexa();                    
                            break;
                    case 2:
                            outHasilOctal();
                            break;
                    case 3: terbilang();
                             break;
                    case 4: pecahan();
                            break;
                    case 5:inpNama();
                            jenisKelamin();
                            break;
                    case 6:
                    case -1:
        //antara tombol (3) dan close box(-1) ditangani disini.
                    System.exit(0); //keluar looping
                    default:
        //...Jika disini kita ada kesalahan,
                    JOptionPane.showMessageDialog(null, "response salah"
                            + response); break;
            }
        }
        //adalah menu tampilan yang berisikan semua script
    }
    public static void main(String[]args){
    menuJOption();
    }
}