Pembangunan Sistem keamanan Website untuk Pemblokiran SPAM dan Bot SPAM
UNTUK PEMBLOKIRAN SPAM DAN BOT SPAM
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
CHARLEY SAKUL
10104525
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
(2)
PEMBANGUNAN SISTEM KEAMANAN WEBSITE
UNTUK PEMBLOKIRAN SPAM DAN BOT SPAM
CHARLEY SAKUL
10104525
Menyetujui,
LEMBAR PENGESAHAN
LEMBAR PENGESAHAN
Ketua Jurusan Teknik InformatikaMira Kania Sabariah, S.T., M.T. NIP. 41277006008
Pembimbing I
Andri Heryandi, S.T. NIP. 41277006007
(3)
PEMBANGUNAN SISTEM KEAMANAN WEBSITE
UNTUK PEMBLOKIRAN SPAM DAN BOT SPAM
CHARLEY SAKUL
10104525
s Penguji I
Irawan Afrianto, S.T. NIP. 41277006009
Penguji III
Tati Harihayati M., S.T., M.T. NIP. 41277006006
Penguji II
Andri Heryandi, S.T. NIP. 41277006007
(4)
Saya yang bertanda tangan di bawah ini:
Nama : Charley Sakul
NIM : 10104525
Judul Tugas Akhir : Pembangunan Sistem Keamanan Website Untuk Pemblokiran Spam dan Bot Spam
Menyatakan bahwa saya tidak melakukan tindakan meniru, menyalin atau menjiplak tugas akhir/karya ilmiah yang telah ada. Apabila saya terbukti melakukan kegiatan tersebut, maka saya bersedia untuk menerima sanksi yang diberikan sesuai dengan ketentuan yang ditetapkan dan berlaku di jurusan Teknik Informatika Universitas Komputer Indonesia.
Mengetahui, Yang memberi pernyataan
(5)
i
PEMBANGUNAN SISTEM KEAMANAN WEBSITE UNTUK PEMBLOKIRAN SPAM DAN BOT SPAM
Oleh
CHARLEY SAKUL
10104525
Banyak situs-situs di internet yang terserang spam dan bot-bot spam. Untuk itu diperlukan suatu sistem keamanan website yang dapat menangani permasalahan spam dan bot-bot spam tersebut. Tugas akhir ini adalah untuk memenuhi kebutuhan tersebut.
Sistem keamanan website yang dibuat ini terbagi menjadi 2 bagian, yaitu pemblokiran bot spam dan penyaringan atau pendeteksian komentar yang mengandung spam. Komentar yang termasuk dalam kategori spam akan diblok dan tidak akan terkirim. Yang diharapkan adalah semua komentar yang terkirim adalah bebas dari spam dan bot-bot spam.
Tujuan utama pembuatan sistem keamanan website ini adalah agar website dapat aman, bebas dan bersih dari penyerangan spam dan bot-bot spam.
(6)
ii
FOR BLOCKING SPAM AND SPAM BOT
By
CHARLEY SAKUL
10104525
Many of sites in internet are attacked by spam and spam bots. For that reason, it’s needed a security website system which is able to solve spam and spam bots problem. This scripsi is for accomplishing that need.
Security website system which is made is divided into two parts, blocking spam bots and filtering or detecting commands containing spam. Command including spam category will be blocked and won’t be sent. Hope that all commands which are sent are free from spam and spam bots.
The main purpose of making security website system is website can be safe, free and clean from spam and spam bots attack.
(7)
v LEMBAR JUDUL
LEMBAR PENGESAHAN
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... ix
DAFTAR TABEL ... xi
DAFTAR NOTASI ... xii
DAFTAR LAMPIRAN ... xiv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Identifikasi Masalah ... 2
1.3 Maksud dan Tujuan... 2
1.3.1 Maksud ... 2
1.3.2 Tujuan ... 2
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 3
1.6 Sistematika Penulisan ... 5
BAB II LANDASAN TEORI ... 7
(8)
vi
2.4.1 Generate Kode Keamanan ... 13
2.4.2 Verifikasi Kode Keamanan ... 19
2.4.3 Verifikasi Komentar (Pemeriksaan dan Pendeteksian Spam) ... 20
2.5 Algoritma Bayesian ... 21
2.5.1 Tabel dan Field Pada Bayesian Filter ... 24
2.5.2 Class Pada Bayesian Filter ... 26
2.5.3 Pendeteksian Spam Pada Bayesian Filter ... 27
2.6 Definisi Pemrograman Berorientasi Objek ... 28
2.7 Definisi UML (Unified Modeling Language) ... 29
2.7.1 Diagram Teknik Pemodelan UML ... 32
2.7.2 Diagram Struktur ... 32
2.7.3 Diagram Perilaku ... 33
2.7.4 Notasi dalam UML (Unified Modeling Language) ... 34
2.8 Software Pendukung ... 36
2.8.1 PHP ... 36
2.8.2 Database MySQL ... 38
2.8.3 Web Browser ... 40
2.8.4 Web Server Apache ... 41
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 43
(9)
vii
3.3 Analisis Kebutuhan Sistem ... 44
3.4 Usulan Kebutuhan Sistem ... 44
3.5 Pemodelan Kebutuhan Fungsional ... 44
3.5.1 Kebutuhan Perangkat Keras ... 45
3.5.2 Kebutuhan Perangkat Lunak ... 45
3.6 Diagram Use Case ... 46
3.7 Diagram Class ... 48
3.8 Diagram Sequence ... 49
3.9 Antarmuka (Interface) ... 49
3.9.1 Activity Diagram Antarmuka ... 50
3.10 Perancangan Sistem ... 51
3.10.1 Struktur File Database ... 51
3.10.2 Deskripsi Tabel ... 51
3.11 Perancangan Antarmuka ... 53
3.11.1 Perancangan Halaman Pengecekan Bot Spam ... 53
3.11.2 Perancangan Halaman Pengecekan Komentar ... 55
3.11.3 Perancangan Halaman Sukses ... 56
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 57
4.1 Implementasi ... 57
4.1.1 Batasan Implementasi ... 57
4.1.2 Kebutuhan Perangkat Keras ... 57
(10)
viii
4.1.4.3 Tampilan Halaman Sukses ... 61
4.2 Implementasi Class ... 62
4.2.1 Class Trainer ... 62
4.2.2 Class Spam ... 63
4.2.3 Class Ngram ... 65
4.2.4 Class CaptchaSecurityImages ... 66
4.3 Pengujian Sistem ... 68
4.3.1 Pengujian Alpha ... 68
4.3.1.1 Skenario Pengujian ... 68
4.3.1.2 Kesimpulan Hasil Pengujian Alpha ... 71
4.3.2 Pengujian Beta ... 71
4.3.3 Kesimpulan Hasil Pengujian Beta ... 72
BAB V KESIMPULAN DAN SARAN ... 73
5.1 Kesimpulan ... 73
5.2 Saran ... 73
(11)
ix
Gambar 1.1 Waterfall Model / Linear Sequential Model ... 5
Gambar 2.1 Contoh Pengisian Komentar Yang Dapat Dimanfaatkan Oleh Spammer ... 9
Gambar 2.2 Contoh Website Yang Terserang Spam Dan Bot-Bot Spam ... 11
Gambar 2.3 Contoh Bot-bot Spam Dalam Database ... 12
Gambar 2.4 Flowchart Kode Keamanan Website ... 14
Gambar 2.5 Security code pada form pendaftaran email yahoo ... 19
Gambar 2.6 Sistem Arsitektur Penyaringan Spam PHP Bayesian ... 22
Gambar 2.7 Contoh Database MySQL ... 39
Gambar 2.8 Contoh web browser Internet Explorer ... 40
Gambar 2.9 Contoh web browser Firefox ... 40
Gambar 3.1 Diagram Use Case ... 46
Gambar 3.2 Diagram Class ... 48
Gambar 3.3 Diagram Sequence Filter Spam ... 49
Gambar 3.4 Activity Diagram ... 50
Gambar 3.5 Perancangan Kode Keamanan ke-1 dan Kode keamanan ke-2 ... 53
Gambar 3.6 Perancangan Tampilan Bila Kode Keamanan 1 Salah ... 54
Gambar 3.7 Perancangan Tampilan Bila Kode Keamanan 2 Salah ... 54
Gambar 3.8 Perancangan Tampilan Bila Kode Keamanan 1 dan 2 Salah ... 55
Gambar 3.9 Perancangan Tampilan Halaman Pengecekan Komentar ... 55
Gambar 3.10 Perancangan Halaman Sukses ... 56
Gambar 4.1 Tampilan Kode keamanan ke-1 dan kode keamanan ke-2 ... 59
Gambar 4.2 Tampilan halaman bila kode keamanan 1 salah ... 59
(12)
(13)
xi
Tabel 3.1 Use Case Filter Spam ... 47
Tabel 3.2 Tabel Examples ... 51
Tabel 3.3 Tabel knowledge_base ... 52
Tabel 4.1 Skenario Pengujian Alpha ... 68
(14)
xii
Notasi Keterangan
Actor
class
Interface
Use case
Interaction
Package
Note
(15)
xiii
Boundary Class
Control class
(16)
xiv
Lampiran B Listing Program ... 79 Lampiran C Hasil Kuesioner ... 94
(17)
1
PENDAHULUAN
1.1 Latar Belakang Masalah
Banyak situs-situs di internet yang terkena spam seperti forum diskusi, web blog, dan lain-lain. Banyak pemilik website yang menjadi panik dan bingung, apalagi kalau website-website tersebut adalah website-website penting dari suatu perusahaan yang banyak diakses pengunjung.
Blok IP atau email bukanlah cara yang tepat, karena begitu banyak proxy di internet untuk menggantikan IP yang sudah terblok. Begitu juga email, begitu banyak email gratis yang bisa didaftar secara cepat. Pendaftaran menggunakan level administrator juga bukan jalan keluar yang tepat, karena semua yang antri untuk disetujui administrator membutuhkan waktu dan terkadang bila administrator tidak online untuk beberapa waktu yang lama, maka semua yang mendaftarpun tetap harus menunggu sampai administrator tersebut online.
Pengisian komentarpun menjadi masalah dalam suatu website, yaitu bila komentar-komentar tersebut termasuk dalam kategori spam. Jalan keluar yang tepat adalah menambahkan beberapa script untuk memblokir bot-bot spam dan melakukan filter terhadap pengisian komentar pada website.
Dalam Tugas Akhir ini, penulis akan membuat program Modul (Module) yang biasanya disingkat dengan MOD. Program MOD yang dibuat ini akan digunakan untuk memblokir bot-bot spam dan membuat filter terhadap pengiriman komentar pada website.
(18)
1.2 Identifikasi Masalah
Berdasarkan latar belakang masalah di atas, maka pembangunan perangkat lunak ini dititikberatkan pada bagaimana agar website dapat aman dan terlindung dari spam dan bot-bot spam, yaitu dengan membuat program MOD yang akan dipasangkan pada website yang berguna untuk memblokir penyerangan bot-bot spam dan sebagai filterisasi terhadap pengisian komentar pada website. Program MOD yang dibuat ini dipasangkan pada website, agar website dapat aman dari spam dan bot-bot spam.
1.3 Maksud dan Tujuan 1.3.1 Maksud
Maksud Tugas Akhir ini adalah untuk membuat program MOD yang akan digunakan untuk memblokir bot-bot spam dan juga digunakan untuk filterisasi pengisian komentar pada website, apakah komentar tersebut termasuk dalam spam atau bukan. Program MOD yang dibuat dipasangkan (di-install) langsung di website.
1.3.2 Tujuan
Tujuan Tugas Akhir ini agar situs atau website dapat aman, bebas dan bersih dari bot-bot dan pengisian komentar spam setelah menggunakan program MOD yang akan dibuat ini.
(19)
1.4 Batasan Masalah/Ruang Lingkup kajian
Program MOD yang dibuat ini adalah hanya untuk memblokir penyerangan bot-bot spam yang melakukan registrasi, juga untuk menjadi filter terhadap pengisian komentar, dimana isi komentar tersebut termasuk dalam spam atau bukan yaitu dengan menggunakan algoritma bayesian.
Program MOD yang dibuat diharapkan dapat digunakan oleh semua orang yang mana dapat diaplikasikan pada semua website seperti blog, guest book (buku tamu), forum diskusi, dan lain-lain.
1.5 Metodologi Penelitian
Metode penelitian yang dilakukan bertujuan untuk mengatur dan mempermudah pelaksanaan pekerjaan, dengan tahap-tahap pembangunan sistem secara berurutan yaitu sebagai berikut :
1. Tahap pengumpulan data
Pada tahap pengumpulan data menggunakan tahap studi literatur, yaitu pengumpulan data dengan membaca berbagai buku referensi, observasi
yang berhubungan dengan topik permasalahan. 2. Pengembangan perangkat lunak
Dalam pengembangan suatu program aplikasi atau perangkat lunak perlu digunakan metodologi yang dapat digunakan sebagai pedoman bagaimana dan apa yang harus dikerjakan selama pengembangan ini.
Adapun metode yang digunakan adalah model Waterfall / Linear
Sequential Model. Tahap-tahap metode pengembangan perangkat lunak ini
adalah sebagai berikut :
1) System / Information Engineering dan Modelling
Pembentukan kebutuhan-kebutuhan dari semua elemen sistem dan mengalokasikan suatu subsistem kedalam pembentukan perangkat.
(20)
2) Analysis
Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikannya.
Tujuan analisis adalah agar menemukan kelemahan-kelemahan sistem yang digunakan sehingga dapat diusulkan perbaikannya.
3) Design
Tahap penerjemah dari keperluan atau data yang dianalisis kedalam bentuk yang mudah dimengerti oleh pemakai (user).
4) Code
Proses penerjemahan data atau pemecahan masalah yang dirancang kedalam bahasa pemrograman.
5) Test
Setelah program selesai dibuat, maka tahap berikutnya adalah pengujian terhadap program tersebut.
6) Development dan maintenance
Analisis sistem akan melakukan perawatan atau pemeliharaan dan pengembangan sistem yang telah dicapai.
(21)
System / Information Engineering dan Modelling
Gambar 1.1 Waterfall Model / Linear Sequential Mode
1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I. PENDAHULUAN
Bab ini berisi latar belakang masalah, identifikasi masalah, batasan masalah, maksud dan tujuan, metodologi penelitian serta sistematika penulisan.
BAB II. LANDASAN TEORI
Dalam bab ini akan dijelaskan tentang pengertian dan penjelasan dari teori-teori yang berhubungan dengan masalah-masalah yang akan dibahas, permasalahan yang akan diteliti, serta mendapatkan dasar-dasar referensi yang kuat bagi peneliti dalam menerapkan suatu metode yang digunakan.
BAB III. ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan diutarakan tentang definisi masalah yang ada sebagai acuan dalam perancangan dan pembangunan perangkat pendukung pembelajaran serta langkah-langkah pembuatan perangkat pendukung pembelajaran tersebut.
(22)
BAB IV. IMPLEMENTASI DAN PENGUJIAN
Pada bagian ini dijelaskan tentang hal-hal yang diperlukan pada saat sistem akan diterapkan antara lain tentag kebutuhan perangkat keras dan perangkat lunak, implementasi struktur data dan implementasi antarmuka dan juga berisi pengujian dari perangkat lunak yang dibuat untuk mengetahui sejauh mana program yang dibuat dapat menyelesaikan proses penyederhanaan, meliputi pengujian validasi tata bahasa dan pengujian proses penyederhanaan.
BAB V. KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan mengenai semua tahapan yang telah dilalui serta saran yang berkenaan dengan hasil yang telah dicapai.
(23)
7
LANDASAN TEORI
2.1 Website
Sejak internet diperkenalkan kepada dunia pada tahun 1972-1973, penggunaan internet semakin meluas, tidak hanya pada kalangan khusus (militer pada saat itu) saja. Seiring dengan perkembangannya, orang-orang yang memanfaatkan internet membuat sebuah sistem yang memudahkan pengaksesan internet oleh masyarakat luas. Sistem ini juga memungkinkan adanya peluang bisnis dalam bidang ini. Hal ini ditandai dengan didirikannya provider (penyedia layanan) internet sampai warnet (warung internet).
World Wide Web atau www atau singkatnya web memberikan gambaran secara jelas yang memudahkan untuk mencari dan melihat berbagai dokumen di internet, dokumen-dokumen di internet berhubungan baik satu sama lain, data atau halaman-halaman web agar terhubung pada komputer dimana saja dengan catatan komputer tersebut harus terhubung dengan web dan dapat mengakses internet. Secara mudah kita dapat mengidentifikasikan hubungan jarak jauh dengan mengklik hyperlink yang selalu berbeda warna dari teks biasa yang terdapat pada web.
Pada dasarnya website adalah sebuah cara untuk menampilkan sesuatu di internet, baik pribadi, perusahaan dan lain sebagainya. Website adalah sebuah tempat di internet, siapa saja di dunia ini dapat mengunjunginya, kapan saja dan dimana saja bisa berinternet maka situs tersebut dapat diakses.
(24)
Dengan adanya website maka pengunjung dapat melihat dan mengetahui tentang diri seseorang, barang, perusahaan atau apa saja yang ditampilkan di website tersebut.
Interaksipun terjadi di dalam website melalui pengiriman komentar seperti memberi pertanyaan, menjawab pertanyaan, memberikan kesan dan pesan ataupun membeli produk yang ditawarkan di website tersebut. Internet bagaikan sebuah pusat perdagangan terbesar di dunia dan website adalah salah satu toko atau kios di pusat perdagangan tersebut.
Mengapa seseorang atau perusahaan membutuhkan sebuah website? - 5 tahun yang lalu memiliki sebuah website hanyalah untuk gengsi. - 2 tahun yang lalu memiliki sebuah website hanyalah karena trendy. - Hari ini memiliki sebuah website adalah keharusan.
Semua orang menggunakan website untuk segala sesuatu mulai dari pekerjaan pribadi, sekolah sampai dengan memesan makanan, karena prosesnya yang cepat, murah, mudah dan menyenangkan, bahkan yang suka belanja sekalipun mencari produk yang diinginkan di website.
2.2 Interaksi Dalam Sebuah Website
Dengan adanya website maka pengunjung dapat melihat dan mengetahui tentang diri seseorang, barang, perusahaan atau apa saja yang ditampilkan di website tersebut.
Interaksipun terjadi di dalam website melalui pengiriman komentar seperti memberi pertanyaan, menjawab pertanyaan, memberikan kesan dan pesan
(25)
ataupun membeli produk yang ditawarkan di website tersebut. Internet bagaikan sebuah pusat perdagangan terbesar di dunia dan website adalah salah satu toko atau kios di pusat perdagangan tersebut.
Website dapat digunakan untuk berbagai tugas, misalnya: - Membuat pengumuman atau pemberitahuan.
- Memberikan pelayanan kepada Customer.
- Menerima masukan dari pengunjung atau pelanggan. - Membagi dan mendistribusi data.
- Berkomunikasi langsung dengan pengunjung yang berada di belahan dunia. Dengan adanya interaksi dalam website ini memang membuat website tersebut menarik dan mempermudah manusia dalam pekerjaannya, namun satu hal yang tidak kalah pentingnya adalah apakah website tersebut aman dari serangan bot-bot spam? Dengan adanya interaksi dalam website membuat website tersebut mempunyai celah untuk terserang spam dan bot-bot spam.
(26)
2.3 Spam
Spam pertama muncul pada tanggal 3 Mei 1978. Sampai saat ini spam dikenal sebagai anggota geng malware, email sampah, salah satu bahaya dari internet yang menduduki posisi teratas dalam catatan kejahatan komputer.
Sebuah blog Malaysia mengaku bahwa blognya dimasuki Spammer, sehingga dalam sehari ada 100 bot-bot spam yang masuk.
Spam adalah pengiriman informasi yang biasanya datang bertubi-tubi yang tidak pada tempatnya dan bersifat mengganggu untuk mempromosikan suatu barang atau jasa, bahkan untuk menyerang suatu website.
Spammer adalah orang yang mengirimkan spam atau melakukan spamming. Biasanya para spammer sudah membaca dan mengetahui website yang akan dijadikan target.
Bot adalah singkatan dari robot. Bot adalah program komputer yang dijalankan yang khusus dibuat untuk melakukan pekerjaan-pekerjaan otomatis. Kebanyakan bot dibuat oleh pembuat program yang sudah ahli dan sudah melewati serangkaian uji coba yang panjang.
Bot spam adalah program komputer yang dibuat yang dijalankan untuk melakukan spam secara otomatis terhadap suatu website.
(27)
Gambar 2.2 Contoh website yang terserang spam dan bot-bot spam
Spam dan bot-bot spam yang telah berhasil masuk dalam suatu website kini tersimpan dalam database. Spam dan bot-bot spam ini sangat merugikan karena selain menimbulkan ketidaknyamanan bagi pengunjung dan pemilik website, juga memenuhi dan menghabiskan ruang (space) dalam database.
Bila belum ada penangkal untuk mengatasi permasalahan ini maka administrator website harus menghabiskan waktu untuk selalu online, menjaga dan menghapus semua spam dan bot-bot spam dari database.
(28)
Gambar 2.3 Contoh Bot-bot Spam Dalam Database
Sistem keamanan lama pada website menunjukkan bahwa website sering ditembusi spam baik pada saat registrasi maupun pada saat pengisian form untuk melakukan posting, seperti contoh pada pengiriman komentar dalam sebuah blog, forum diskusi PHPBB versi 2.0.x, pengisian buku tamu dan lain-lain. Untuk itu perlu dibuat suatu sistem keamanan website agar tidak ditembus oleh bot-bot spam.
(29)
2.4 Sistem Keamanan Website
Sistem keamanan website sangat diperlukan untuk menghalau atau memblokir spam dan bot-bot spam. Para spammer biasanya telah mengetahui kekurangan dari website yang akan dijadikan target atau sasaran. Bila sistem keamanan pada website masih minim atau bahkan tidak ada, maka ini adalah sasaran empuk para
spammer, dimana spammer akan memasang bot-bot untuk menyerang website tersebut.
2.4.1 Generate Kode Keamanan
Captcha adalah Completely Automated Public Turing test to tell Computers and Humans Apart”. Captcha adalah sebuah tipe dari tes respon yang digunakan dalam perhitungan untuk meyakinkan bahwa jawaban (respon) tersebut tidak dihasilkan oleh sebuah computer. Captcha biasanya ditempatkan di form web untuk memastikan apakah pengguna itu manusia atau mesin. Tujuan dari captcha adalah memblok submission form dari spambot – skrip otomatis. Algoritma captcha yang paling bagus diciptakan oleh Carnegie Mellon University, dan algoritma tersebut digunakan oleh Yahoo, Google dan situs-situs besar lainnya.
(30)
Generate Random Sistem
User
Simpan ke Session
Show Image Security Code
Verifikasi Security Code Start
Finish Buka
Website
Input Security
Code
Baca Variable Captcha
valid invalid
Gambar 2.4 Flowchart Kode Keamanan Website
Konsep dari captcha ini banyak yang mengacu pada algoritma: generate random, simpan ke session, membaca variable captcha dari inputan user, mencocokan/validasi pada nilai session yang tersimpan, meloloskan sesuatu apabila sesuai, menggagalkan sesuatu apabila tidak sesuai.
Untuk membuat gambar dalam PHP tentu memanfaatkan GD Library dengan memanfaatkan session untuk mengirim nilai pada security code tersebut. Banyak
(31)
website yang menggunakan security code tetapi jawaban tersebut tersimpan di form, bisanya disimpan didalam <input type="hidden" />. Atau ada juga yang disimpan didalam link pada browsernya. Hal seperti itu sangat tidak aman, karena sama saja membuat security code dengan jawaban sekaligus. Sistem captcha yang baik adalah akan mengirim jawabannya dengan menggunakan session.
Berikut ini adalah contoh script untuk menghasilkan kode keamanan captha: 1. $result = md5(microtime() * 1000);
2. $result = substr($result, 0, 6); 3.
4. $im = imagecreate(90, 29);
5. $background_color = imagecolorallocate($im, 0xFF, 0x80, 0x00); 6. $text_color = imagecolorallocate($im, 0x02, 0x01, 0x00);
7. $line_color = imagecolorallocate($im, 0xFF, 0xFF, 0xFF); 8.
9. header("Content-type: image/png");
10. imagestring($im, 9, 5, 5, $result, $text_color); 11. imageline($im, 0, 0, 39, 29, $line_color); 12. imageline($im, 40, 4, 139, 29, $line_color); 13. imageline($im, 80, 4, 139, 98, $line_color); 14. imageline($im, 90, 4, 19, 8, $line_color); 15. imagepng($im);
Baris 1-2 adalah membuat karakter acak, microtime() * 1000 untuk membangkitkan bilangan acak, lalu masukkan bilangan acak tersebut ke fungsi md5() untuk mengacaknya lagi, lalu ambil 6 karakter dari depan dengan fungsi substr().
Baris 4-7 mempersiapkan imagenya beserta warna yang akan digunakan, imagecreate(90, 29) untuk membuat image, imagecolorallocate($im, 0xFF, 0x80, 0x00) untuk membuat warna yang akan digunakan, 0xFF, 0x80, 0x00 dan sebagainya itu adalah bilangan hexa dari sebuah warna.
(32)
Baris 9-15 ditampilkan imagenya, header("Content-type: image/png") untuk menampilkan image dengan keluaran png, imagestring($im, 9, 5, 5, $result, $text_color) untuk memasukkan karakter yang telah dibuat ke dalam image, imageline($im, 0, 0, 39, 29, $line_color) untuk membuat garis acak.
Captcha dapat dikembangkan sesuai kemauan dan kreasi dari pembuatnya, yaitu dengan membuat text acak dan acak juga letak kode kuncinya. Jadi ada 2 variabel untuk menyimpan text keseluruhan (tampil) dan text yg berisi kode. Untuk membedakan text kode dan text pengacak di tampilkan dengan warna yg berbeda, satu mencolok dan satu lebih lembut.
Tampilan seperti ini:Qw3Rtymisalkan yg jadi text kode adalah warna biru (3Ry) dan text pengacak abu-abu (Qwt).
Jadi user harus memasukkan kode yg benar yaitu:3Ry
Berikut ini adalah scriptnya: function generate($enc = ""){ // random char composition
$salt = "abcdefABCDEF1234567890"; $len = strlen($salt);
mt_srand(10000000*(double)microtime()); for ($i = 0; $i < $this->text_length; $i++){
if(($i == mt_rand($i,$this->text_length - 1)) && $this->key_length > 0){ $text = $salt[mt_rand(0,$len - 1)];
$this->text_result .= "" . $text . ""; $this->key_result .= $text;
$this->key_length--; } else
$this->text_result .= "" . $salt[mt_rand(0,$len - 1)] . ""; }
// direct print code print($this->text_result); switch ($enc) {
case "md5":
(33)
break; case "sha1": return $this->catext_sha1($this->key_result); break; default: return trim($this->key_result); } }
Ada juga yang mengembangkan captcha dengan model matematika. Contoh captcha matematika seperti di bawah ini.
Contoh tampilan adalah: 2+ 5
User harus memasukkan hasil dari operasi matematika tersebut yaitu: 7 Berikut ini adalah scriptnya:
/*
* Function to "translate" mathematic operation * @val1: int
* @val2: int
* @op: int; if you add/remove case section, please update generate(); function */
function translate($val1, $val2, $op = 0){ switch ($op) {
case 0:
$this->_resultText = $val1 . ' + ' . $val2; $this->_resultNumber = $val1 + $val2; break;
case 1:
$this->_resultText = $val1 . ' - ' . $val2; $this->_resultNumber = $val1 - $val2; break;
default:
$this->translate($val1, $val2, 0); }
}
function generate($enc = ""){
$val1 = rand($this->_min, $this->_max); $val2 = rand($this->_min, $this->_max);
(34)
$opr = rand(0, 1);
$this->translate($val1, $val2, $opr); print $this->_resultText;// printing code switch ($enc) {
case "md5":
return $this->caMath_md5($this->_resultNumber); break;
case "sha1":
return $this->caMath_sha1($this->_resultNumber); break;
default:
return trim($this->_resultNumber); }
}
Captcha sering dibuat dengan tulisan yang miring, buram, bergaris, dan pada umumnya adalah gambar berisi text acak yang diberi distorsi sedemikian rupa. Ini mempunyai tujuan untuk memproteksi situs dari bot/robot agar bot spammer tidak bisa membacanya. Siapapun user yang memasukkan kode yang benar diasumsikan sebagai manusia.Jadi captcha digunakan untuk mencegah pengisian form secara otomatis oleh program tertentu yang disebut dengan bot atau robot.
OCR (Optical Character Recognation) adalah suatu program untuk membaca
tulisan yang terdapat pada gambar. Captcha yang dibuat dengan tulisan yang miring, buram, bergaris, dan pada umumnya adalah gambar berisi text acak yang diberi distorsi sedemikian rupa sangat sulit dibaca oleh mesin program (robot), sehingga dapat diasumsikan bahwa yang mengisi form adalah manusia. Hal ini adalah untuk memproteksi form website dari spam.
(35)
2.4.2 Verifikasi Kode Keamanan
Verifikasi kode keamanan dibuat dalam bentuk security image atau security code atau captcha adalah suatu bentuk perlindungan terhadap suatu form dari serangan spam.
Proses verifikasi data kode keamanan adalah lebih diutamakan untuk memblokir bot, dimana diberikan kode keamanan yang harus diisi dengan benar. Contoh pada pengisian formulir pendaftaran untuk mendapat account email di yahoo, dimana pada bagian bawah diatas tombol create my account terdapat
security code yang harus diisi.
Gambar 2.5 Security code pada form pendaftaran email yahoo
Security code yang tampil ini harus diisi dengan benar oleh semua user yang mendaftar, bila salah maka proses tidak akan dilanjutkan.
Cara kerja security code ini adalah: 1. Pertama:
Form akan menampilkan security code yang di generate oleh script PHP, apabila halaman tersebut di refresh maka security code akan melakukan
generate lagi sehingga kodenya berubah. Hal ini sangat berguna sekali untuk menangkal serangan spam.
(36)
2. Kedua:
Setelah menekan tombol submit, script php akan memvalidasi data dan mencocokkan security code yang telah dimasukkan. Apabila security code
tidak sama maka proses akan dibatalkan, apabila security code sama, maka proses akan dilanjutkan.
2.4.3 Verifikasi Komentar (Pemeriksaan dan Pendeteksian Spam)
Verifikasi komentar yang digunakan untuk pemeriksaan dan pendeteksian spam ini berisi filter dengan menggunakan algoritma Bayesian, dimana pengiriman komentar akan difilter apakah komentar tersebut spam atau bukan. Bila data yang dimasukkan termasuk dalam kategori spam maka proses tidak akan dilanjutkan dan informasi bahwa data terdeteksi sebagai spam disampaikan kepada user. Bila data yang dimasukkan tidak termasuk dalam kategori spam maka proses data akan dilanjutkan untuk disimpan.
Pengecekan spam ini menggunakan tabel tersendiri yang menyimpan contoh-contoh komentar spam. Tabel tersebut harus terus diupdate oleh administrator, sehingga akan lebih menghasilkan suatu pemeriksaan spam yang lebih akurat lagi. Diperlukan juga sebuah tabel lain untuk menyimpan data yang bukan spam. Semua data yang tidak termasuk dalam kategori spam disimpan dalam tabel tersebut. Semua tabel ini dapat dilihat dan diubah oleh admin. User hanya bisa melihat report data, tidak bisa mengubah data.
(37)
2.5 Algoritma Bayesian
Dewasa ini telah dikembangkan berbagai algoritma untuk memfilter spam secara otomatis oleh perangkat lunak, baik di level MUA maupun MTA. Salah satu algoritma yang cukup handal untuk menghalau spam adalah algoritma Bayes. Algoritma ini bekerja memanfaatkan metode statistika Bayesian untuk mengklasifikasikan dokumen dalam katagori tertentu berdasarkan tingkat keterpercayaannya.
Algoritma Bayesian dinamai sesuai nama Thomas Bayes (1702-1761) yang pertama kali mengajukan persoalan statistik yang kini dikenal sebagai teorema Bayes. Istilah Bayesian sendiri baru muncul sekitar tahun 1950-an. Sebelumnya, teorema Bayes banyak dipakai dalam berbagai bidang, mulai dari perhitungan matematis orbit benda langit, statistika medis, hingga bidang hukum.
Teknik filter spam dengan metoda Bayesian (selanjutnya disebut filter Bayesian) pertama kali diajukan oleh M. Sahami, dkk pada 1998. Namun metoda ini baru mendapat perhatian pada 2002 ketika diulas oleh Paul Graham dalam sebuah paper. Selanjutnya, filter Bayesian mulai populer sebagai sebuah metode untuk membedakan spam dengan komentar regular. Dewasa ini filter Bayesian diimplementasikan pada berbagai perangkat lunak yang populer dan di perangkat filter server-side semacam SpamAssassin serta beberapa perangkat lunak mail server.
(38)
Gambar 2.6 Sistem Arsitektur Penyaringan Spam PHP Bayesian 1. Serangkaian teks contoh:
adalah input komentar berupa serangkaian teks, dimana user memasukkan serangkaian atau sekumpulan teks berisi apa saja yang dapat dijadikan contoh pendeteksian spam.
2. Pembelajaran:
Serangkaian teks contoh di atas kemudian dipelajari terlebih dahulu bagaimana isi teks-teks tersebut. Dalam mempelajari teks, perlu ditelusuri kata demi kata dalam rangkaian teks tersebut sehingga nanti dapat digolongkan mana spam dan mana yang bukan spam.
Pembelajaran
Penyaringan teks Teks
Pengetahuan
Persentase dari teks yang dimiliki spam Serangkaian teks contoh
(39)
3. Pengetahuan:
Setelah melalui tahap pembelajaran, kemudian masuk ke tahap pengetahuan, dimana mulai bisa diprediksi apakah teks-teks tersebut tergolong sebagai spam atau bukan. Pengetahuan yang didapat untuk memprediksi spam dan bukan spam ini kemudian dilanjutkan ke penyaringan teks.
4. Penyaringan teks:
Serangkaian teks tersebut kemudian melalui tahap penyaringan. Dalam tahap penyaringan ini, teks akan diperiksa dan dideteksi seberapa besar persentase spam dalam rangkaian teks tersebut.
Pemeriksaan dan pendeteksian spam dibantu dengan text yang benar-benar spam. Kemudian pada penyaringan teks ini akan dibandingkan sekumpulan teks tadi dengan teks yang benar-benar spam.
Dengan demikian akan didapat berapa persentase sekumpulan atau serangkaian teks tadi yang mengandung spam.
5. Teks:
adalah teks yang benar-benar spam yang akan digunakan sebagai perbandingan untuk membandingkan sekumpulan teks yang akan dideteksi sehingga akan diperoleh berapa persentase spam dari sekumpulan teks yang dideteksi tersebut.
(40)
6. Persentase teks yang dimiliki spam:
adalah hasil yang didapat setelah melalui tahap penyaringan, yaitu berapa persentase serangkaian teks yang mengandung spam setelah melalui pemeriksaan dan pendeteksian spam.
Bayesian filter merupakan metode terbaru yang digunakan untuk mendeteksi
spam. Algoritma ini memanfaatkan metode probabilitas dan statistik yang dikemukakan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi probabilitas di masa depan berdasarkan pengalaman di masa sebelumnya. Dua kelompok peneliti, satu oleh Pantel dan Lin, dan yang lain oleh Microsoft Research memperkenalkan metode statistik Bayesian ini pada teknologi anti spam filter. Tetapi yang membuat algoritma Bayesian filtering ini popular adalah pendekatan yang dilakukan oleh Paul Graham.
2.5.1 Tabel dan Field Pada Bayesian Filter
Pada Bayesian filter membutuhkan suatu pembelajaran sehingga dibuatlah tabel untuk pembelajaran dengan nama tabel knowledge_base yang berisikan 4 field yaitu ngram, belongs, repite dan percent.
- Ngram
Ngram adalah sebuah tipe dari suatu model probabilitas atau penentuan kemungkinan untuk memprediksi sesuatu item berikutnya (dalam hal ini adalah komentar) apakah termasuk dalam kategori spam atau bukan spam.
(41)
Field ngram ini digunakan Bayesian filter untuk menentukan probabilitas atau kemungkinan suatu komentar, yaitu berapa besar komentar yang dideteksi atau dicek termasuk dalam kategori spam atau bukan spam.
- Belongs
Belongs adalah sebuah field yang menampung informasi mengenai suku kata, yang mana suku kata tersebut termasuk spam atau bukan spam.
- Repite
Repite berasal dari bahasa Spanyol (spanish) yang bila diterjemahkan ke bahasa Inggris adalah “repeat” yang artinya dalam bahasa Indonesia adalah mengulangi. Pada bayesian filter ini, field ini digunakan untuk menampung informasi mengenai data jumlah kata/suku kata yang sudah muncul/berulang beberapa kali. - Percent
Percent adalah sebuah field yang akan menunjukkan dalam persen hasil dari pendeteksian Bayesian filter ini.
Bayesian filter membutuhkan juga sebuah tabel lagi untuk digunakan sebagai sampel atau contoh, yaitu untuk membandingkan suatu komentar yang masuk dengan komentar yang sudah dikategorikan sebagai spam, untuk itu dibuat sebuah tabel dengan nama tabel examples. Tabel examples berisikan 2 field yaitu text dan state.
- Text
Field ini berisikan atau digunakan untuk menampung semua data-data sampel atau contoh komentar spam. Data-data sampel atau contoh komentar yang bukan spam
(42)
juga ditampung disini. Untuk memisahkan data spam dan data bukan spam dibutuhkan sebuah field yang dinamakan field state.
- State
Field ini digunakan untuk menentukan atau memisahkan data atau komentar yang dikategorikan sebagai spam dan bukan spam.
2.5.2 Class Pada Bayesian Filter
Seperti yang telah dijelaskan di atas pada gambar 2.6 sistem arsitektur penyaringan spam php Bayesian, Bayesian filter ini menggunakan 3 class yaitu: trainer, ngram dan spam.
- Trainer
Pada class trainer ini digunakan Bayesian filter untuk pembelajaran yaitu suatu komentar dipelajari dulu oleh sistem dengan cara dibandingkan dengan komentar spam yang telah ada yang disimpan dalam tabel examples, sehingga suatu komentar yang dicek atau dideteksi dapat dikategorikan termasuk dalam kategori spam atau bukan spam.
- Ngram
Pada class ngram ini digunakan Bayesian filter untuk menentukan probabilitas atau kemungkinan suatu komentar, yaitu berapa besar komentar yang dideteksi atau dicek termasuk dalam kategori spam atau bukan spam.
- Spam
Class ini adalah class spam dimana komentar tersebut termasuk atau terdeteksi sebagai spam.
(43)
2.5.3 Pendeteksian Spam Pada Bayesian Filter
Bayesian filter mendeteksi spam dengan cara menghitung probabilitas dari suatu pesan (komentar) berdasarkan isinya. Probabilitas ini dapat dihitung melalui suatu database. Kemudian dengan suatu metode training, software anti spam yang menggunakan algoritma Bayesian dapat dilatih untuk melihat kata-kata yang sering digunakan pada komentar spam, sehingga pada akhirnya dihasilkan filter anti spam yang akurat dengan sesedikit mungkin false positives. False positives
adalah komentar legal yang ditujukan kepada penerima, tetapi karena kesalahan dari filter anti spam, dikategorikan menjadi komentar spam.
Program MOD yang dibuat adalah untuk filterisasi. Filterisasi ini sangat berhubungan dengan algoritma Bayesian. Algoritma Bayesian adalah untuk mendapatkan data probabilitas untuk dimasukkan nanti ke bagian filterisasi. Pada awalnya, Bayesian filter ini harus dicoba terlebih dahulu menggunakan sejumlah komentar spam dan bukan spam. Bayesian filter akan menghitung
probabilitas lokal dari suatu kata, misalnya kata “adult”, untuk muncul di kelompok komentar spam. Probabilitas lokal ini dapat dirumuskan seperti berikut:
Plocal – spam = N spam / (N spam + N non-spam)
dimana : Plocal – spam = probabilitas suatu kata “x” terdapat pada komentar spam N spam = jumlah komentar spam dengan kata “x” di dalamnya N non-spam = jumlah komentar non-spam dengan kata “x” di dalamnya Contohnya adalah kata “free” terdapat dalam 70 spam dan 10 bukan spam, maka kemungkinan (probabilitas) kata “free” adalah 70 / (70 + 10) = 70/80 = 0,875
(44)
berarti kata “free” mempunyai probabilitas yang tinggi untuk masuk ke dalam kategori spam.
2.6 Definisi Pemrograman Berorientasi Objek
Pemrograman berorientasi objek, atau sering juga disebut dengan OOP
(Object Oriented Programming), merupakan paradigma baru dalam
pengembangan sistem/perangkat lunak. Tidak seperti pendahulunya, yaitu pemrograman dengan teknik terstruktur (structured programming) yang sering mengalami kegagalan dalam hal sistem/perangkat lunak yang tidak sesuai dengan kebutuhan dan harapan pengguna (user’s need and expectations) serta kerap kali tidak dapat memenuhi jadwal yang telah ditentukan sebelumnya. Pemrograman berorientasi objek dengan paradigma barunya, menjanjikan tingkat penggunaan ulang (reusability), kinerja (performance), serta kehandalan (reliability) yang lebih tinggi. (Roger Pressman, 2000).
Saat ini, dunia pemrograman berorientasi objek mengenal UML (Unified
Modelling Language) sebagai alat utama dalam analisis dan perancangan sistem.
UML merupakan alat yang sangat sesuai dengan pemrograman berorientasi objek sebab konsep dasarnya adalah memodelkan kelas-kelas (beserta atribut serta operasi di dalamnya) bersamaan dengan relasi-relasi yang terjadi antar kelas yang bersangkutan.
(45)
2.7 Definisi UML (Unified Modeling Language)
UML (Unified Modelling Language) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.
UML adalah bahasa grafis untuk mendokumentasikan, menspesifikasikan dan membangun sistem perangkat lunak. UML berorientasi objek, menerapkan banyak level abstraksi, tidak bergantung proses pengembangan, tidak bergantung bahasa dan teknologi, pemaduan beberapa notasi di beragam metodologi, usaha bersama dari banyak pihak, didukung oleh kakas-kakas yang diintegrasikan oleh XML. Standar UML dikelola oleh OMG (Object Management Group).
UML (Unified Modelling Language) adalah bahasa pemodelan untuk menspesifikasikan, memvisualisasikan, membangun dan mendokumentasikan artifak-artifak dari sistem.
1. Di dalam system intensive process, metode diterapkan sebagai proses untuk menurunkan atau mengevolusikan sistem.
2. Sebagai bahasa, UML digunakan untuk komunikasi yaitu alat untuk menangkap pengetahuan mengenai satu subyek dan mengekspresikan pengetahuan (sintaks) yang memperdulikan subyek untuk maksud komunikasi. Subyek adalah sistem yang dibahas.
(46)
3. Sebagai bahasa pemodelan, UML fokus pada pemahaman subyek melalui formulasi model dari subyek. Model memuat pengetahuan pada subyek, dan aplikasi dari pengetahuan ini berkaitan dengan intelejensia.
4. Berkaitan dengan unifikasi.UML memadukan praktek rekayasa terbaik sistem informasi dan industri, meliputi beragam tipe sistem (perangkat lunak dan non perangkat lunak), domain (bisnis, perangkat lunak) dan proses siklus hidup.
5. begitu diterapkan untuk menspesifikasikan sistem, UML dapat digunakan
untuk mengkomunikasikan “apa” yang diperlukan dari sistem dan “bagaimana” sistem dapat direalisasikan.
6. Begitu diterapkan untuk menvisualisasikan sistem, UML dapat digunakan untuk menjelaskan sistem secara visual sebelum direalisasikan.
7. Begitu diterapkan untuk membangun sistem, UML dapat digunakan untuk
memandu realisasi sistem serupa dengan “blueprint”.
8. Begitu diterapkan untuk mendokumentasikan sistem, UML dapat digunakan untuk menangkap pengetahuan mengenai sistem pada seluruh siklus hidup.
Dengan melihat definisi UML diatas, maka UML bukanlah bahasa pemrograman visual, tapi bahasa pemodelan visual. UML bukanlah spesifikasi kakas, tapi spesifikasi bahasa pemodelan. UML juga bukan proses, tapi yang memungkinkan proses-proses.
(47)
1. Menyediakan bahasa pemodelan visual yang ekspresif dan siap pakai untuk mengembangkan dan pertukaran model-model yang berarti.
2. Menyediakan mekanisme perluasan dan spesifikasi untuk memperluas konsep-konsep inti.
3. Mendukung spesifikasi independen bahasa pemrograman dan proses pengembangan tertentu.
4. Menyediakan basis formal untuk pemahaman bahasa pemodelan. 5. Mendorong pertumbuhan pasar kakas berorientasi objek.
6. Mendukung konsep-konsep pengembangan level lebih tinggi seperti komponen, kolaborasi, framework dan pattern.
(48)
2.7.1 Diagram Teknik Pemodelan UML
Diagram mengemukakan banyak hal, penggunaan notasi yang terdefinisi baik dan ekspresif adalah penting pada proses pengembangan perangkat lunak, yaitu :
1. Notasi standar memungkinkan pengembang mendeskripsikan skenario atau rumusan arsitektur dan kemudian mengkomunikasikan secara tidak ambigu.
2. Notasi yang bagus membebaskan otak untuk berkonsentrasi pada masalah-masalah yang lebih lanjut.
3. Notasi yang baik memungkinkan mengeleminasi keperluan pemeriksaan konsistensi dan kebenaran keputusan keputusan dengan menggunakan tool
terotomatisasi.
2.7.2 Diagram Struktur
Diagram ini untuk memvisualisasi, menspesifikasikan, membangun dan mendokumentasikan aspek statik dari sistem. Diagram struktur di UML terdiri dari:
1. Diagram kelas (Class diagram)
Diagram ini menunjukkan sekumpulan kelas, interface dan kolaborasi dan keterhubungannya.
2. Diagram objek (Object diagram)
(49)
3. Diagram komponen (Component diagram)
Diagram ini menunjukkan organisasi dan kebergantungan di antara sekumpulan komponen. Diagram ini merupakan pandangan statik terhadap implementasi sistem.
4. Diagram deployment (Deployment diagram)
Diagram ini menunjukkan konfigurasi pemrosesan saat jalan dan komponen komponen yang terdapat didalamnya.
2.7.3 Diagram Perilaku
Diagram ini untuk memvisualisasi, menspesifikasi, membangun dan mendokumentasikan aspek dinamis dari sistem. Diagram perilaku di UML terdiri dari :
1. Diagram use-case (Use case diagram)
Diagram ini menunjukkan sekumpulan kasus fungsional dan actor (jenis kelas khusus) dan keterhubungannya.
2. Diagram sekuen (Sequence diagram)
Diagram ini menunjukkan interaksi yang terjadi antar objek. Diagram ini merupakan pandangan dinamis terhadap sistem.
3. Diagram kolaborasi (Collaboration diagram)
Diagram ini juga merupakan diagram interaksi. Diagram ini menekankan pada organisasi struktur dari objek-objek yang mengirim dan menerima pesan.
(50)
4. Diagram statechart (Statechart diagram)
Diagram ini adalah state-machine diagram, berisi state, transisi, kejadian dan aktivitas. Statechart merupakan pandangan dinamis dari sistem.
5. Diagram aktivitas (Activity Diagram)
Diagram ini untuk menunjukkan aliran aktivitas di sistem. Diagram ini adalah pandangan dinamis terhadap sistem.
2.7.4 Notasi dalam UML (Unified Modeling Language)
UML menyediakan beberapa notasi dan artifak standar yang bisa digunakan sebagai alat komunikasi bagi para pelaku dalam proses analisis dan desain. Artifak di dalam UML didefinisikan sebagai informasi dalam berbagai bentuk yang digunakan atau dihasilkan dalam proses pengembangan perangkat lunak.
1. Actor
Actor adalah segala sesuatu yang berinteraksi dengan sistem aplikasi komputer. Jadi actor ini bisa berupa orang, perangkat keras, atau mungkin objek lain dalam sistem yang sama. Biasanya yang dilakukan actor adalah memberikan informasi pada sistem dan atau memerintahkan sistem untuk melakukan sesuatu.
2. Class
Class merupakan pembentuk utama dari sistem berorientasi objek karena
(51)
yang sama. Class digunakan untuk mengabstraksikan elemen-elemen dari sistem yang sedang dibangun.
3. Interface
Interface merupakan kumpulan operasi tanpa implementasi dari suatu
class.
4. Use Case
Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu walaupun menjelaskan kegiatan. Namun use casehanya menjelaskan “apa” yang dilakukan oleh actor dan
sistem, bukan “bagaimana” actor dan sistem melakukan kegiatan tersebut.
5. Interaction
Interaction digunakan untuk menunjukkan baik aliran pesan atau
informasi antar obyek maupun hubungan antar objek.
6. Package
Package adalah kontainer atau wadah konseptual yang digunakan untuk mengelompokkan elemen-elemen dari sistem yang sedang di bangun, sehingga bisa dibuat model yang lebih sederhana. Tujuannya adalah untuk mempermudah penglihatan (visibility) dari model yang sedang dibangun.
7. Note
Note digunakan untuk memberikan keterangan dan komentar tambahan dari satu elemen sehingga bisa langsung terlampir dalam model. Note ini bisa ditampilkan ke semua elemen notasi yang lain.
(52)
8. Dependency
Dependency merupakan relasi yang menunjukkan bahwa perubahan pada salah satu elemen memberi pengaruh pada elemen lain.
9. Boundary Class
Boundary class adalah class yang menghubungkan user dengan sistem.
10. Control Class
Control class adalah class yang mengkoordinasi aktivitas dalam sistem.
Class ini menghubungkan boundary class dengan entity class.
11. Entity Class
Entity Class adalah class yang menghubungkan dengan data atau
informasi yang digunakan oleh sistem. Entity class ini adalah class yang menyimpan dan mengelola data dapat dikombinasikan.
2.8 Software Pendukung
Diperlukan beberapa software pendukung agar sistem keamanan website dapat dibuat dengan baik.
2.8.1 PHP
PHP atau (Personal Home Page) adalah bahasa server - side scripting yang menyatu dengan HTML untuk membuat halaman web yang dinamis. Maksud dari
server - side scripting adalah sintaks dan perintah-perintah yang diberikan akan sepenuhnya dijalankan di server, tetapi disertakan pada dokumen HTML.
(53)
Pembuatan web ini merupakan kombinasi antara PHP sendiri sebagai bahasa pemprograman dan HTML sebagai pembangun halaman web. Ketika seorang pengguna internet akan membuka suatu situs yang menggunakan fasilitas server - side scripting PHP, maka terlebih dahulu server yang bersangkutan akan memproses semua perintah PHP di server lalu mengirimkan hasilnya dalam format HTML ke webbrowser pengguna internet tadi. Dengan demikian seorang pengguna internet tidak dapat melihat kode program yang ditulis dalam PHP sehingga keamanan dari halaman web menjadi lebih terjamin.
PHP memiliki banyak kelebihan yang tidak dimiliki oleh bahasa script sejenis. PHP difokuskan pada pembuatan script server-side, yang bisa melakukan apa saja yang dapat dilakukan oleh CGI, seperti mengumpulkan data dari form, menghasilkan isi halaman web dinamis, kemamapuan mengirim serta menerima cookies, bahkan lebih daripada kemampuan CGI.
PHP dapat digunakan pada semua sistem operasi, antara lain Linux, Unix (termasuk variannya HP-UX, Solaris, dan OpenBSD), Microsoft Windows, Mac OS X, RSIC OS. PHP juga mendukung banyak Web Server, seperti Apache, Microsoft Internet Information Server (MIIS), Personal Web Server (PWS), Netscape and iPlanet servers, Oreilly Website Pro Server, Audium, Xitami, OmniHTTPd, dan masih banyak lagi lainnya, bahkan PHP dapat bekerja sebagai suatu CGI processor.
PHP tidak terbatas pada hasil keluaran HTML (HyperText Markup Language). PHP juga memiliki kemampuan untuk mengolah keluaran gambar, file
(54)
PDF, dan movies Flash. PHP juga dapat menghasilkan teks seperti XHTML dan file XML lainnya.
Salah satu fitur yang dapat diandalkan oleh PHP adalah dukungan terhadap database, seperti Adabas D, dBase, Direct MS-SQL, Empress, FilePro (read only), FrontBase, Hyperwave, IBM DB2, Informix, Ingres, Interbase, MSQL, MySQL, ODBC, Oracle (OC17 dan OC18), Ovrimos, PostgrSQL, Solid, Sybase, Unix DBM, Volacis.
Sintaks program/script PHP ditulis dalam apitan tanda khusus PHP. Asda empat macam pasangan tag PHP yang dapat digunakan untuk menandai blok script PHP:
<?php Isi Script ?> atau
<script language = “PHP”>
Isi Script </script>
2.8.2 Database MySQL
MySQL adalah multi user database yang menggunakan bahasa Structured Query Language (SQL). MySQL dalam operasi client - server melibatkan server
daemon MySQL di sisi server dan berbagai macam program serta library yang berjalan di sisi client. MySQL mampu menangani data yang cukup besar.
(55)
Perusahaan yang mengembangkan MySQL yaitu TcX, mengaku menyimpan data lebih dari 40 database, 10.000 tabel dan sekitar 7 juta baris, totalnya kurang lebih 100 Gigabyte data. SQL adalah bahasa standar yang digunakan untuk mengakses
database server. Bahasa ini pada awalnya dikembangkan oleh IBM, namun telah
diadopsi dan digunakan sebagai standar industri. Dengan menggunakan SQL, proses akses database menjadi lebih user - friendly dibandingkan dengan menggunakan dBASE atau Clipper yang masih menggunakan perintah - perintah pemrograman. MySQL merupakan software database yang paling populer di lingkungan Linux, kepopuleran ini karena ditunjang performa query dari database
nya yang saat ini bisa dikatakan paling cepat dan jarang bermasalah. MySQL ini juga sudah dapat berjalan pada lingkungan Windows.
(56)
2.8.3 Web Browser
Web Browser adalah sebuah aplikasi yang digunakan untuk menampilkan file-file yang mendukung web yang berekstensi *.htm, *.html, *.php dan masih banyak lainya, dan juga beberapa file image (gambar). Melalui web browser
penggna internet dapat memanfaatkan fasilitas internet yang ada pada sebuah
server internet dan berinteraksi dengan pengguna internet lainya di sleuruh dunia, beberapa browser yang cukup dikenal diantaranya yaitu Internet Explorer, Mozilla firefox, opera, Netscape Navigator dll.
Gambar 2.8 Contoh web browser Internet Explorer
(57)
2.8.4 Web Server Apache
Web server atau server web adalah sistem yang melayani permintaan suatu
web page, atau tempat penyimpanan web page yang akan dipanggil. Web page
adalah susunan teks, grafik, suara atau video klip dalam berbagai kombinasi dan berektensikan *.htm atau *.html dan masih banyak lagi lainya, web page biasanya berisi link website lainya yang dapat diakses dengan mengklik pada link yang tersorot, ratusan ribu website bertambah setiap hari, dikembangkan oleh individu dan organisasi yang ingin mengumumkan apa yang mereka ketahui, menjual atau yang ingin mereka bagikan ke seluruh dunia.
Server web yang terkenal diantaranya adalah Apache, Microsoft Internet Information Service (IIS) dan Java Server Pages (Sun Java). Apache merupakan server web antar-platform, sedangkan IIS hanya dapat beroperasi di sistem operasi Windows.
Server HTTP Apache atau Server Web/WWW Apache adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini mengunakan HTTP.
Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigur, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah.
(58)
Apache merupakan perangkat lunak sumber terbuka dikembangkan oleh komunitas terbuka yang terdiri dari pengembang-pengembang dibawah naungan
Apache Software Foundation.
Pada awal mulanya, Apache merupakan perangkat lunak sumber terbuka yang menjadi alternatif dari server web Netscape (sekarang dikenal sebagai Sun Java System Web Server). Sejak April 1996 Apache menjadi server web terpopuler di internet. Pada Mei 1999, Apache digunakan di 57% dari semua web server di dunia. Pada November 2005 persentase ini naik menjadi 71%. (sumber: Netcraft
Web Server Survey, November 2005).
Asal mula Apache berasal ketika sebuah server web populer yang dikembangkan awal 1995 yang bernama NCSA HTTPd 1.3 memiliki sejumlah perubahan besar terhadap kode sumbernya (patch). Karena banyaknya patch pada perangkat lunak tersebut sehingga disebut sebuah server yang memiliki banyak patch ("a patchy" server). Tetapi pada halaman FAQ situs web resminya, disebutkan bahwa "Apache" dipilih untuk menghormati suku asli Indian Amerika Apache (Indé), yang dikenal karena keahlian dan strategi perangnya. Versi 2 dari Apache ditulis dari awal tanpa mengandung kode sumber dari NCSA.
Apache adalah komponen server web dari paket perangkat lunak LAMP
(Linux, Apache, MySQL, PHP/Perl/bahasa pemrograman Python). Menurut
statistik dari Netcraft, Apache merupakan server web yang paling banyak digunakan di dunia per 2005 [1]. Microsoft Internet Information Services (IIS)
merupakan kompetitor utama Apache, diikuti oleh Sun Java Web Server dari Sun Microsystem.
(59)
43
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem merupakan kegiatan penguraian suatu sistem informasi yang utuh dan nyata ke dalam bagian-bagian atau komponen-komponen komputer yang bertujuan untuk mengidentifikasikan serta mengevaluasi masalah-masalah yang muncul, hambatan-hambatan yang mungkin terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga mengarah kepada solusi untuk perbaikan maupun pengembangan ke arah yang lebih baik dan sesuai dengan kebutuhan serta perkembangan teknologi.
3.2 Evaluasi Sistem
Melihat permasalahan-permasalahan yang terjadi pada website, sebagian besar disebabkan karena adanya interaksi dalam sebuah website seperti forum diskusi, pengiriman komentar dalam sebuah artikel di website, buku tamu, dan lain-lain.
Spammer akan memasang bot-botnya untuk menyerang suatu website yang
menjadi targetnya.
Untuk itu diperlukan suatu sistem keamanan untuk memblokir spam dan bot-bot spam ini, yaitu bagaimana cara agar spammer dan bot-bot ini tidak bisa melakukan posting yang nanti akan terdeteksi sebagai spam, dan juga untuk memblokir bot-bot spam ini dengan cara harus mengisi dengan benar kode keamanan yang diberikan.
(60)
3.3 Analisis Kebutuhan Sistem
Hasil evaluasi di atas menggambarkan bahwa seorang pemilik atau administrator website membutuhkan sebuah sistem keamanan untuk mengatasi permasalahan spam ini agar website dapat bersih dari spam dan bot-bot spam.
3.4 Usulan Kebutuhan Sistem
Untuk mengatasi permasalahan keamanan ini, diusulkan dengan pembuatan sistem keamanan yang dapat mengamankan website dari penyerangan bot-bot spam.
Usulan kebutuhan yang dapat diterapkan adalah dengan cara menginstalasi script PHP yang nantinya akan menjadi sebuah sistem keamanan bagi website.
3.5 Pemodelan Kebutuhan Fungsional
Sistem keamanan website ini yang berisi kode keamanan dan program untuk untuk memblokir spam dan bot-bot spam, diinstalasikan pada pengisian form, untuk melakukan posting. Perancangan sistem keamanan website ini meliputi: - Perancangan sistem untuk memblokir bot
- Perancangan sistem untuk memfilter spam
Bagaimanapun juga tidak ada sistem yang sempurna dalam menangani keamanan website, tetapi yang terpenting adalah bagaimana untuk semaksimal mungkin menjaga agar website bersih dari spam dan bot spam.
(61)
3.5.1 Kebutuhan Perangkat Keras
Perangkat keras (Hardware) adalah seluruh komponen atau unsur peralatan yang digunakan untuk menunjang pembangunan sistem keamanan website.
Hardware yang digunakan untuk menerapkan sistem informasi ini secara optimal
memerlukan spesifikasi minimum komputer sebagai berikut : a. Processor Intel core 2 duo 1.50 GHz
b. RAM 1 GB
c. Harddisk 120 GB
d. Colormonitor 15”
e. CD ROM 52x
f. Keyboard dan mouse
g. Modem, RJ 45 dan Switch Hub
3.5.2 Kebutuhan Perangkat Lunak
Perangkat lunak (software) adalah program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras. Adapun perangkat lunak yang digunakan dalam membangun sistem keamanan website ini adalah sebagai berikut:
a. Windows XP Professional SP 2 b. PHP 5
c. PHPMyAdmin – 3.0.0-dev d. MySQL client version 5.0.32
(62)
f. GD Library
g. Microsoft frontpage
h. Webhosting + Domain : skripsi.charleysakul.net
3.6 Diagram Use Case
Diagram Use Case merupakan salah satu diagram untuk memodelkan aspek perilaku sistem. Masing-masing diagram use case menunjukkan sekumpulan use case, actor, dan hubungannya. Diagram use case merupakan pusat pemodelan perilaku sistem, subsistem, dan kelas. Use case adalah interaksi antara actor dan sistem. Proses sistem tersebut di gambarkan dalam diagram use case sebagai berikut:
User
Filter Spam Sistem Keamanan Website Use Case
(63)
Dari diagram di atas, kegiatan sistem yang digambarkan oleh Use-Case
adalah:
Deskripsi Use Case Filter Spam
Tabel 3.1 Use Case Filter Spam
Nama Use Case : Filter Spam
Data Input : Komentar User, Security Code
Data Output : Notifikasi hasil filterisasi spam, hasil komentar bukan spam
Actor : User
Tujuan : Menyaring komentar spam dan menampilkan komentar bukan spam
Skenario
Actor Sistem
1. User menginput security code
3. User menginput komentar
2. Sistem memverifikasi security code
4. Sistem menyaring komentar
5. Sistem menampilkan komentar yang bukan spam.
(64)
3.7 Diagram Class
Pewarisan adalah mekanisme untuk mengekspresikan keserupaan di antara kelas-kelas, menyederhanakan pendefinisian kelas yang serupa dengan kelas yang didefinisikan sebelumnya. Pewarisan menyangkut generalisasi dan spesifikasi, menyatakan atribut dan layanan bersama (commonality) secara eksplisit di hirarki
kelas. Berikut adalah gambar model objek dengan pewarisan :
+trainer() +addExample() +setPreviousLearn() +extractpattern() +computerBayesianFiltering() -examples -ngram -knowledge Trainer +ngrams() +setLength() +setText() +setInitialNgram() +getNgram() +extract() +is_space() +useful() -text -length -ngram Ngram +spam() +isItSpam() +isItSpam_V2() +Chi2Q() -source Spam +generateCode() +CaptchaSecurityImage() -font -code -background_color -text_color -noise_color -session -captcha CaptchaSecurityImage 1 N 1 N 1 N
(65)
3.8 Diagram Sequence
Diagram sequence digunakan untuk menggambarkan alur kerja dari fungsi-fungsi dalam sistem, seperti yang terlihat pada gambar di bawah ini:
CaptchaSecurityImage Trainer Spam Ngram
GenerateCode
CaptchaSecurityImages [If security code=valid] addExample()
[if security code=invalid]Generatecode()
ComputerBayesianFiltering() isItSpam()
getNgram()
Gambar 3.3 Diagram Sequence Filter Spam
3.9 Antarmuka (Interface)
Antarmuka mendefinisikan batasan antara spesifikasi tentang apa itu abstraksi dan bagaimana implementasi dari abstraksi itu. Antarmuka adalah kumpulan dari operasi-operasi yang digunakan untuk menspesifikasi layanan dari suatu kelas atau objek.
(66)
3.9.1 Activity Diagram Antarmuka
Activity Diagram antarmuka menunjukkan operasi-operasi yang dilakukan oleh Actor, seperti yang terlihat pada gambar di bawah berikut ini:
User Membuka Situs
Generate Kode
Simpan Kode Keamanan Ke Session
Start
Finish
Verifikasi Kode Keamanan
Valid
Penyaringan Teks
Simpan Data Sample
Spam
Verifikasi Spam
Komentar Bukan Spam Komentar Spam
Activity Diagram
Invalid
(67)
3.10 Perancangan Sistem 3.10.1 Struktur File Database
Data-data yang digunakan dalam pembangunan perangkat lunak ini disimpan dalam sebuah database MySQL yang terdiri dari 2 tabel yaitu tabel yang berfungsi untuk menyimpan data contoh spam (tabel examples) dan tabel pembelajaran komentar spam (tabel knowledge_base).
3.10.2 Deskripsi Tabel 1. Tabel examples
a. Nama Tabel : examples
b. Fungsi : Menyimpan data contoh spam c. Primary key : -
d. Foreign key : -
Tabel 3.2 Tabel examples
No Nama Field Jenis Ukuran Keterangan
1 text Text 100 Komentar user
2 state Enum “0”, “1”, “spam” Pendeteksian spam 2. Tabel knowledge_base
a. Nama Tabel : knowledge_base
b. Fungsi : Pembelajaran komentar spam c. Primary key : ngram, belongs
(68)
Tabel 3.3 Tabel knowledge_ base
No Nama Field Jenis Ukuran Keterangan
1 ngram Varchar 10 Mengindentifikasi
karakter
2 belongs Varchar 10 Kepemilikan karakter
3 repite Int 11 Pengulangan karakter
(69)
3.11 Perancangan Antar Muka
3.11.1 Perancangan Halaman Pengecekan Bot Spam
Bot atau robot akan diblokir pada bagian pertama ini, dimana semua yang melakukan pemostingan harus memasukkan dua (2) kode keamanan dengan benar. Bila pada tahap pertama ini kode yang dimasukkan salah, maka tidak akan dilakukan pengecekan selanjutnya terhadap komentar dan otomatis pengiriman komentar gagal.
Kode Keamanan 1 : cn21f
Kode Keamanan 2 : 7 x 3 =
Gambar 3.5 Perancangan Kode Keamanan ke-1 dan Kode keamanan ke-2
Masing-masing kode keamanan ini selalu berganti secara random dan akan berubah setiap kali halaman ini diakses.
Kode keamanan ke 1 berisi gambar perpaduan 5 karakter antara huruf dan angka yang mana user harus membaca image tersebut dan memasukkan kode keamanan ini dengan benar. Contoh : cn21f, maka user harus memasukkan kode cn21f dengan benar.
Kode keamanan ke 2 berisi perhitungan angka yang mana user harus membaca image tersebut lalu menghitungnya dan memasukkan kode keamanan ini dengan benar. Contoh : 7 x 3 =, maka user harus mengisi angka 21, bila salah maka proses untuk pemostingan tidak akan dilanjutkan.
(70)
Berikut ini adalah perancangan halaman pengecekan 2 kode keamanan di atas, yang lebih ditujukan untuk pemblokiran bot (robot).
Gambar 3.6 Perancangan Tampilan Bila Kode Keamanan 1 Salah
Gambar 3.7 Perancangan Tampilan Bila Kode Keamanan 2 Salah Pengecekan I (Pendeteksian Bot) :
* Kode keamanan ke-1 salah! * Kode keamanan ke-2 benar!
Maaf... Masih ada kesalahan pengisian data, silahkan mengisi Kode keamanan ke-1 dan Kode keamanan ke-2 dengan benar agar proses dapat dilanjutkan, silahkan kembali!
Pengecekan I (Pendeteksian Bot) : * Kode keamanan ke-1 benar! * Kode keamanan ke-2 salah!
Maaf... Masih ada kesalahan pengisian data, silahkan mengisi Kode keamanan ke-1 dan Kode keamanan ke-2 dengan benar agar proses dapat dilanjutkan, silahkan kembali!
(71)
Gambar 3.8 Perancangan Tampilan Bila Kode Keamanan 1 dan 2 Salah
3.11.2 Perancangan Halaman Pengecekan Komentar
Sampai di tahap ini berarti user telah lulus melewati pengecekan I dan sekarang memasuki pengecekan II.
Pengecekan II ini adalah untuk mendeteksi semua komentar yang diisi oleh user. Pengecekan II ini menggunakan Algoritma Bayesian untuk memblokir spam.
Gambar 3.9 Perancangan Tampilan Halaman Pengecekan Komentar Pengecekan I (Pendeteksian Bot) :
* Kode keamanan ke-1 salah! * Kode keamanan ke-2 salah!
Maaf... Masih ada kesalahan pengisian data, silahkan mengisi Kode keamanan ke-1 dan Kode keamanan ke-2 dengan benar agar proses dapat dilanjutkan, silahkan kembali!
Pengecekan II (Pendeteksian Spam) : Maaf, anda terdeteksi sebagai spam...!
(72)
3.11.3 Perancangan Halaman Sukses
Bila user memasukkan kode keamanan ke-1 dan 2 dengan benar, dan isi komentar user tersebut tidak terdeteksi sebagai spam, berarti user telah berhasil dan proses pemostingan akan dilakukan.
Berikut ini adalah perancangan halaman sukses, yaitu bila user sukses melakukan posting.
Gambar 3.10 Perancangan Halaman Sukses
Setelah halaman sukses ini ditampilkan maka dalam waktu 2 detik, user akan diredirect ke halaman utama, dimana semua hasil pemostingan ditampilkan di halaman utama.
Pengecekan I (Pendeteksian Bot) : * Kode keamanan ke-1 benar! * Kode keamanan ke-2 benar!
Pengecekan II (Pendeteksian Spam) :
Anda tidak terdeteksi sebagai spam…
Terima Kasih, Pengiriman Komentar Sukses!
(73)
57
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dilakukan implementasi dan pengujian terhadap sistem yang baru. Tahapan ini dilakukan setelah perancangan selesai dilakukan dan selanjutnya akan diimplementasikan pada bahasa pemrograman. Setelah implementasi maka dilakukan pengujian terhadap sistem yang baru dan akan dilihat kekurangan-kekurangan pada aplikasi yang baru untuk pengembangan sistem selanjutnya.
4.1 Implementasi
Implementasi merupakan penerapan dari seluruh rancangan yang sudah dibuat sebelumnya dengan aplikasi program yang sudah ditentukan dalam mengaplikasikan sistem keamanan website.
4.1.1 Batasan Implementasi
Sistem keamanan website ini adalah hanya untuk memblokir bot spam dan untuk mendeteksi komentar pada website.
4.1.2 Kebutuhan Perangkat Keras
Perangkat keras yang digunakan selama membuat sistem keamanan website ini memiliki spesifikasi sebagai berikut :
a. Processor Intel core 2 duo 1.50 GHz b. RAM 1 GB
(74)
c. Harddisk 120 GB
d. Colormonitor 15”
e. CD ROM 52x
f. Keyboard dan mouse
g. Modem, RJ 45 dan Switch Hub
4.1.3 Kebutuhan Perangkat Lunak
Perangkat lunak yang digunakan dalam pembuatan sistem keamanan website yaitu sebagai berikut :
a. Windows XP Professional SP 2 b. PHP 5
c. PHPMyAdmin – 3.0.0-dev d. MySQL client version 5.0.32
e. Server version 5.0.32-Debian_7etch6-log f. GD Library
g. Microsoft frontpage
h. Webhosting + Domain : skripsi.charleysakul.net
4.1.4 Implementasi Aplikasi
4.1.4.1 Tampilan Halaman Pengecekan Bot Spam
Bot atau robot akan diblokir pada bagian pertama ini, dimana semua yang melakukan pemostingan harus memasukkan dua (2) kode keamanan dengan benar. Bila pada tahap pertama ini kode yang dimasukkan salah, maka tidak akan
(75)
dilakukan pengecekan selanjutnya terhadap komentar dan otomatis pengiriman komentar gagal.
Gambar 4.1 Tampilan Kode keamanan ke-1 dan kode keamanan ke-2
Masing-masing kode keamanan ini selalu berganti secara random dan akan berubah setiap kali halaman ini diakses.
Berikut ini adalah tampilan halaman pengecekan 2 kode keamanan di atas, yang lebih ditujukan untuk pemblokiran bot (robot).
(76)
Gambar 4.3 Tampilan halaman bila kode keamanan 2 salah
Gambar 4.4 Tampilan halaman bila kode keamanan 1 dan 2 salah
4.1.4.2 Tampilan Pengecekan Komentar
Sampai di tahap ini berarti user telah lulus melewati pengecekan I dan sekarang memasuki pengecekan II.
Pengecekan II ini adalah untuk mendeteksi semua komentar yang diisi oleh user. Pengecekan II ini menggunakan Algoritma Bayesian untuk memblokir spam.
(77)
Gambar 4.5 Tampilan halaman pengecekan komentar
4.1.4.3 Tampilan Halaman Sukses
Bila user memasukkan kode keamanan ke-1 dan 2 dengan benar, dan isi komentar user tersebut tidak terdeteksi sebagai spam, berarti user telah berhasil dan proses pemostingan akan dilakukan.
Berikut ini adalah perancangan halaman sukses, yaitu bila user sukses melakukan posting.
Gambar 4.6 Tampilan halaman sukses
Setelah halaman sukses ini ditampilkan maka dalam waktu 2 detik, user akan di-redirect ke halaman utama, dimana semua hasil pemostingan ditampilkan di halaman utama.
(78)
4.2 Implementasi Class 4.2.1 Class Trainer class trainer { var $examples; var $ngram; var $knowledge; function trainer() {
$this->ngram = new ngram; }
function add_example($text, $clasification) { $this->examples[$clasification][] = $text; }
function setPreviousLearn($f) { $this->previous = $f;
}
function extractPatterns() { $previous = & $this->previous; $examples = & $this->examples; $ngram = & $this->ngram;
$knowledge = & $this->knowledge;
foreach($examples as $tipo => $texts) { $params[$tipo] = 0;
$ngram->setInitialNgram( isSet($previous[$tipo]) ? $previous[$tipo] : array() );
foreach ($texts as $text) { $ngram->setText($text); for($i=3; $i <= 5;$i++) { $ngram->setLength($i); $ngram->extract(); }
}
$actual = & $knowledge[$tipo];
foreach( $ngram->getnGrams() as $k => $v) { $actual[$k]['cant'] = $v;
$params[$tipo] += $v; }
}
$this->computeBayesianFiltering($params); }
function computeBayesianFiltering($param) { $knowledge = & $this->knowledge;
(79)
//print_r($param); //
foreach($knowledge as $tipo => $caracterist) { foreach($caracterist as $k => $v) {
$t = ($v['cant']/$param[$tipo]); $f = 0;
foreach($param as $k1 => $v1) if ( $k1 != $tipo) {
$f += isset($knowledge[$k1][$k]['cant']) ? $knowledge[$k1][$k]['cant'] / $v1 : 0;
}
$knowledge[$tipo][$k]['bayesian'] = $t / ($t + $f); }
} } }
4.2.2 Class Spam class spam { var $_source;
function spam($callback='') { if ( !is_callable($callback) ) {
trigger_error("$callback is not a valid funciton",E_USER_ERROR); }
$this->_source = $callback; }
function isItSpam($text,$type) { $ngram = new ngram;
$ngram->setText($text);
for($i=3; $i <= 5;$i++) { $ngram->setLength($i); $ngram->extract(); }
$fnc = $this->_source;
$ngrams = $ngram->getnGrams(); $knowledge = $fnc( $ngrams,$type ); $total=0;
$acc=0;
(80)
if ( isset($knowledge[$k]) ) { $acc += $knowledge[$k] * $v; $total++;
} }
$percent = ($acc/$total);
$percent = $percent > 1.0 ? 1.0 : $percent; return $percent * 100;
}
function isItSpam_v2($text,$type) { $ngram = new ngram;
$ngram->setText($text);
for($i=3; $i <= 5;$i++) { $ngram->setLength($i); $ngram->extract(); }
$fnc = $this->_source;
$ngrams = $ngram->getnGrams(); $knowledge = $fnc( $ngrams,$type ); $total=0;
$acc=0;
$N = 0; $H = $S = 1;
foreach($ngrams as $k => $v) {
if ( !isset($knowledge[$k]) ) continue; $N++;
$value = $knowledge[$k] * $v; $H *= $value;
$S *= (float)( 1 - ( ($value>=1) ? 0.99 : $value) ); }
$H = $this->chi2Q( -2 * log( $N * $H), 2 * $N); $S = (float)$this->chi2Q( -2 * log( $N * $S), 2 * $N); $percent = (( 1 + $H - $S ) / 2) * 100;
return is_finite($percent) ? $percent : 100; }
function chi2Q( $x, $v) { $m = (double)$x / 2.0; $s = exp(-$m);
$t = $s;
(1)
70 -Komentar: (masih kosong, dan harus diisi user) -Komentar: hai semua -Komentar: hai semua (Bukan Spam) Yang Tampil: -Kode Keamanan 1: qdx6c -Kode Keamanan 2: 1 x 7
-Komentar: (masih kosong, dan harus diisi user) Yang Diisi User: -Kode Keamanan 1: qdx6c -Kode Keamanan 2: 9 -Komentar: free PTC, free PTC, get money here!!
Pendeteksian Sistem Keamanan Website:
-Kode Keamanan 1: qdx6c (Valid)
-Kode Keamanan 2: 7 (Tidak Valid)
-Komentar:
free PTC, free PTC, get money here!! (Spam)
Komentar Tidak Lolos
Komentar
Tidak Lolos Diterima
Yang Tampil: -Kode Keamanan 1: rkvhd -Kode Keamanan 2: 9 + 5
-Komentar: (masih kosong, dan harus diisi user) Yang Diisi User: -Kode Keamanan 1: rkvhc -Kode Keamanan 2: 10 -Komentar: duit gratis, duit gratis, klik disini Pendeteksian Sistem Keamanan Website:
-Kode Keamanan 1: rkvhd (Tidak Valid)
-Kode Keamanan 2: 14 (Tidak Valid)
-Komentar: duit gratis, duit gratis, klik disini (Spam)
Komentar Tidak Lolos
Komentar
(2)
71
4.3.1.2 Kesimpulan Hasil Pengujian Alpha
Berdasarkan hasil pengujian alpha (fungsional) dengan kasus uji diatas dapat ditarik kesimpulan bahwa sistem keamanan website ini sudah bisa mendapatkan hasil yang diharapkan.
4.3.2 Pengujian Beta
Pengujian ini merupakan pengujian yang dilakukan pada beberapa website, yaitu, forum diskusi PHPBB versi 2x, buku tamu (guest book), dan pada form pengisian komentar. Pada forum diskusi PHPBB versi 2x dan pada buku tamu (guet book) benar-benar teruji, karena sebelumnya kedua website ini benar-benar terserang bot-bot spam yang sangat mengganggu dimana dalam sehari pasti terdapat 5-15 bot yang melakukan pengiriman komentar.
Pengujian ini meliputi 2 bagian yaitu :
1. Pemblokiran penyerangan bot yang akan mengirimkan komentar pada website.
2. Pendeteksian komentar yang dikirim pada website. Komentar yang akan dikirim dideteksi terlebih dahulu, apakah termasuk dalam kategori spam atau bukan.
(3)
72
Berikut ini adalah tabel hasil pengujian:
Tabel 4.2. Hasil Pengujian Beta No Pertanyaan
Jawaban Presentase
Ya Cukup Kurang Ya Cukup Kurang
1
Apakah sistem keamanan website ini dapat memblokir penyerangan bot spam
8 2 0 80% 20% 0%
2
Apakah sistem keamanan website ini dapat mendeteksi komentar spam yang akan dikirim
6 4 0 60% 40% 0%
4.3.3 Kesimpulan Hasil Pengujian Beta
Berdasarkan hasil pengujian beta sistem keamanan website ini dengan kasus uji diatas, dapat ditarik kesimpulan sebagai berikut:
1. Pada pemblokiran bot, sistem ini dapat berfungsi dengan baik, dimana sistem ini benar-benar dapat menangkal penyerangan bot yang akan mengirimkan komentar.
2. Pada pendeteksian komentar spam, sistem ini masih terus melakukan pembelajaran dan pengembangan, mengingat spammer yang terus melakukan segala cara dimana kata-kata yang akan dikirim dirangkai sedemikian rupa agar tidak terdeteksi oleh sistem.
(4)
73 BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah perangkat lunak sistem keamanan website selesai dibuat, maka dapat disimpulkan :
1. Sistem keamanan website ini terbagi menjadi dua bagian besar yaitu pemblokiran bot-bot spam dan pendeteksian isi komentar.
2. Kode keamanan (security code) sangat membantu dalam pemblokiran bot-bot spam, karena mesin program (bot) ini sangat sulit membaca dan menebak kode keamanan yang diberikan yang sudah dibuat sedemikian rupa sehingga hanya manusia yang bisa membaca dengan benar.
3. Teknik pendeteksian komentar user masih terus mengalami perubahan dari waktu ke waktu, karena para spammer juga mempunyai banyak ide dan menjalankan ide tersebut dengan program mereka untuk memasukkan spam ke dalam website target.
5.2 Saran
Saran yang dapat dikemukakan berdasarkan beberapa hasil kesimpulan adalah sebagai berikut :
1. Pembuatan sistem keamanan website ini masih tetap terus dikembangkan, karena hingga saat ini penanganan masalah spam pada website manapun belum bisa mencapai 100%.
2. Antarmuka dapat dibuat lebih menarik untuk kedepannya sehingga dapat membuat sistem ini menjadi user friendly.
3. Sistem keamanan website yang telah dibuat ini agar dijadikan bahan untuk pengembangan lebih lanjut.
(5)
74
DAFTAR PUSTAKA
1. Martin Fowler. 2007. UML Distilled, Edisi 3. Yogyakarta: Andi.
2. Munawar. Pemodelan Visual Dengan UML. 2005. Yogyakarta : Graha Ilmu.
3. PHP Class. 13 Juni 2008. http://www.phpclasses.org/
4. PHP Programming. Februari 2009. http://www.phpindonesia.com/ 5. PHP Script. Februari 2009.
http://www.tadulakohosting.com/programming-scripting-coding-7/ 6. Spam. 09 Juni 2008. http://www.sony-ak.com/
7. Sistem Keamanan Web. 04 Juni 2008. http://www.indocommit.com/ 8. Captcha. 09 Juni 2008. http://www.phpcaptcha.org/
9. Captcha Matematika. 09 Juni 2008. http://www.hamidof.com/ 10. Spam and Spammer. Desember 2008. http://en.wikipedia.org/
(6)
.::BIODATA PENULIS::.
.::DATA PRIBADI
NAMA LENGKAP : CHARLEY SAKUL
ALAMAT : PENERBANGAN ADVENT SENTANI (AAI)
DOYO BARU – SENTANI 99352 JAYAPURA
TEMPAT/TGL LAHIR : SENTANI, 21 SEPTEMBER 1979
NO HP : 0815 600 3457
NO TELEPON : (022) 91175009
.::PENDIDIKAN
TEMPAT TAHUN MASUK TAHUN LULUS
SD ADVENT RATAHAN - MANADO 1986 1992
SMP NEGERI 1 SENTANI - JAYAPURA 1992 1995
SMK 3 (STM NEGERI) KOTARAJA -
JAYAPURA 1995 1998