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
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
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
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
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.
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.
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
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
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
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
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
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
xii
Notasi Keterangan
Actor
class
Interface
Use case
Interaction
Package
Note
xiii
Boundary Class
Control class
xiv
Lampiran B Listing Program ... 79
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
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
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
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
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
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
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
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
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.
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
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
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
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
Generate Random
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
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
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
break;
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;
$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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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)
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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 :
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
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
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
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