[PHP] Base Converter Dengan Informasi Pengguna
08.01Di sini kita mempelajari bagaimana penggunaan method GET, POST dan juga interaksi PHP dengan form. Perlu diketahui bahwa secara dasar PHP tidak mempunyai ke GET dan POST itu sendiri. GET dan POST disediakan oleh web server. Begitu halnya dengan variabel SESSION dan juga beberapa variabel global lainya.
Hanya ada dua file yang dibutuhkan, file pertama berfungsi seperti login, file kedua berfungsi untuk konversi basis bilangan.
e.g:
Pertama kita akan dihadapkan pada interface login seperti dibawah ini, kita harus mengisi nama dan juga memilih jenis kelamin (gender) kita.
Setelah itu akan ada pesan selamat datang, apabila gender yang dipilih perempuan, maka panggilanya adalah mbak.
Lalu kita proses interface ini dengan inputan kita.
Apabila kita hanya menginputkan bilangan desimal tanpa memilih jenis konversi maka akan ada peringatan bahwa kita belum memilih jenis konversi.
Kita contohkan memasukkan angka 78 dengan jenis konversi binary.
Kita contohkan memasukkan angka 78 dengan jenis konversi octal.
Kita contohkan memasukkan angka 78 dengan jenis konversi hexadecimal. Jangan menulisnya hexa saja, karena hexa itu 6, sedangkan hexadecimal baru 16
Setelah itu kita coba kembali ke halaman kita memasukkan nama, masukkan nama (contohnya Aditya P), dengan gender laki-laki.
Ini hasil apabila kita menginputkan gender laki-laki, maka panggilanya adalah mas.
Penasaran bagaimana semua proses ini terjadi, lihat source code berikut.
validator.php
<?php
error_reporting(0);
if (isset($_POST['submit'])){
$nama=$_REQUEST['nama'];
if (isset($_POST['gender'])){
$gender=$_REQUEST['gender'];
}
else{
$gender='';
}
$cek='';
}
else{
$nama='';
$gender='';
$cek="Harus Diisi Lengkap Ya... :)";
}
if(!$gender){
$err = "Gender belum dipilih";
}
if(!$nama){
$err = "Nama belum diisi";
}
if(!$err){
header("location: semuakonversi.php?name=$nama&gender=$gender");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div class="area">
<h1><?php echo $cek?></h1><br>
<h2><?php echo $err?></h2>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form1" class="formap">
<p> nama : <input type="text" name="nama" value="<?php echo $_nama ?>"/></p>
<p> jenis kelamin : <input type="radio" name="gender" value="L"
<?php ($gender=="L")? print 'checked=""' : print ''; ?>/>
laki-laki
<input type="radio" name="gender" value="P"
<?php ($gender=="P")? print 'checked=""' : print ''; ?>/>
perempuan</p>
<input type="submit" name="submit" value="submit" />
</form>
<?php
if(isset($_POST['submit'])){ //apakah data tersubmit?
/*membuat variabel untuk menyimpan data yang terkirim*/
$nama=$_REQUEST['nama'];
if(isset($_POST['gender'])){
$gender=$_REQUEST['gender'];
}
else{
$gender='';
}
//cek apakah data yg dikirim tdk kosong
if($nama==''|| $gender==''){
echo '<h2> Maaf data kurang lengkap!</h2>';
}else{
/*cek jenis kelamin*/
if ($gender=='L'){
echo '<h2> Selamat datang bro, '.$nama.'!!<h2>';
}else{
echo '<h2> Selamat datang sis, '.$nama.'!!<h2>';
}
}
echo "<a href='".$_SERVER['PHP_SELF']."'> RESET </a>"; //hasil
}
?>
</div>
</body>
</html>
semuakonversi.phperror_reporting(0);
if (isset($_POST['submit'])){
$nama=$_REQUEST['nama'];
if (isset($_POST['gender'])){
$gender=$_REQUEST['gender'];
}
else{
$gender='';
}
$cek='';
}
else{
$nama='';
$gender='';
$cek="Harus Diisi Lengkap Ya... :)";
}
if(!$gender){
$err = "Gender belum dipilih";
}
if(!$nama){
$err = "Nama belum diisi";
}
if(!$err){
header("location: semuakonversi.php?name=$nama&gender=$gender");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div class="area">
<h1><?php echo $cek?></h1><br>
<h2><?php echo $err?></h2>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form1" class="formap">
<p> nama : <input type="text" name="nama" value="<?php echo $_nama ?>"/></p>
<p> jenis kelamin : <input type="radio" name="gender" value="L"
<?php ($gender=="L")? print 'checked=""' : print ''; ?>/>
laki-laki
<input type="radio" name="gender" value="P"
<?php ($gender=="P")? print 'checked=""' : print ''; ?>/>
perempuan</p>
<input type="submit" name="submit" value="submit" />
</form>
<?php
if(isset($_POST['submit'])){ //apakah data tersubmit?
/*membuat variabel untuk menyimpan data yang terkirim*/
$nama=$_REQUEST['nama'];
if(isset($_POST['gender'])){
$gender=$_REQUEST['gender'];
}
else{
$gender='';
}
//cek apakah data yg dikirim tdk kosong
if($nama==''|| $gender==''){
echo '<h2> Maaf data kurang lengkap!</h2>';
}else{
/*cek jenis kelamin*/
if ($gender=='L'){
echo '<h2> Selamat datang bro, '.$nama.'!!<h2>';
}else{
echo '<h2> Selamat datang sis, '.$nama.'!!<h2>';
}
}
echo "<a href='".$_SERVER['PHP_SELF']."'> RESET </a>"; //hasil
}
?>
</div>
</body>
</html>
<?php
error_reporting(0);
if(isset($_GET['decimal'])){
$des=$_GET['decimal'];
$dasli = $des;
$base = $_GET['rdbKonversi'];
if(preg_match("/[^0-9]/", $des)){
echo "Inputtan tidak valid";
exit;
}
$hex="";
while($des > 0){
$hasil = $des % $base;
if($des < 1){
$hasil = $des;
$des = 0;
}
$des = $des/$base;
switch ($hasil){//di konversikan ke hexa
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"; break;
default:break;
}
}
$result = strrev($hex);
}
?>
<?php
$name = $_GET['name'] ? $_GET['name'] : "anonymous";
$gender = $_GET['gender'] ? $_GET['gender'] : "N";
$salutation = $gender == "P" ? "mbak" : "mas";
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Selamat datang <?php echo $salutation?> <?php echo $name ?></h1>
<div class="area">
<form action="SemuaKonversi.php" method="Get" class="formap">
<input type="hidden" name="name" value="<?php echo $_GET['name'] ?>"/>
<input type="hidden" name="gender" value="<?php echo $_GET['gender']?>"/>
<table>
<tr>
<td>Decimal</td><td>:</td><td><input type="text" name="decimal"/></td>
</tr>
<tr>
<td><input type="radio" name="rdbKonversi" value="2"/></td><td></td><td>Binary</td>
</tr>
<tr>
<td><input type="radio" name="rdbKonversi" value="8"/></td><td></td><td>Octal</td>
</tr>
<tr>
<td><input type="radio" name="rdbKonversi" value="16"/></td><td></td><td>Hexadecimal</td>
</tr>
<tr><td colspan="3" align="center"><input type="submit" value="Convert"/></td></tr>
</table>
</form>
<?php
$dec = $_GET['decimal'];
$base = $_GET['rdbKonversi'];
if($result){
switch($base){
case 2:
$hb = "Binary";
break;
case 8:
$hb = "Octal";
break;
case 16:
$hb = "Hexadecimal";
}
echo "<h2>$dec dalam $hb adalah : $result</h2>";
}
if(!$dec){
echo "<h2>Inputtan anda kosong</h2>";
}
if(!$base){
echo "<h2>Anda belum memilih jenis konversi</h2>";
}
?>
</div>
</body>
</html>
Terima kasih, dan selamat mencoba
error_reporting(0);
if(isset($_GET['decimal'])){
$des=$_GET['decimal'];
$dasli = $des;
$base = $_GET['rdbKonversi'];
if(preg_match("/[^0-9]/", $des)){
echo "Inputtan tidak valid";
exit;
}
$hex="";
while($des > 0){
$hasil = $des % $base;
if($des < 1){
$hasil = $des;
$des = 0;
}
$des = $des/$base;
switch ($hasil){//di konversikan ke hexa
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"; break;
default:break;
}
}
$result = strrev($hex);
}
?>
<?php
$name = $_GET['name'] ? $_GET['name'] : "anonymous";
$gender = $_GET['gender'] ? $_GET['gender'] : "N";
$salutation = $gender == "P" ? "mbak" : "mas";
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Selamat datang <?php echo $salutation?> <?php echo $name ?></h1>
<div class="area">
<form action="SemuaKonversi.php" method="Get" class="formap">
<input type="hidden" name="name" value="<?php echo $_GET['name'] ?>"/>
<input type="hidden" name="gender" value="<?php echo $_GET['gender']?>"/>
<table>
<tr>
<td>Decimal</td><td>:</td><td><input type="text" name="decimal"/></td>
</tr>
<tr>
<td><input type="radio" name="rdbKonversi" value="2"/></td><td></td><td>Binary</td>
</tr>
<tr>
<td><input type="radio" name="rdbKonversi" value="8"/></td><td></td><td>Octal</td>
</tr>
<tr>
<td><input type="radio" name="rdbKonversi" value="16"/></td><td></td><td>Hexadecimal</td>
</tr>
<tr><td colspan="3" align="center"><input type="submit" value="Convert"/></td></tr>
</table>
</form>
<?php
$dec = $_GET['decimal'];
$base = $_GET['rdbKonversi'];
if($result){
switch($base){
case 2:
$hb = "Binary";
break;
case 8:
$hb = "Octal";
break;
case 16:
$hb = "Hexadecimal";
}
echo "<h2>$dec dalam $hb adalah : $result</h2>";
}
if(!$dec){
echo "<h2>Inputtan anda kosong</h2>";
}
if(!$base){
echo "<h2>Anda belum memilih jenis konversi</h2>";
}
?>
</div>
</body>
</html>
0 komentar