Membuat Halaman Web dengan fungsi CRUD dan Captcha


  • Tentang CRUD
          CRUD adalah singkatan dari Create, Read, Update dan Delete. CRUD adalah operasi dasar pada pengolahan data dengan menggunakan database.



  • Tentang Captcha
          Captcha adalah challange response-test yang digunakan untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer.


Contoh Modern Captcha

Dalam tutorial kali ini halaman web akan berisi Form Input Data Mahasiswa. Langkah-langkahnya yaitu :
1. Membuat databasenya dulu. Misalnya database dengan nama "poltek" dan nama tabel "mahasiswa". Isi dari tabel sebagai berikut :
    a. nim int
    b. nama varchar
    c. tg_lahir varchar
    d. alamat varchar
    e. telpon varchar
2. Setelah membuat database dan tabelnya, membuat halaman webnya dengan coding dibawah ini.
    a) Membuat koneksi dengan database poltek. 
        mysql_connect("localhost","root","") or die(mysql_error());
           mysql_select_db("poltek") or die(mysql_error());
     b) Menginisialisasi variable nim,nama,alamat,dll yang diset kosong dan memanggil fungsi               captcha dengan variable "$cap". Variable "$sql1" untuk mengambil data dari tabel   
        mahasiswa.  
          $error   ="";
          $cap     =captcha();
          $nim     ="";
          $nama    ="";
          $alamat  ="";
          $tgl     ="";
          $telp    ="";
          $no      =1;
          $sql1    =mysql_query("select * from mahasiswa");
     c) Membuat fungsi Captcha. Dengan panjang 6 digit. Variable $base untuk menyimpan                 huruf dan angka yang akan diacak. Fungsi while sebagai perulangan dari setiap huruf &           angka secara acak. 
        function captcha(){
          $panjangacak    =6;
          $base           ='ABCDEFGHKLMNOPQRSTWXYZ123456789';
          $max            =strlen($base)-1;
          $acak           ='';
          mt_srand((double)microtime()*1000000);
          while(strlen($acak)<$panjangacak){
          $acak.=$base{mt_rand(0,$max)};
          }
          return $acak;
          } 
    d) Membuat fungsi untuk menambah data inputan. Dengan mengambil inputan dari form               kemudian di tambahkan (insert) ke dalam database.
          function tambah(){
          $nim       =$_POST['nim'];
          $nama   =$_POST['nama'];
          $alamat    =$_POST['alamat'];
          $tgl       =$_POST['tgl'];
          $telp      =$_POST['telp'];
          mysql_query("insert into mahasiswa values('$nim','$nama','$tgl','$alamat','$telp')");
          header("location: ".$_SERVER['PHP_SELF']);
          }
   e) Membuat fungsi untuk mengedit data. Fungsi ini akan beraksi jika tombol edit ditekan.              Dengan memperbarui (update) data yang akan diubah sesuai variable nim yang terpilih.
         function edit(){
         $nim     =$_POST['nim'];
         $nama   =$_POST['nama'];
         $alamat    =$_POST['alamat'];
         $tgl       =$_POST['tgl'];
         $telp      =$_POST['telp'];
         mysql_query("update mahasiswa set nama='$nama',alamat='$alamat',tg_lahir='$tgl',telpon='$telp' where nim='$nim'");
         header("location: ".$_SERVER['PHP_SELF']);
         }
    f) Membuat proses untuk menambahkan data. Dengan memanggil fungsi tambah. Jika                  Captcha sesuai maka data akan bertambah. Jika salah maka akan muncul error                          bahwa "Captcha Tidak Sama". 
         if(isset($_POST['tambah'])){
         $captcha1    =$_POST['captcha1'];
         $captcha2    =$_POST['captcha2'];
         if($captcha1!==$captcha2){
         $error    ="Captcha Tidak Sama";
         }else{
         tambah();
         }
         }
   g) Membuat proses edit data. Dengan memanggil fungsi edit. Jika Captcha sesuai maka data          akan bertambah. Jika salah maka akan muncul error bahwa "Captcha Tidak Sama".
       if(isset($_POST['edit'])){
         $captcha1      =$_POST['captcha1'];
         $captcha2      =$_POST['captcha2'];
         if($captcha1!==$captcha2){
         $error   ="Captcha Tidak Sama";
         }else{
         edit();
         }
         }
   h) Membuat proses hapus data. Dengan memanggil fungsi hapus sesuai nim yang terpilih,              maka data di database akan terhapus.
       if(isset($_GET['hapus']) && !empty($_GET['hapus'])){
         $nim           =$_GET['hapus'];
         mysql_query("delete from mahasiswa where nim='$nim'");
         header("location: ".$_SERVER['PHP_SELF']);
         }

Coding lengkapnya ada dibawah ini.
<?php
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("poltek") or die(mysql_error());

$error   ="";
$cap     =captcha();
$nim     ="";
$nama    ="";
$alamat  ="";
$tgl     ="";
$telp    ="";
$no      =1;
$sql1    =mysql_query("select * from mahasiswa");

//=====================Fungsi Captcha=====================//
function captcha(){
         $panjangacak    =6;
         $base           ='ABCDEFGHKLMNOPQRSTWXYZ123456789';
         $max            =strlen($base)-1;
         $acak           ='';
         mt_srand((double)microtime()*1000000);
         while(strlen($acak)<$panjangacak){
         $acak.=$base{mt_rand(0,$max)};
         }
         return $acak;
}

//=====================Fungsi Tambah Data=====================//
function tambah(){
         $nim       =$_POST['nim'];
         $nama   =$_POST['nama'];
         $alamat    =$_POST['alamat'];
         $tgl       =$_POST['tgl'];
         $telp      =$_POST['telp'];
         mysql_query("insert into mahasiswa values('$nim','$nama','$tgl','$alamat','$telp')");
         header("location: ".$_SERVER['PHP_SELF']);
}

//=====================Fungsi Edit Data=====================//
function edit(){
         $nim     =$_POST['nim'];
         $nama   =$_POST['nama'];
         $alamat    =$_POST['alamat'];
         $tgl       =$_POST['tgl'];
         $telp      =$_POST['telp'];
         mysql_query("update mahasiswa set nama='$nama',alamat='$alamat',tg_lahir='$tgl',telpon='$telp' where nim='$nim'");
         header("location: ".$_SERVER['PHP_SELF']);
}

//=====================Proses Tambah Data=====================//
if(isset($_POST['tambah'])){
         $captcha1    =$_POST['captcha1'];
         $captcha2    =$_POST['captcha2'];
         if($captcha1!==$captcha2){
         $error    ="Captcha Tidak Sama";
         }else{
         tambah();
         }
}

//=====================Proses Edit Data=====================//
if(isset($_POST['edit'])){
         $captcha1      =$_POST['captcha1'];
         $captcha2      =$_POST['captcha2'];
         if($captcha1!==$captcha2){
         $error   ="Captcha Tidak Sama";
         }else{
         edit();
         }
}
if(isset($_GET['edit']) && !empty($_GET['edit'])){
         $nim           =$_GET['edit'];
         $data_row      =mysql_fetch_array(mysql_query("select * from mahasiswa where nim='$nim'"));
         $nim           =$data_row['nim'];
         $nama          =$data_row['nama'];
         $alamat        =$data_row['alamat'];
         $tgl           =$data_row['tg_lahir'];
         $telp          =$data_row['telpon'];
}

//=====================Proses Hapus Data=====================//
if(isset($_GET['hapus']) && !empty($_GET['hapus'])){
         $nim           =$_GET['hapus'];
         mysql_query("delete from mahasiswa where nim='$nim'");
         header("location: ".$_SERVER['PHP_SELF']);
}
?>
<html>
<head>
<title>UAS PEMROGRAMAN WEB 2</title>
</head>
<body>
<center>
<h1>POLITEKNIK KEDIRI</h1>
<h3>Jl. Mayor Bismo 27 Kediri 64121</h3>
</center>
<br>
<center><hr size=1>DATA MAHASISWA</center>
<br>
<form method="post" action="">
<table align="center" border="1">    
    <tr>
    <td>
    NIM
    </td>
    <td>
    <input type="number" name="nim" size="15" placeHolder="nim" value="<?php echo $nim;?>" />
    </td>
    </tr>
    <tr>
    <td>
    NAMA
    </td>
    <td>
    <input type="text" name="nama" size="20" placeHolder="nama" value="<?php echo $nama;?>" />
    </td>
    </tr>
    <tr>
    <td>
    ALAMAT
    </td>
    <td>
    <input type="text" name="alamat" size="20" placeHolder="alamat" value="<?php echo $alamat;?>" />
    </td>
    </tr>
    <tr>
    <td>
    TGL.LAHIR
    </td>
    <td>
    <input type="date" name="tgl" size="15" placeHolder="Tgl Lahir" value="<?php echo $tgl;?>" />
    </td>
    </tr>
    <tr>
    <td>
    NO.TELPON
    </td>
    <td>
    <input type="text" name="telp" size="15" placeHolder="no. telpon" value="<?php echo $telp;?>" />
    </td>
    </tr>    
</table>
<br>
<center>
<?php
echo "<input size='10' type='text' disabled value='".$cap."'>";
?>    
    <input type="hidden" name="captcha2" value="<?php echo $cap;?>" />
    <br>
    <input type="text" name="captcha1" size="10" placeHolder="captcha" />
    <br><br>
    <input type="submit" name="tambah" value="Simpan" />&nbsp;
    <input type="reset" value="Batal" />
    </center>
</form>
<?php echo $error;?>
<br />
<table align="center" border="1">
 <thead>
 <tr>
 <th>NO.</th>
 <th width="150">NIM</th>
 <th width="200">NAMA</th>
 <th width="200">ALAMAT</th>
 <th width="150">TGL.LAHIR</th>
 <th width="180">NO.TELP</th>
 <th width="150">AKSI</th>
 </tr>
 </thead>
 <tbody align="center">
 <?php
 while($data=mysql_fetch_array($sql1)){?>
 <tr>
 <td><?php echo $no;?></td>
 <td><?php echo $data['nim'];?></td>
 <td><?php echo $data['nama'];?></td>
 <td><?php echo $data['alamat'];?></td>
 <td><?php echo $data['tg_lahir'];?></td>
 <td><?php echo $data['telpon'];?></td>
 <td><a href="?edit=<?php echo $data['nim'];?>">Edit</a> || <a href="?hapus=<?php echo $data['nim'];?>">Hapus</a></td>
 </tr>
 <?php
 $no++;
 }
 ?>
 </tbody>
</table>
</body>

</html>

Hasil dari coding akan seperti dibawah ini.

Komentar

Postingan Populer