• Tidak ada hasil yang ditemukan

Pembangunan Sistem keamanan Website untuk Pemblokiran SPAM dan Bot SPAM

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangunan Sistem keamanan Website untuk Pemblokiran SPAM dan Bot SPAM"

Copied!
91
0
0

Teks penuh

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(30)

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

(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

(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

(33)

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;

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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 :

(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

(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

Gambar

Gambar 1.1 Waterfall Model / Linear Sequential Mode
Gambar 2.1 Contoh pengisian komentar yang dapat dimanfaatkan oleh spammer
Gambar 2.2 Contoh website yang terserang spam dan bot-bot spam
Gambar 2.3 Contoh Bot-bot Spam Dalam Database
+7

Referensi

Dokumen terkait

bahwa dengan ditetapkannya Peraturan Pemerintah Nomor 13 Tahun 2002 tentang Perubahan atas Peraturan Pemerintah Nomor 100 Tahun 2000 tentang Pengangkatan Pegawai Negeri Sipil

Setelah proses mixing selama 14 menit dan setelah dilakukan pengecekan terhadap spesifikasi adonan yang dihasilkan, maka akan diperoleh adonan yang siap untuk diolah

Dalam sistem ini user dapat melakukan monitoring keamanan pintu rumah saat berpergian atau dirumah.Berdasarkan dari hasil penelitian dapat disimpulkan bahwa sistem berjalan dengan

Sumber data yang digunakan dalam penelitian jumlah kebutuhan rumah sederhana di kabupaten Jember dengan Robust Small Area Estimation adalah data Survei Sosial

yang dilakukan oleh Soobaroyen &amp; Chengabroyan (2005) bahwa time budget pressure suatu audit yang besar mempunyai pengaruh positif terhadap perilaku disfungsional auditor terdiri

Berdasarkan latar belakang penelitian diatas maka, yang terjadi permasalahan dalam penelitian ini, adalah fenomena kinerja birokrasi pemerintah yang berkenaan dengan sumber

Tahapan dalam pembuatan sistem teknologi informasi berbasis website pada makalah ini menggunakan tahapan metodologi pada SDLC ( System Development Life Cycle ) yakni