Pembangunan Sistem keamanan Website untuk Pemblokiran SPAM dan Bot SPAM

(1)

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 Informatika

Mira 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