Mohon maaf, mungkin terdapat beberpa tulisan yang contohnya tidak ada dan tidak dapat didownload bahkan sudah tidak dapat diterapkan. Hal ini dikarenakan tulisan tersebut dibuat babaerapa tahun lalu (jadul).

22 November 2017

Membuat Captcha Model Penjumlahan

CAPTCHA atau Captcha adalah suatu bentuk uji tantangan-tanggapan (challange-response test) yang digunakan dalam perkomputeran untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer (aplikasi bot-pen). Proses ini biasanya melibatkan suatu komputer (server) yang meminta seorang pengguna untuk menyelesaikan suatu uji sederhana yang dapat dihasilkan dan dinilai oleh komputer tersebut. Karena komputer lain tidak dapat memecahkan CAPTCHA, pengguna manapun yang dapat memberikan jawaban yang benar akan dianggap sebagai manusia.(sumber)

Biasanya captcha ini berada pada suatu form, entah itu form pendaftaran atau form postingan. Hal ini juga sebagai salah satu security dalam menghindari proses yang secara terus menerus (looping forever) yang biasanya dilakukan oleh mesin (komputer / sistem). Dengan kata lain, captcha ini merupakan salah satu validasi yang memastikan bahwa yang sedan melakukan aktifitas adalah manusia, bukan sistem komputer.

Sering kita menjumpai jenis captcha, umumnya kita melihat captcha milik google. Modelnya pun bermacam macam, dari validasi penulisan kata, gambar bahkan nomer. Nah, pada kali ini Kita akan membuat captcha sederhana buatan kita sendiri. Yakni menggunakan perhitungan matematika :)

Sebelum membuat, Kita harus memahami pembuatan form menggunakan PHP secara dasarnya. Kali ini kita hanya membuat 1 textbox dan 1 tombol submit saja guna pengetikan hasil perhitungan dan proses validasi captcha yang diinginkan.
<?php
    $_SESSION['n1'] = rand(1,99); //mendapatkan nilai 1
    $_SESSION['n2'] = rand(1,9); //mendapatkan nilai 2
    $_SESSION['hasil'] = $_SESSION['n1']+$_SESSION['n2']; //menjumlahkan nilai 1 dan nilai 2
?>
Code di atas merupakan fungsi session yakni sebuah fungsi yang dapat menyimpan nilai sementara pada browser dan fungsi ini terus bekerja hingga browser yang digunakan di close. Letakkan code di atas pada bagian atas file yang digunakan. Session kali ini menggunakan 3 buah nama yakni
  • n1 yang berfungsi menyimpan nilai pertama.
  • n2 yang berfungsi menyimpan nilan kedua.
  • hasil yang berfungsi menjumlahkan nilai pertama dan kedua. Anda juga bebas mengganti fusngsi matematikanya, baik itu diubah menjadi pengurangan, perkalian atau lain sebagainya.
sedangkan rand merupakan fungsi untuk mengacak suatu angka yang sudah ditentukan. Pada contoh di atas, n1 adalah angka 1 hingga 99 dan n2 adalah angka dari 1 hingga 9. Setelah itu, kita buat form nya yang meliputi textbox dan tombol submit.
<form action="?page=action" method="post">
 <table style="font-family:monospace;font-size: 13px;" border="0" width="455">
        <tr>
   <td valign="top">Berapa <?php echo "".$_SESSION[n1]." + ".$_SESSION[n2]."?"; ?></td>
   <td valign="top">:</td>
   <td><input name="captcha" type="text" size="25" placeholder="<?php echo $_SESSION[n1]."+".$_SESSION[n2]."="; ?>"/>
       <input type="hidden" name="captcha2" size="5" maxlength="5" value="<?php echo $_SESSION[hasil]; ?>""/><br/>
  </tr> 
  <tr colspan="4">
   <td><input type="submit" name="simpan" value="Eksekusi"/></td>
  </tr>   
  </tbody>
 </table>
</form>
Potongan code di atas berfungsi untuk menampilkan form yang sebelumnya telah dijelaskan. Penulis menggunakan <table> agar tampilan menarik untuk dilihat. Sedangkan fungsi session, sudah Kita bahas sebelumnya. Setelah selesai, sekarang kita tuliskan kode yang berfungsi untuk melakukan eksekusi captcha di atas. Letakkan code berikut ini pada bagian paling bawah file yang digunakan.
<?php
    //apabila tombol submit ditekan
    if($_POST['simpan']=="Eksekusi"){
        //apabila penjumlahan dan inputan tidak sama
        if(($_POST['captcha'] != $_POST['captcha2'])){
            echo "hasilnya tidak tepat";
        }
        //apabila penjumlahan dan inputan sama
        else{
            echo "Hasilnya tepat";
        }
    }    
?>
Apabila semua code sudah selesai tertulis, silahkan simpan dengan nama terserah Anda namun menggunakan extensi .php dan letakkan file tersebut pada hosting, baik online ataupun offline untuk mencoba eksekusi. Untuk lebih jelasnya, Anda dapat melihat halaman contoh dengan menekan tombol contoh di bawah ini atau juga bisa mendownloadnya. Selamat mencoba dan semoga berhasil.

No comments:

Post a Comment