Layanan Service Aplikasi smsCAPTCHA pada Web
PHP Berbasis cURL dengan Menggunakan JSON
Format
1)Jonathan Narendra, 2)Suprihadi, 3)Yos Richard Beeh
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia Email : 1)[email protected], 2)[email protected],
Abstract
As the development of technology become more progressive , harmful programs like spam grow more rampant. By inserting comments in guestbook and website form, it can direct visitors to a link that can be harmful. Therefore, the captcha is used as a solution to resolve the is-sues. On this research, the author will create captcha service application via sms (short message service). This research uses waterfall method and built in PHP five with JSON Format and curl technology. The result of this research is the application can be used by all websites on the hosting that supports javascript.
Keywords: smsCAPTCHA, Code Verification, cURL, PHP
1 . Pendahuluan
Semakin banyaknya kegiatan dan kebutuhan orang akan internet, semakin banyak pula layanan yang disediakan. Salah satu yang sering dijumpai adalah form, baik pada saat melakukan registrasi, ketika akan memberikan komentar pada guestbook, dan lain-lain. Namun seiring berkembangnya teknologi, semakin banyak pula program Spam Comment yang bisa menyerang website atau blog dengan menyisipkan komentar pada guestbook dan form website tersebut yang isinya bisa berupa promosi atau bahkan mengarahkan pengunjung ke link-link yang dapat merugikan. Oleh karena itu diciptakan captcha sebagai security code untuk membedakan apakah yang sedang berinteraksi dengan form adalah mesin (bot) atau manusia. Salah satu tipe captcha yang banyak digunakan adalah captcha bertipe teks yang terdistorsi ke dalam gambar. Namun dengan semakin berkembangnya teknologi, captcha ini memiliki beberapa kelemahan, salah satunya adalah jika karakter captcha telalu sederhana kemungkinan para spammer bisa saja memakai software untuk mengenali tulisan yang ada di gambar dan kemudian menterjemahkannya ke dalam teks. Sebenarnya terdapat suatu teknik generate image agar karakter pada gambar tersebut menjadi sulit dibaca oleh program, namun
biasanya karakter captcha menjadi terlalu aneh dan tidak jelas bentuknya, sehingga pengunjung website pun dibuat repot. Data ini diperoleh dari kuesioner yang telah disebarkan pada tahap analisis kebutuhan sistem. Pada artikel ini akan menitikberatkan fitur service captcha yang dimiliki oleh layanan smsCAPTCHA, dengan tujuan agar aplikasi tersebut dapat juga digunakan oleh website atau blog lain tanpa harus membeli modem sendiri, server, dan tanpa menuliskan coding smsCAPTCHA ke dalam website yang dimiliki.
2. Kajian Pustaka
PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP bernama FI (Form Interpreted). Pada saat tersebut PHP adalah sekumpulan script yang digunakan untuk mengolah data form dari web. Perkembangan selanjutnya adalah Rasmus melepaskan kode sumber tersebut dan menamakannya PHP/FI, pada saat tersebut kepanjangan dari PHP/FI adalah Personal Home Page/Form Interpreter. Dengan pelepasan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. PHP mengalami perkembangan pesat dimulai pada November 1997, PHP/ FI 2.0 dirilis. Pada rilis ini interpreter sudah diimplementasikan dalam C. Dalam rilis ini disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/ FI secara signifikan. Pengembangan dari PHP terus berlanjut sampai pada tahun 2004 zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Dalam versi ini juga dikenalkan model pemrograman berorientasi objek baru untuk menjawab perkembangan bahasa pemrograman kearah pemrograman berorientasi objek. Sampai saat ini telah banyak database yang telah didukung oleh PHP dan kemungkinan akan terus bertambah. Database tersebut adalah dBase, DBM, FilePro, mSQL, MySQL, ODBC, oracle, postgres, sybase, dan velocis. Selain itu PHP juga mendukung koneksi dengan protokol IMAP, SNMP, NNTP dan POP3. Cara kerja PHP dapat diilustrasikan dalam Gambar 1.
Gambar 1Cara Kerja PHP [1]
Cara kerja PHP, yaitu pertama client web browser atau member memakai komputer kemudian member tersebut menjalankan file PHP itu di web browser
atau yang biasa disebut browser saja dan kemudian File PHP itu dikirim ke web server. Web server mengirimkannya lagi ke Engine PHP atau mesin PHP dan di dalam mesin PHP itu diproses dan setelah diproses oleh mesin PHP maka akan berbentuk file HTML, dan file HTML ini akan dikirimkan ke web server dan web server tersebut akan memberikan hasil running ke member. Untuk dapat menjalankan PHP, diperlukan sebuah web server. Dalam penelitian ini peneliti menggunakan web server bernama wamp server versi 2.1e-x32. Pada wamp server ini, file–file PHP berada di dalam direktori www seperti yang ditunjukkan oleh Gambar 2.
Gambar 2Direktori www
MySQL merupakan software sistem manajemen database (Database Man-agement System – DBMS ) yang sangat populer dalam pemrograman web. MySQL merupakan database yang paling populer digunakan untuk membangun aplikasi web yang menggunakan database sebagai sumber dan pengelola datanya [2]. Da-tabase MySQL tersedia secara bebas dan boleh digunakan oleh semua orang dengan lisensi open source. MySQL dikenal sebagai database yang pertama kali didukung oleh bahasa pemrograman script untuk internet-PHP. MySQL lebih umum digunakan untuk membagun aplikasi berbasis web, umumnya pengembangan aplikasinya menggunakan bahasa pemrograman script PHP [3]. JSON (JavaScript Object Notation) adalah format pertukaran data ringan. Mempermudah programmer dalam melakukan format datanya (lebih singkat daripada array) dan format ini juga sangat mudah diolah oleh mesin untuk mengurai dan menghasilkan. Hal ini didasarkan pada subset bahasa pemrograman JavaScript, Standard ECMA-262 Edisi tiga pada Desember 1999 [4]. JSON adalah format teks yang benar-benar merupakan bahasa independen, tetapi menggunakan konvensi yang akrab bagi programmer dari keluarga bahasa pemrograman C, termasuk di dalamnya adalah C, C++, C#, Java, JavaScript, Perl, Python, dan banyak lainnya. Properti ini membuat JSON merupakan format bahasa pertukaran data yang ideal. JSON dibangun di atas dua struktur yaitu a. kumpulan nama/nilai berpasangan yang dalam berbagai bahasa dapat direalisasikan sebagai object, record, struct, dictionary, hash table, keyed list, atau associative array; b.Daftar list of value yang dalam kebanyakan bahasa, ini direalisasikan sebagai array, vektor, list, atau sequence. Terdapat beberapa cara memasukkan array ke dalam variabel dalam Javascript, yaitu seperti yang terlihat
pada Kode Program 1, dimana terlihat jelas kenapa format JSON sangat bermanfaat untuk melakukan efisiensi transfer data dan coding, karena hanya membutuhkan sedikit karakter untuk inisialisasi variabel array tersebut. Contoh yang lebih kompleks, terlihat pada Kode Program 2.
Kode Program 1 Kode PHP Array – JSON Format
// Dengan New Array
var array_ke_1 = new Array(‘Satu’,’Dua’,’Tiga’);
// Dengan New Array dan Memasukan Satu Per-Satu var array_ke_2 = new Array();
array_ke_2[0] = ‘Satu’; array_ke_2[1] = ‘Dua’; array_ke_2[2] = ‘Tiga’;
— Dengan Format JSON
var array_ke_3 = [‘Satu’,’Dua’,’Tiga’];
Kode Program 2 Kode PHP String dengan JSON Format
<html> <head> <title>Coba JSON</title> </head> <body> <script type=”text/javascript”> //Data Awal dengan format JSON var aku = { ‘nama’:’Jonathan Narendra’, ‘kesukaan’: [‘Makan’,’Internetan’,’Pacaran’], ‘status’:’Jomblo Lho’ }; // Tampilkan Nama document.write(‘Nama : ‘+aku.nama+’<br />’);
// Looping untuk menampilkan Kesukaan document.write(‘Kesukaan: <ol>’);
for (var i=0;i<aku.kesukaan.length;i++){
document.write(‘<li>’+aku.kesukaan[i]+’</li>’); }document.write(‘</ol>’); // Tampilkan Status document.write(‘Status : ‘+aku.status+’<br />’); </script> </body> </html>
Hasil yang akan didapat adalah seperti pada Gambar 3. JSON format adalah struktur data universal. Hampir semua bahasa pemrograman modern mendukung format data ini.
Gambar 3 Hasil Koding JSON Format
cURL adalah singkatan dari Client URL, merupakan sebuah tool berbasis command-line untuk mentransfer file dengan sintaks URL. Mendukung FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS dan FILE. cURL mendukung sertifikat SSL, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxy, cookies, autentifikasi user dan password (Basic, Digest, NTLM, Negotiate, kerberos). cURL dikembangkan oleh Daniel Stenberg pada tahun 1998 sebuah tool berbasis command-line. cURL gratis dan bersifat open source serta di-compile dan bisa berjalan pada berbagai sistem operasi. Sebagai contoh untuk menelusuri URL http://www.smsCAPTCHA.com dan menampilkan isi halaman URL tersebut ke dalam window terminal, digunakan perintah pada Kode Program 3.
Kode Program 3 Contoh Curl
curl www.smsCAPTCHA.com
Kode Program 4 Contoh Curl dengan File Output
curl –o output.html www.smsCAPTCHA.com
Untuk melakukan HTTP post ke sebuah URL, digunakan perintah pada Kode Program 5.
Kode Program 5 Contoh Curl dengan Post
curl -d “name=jon&age=6” www.smsCAPTCHA.com /admin.php
Libcurl merupakan bentuk library dari cURL yang sudah didukung pembenarannya oleh PHP. Pada PHP terdapat modul cURL yang bisa digunakan untuk melakukan request HTTP ke remote URL dan menampilkan hasil eksekusinya (HTTP Response). Dalam PHP, sebuah sesi cURL diawali dengan fungsi curl_init() dan diakhiri dengan fungsi curl_close(). Eksekusi cURL terjadi saat fungsi curl_exec() dipanggil. Pengaturan setting cURL di antaranya pengaturan cookie, request HTTP GET / POST, user agent, HTTP referer, dilakukan dengan fungsi curl_setopt(). Contoh kode PHP untuk melakukan request HTTP GET ke http:// www.smsCAPTCHA.com dengan libcurl pada Kode Program 6.
Kode Program 6 Contoh Kode PHP GET dengan Libcurl
(1)$url = ’http://www.smsCAPTCHA.com’; (2)$ch = curl_init();
(3)curl_setopt($ch, CURLOPT_URL,$url); (4)curl_exec($ch);
(5)curl_close($ch);
Pada Kode Program 6, baris pertama menunjukkan variabel URL. Baris kedua merupakan kode untuk menginisialisasi curl dan memiliki nilai kembalian berupa curl handle. Baris ketiga merupakan kode untuk mengetur URL curl dengan variabel URL. Baris keempat adalah kode curl untuk mengeksekusi URL tujuan. Baris kelima menutup curl handle. Contoh kode PHP untuk melakukan request HTTP POST ke http://www.smsCAPTCHA.com/admin.php dengan libcurl pada Kode Program 7. Kode Program 7 Contoh Kode PHPPOST dengan Libcurl
(1)$url = ’http://www.smsCAPTCHA.com/admin.php’; (2)$post_data = ’name=jon&age=6’;
(3)$ch = curl_init();
(4)curl_setopt($ch, CURLOPT_URL, $url); (5)curl_setopt($ch, CURLOPT_POST, 1);
(6)curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); (7)curl_exec($ch);
(8)curl_close($ch);
Pada Kode Program 7, baris pertama menunjukkan variabel URL. Baris kedua menunjukkan variabel yang berisi data POST. Baris ketiga merupakan kode untuk menginisialisasi curl dan memiliki nilai kembalian berupa curl handle. Baris keempat merupakan kode untuk mengatur URL curl dengan variabel URL. Baris kelima mengatur option CURLOPT_POST agar curl menggunakan metode HTTP POST. Baris keenam mengatur data POST dengan menggunakan option CURLOPT_POSTFIELDS. Baris ketujuh adalah kode curl untuk mengeksekusi URL tujuan. Baris kedelapan menutup curl handle.
Captcha merupakan kependekan dari “Completely Automated Public Turing test to Tell Komputers and Human Apart” adalah suatu tes sederhana yang digunakan untuk membedakan antara manusia dan komputer. Penemunya adalah Luis von Ahn, Manuel Blum, Nicholas J Hooper (Carneige Mellon University) dan John Langford (IBM) pada tahun 2000 dan mulai marak digunakan di berbagai situs untuk mencegah penyalahgunaan dari “bots” atau program otomatis yang biasanya dibuat untuk menghasilkan spam. Captcha ini biasanya digunakan dalam pendaftaran email gratis, atau pendaftaran (registrasi) keanggotaan dalam suatu website, sehingga pengunjung website tersebut tidak dapat melakukan pendaftaran melalui program bots (yaitu program yang secara otomatis melakukan pendaftaran tanpa campur tangan pemakai) [5]. Umumnya captha berbentuk gambar yang di dalamnya terdapat perintah. Perintah bisa dengan mudah dibaca manusia, namun
komputer akan kesulitan membaca perintah dalam gambar itu. Dengan cara ini, hanya manusia yang bisa melanjutkan prosesnya, sedangkan komputer/robot /spam akan gagal. Bagi komputer, sebuah gambar hanyalah kumpulan kode-kode warna dari setiap pixelnya. Dibutuhkan proses yang cukup rumit untuk bisa mengenali objek pada gambar, apalagi untuk memahami arti sebuah gambar. Sedangkan bagi manusia hanya dalam hitungan seper sekian detik kode dalam gambar sudah terbaca. Namun pada penerapannya terdapat beberapa kelemahan dari captcha berbentuk gambar ini, yaitu Jika karakternya terlalu aneh dan tidak jelas bentuknya, maka user akan dibuat repot. Karena user tidak bisa mengenali tulisan apa yang ada di dalam gambar tersebut, sehingga user bisa mengetikkan kata yang salah dan sistem tidak akan melayaninya karena kode captcha yang di-input tidak sesuai; Jika karakternya terlalu sederhana, kemungkinan para spammer bisa saja memakai software untuk mengenali tulisan yang terdapat pada image dan kemudian diterjemahkan ke dalam teks; dan dari beberapa kelemahan tersebut, sebenarnya ada beberapa solusi yang bisa diambil, seperti menggunakan gambar hewan atau buah-buahan untuk kemudian pengunjung diminta memasukkan nama hewan atau buah-buahan tersebut ke dalam textbox yang tersedia. Pada perkembangannya dengan semakin canggih teknologi, captcha dibuat dengan format lain, seperti captcha dalam bentuk suara dan sms (short message service), yang ditujukan agar kode tersebut semakin aman dari serangan spam dan tidak menyulitkan pengunjung. Selama ini ada beberapa situs populer yang menggunakan captcha melalui sms, yaitu gmail, ebay, facebook confirmation system dan lain-lain. Aplikasi smsCAPTCHA pada situs-situs tersebut bersifat individual, sehingga dikembangkan oleh masing-masing dan tidak memberikan akses layanan untuk website lain. Namun seiring banyaknya kebutuhan website akan aplikasi captcha, maka pada 2009 google mengakuisi layanan aplikasi captcha yang ditujukan untuk para pemilik situs yang ingin menggunakan captcha pada situs mereka agar dapat menggunakan dan mengaplikasikan aplikasi captcha berbentuk gambar tersebut dengan mudah tanpa harus melakukan coding yang rumit, dengan cara mengakses layanan tersebut melalui situs www.recaptcha.net.
AJAX adalah singkatan dari “Asynchronous JavaScript and XML”, yang dibuat dari serangkaian teknologi dengan berbagai kemampuan, yaitu JavaScript, XML dan sebuah method komunikasi asinkron antara client dan server. Pada tahun 2005 Jesse James Garret, seorang designer program memperkenalkan istilah AJAX ini dalam bukunya yang berjudul “A New Approach to Web Applications” dan pada tahun itulah AJAX mulai trend atau populer digunakan. Pada tanggal 5 April 2006 World Wide Web Consorsium (W3C) memutuskan bahwa AJAX menjadi standart pengembangan web [6]. Dengan adanya AJAX, akses data ke server yang dikirim client melalui web dapat lebih cepat daripada mekanisme biasa. Hal ini dikarenakan AJAX tidak perlu melakukan proses loading page (refresh page) atau pindah ke page yang lain. AJAX dapat diintegrasikan dengan server side programming seperti PHP, ASP, JSP dll. Mekanisme proses AJAX ditunjukkan pada Gambar 4. Mekanisme pada Gambar 4 menunjukkan proses berawal dari web client. Web client me-request sebuah halaman PHP ke server melalui Javascript. Selanjutnya server akan merespon dan menjalankan script PHP. Script PHP akan menghasilkan respon dalam bentuk XML dan data XML tersebut akan
dikirim kembali ke web client untuk diolah oleh Javascript. Hasil olahan javascript tersebut akhirnya akan ditampilkan di web client sebagai output tanpa harus me-refresh halaman web. Dengan AJAX, Javascript berkomunikasi langsung ke server dengan sebuah fungsi yang disebut XMLHttpRequest. XMLHttpRequest memiliki fungsi agar suatu halaman web dapat di-request dari server dan diterima hasilnya tanpa perlu terjadi refresh pada halaman web tersebut. XMLHttpRequest telah di-support oleh IE 5 kenatas, Safari 1.2 ke atas, Mozilla Firefox ke atas dan Opera 8 keatas.
Gambar 4 Arsitektur Model AJAX [6]
3 . Metodologi Penelitian
Perancangan algoritma dalam layanan aplikasi smsCAPTCHA terbagi menjadi tiga proses, yaitu proses awal (request layanan), proses verifikasi dan proses web member meminta data nomor hp client member. Proses awal (request layanan) digambarkan oleh Gambar 5. Gambar 5 menjelaskan bagaimana alur algoritma proses awal (request layanan) pada layanan service aplikasi smsCAPTCHA. Seperti yang sudah dijelaskan sebelumnya, aplikasi ini berawal ketika ada client member yang mengakses halaman web member yang terdapat aplikasi smsCAPTCHA. Terdapat dua fungsi utama pada proses ini. Yang pertama adalah fungsi go_init() pada library yang sudah di-download oleh member yang mengarahkan pada halaman server “api-init.php”. Halaman ini berisi kumpulan kode PHP yang akan mengecek apakah identitas dari aplikasi member sudah terdaftar di server atau belum. Pada bagian ini cURL memiliki peranan penting sebagai penghubung untuk pengiriman data member (private key) dengan nilai pengembalian berupa data yang dikirimkan valid atau tidak dari server dengan format data JSON. Jika data valid maka server akan mengirimkan session name dalam format JSON yang kemudian disimpan ke dalam database server sebagai identitas dari client member. Yang kedua adalah fungsi “client_code()”, dimana di dalam fungsi “client_code()” ini terdapat duafungsi lagi, yaitu “smsCAPTCHA_pop_up()” untuk membuat window baru dimana form input no mer hp akan ditampilkan nantinya dan “smsCAPTCHA_pop_up_go” untuk menghubungkan ke halaman server “sms.php” dimana form dan proses data client member (nomor hp dan kode captcha) akan dilakukan di sana. Proses ini akan dieksekusi setelah proses go_init() selesai dijalankan.
Gambar 5 Diagram Alir Proses Awal (Request Layanan)
Untuk proses verifikasi layanan service aplikasi smsCAPTCHA digambarkan oleh Gambar 6 yang menjelaskan bagaimana alur algoritma proses verifikasi kode captcha pada layanan service aplikasi smsCAPTCHA.Terdapat fungsi “go_verify()” pada proses ini, fungsi tersebut digunakan untuk mengirimkan data berupa ip client, uid, api_key dan kode captcha yang sudah dimasukkan ke halaman server “api-verify.php” proses pengiriman tersebut menggunakan teknologi dari cURL POST dari website member menuju ke server layanan service aplikasi smsCAPTCHA dengan nilai pengembalian berupa data valid atau tidak dalam format data JSON. Jika data yang dimasukkan valid maka session name akan diteruskan untuk proses selanjutnya. Dari halaman itu data tersebut akan diproses dan dilakukan pengecekan (mencocokkan) antara kode captcha yang dimasukkan client member dengan kode captcha yang ada di dalam database.
Gambar 6 Diagram Alir Proses Verifikasi Kode Captcha
Proses selanjutnya adalah proses ketika web member meminta data nomor hp client member pada server layanan service aplikasi smsCAPTCHA. Proses tersebut digambarkan oleh Gambar 7, menjelaskan bagaimana alur algoritma proses ketika web member meminta data nomor hp client member pada server layanan service aplikasi smsCAPTCHA. Terdapat fungsi “go_get_phone()”, pada proses ini fungsi tersebut digunakan untuk mengirimkan data berupa ip client, uid, api_key dengan menggunakan cURL sebagai penghubung ke halaman server “api-get-phone.php” dan cURL POST untuk pengiriman data. Dimana pada halaman tersebut akan memproses permintaan data nomor hp client member yang sudah memasukkan data kode captcha dengan benar. Data nomor hp client member tersebut dikirimkan server layanan service aplikasi smsCAPTCHA dengan format data JSON yang kemudian aplikasi smsCAPTCHA pada website member akan menterjemahkan format tersebut menjadi string yang dapat diolah oleh pemilik website.
Gambar 7 Diagram Alir Proses Minta Data Nomer HP Client Member
4 . Implementasi dan Pengujian Sistem
Halaman utama adalah halaman awal yang diakses oleh pengguna (calon member maupun member) ketika mengakses web layanan service aplikasi smsCAPTCHA. Pada halaman utama ini terdapat informasi dasar mengenai web layanan service aplikasi smsCAPTCHA, link menuju ke halaman informasi, serta link menuju halaman “admin.php” untuk melakukan login. Design interface halaman utama/halaman index ini disajikan secara minimalis untuk menghindari kebingungan pengguna. Dengan design minimalis diharapkan informasi dapat diterima oleh pengguna dengan baik. Agar dapat digunakan oleh website lain, pertama-tama pemilik website harus melakukan registrasi terlebih dahulu. Terdapat proteksi pada penanganan proses registrasi ini dengan menggunakan teknologi AJAX (Asynchronous JavaScript and XML).
Gambar 8 Tampilan Halaman Utama Website
Gambar 9 menampilkan halaman antarmuka form registrasi. Pada halaman ini terdapat beberapa data yang harus diisi oleh calon member, terdapat pula beberapa proteksi pada form registrasi sehingga client diharuskan mengisi semua data secara lengkap. Beberapa proteksi tersebut antara lain adalah pesan peringatan bahwa terdapat halaman (nama field) yang belum diisi dan pada field email terdapat format input-an yang harus diisi agar masukkan valid (terisi dengan benar agar dapat diproses). Jika pengisian tidak sesuai, maka akan terdapat pesan peringatan bahwa email yang dimasukkan tidak tepat.
Gambar 9 Tampilan Halaman Utama Website
Gambar 10 Tampilan Pesan Peringatan MasukkanTidak Valid
Kemudian setelah pemilik website terdaftar sebagai member, langkah selanjutnya adalah login. Setelah berhasil melakukan login, maka member akan masuk ke dalam halaman verifikasi layanan website. Pada halaman ini member dapat melakukan registrasi website dengan mengisikan alamat website member yang akan dipasang aplikasi layanan smsCAPTCHA.
Gambar 11 Tampilan Halaman Verifikasi Halaman Website
Pada Gambar 11 terlihat bahwa terdapat satu textbox untuk dimasukkan alamat website member yang akan dipasang aplikasi layanan smsCAPTCHA. Ada beberapa proteksi untuk melakukan registrasi website ini, yaitu setelah tombol simpan verifikasi dipilih, maka sebelum alamat website tersebut tersimpan ke dalam database, sistem akan melakukan pemeriksaan terlebih dahulu ke dalam database smsCAPTCHA apakah alamat website ini sudah terdaftar atau belum. Gambar 12 menjelaskan jika alamat website ini belum terdaftar, maka alamat website ini akan disimpan ke dalam database berdasarkan username member dan setelah itu muncul pesan message box bahwa data web telah berhasil tersimpan. Setelah itu member akan terhubung ke halaman info web.
Gambar 12 Tampilan Pesan Data Website Tersimpan
Jika data yang dimasukkan sudah terdaftar di database, maka akan muncul pesan message box bahwa data sudah ada dan member akan kembali ke halaman verifikasi halaman website seperti telihat pada Gambar 13.
Gambar 13 Tampilan Pesan Data Website Sudah Terdaftar
Halaman info web adalah halaman yang berisi tentang informasi layanan member. Disini terdapat nama website member yang akan dipasang aplikasi smsCAPTCHA,
private key (api key dan user id), link download library dan link yang menuju ke halaman api documentation, dimana halaman ini berisi tentang tata cara penerapan aplikasi smsCAPTCHA ke website member dan beberapa baris source yang harus di-copy oleh member untuk nantinya digabungkan dengan baris coding di website member.
Gambar 14 Tampilan Halaman InfoWebsite
Data-data pada Gambar 14 (domain name, user id dan api key) diambil dari database berdasar pada username member yang mengakses halaman tersebut. Pada field domain name pada Gambar 16 berisi alamat website member, field user id dan field api key berisi kode rahasia yang nantinya digunakan oleh member untuk memberikan identitas dari aplikasi smsCAPTCHA yang dipasang pada website member, field resource berisi dualink menuju halaman download dan halaman api documentation, dimana pada halaman tersebut terdapat petunjuk tentang tata cara mengaplikasikan aplikasi smsCAPTCHA ke website member. Halaman Download Library memiliki fungsi utama yaitu sebagai tempat bagi member untuk melakukan download library smsCAPTCHA agar aplikasi smsCAPTCHA pada website member dapat berfungsi dengan baik.
Gambar 15 Tampilan Halaman Download Library
beberapa link untuk melakukan download. Jika link library smsCAPTCHA tersebut dipilih maka member akan melakukan download library. Halaman api lib adalah halaman yang disediakan sebagai informasi kepada member yang berisi tentang tata cara bagaimana mengaplikasikan aplikasi smsCAPTCHA ke website member.
Gambar 16 Tampilan Halaman Api Lib
Gambar 16 menunjukkan tampilan halaman api lib yang berisi tentang petunjuk serta tata cara untuk member mengaplikasikan aplikasi smsCAPTCHA ke halaman website member. Selain informasi mengenai tata cara mengaplikasikan aplikasi smsCAPTCHA , terdapat pula baris kode HTML dan PHP yang memiliki fungsi untuk menampilkan aplikasi smsCAPTCHA di website member dan menghubungkannya dengan file library yang sudah di-download (smsCAPTCHAlib.php). Kode ini harus di-copy oleh member dan diletakkan pada baris kode halaman website member yang ingin ditampilkan aplikasi smsCAPTCHA . Misal member ingin menampilkan aplikasi smsCAPTCHA pada guestbook website-nya, maka member harus meng-copy baris kode tersebut ke dalam halaman guestbook website-nya. Pada baris kode tersebut, member juga harus memasukkan kode rahasia yang sudah didapat dari halaman info web miliknya (user id dan api key). Aplikasi layanan service aplikasi smsCAPTCHA memberikan layanan aplikasi smsCAPTCHA kepada member yang terdaftar. Agar dapat diaplikasikan ke website lain dengan mudah, maka aplikasi dibuat secara minimalis dengan bentuk form dan kode program dari sisi member yang simple.
Gambar 17 Tampilan Form Aplikasi smsCAPTCHA
Gambar 17 menunjukkan bentuk form dari aplikasi smsCAPTCHA. Seperti yang sudah dijelaskan sebelumnya (pada halaman learnmore), aplikasi ini terdapat dua tombol dan satu textbox. Tombol “set nomor HP” digunakan untuk client web member mengisikan nomor hpnya. Pada saat tombol ini dipilih maka aplikasi akan meminta request layanan menuju server layanan service aplikasi smsCAPTCHA. Dalam proses meminta layanan menuju server layanan service aplikasi smsCAPTCHA, form aplikasi smsCAPTCHA ini akan terhubung ke library smsCAPTCHA terlebih dahulu, kemudian dari library ini kemudian akan menghubungkan antara aplikasi smsCAPTCHA member ke server layanan service aplikasi smsCAPTCHA. Library (smsCAPTCHAlib.php) pada aplikasi smsCAPTCHA disini memiliki fungsi sebagai penghubung antara aplikasi pada web member dengan server layanan service aplikasi smsCAPTCHA dengan memanfaatkan teknologi dari cURL. Proses pengiriman data menggunakan cURL_POST dan kemudian menerima jawaban dari server berupa data dengan format JSON. Terdapat lima fungsi penting dalam library ini, yaitu fungsi get_ip_id() yang digunakan untuk mengambil data dari client member berupa ip dan tipe browser yang digunakan oleh client member. Kemudian fungsi go_init() untuk mengirim data identitas dari aplikasi smsCAPTCHA pada member (api_key dan user_id) ke halaman server “api-init().php” untuk kemudian di verifikasi apakah data tersebut sudah terdaftar atau tidak dan jika data member sudah terdaftar maka fungsi ini akan menerima hasil dari verifikasi data member berupa session_name. Di sisi server terdapat lima halaman utama dengan fungsi yang dimiliki. Yang pertama adalah halaman “api-init.php” dengan fungsi utama adalah melakukan cek identitas dari aplikasi smsCAPTCHA yang sedang melakukan request layanan dan membuat data layanan service pada tabel captcha_session. Yang kedua adalah halaman “sms.php” yang memiliki fungsi utama untuk menampilkan form “set nomer hp” dan membuat kode captcha setelah client member memasukkan nomor handphone pada form “set nomer hp”.Yang ketiga adalah halaman “smslib.php” yang memiliki fungsi utama adalah sebagai penghubung antara server layanan service aplikasi smsCAPTCHA dengan server web penyedia layanan sms. Pada halaman ini digunakan curl post untuk mengirimkan data kode captcha dan nomor hp client member.Yang keempat adalah halaman “api-verify.php” yang memiliki fungsi utama untuk memverifikasi jawaban captcha yang dimasukkan oleh client member dengan data kode captcha yang terdapat di dalam database. Jika semua proses verifikasi kode captcha sudah dilalui, maka proses terakhir terdapat pada halaman ini, yaitu
halaman “api-get-phone” yang memiliki fungsi utama adalah untuk memberikan data nomor handphone dari client member yang sedang melakukan proses verifikasi dengan aplikasi smsCAPTCHA pada website member. Proses pada halaman ini dapat digunakan sesuai dengan yang member inginkan dan butuhkan. Jika member merasa tidak perlu untuk mengaktifkan layanan ini, maka member menonaktifkan kode untuk memanggil fungsi meminta data nomor handphone di dalam source yang sudah member copy. Pada pengujian sistem ini, menggunakan metode pengujian perangkat lunak black box dengan tujuan untuk mengetahui apakah semua fungsi perangkat lunak telah berjalan dengan semestinya sesuai kebutuhan fungsional yang telah didefinsikan atau tidak. Sehingga sistem dapat menghasilkan layanan service captcha berbasis sms kepada setiap website yang sudah terdaftar (website member) dengan baik. Ada dua tipe pengujian pada proses ini, yaitu pengujian sistem pada web smsCAPTCHA dan pengujian pada member dan client member. Pengujian sistem pada web smsCAPTCHA ini menggunakan variable – variable yang terkait dengan interaksi antara calon member (visitor) dengan sistem (website layanan service aplikasi smsCAPTCHA).
Tabel 1 pengujian sistem pada web smsCAPTCHA telah berjalan dengan lancar dan baik. Kesimpulan tersebut sesuai dangan terpenuhinya variable yang diberikan. Kemudian dilakukan pengujian sistem pada member dan client member. Pengujian sistem pada member dan client member ini menggunakan variable-variable yang terkait dengan interaksi antara member dengan sistem dan antara client member dengan aplikasi smsCAPTCHA pada website member.
Tabel 1 Pengujian Sistem Pada Web smsCAPTCHA
No Variable yang digunakan Hasil
Pengujian
1. Apakah sistem menampilkan informasi yang
seharusnya ditampilkan?
Ya
2. Apakah tombol navigasi berfungsi dengan
benar?
Ya
3. Apakah sistem dapat membedakan antara
member dengan visitor?
Ya
4. Apakah Proses sign up dapat dilakukan dengan
benar?
Ya
5. Apakah proteksi pengisian form pada proses
sign up dapat berjalan dengan baik?
Ya
6. Apakah demo program aplikasi smsCAPTCHA
dapat berjalan dengan baik?
Ya
Layanan service aplikasi smsCAPTCHA ini adalah sistem layanan berbasis website. Dan akan digunakan oleh banyak member dan client member. Oleh karena itu dibutuhkan implementasi langsung dari sisi member dan client member untuk melakukan tes terhadap sistem. Pada tahap ini peneliti telah menyebarkan link angket ke forum internet yaitu Kaskus dan Jasakom agar aplikasi dapat dicoba oleh member forum tersebut. Dari angket yang tersebar pada forum tersebut selama kurang lebih dua minggu dan menghasilkan dua puluh tujuh data yang diisi oleh member forum.
Dari hasil pengumpulan data dari responden tersebut maka bisa dihitung persentase dengan cara mengetahui prosentase nilai interfal dari hasil jawaban responden. Kemudian kesimpulan yang didapat adalah bahwa hasil implementasi dari sistem
layanan service aplikasi smsCAPTCHA yang dibuat telah sesuai dengan tujuan. Hal ini didasari data prosentase sebanyak 53.33333% dari responden yang memberikan kriteria penilaian terhadap sistem adalah setuju dan data dengan prosentase sebanyak 20% dari responden yang memberikan kriteria penilaian terhadap sistem adalah sangat setuju. Semua proses yang menggunakan cURL, yaitu pada proses pengiriman data antar server menggunakan cURL POST juga sudah berjalan sebagaimana mestinya sehingga sistem layanan service aplikasi smsCAPTCHA dapat berkomunikasi dengan baik dan data dari member dapat diolah oleh server. Pengembalian data dari server menuju aplikasi smsCAPTCHA pada member dengan menggunakan JSON format juga sangat efektif, karena data yang dikirim oleh server dapat langsung dibaca tanpa harus melalui deklarasi fungsi yang panjang sehingga proses pengembalian data dapat berjalan dengan baik. Dengan demikian pengujian menunjukkan bahwa sistem ini menghasilkan layanan service aplikasi smsCAPTCHA pada web php berbasis cURL dengan menggunakan JSON format dengan baik. Selain itu terdapat kelemahan dari aplikasi yang telah dibuat, yaitu dari sisi member, a.Layanan aplikasi smsCAPTCHA tidak dapat digunakan pada web hosting yang tidak memiliki support untuk javascript; b.Terjadi kesulitan dalam penerapan aplikasi smsCAPTCHA pada sistem yang menggunakan bahasa pemrograman ajax sebagai proteksi input data; c.Aplikasi smsCAPTCHA dapat digunakan pada alamat website lain dengan menggunakan kode rahasia yang sama; d.Ketika alamat website member di rubah atau dihapus, maka kode rahasia juga akan berubah, sehingga member tidak dapat menggunakan aplikasi smsCAPTCHA lagi sebelum menginputkan kode rahasia yang baru ke dalam kode rahasia aplikasi smsCAPTCHA pada websitenya. Kelemahan sari sisi client member yaitu proses untuk menerima pesan kode captcha melalui sms terkadang memakan waktu yang sangat lama. Hal ini terjadi karena dalam proses untuk pengiriman kode melalui sms, sistem menggunakan server dari website penyedia layanan sms, sehingga cepat lambatnya pengiriman sms tergantung pada server website tersebut.
5 . Simpulan
Untuk menerapkan dan mengkombinasikan antara captcha dan sistem sms (short message service) pada aplikasi website ini serta agar aplikasi dapat digunakan oleh member kedalam website atau blog mereka, maka dapat menggunakan teknologi cURL sebagai pengiriman data antar server dan format data menggunakan format data JSON. Serta digunakan pula web server penyedia layanan sms sebagai sms gateway untuk mengirimkan data captcha tersebut melalui sms: Server website layanan service aplikasi smsCAPTCHA dapat melayani setiap permintaan captcha dengan baik, terbukti dari pengujian yang sudah dilakukan dengan permintaan layanan yang datang lebih dari satu website member dan lebih dari satu client member yang mengakses secara bersamaan. Dengan adanya website layanan service aplikasi smsCAPTCHA ini dapat membantu memberi pilihan untuk para pemilik website
maupun blog yang ingin mengaplikasikan layanan captcha dengan konsep yang lain (selain kode captcha yang terdistorsi di dalam gambar) yaitu kode captcha berbasis sms ke halaman website mereka tanpa harus membeli modem sendiri, server dan tanpa menuliskan coding smsCAPTCHA yang panjang dan rumit ke dalam website mereka.
6 . Daftar Pustaka
[1] Tutorial PHP.2011.How PHP Works, http://learnphp-tutorial.com. Diakses tanggal 10 Oktober 2010.
[2] Sutarman.200.Seri Pemrograman Web dengan PHP dan MySQL. Yogyakarta: Penerbit Andi.
[3] Betha, Sidik.2007.MySQL Untuk Administrator dan Pengembang Aplikasi Web.
[4] JSON.2009.Introducing JSON, http://www.json.org/. Diakses tanggal 2 September 2010.
[5] reCaptcha.2010.reCAPTCHA (Labs).http://code.google.com/apis/ recaptcha/docs/php.html.Diakses tanggal 1 September 2010.
[6] Sunyoto, Andi.2009.AJAX - Membangun Web dengan Teknologi Asynchronous dan XML. Jakarta : Andi Publisher.