BAB 3 ANALISIS DAN PERANCANGAN - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab3/2007-2-00065-IF-Bab...
Transcript of BAB 3 ANALISIS DAN PERANCANGAN - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab3/2007-2-00065-IF-Bab...
39
BAB 3
ANALISIS DAN PERANCANGAN
Pada bab ini akan diuraikan analisis algoritma Naive Bayes Classifier dan
pendekatan statistikal sebagai pendeteksi spam. Mulai dari pendeskripsian
pemodelan spam filter umum, penjelasan pendekatan statistikal, analisis kaitan
algoritma Naive Bayes Classifier dan pengklasifikasian, penggabungan algoritma
Naive Bayes Classifier dan pendekatan statistikal, proses penentuan variabel –
variabel input dan output, serta spesifikasi proses rekayasa aplikasi pendeteksi spam,
dan rancangan – rancangan dari aplikasi tersebut, mulai dari rancangan diagram,
rancangan layar, rancangan database dan spesifikasi rancangan modul.
3.1. Analisis Model Spam Filter Umum
Algoritma yang digunakan oleh sebagian besar penyedia layanan e-mail sebagai
pendeteksi spam bagi mailbox pengguna layanan mereka adalah algoritma
blacklisting, whitelisting, greylisting, ataupun kombinasi dari ketiga algoritma
diatas.
3.1.1. Blacklisting
Blacklisting adalah metode meminimalisasi jumlah spam dengan mengantisipasi
spam baru yang masuk kedalam mailbox pengguna. Blacklisting sendiri sebenarnya
adalah sebuah daftar yang berisikan IP address dari pengirim spam yang telah
dilaporkan oleh pengguna. Selanjutnya, setiap pesan baru masuk ke mailbox
40
pengguna tersebut, algoritma blacklisting akan mencocokkan IP address pengirim
pesan tersebut dengan daftar, apabila IP address pengirim ternyata terdapat didalam
daftar, maka pesan itu akan diidentifikasikan sebagai spam dan ditindaklanjuti oleh
perintah selanjutnya (misalnya memindahkan pesan yang dicurigai tersebut ke
tempat khusus yang biasa disebut spambox), jika tidak maka pesan akan diteruskan
menuju mailbox pengguna.
Kelemahan algoritma tersebut adalah algoritma Blacklisting hanya dapat dilatih
melalui inputan pengguna tersebut, jadi kelemahannya adalah pengguna harus benar
– benar sadar atas keadaan mailbox-nya sendiri dan harus konstan melaporkan spam
baru agar daftar blacklist dapat diperbaharui. Ditambah lagi adanya kemungkinan
kesalahan pendeteksian, mungkin sang pengirim spam terinfeksi oleh e-mail worms
dan mengirimkan e-mail spam secara otomatis tanpa sepengetahuannya.
3.1.2. Whitelisting
Sebenarnya prinsip whitelisting kurang lebih sama dengan blacklisting pada
dasarnya, hanya saja bersifat terbalik. Pada whitelisting, daftar yang dibuat adalah
daftar yang berisi IP address pengirim yang dianggap tidak berbahaya atau pengirim
non-spam. Daftar ini secara umum didapatkan dari fitur buku alamat (address book)
pengguna, ditambah alamat tujuan dari semua pesan yang dikirimkan oleh
pengguna.
41
Kelemahan dari metode ini adalah pengguna harus sesering mungkin
memperbaharui buku alamat mereka jika ingin menerima pesan dari teman yang
belum terdaftar di buku alamat. Selain itu, masih besar kemungkinan menerima
spam dari e-mail worms yang menjangkiti salah satu akun di buku alamat.
3.1.3. Greylisting
Greylisting adalah satu metode lagi yang merupakan campuran dari metode
blacklisting dan whitelisting. Pada greylisting, daftar IP address yang dimuat adalah
semua IP address yang memiliki tingkat kecurigaan spam. Jadi, dalam greylisting,
tidak ada vonis pasti bahwa sebuah IP address akan selalu mengirimkan spam,
melainkan hanya praduga bahwa IP address tersebut berpotensi untuk mengirimkan
spam.
Karena metode greylisting ini kurang kompleks dan hanya bersifat sebagai
pelengkap, maka biasanya metode greylisting diintegrasikan kedalam metode lain,
seperti blacklisting ataupun whitelisting, atau tidak digunakan sama sekali.
3.1.4. Hybrid
Setelah melihat tiga metode diatas dan menganalisa kelemahannya masing – masing,
maka muncullah keinginan untuk memadukan berbagai metode diatas menjadi satu.
Metode kombinasi adalah penggunaan dua atau lebih dari metode blacklisting,
whitelisting, dan greylisting secara bersama - sama. Metode kombinasi inilah yang
sampai sekarang masih populer di kalangan penyedia layanan e-mail. Jadi, tiap akun
42
pengguna diperkokoh oleh tiga buah daftar yang akan mengecek pengirim setiap
pesan yang masuk.
Metode kombinasi dapat dinilai sebagai metode penyaring spam yang paling efektif
dari semua metode yang ada diatas, namun belum berarti telah menjawab semua
kebutuhan pengguna dan dianggap mampu menjawab problem spam ini.
Kelembahan dari metode kombinasi sekaligus tiga metode diatasnya adalah semua
metode diatas sangat bergantung pada alamat pengirim, bukan pada pesan yang
dikirim. Selain itu, semua metode diatas hanya dapat berjalan melalui satu cara,
yaitu melalui umpan balik dari pengguna itu sendiri atau user feedback.
3.1.5. Variabel Model Spam Filter Umum
Pada model spam filter umum, proses penentuan variabel sangatlah sederhana
karena bagian e-mail yang perlu diverifikasi adalah alamat pengirim. Alamat
pengirim pesan disimpan dalam satu variabel dan dicocokkan kedalam daftar yang
telah dibuat sesuai dengan tujuan pencocokan (pencarian dalam blacklist, whitelist,
atau greylist). Setelah didapatkan hasil proses pencarian tadi, variabel kembali
dikosongkan, siap menampung alamat pangirim berikutnya.
43
3.1.6. Diagram Model Spam Filter Umum
Gambar 3.1. Diagram Model Spam Filter Umum
44
3.1.7. Kelemahan Model Spam Filter Umum
Setelah menganalisis model spam filter umum diatas secara cermat, dapat kita
simpulkan bahwa model spam filter umum sangat berfokus pada pengirim pesan,
bukan kepada isi pesan itu sendiri.
Beberapa kelemahan yang dimiliki oleh model spam filter umum adalah model spam
filter umum tidak memiliki cara pelatihan selain melalui umpan balik pengguna
(user feedback). Dengan kata lain, model spam filter umum hanya dapat menjalani
proses pelatihan yang terawasi (supervised training).
Selain itu, pengklasifikasian sangat bergantung pada pengirim pesan, bukan terhadap
pesan itu sendiri yang dapat mengakibatkan kesalahan pengklasifikasian yang cukup
besar. Kesalahan klasifikasi dapat ditemui apabila pengirim pesan adalah akun yang
telah dijangkiti oleh e-mail worms atau spambot, daftar blacklist akan memblok
seluruh pesan yang diterima dari akun tersebut, walaupun akun tersebut
mengirimkan pesan yang sesungguhnya. Akibatnya adalah pesan tadi dimasukkan
kedalam spambox atau mungkin dapat saja dihapus oleh pengguna tanpa sengaja
saat mengosongkan spambox-nya.
45
3.2. Analisis Algoritma
Pada bagian ini kami akan melakukan analisis terhadap algoritma yang akan
digunakan untuk melakukan klasifikasi terhadap pesan e-mail yang masuk. Faktor –
faktor yang menjadi prioritas pemilihan algoritma adalah kecepatan eksekusi,
kecepatan pelatihan, tingkat akurasi, dan kompleksitas masalah. Sedangkan
algoritma klasifikasi yang akan diuji adalah Naive Bayes Classifier, Support Vector
Machine, dan Modular Neural Network.
Naive Bayes Classifier
Memiliki kecepatan pelatihan yang paling tinggi , memiliki kecepatan eksekusi yang
tinggi pula. Tingkat akurasi tinggi apabila menghadapi problem yang sederhana,
namun tidak akurat saat digunakan untuk menghadapi problem yang kompleks. Dari
segi algoritma sendiri, Naive Bayes Classifier sangat sederhana dan gampang
diimplementasikan.
Support Vector Machine
Memiliki kecepatan pelatihan dan eksekusi yang rendah, kedua proses tersebut
memakan waktu yang lama. Tingkat akurasi sangat tinggi dan sangat efektif untuk
digunakan menghadapi berbagai jenis problem, baik yang sederhana maupun yang
kompleks.
Tetapi SVM memerlukan proses pelatihan secara terawasi, sangat sensitif terhadap
data yang penuh noise, serta fungsi dan parameter pada kernelnya perlu ditentukan
46
secara manual dan sangat berpengaruh pada hasil. Dari segi algoritma sendiri, SVM
merupakan algoritma yang kokoh dan akurat, namun kurang efisien, dan lebih
kompleks untuk diimplementasikan.
Modular Neural Network
Modular Neural Network adalah salah satu non-linear classifier yang kokoh.
Mampu menghasilkan klasifikasi yang akurat berdasar pada fungsi dasarnya, juga
mampu menanggapi data ber-noise dengan baik. Waktu pengeksekusiannya juga
tergolong cepat. Sayangnya, MNN memerlukan watu pelatihan yang cukup lama dan
bekerja kurang baik pada problem – problem yang lebih kompleks. Algorirtma
MNN efektif namun lagi – lagi belum berhasil mengatasi kendala efisiensi.
Dari ketiga kandidat algoritma diatas, kami memutuskan untuk menggunakan
algoritma Naive Bayes yang terkesan sederhana namun mampu memberikan solusi
yang cukup akurat. Selain itu, algoritma Naive Bayes sangat efisien, baik dalam
waktu pelatihan maupun pengeksekusian yang kami anggap sangat cocok digunakan
untuk tugas klasifikasi pesan e-mail dimana efisiensi waktu menjadi salah satu
faktor penting.
47
3.3. Metodologi Pengembangan
Setelah menganalisis model spam filter umum, sudah saatnya kita melangkah
kepada tahap selanjutnya yaitu tahap pengembangan spam filter. Pada tahap
pengembangan, dirancang sebuah model pengklasifikasi e-mail baru yang harus
memenuhi beberapa faktor kinerja seperti tingkat akurasi pengklasifikasian, waktu
pengeksekusian, serta tetap mengusung tema kesederhanaan yang mudah dimengerti
oleh penggunanya.
Deskripsi lebih detail dan sistematis dari rancangan model pengembangan spam
filter akan dibahas pada subbab kedepan.
48
3.3.1. Diagram Model Pengembangan
Gambar 3.2. Diagram Model Pengembangan
49
3.3.2. Tahap Pertama : Penerimaan Pesan
Pada tahap ini keseluruhan proses ditentukan oleh sistem pengiriman pesan yang
telah ditentukan oleh pengirim. Pengirim dapat menentukan metode pengiriman,
ataupun telah ditentukan oleh mail server pengirim. Setelah alamat penerima telah
diverifikasi, pesan akan dikirimkan dengan metode yang telah dipilih dan mail
server penerima akan menampung pesan.
Mail server penerima akan menerima pesan sesuai dengan metode pengiriman yang
telah ditentukan sebelumnya. Setelah menemukan alamat yang dituju dalam server-
nya, pesan tadi akan diteruskan kepada alamat tersebut.
Dalam proses ini, kami menggunakan Mercury Mail Server yang bertindak sebagai
simulasi mail server penerima maupun pengirim, dan menggunakan metode IMAP
sebagai metode pengiriman pesan.
3.3.3. Tahap Kedua : Parser
Tahap ini merupakan kelanjutan dari tahap pertama. Pada tahap kedua ini, pesan
yang diteruskan dari mail server tidak langsung ditempatkan pada inbox masing –
masing pengguna, tetapi diproses terlebih dahulu oleh sebuah algoritma parser
(penyaringan) yang berfungsi untuk mengumpulkan informasi mengenai pesan.
50
Pada tahap kedua ini, header pesan yang masuk diambil tiap bagiannya yang berisi
alamat pengirim, alamat penerima, waktu pengiriman, dan judul pesan. Proses
pengambilan ini dilakukan dengan mengeksekusi sintaks PHP.
Setelah mengidentifikasi header pesan secara lengkap, proses pun berlanjut pada
tahap pengidentifikasian isi pesan (body) dari e-mail tersebut. Setiap kata dari isi
pesan dipisahkan dan dimasukkan kedalam satu string yang ditampung kedalam satu
array database. Misalnya kata ‘muda – mudi’ akan disimpan dalam 2 array yang
berisi ‘muda’ dan ‘mudi’.
Proses pengambilan tiap kata ini akan berfungsi pada tahap selanjutnya, yaitu tahap
klasifikasi yang akan mengenali pola tiap pesan yang masuk. Selain header dan
body dari sebuah pesan, bagian lain dari pesan tersebut diabaikan dan tidak
berpengaruh dalam tahap klasifikasi (misalnya lampiran berupa text, bitmap, atau
zip).
3.3.4. Tahap Ketiga : Klasifikasi
Tahap ini merupakan bagian terpenting dari model pengembangan ini. Tahap
klasifikasi adalah bagian dimana dilakukannya kalkulasi atas serangkaian kata yang
telah disimpan dalam database dengan pendekatan algoritma Naive Bayes dan
pendekatan statistikal.
51
Pemilihan Naive Bayes Classifier sebagai algoritma pengklasifikasian adalah sebuah
proses riset yang tidak cukup kompleks. Saat mempertimbangkan faktor kecepatan
eksekusi, hasil riset membuktikan bahwa Naive Bayes Classifier merupakan
algoritma dengan waktu eksekusi tercepat dibanding algoritma klasifikasi yang lain.
Selain waktu eksekusi tercepat, algoritma Naive Bayes mampu melakukan dua
macam proses pelatihan, yang merupakan salah satu persyaratan terpenting yang
ingin dicapai dalam mengembangkan aplikasi pendeteksi spam. Ditambah lagi,
menurut hasil riset, Naive Bayes Classifier juga merupakan pemberi solusi terbaik
pada problem dunia nyata yang bersifat sederhana, yang mana sangat cocok dalam
kasus klasifikasi spam, dimana hanya ada dua kandidat hasil, yaitu spam atau bukan
spam. Ditambah lagi algoritma Naive Bayes dapat menyesuaikan diri dengan
karakteristik masing – masing pengguna, sehingga dapat menghasilkan sebuah filter
yang unik dan spesifik.
Satu – satunya kelemahan dari algoritma Naive Bayes adalah tingkat akurasi
pengklasifikasian yang hanya bersifat standar dibanding algoritma – algortima
lainnya. Walau hasil akurasi algoritma Naive Bayes tidak menempati urutan terbaik,
namun bukan berarti algoritma Naive Bayes memberikan hasil klasifikasi terburuk.
Algoritma Naive Bayes menemui berbagai keterbatasan saat dihadapkan pada
problem yang melibatkan banyak faktor karena tingkat independensi Naive Bayes
yang sangat tinggi, sehingga seringkali mengesampingkan variabel – variabel
tertentu dari proses kalkulasi yang membuatnya tidak cocok untuk digunakan dalam
proses klasifikasi yang kompleks.
52
Untuk menunjang proses klasifikasi, ditambahkan juga pendekatan statistikal yang
disebut likelihood ratio, yang digunakan untuk membandingkan tingkat kemiripan
diantara dua kandidat solusi yang sama kuat dan sama tinggi tingkat probabilitas
terjadinya.
3.3.4.1. Model Probabilitas Naive Bayes
Secara abstrak, model probabilitas untuk sebuah classifier adalah sebuah model
persyaratan (conditional model).
Dari sebuah variable kelas yang dependan C, yang memiliki syarat berupa beberapa
variabel dari F1 hingga Fn . Permasalahannya adalah jika jumlah variabel n sangat
besar, maka mendasarkan model seperti ini pada tabel probabilitas menjadi kurang
feasible. Oleh karena itu, model tersebut diformulasikan ulang agar lebih gampang
dijejaki.
Menggunakan Teorema Bayes kita mendapati
53
Dalam aplikasinya, kita hanya tertarik kepada pembagi dari persamaan diatas.
Karena bilangan pembagi tidak bergantung pada C dan nilai dari variabel Fi
diketahui, maka dapat kita katakan bahwa pembagi persamaan tersebut adalah
konstan. Model tersebut ekuivalen dengan model probabilitas gabungan (joint
probability model) berikut :
yang dapat ditulis kembali menggunakan probabilitas bersyarat (conditional
probability) menjadi
dan seterusnya. Sekarang asumsi kebebasan persyaratan (conditional independence)
mulai berperan. Asumsikan bahwa setiap variabel Fi independen untuk setiap Fj lain
dengan kondisi j tidak sama dengan i. Ini menandakan bahwa
dan model gabungannya dapat ditulis seperti ini
54
Ini menandakan bahwa dalam asumsi independen diatas, distribusi bersyarat dari
kelas variable C dapat ditulis seperti ini
Dimana Z adalah faktor skala yang bergantung hanya pada yang
adalah konstan apabila nilai variabel tersebut diketahui.
Model dalam bentuk ini lebih dapat ditengarai, karena kelas utama p(C) dan
distribusi prbabilitas yang independen . Jika terdapat k jumlah kelas
dan jika sebuah model untuk p(Fi) dapat ditulis dalam parameter r, maka model
naive Bayes tersebut memiliki parameter sebanyak (k − 1) + n r k. Dalam
aplikasinya, sering digunakan k = 2 (klasifikasi biner) dan r = 1 (variabel Bernoulli),
sehingga jumlah parameter dari model naive Bayes tersebut menjadi 2n + 1, dimana
n adalah jumlah variabel biner yang digunakan untuk perkiraan.
55
3.3.4.2. Implementasi Algoritma
Dengan menggunakan algoritma Naive Bayes Classifier dan pendekatan statistikal,
problem peng-klasifikasian dokumen dapat dimodelkan sebagai berikut.
Bayangkan bahwa dokumen – dokumen tersusun dari sejumlah kelas dokumen yang
dapat dimodelkan sebagai kumpulan kata dimana probabilitas kemunculan kata ke-i
dalam dokumen dari kelas C (disini diasumsikan bahwa probabilitas kemunculan
sebuah kata dalam dokumen tidak terkait dengan panjang sebuah dokumen, atau
diasumsikan semua dokumen sama panjang) dapat dituliskan
Kemudian probabilitas dari sebuah dokumen D saat diberikan kelas C adalah
Maka pertanyaan yang kita ingin cari jawabannya adalah seberapa besar probabilitas
sebuah dokumen D tergolong kedalam kelas C.
Menggunakan aksioma probabilitas kita dapatkan
56
dan
Teorema Bayes kemudian mengubah rumus diatas menjadi pernyataan probabilitas
dalam konteks kesamaan.
Asumsikan bahwa hanya terdapat dua kelas, S (spam) dan ¬S (bukan spam).
dan
Menggunakan hasil dari Teorema Bayes diatas, dapat kita tuliskan :
57
Dengan membagi satu dengan yang lain, kita dapatkan :
Yang dapat difaktorkan ulang sebagai :
Dengan demikian, probabilitas rasio dari p(S | D) / p(¬S | D) dapat diekspresikan
dalam bentuk – bentuk rasio kemiripan (likelihood ratios). Probabilitas sebenarnya
dari p(S | D) dapat dengan mudah dihitung dari log p(S | D) / p(¬S | D) berdasarkan
hasil observasi bahwa p(S | D) + p(¬S | D) = 1.
Dengan menghilangkan logaritma dari rasio – rasio tersebut, kita dapatkan :
58
(teknik ‘log-likelihood ratios’ adalah sebuah teknik yang umum digunakan dalam
statistika. Dalam kasus dua alternatif yang saling berpotensi satu sama lain, seperti
dalam kasus ini, konversi dari sebuah log-likelihood ratios menghasilkan sebuah
bentuk kurva sigmoid.)
Pada tahap akhir, dokumen dapat diklasifikasikan sebagai spam apabila
3.3.4.3. Contoh Kasus
Sebuah e-mail diterima oleh spam filter berisi pesan sebagai berikut : “Hitung spam
atau bukan“. Berikut adalah total ditemukannya masing – masing kata pada database
spam : kata ‘hitung’ 10 kali ditemukan, kata ‘spam’ 5 kali ditemukan, kata ‘atau’ 5
kali ditemukan, dan kata ‘bukan’ 15 kali ditemukan. Dan selanjutnya adalah total
dietmukannya masing – masing kata pada database ham : kata ‘hitung’ 15 kali
ditemukan, kata ‘spam’ 15 kali ditemukan, kata ‘atau’ 20 kali ditemukan, dan kata
‘bukan’ 25 kali ditemukan.
Jika total pesan yang telah diterima spam filter adalah 100 pesan, total spam yang
diterima spam filter adalah 70 pesan, dan total ham (pesan tak berbahaya) adalah 30
59
pesan. Kategorikan pesan diatas sebagai spam / tidak menggunakan algoritma yang
telah diberikan !
Penyelesaian
Identifikasi tiap variabel yang akan digunakan terlebih dahulu.
p(S) = 70/100 p(¬S) = 30/100
p(w1 | S) = 10/70 p(w1 | ¬S) = 15/30
p(w2 | S) = 5/70 p(w2 | ¬S) = 15/30
p(w3 | S) = 5/70 p(w3 | ¬S) = 20/30
p(w4 | S) = 15/70 p(w4 | ¬S) = 25/30
Setelah mengidentifikasi tiap variabel, substitusikan tiap variabel kedalam
Hingga didapat hasil sebagai berikut
∑ i p(wi | S) = ln 0,14285 + ln 0,07142 + ln 0,07142 + ln 0,21428 = -8,76447
∑ i p(wi | ¬S) = ln 0,5 + 0,5 + ln 0,66666 + ln 0,83333 = -1,97408
ln p(S/D) / p(¬S/D) = ln (0,7 / 0,3 ) + (-8,76447 – (-1,97408) )
60
= ln 2,33333 + (-6,79039) = 0,84729 - 6,79039
= -5,9431
Setelah didapatkan hasil akhir, nilai tersebut dicocokkan dengan sifat berikut untuk
melakukan proses klasifikasi
Karena -5,9431 < 0 maka dokumen tersebut diklasifikasikan sebagai bukan spam.
3.3.5. Tahap Keempat : Training dan Update
Setelah proses klasifikasi selesai, tahap terakhir dari model pengembangan ini
adalah tahap training dan update. Pada tahap ini tiap string pada pesan yang telah
selesai diklasifikasikan dimasukkan kedalam database sesuai dengan hasil
klasifikasi. Apabila pesan diklasifikasikan sebagai spam, maka tiap kata yang
terdapat pada pesan tersebut akan dimasukkan kedalam database sebagai kata baru
apabila kata tersebut belum ada dalam database spam, atau occurence dari kata
tersebut akan ditambahkan apabila kata tersebut telah ada dalam database spam.
Begitu pula sebaliknya apabila pesan diklasifikasian sebagai ham (pesan bukan
spam), maka semua kata yang terdapat dalam pesan tersebut akan dimasukkan
kedalam database ham apabila kata tersebut belum ada atau ditambahkan tingkat
occurence-nya apabila kata tersebut telah dijumpai dalam database ham.
61
Dengan cara ini, spam filter dapat mempelajari pola baru ataupun memperkuat pola
yang telah ada sebelumnya baik dalam proses klasifikasi spam maupun klasifikasi
ham. Semakin besar tingkat occurence dari sebuah kata, maka makin besar peran
kata tersebut dalam menentukan hasil klasifikasi. Dengan cara ini pulalah spam filter
dapat dilatih untuk mengenali karakteristik pengguna yang berbeda – beda dan
beradaptasi sesuai dengan kepribadian penggunanya.
3.4. Perancangan Aplikasi
Pada tahap ini akan dideskripsikan proses rekayasa aplikasi, yaitu perekayasaan
sebuah MUA (mail user agent) atau biasa disebut mail client. Mail client hasil
rekayasa bersifat online dan mampu menjalankan fungsi – fungsi dasar mail client
pada umumnya.
Termasuk dalam bagian ini adalah deskripsi proses perancangan diagram,
perancangan database, rancangan layar, dan modul – modul yang terdapat pada
aplikasi.
3.4.1. Perancangan Diagram
Berikut adalah rancangan diagram proses dan STD (state transition diagram) yang
akan diimplementasikan pada tahap rekayasa aplikasi.
62
3.4.1.1. Diagram Rancangan Aplikasi
Gambar 3.3 – Diagram Rancangan Aplikasi
63
3.4.1.2. STD Modul Login
Gambar 3.4 – State Transition Diagram Login
64
3.4.1.3. STD Modul Inbox
65
3.4.1.4. STD Modul Spambox
66
3.4.1.5. STD Modul Trashbox
67
3.4.1.6. STD Modul Compose
3.4.1.7. STD Modul Settings
68
3.4.1.8. STD Modul Stats
69
Gambar 3.10 – State Transition Diagram Stats
70
3.4.1.9. STD Modul Training
Gambar 3.11 – State Transition Diagram Training
71
3.4.2. Rancangan Layar
Berikut adalah rancangan – rancangan layar dari aplikasi spam filter yang akan
direkayasa.
3.4.2.1. Rancangan Layar Login
Gambar 3.12. - Rancangan Layar Login
72
3.4.2.2. Rancangan Layar Inbox
Gambar 3.13. - Rancangan Layar Inbox
73
3.4.2.3. Rancangan Layar Spambox
Gambar 3.14. - Rancangan Layar Spambox
74
3.4.2.4. Rancangan Layar Trashbox
Gambar 3.15. - Rancangan Layar Trashbox
75
3.4.2.5. Rancangan Layar Compose
Gambar 3.16. - Rancangan Layar Compose
76
3.4.2.6. Rancangan Layar Settings
Gambar 3.17. - Rancangan Layar Settings
77
3.4.2.7. Rancangan Layar Stats
Gambar 3.18. - Rancangan Layar Stats
78
3.4.2.8. Rancangan Layar Closure
Gambar 3.19. Rancangan Layar Stats
79
3.4.3. Perancangan Database
Pada bagian ini, akan dideskripsikan tabel – tabel database yang akan digunakan
beserta field – field yang ada didalamnya. Perancangan database juga menunjukkan
variabel – variabel yang akan digunakan pada spepisifakasi proses.
3.4.3.1. Stats Database
Primary Key : User
Tabel 3.1. stats Database
Nama Field Tipe Data Ukuran Keterangan
User varchar 175 Username yang menggunakan inbox.
TotalMsg bigint 20 Jumlah seluruh pesan yang diterima oleh pengguna.
HamCount bigint 20 Jumlah seluruh ham yang diterima oleh pengguna.
SpamCount bigint 20 Jumlah seluruh spam yang diterima oleh pengguna.
FalseP bigint 20 Jumlah kesalahan pengklasifikasian spam.
FalseN bigint 20 Jumlah kesalahan pengklasifikasian ham.
LastUpdate timestamp Jejak waktu terakhir statistik tersebut di-update.
80
3.4.3.2. Hamtoken Database
Primary Key : User, Token
Tabel 3.2. hamtoken Database
Nama Field Tipe Data Ukuran Keterangan
User varchar 175 Username yang melakukan training.
Token varchar 128 Kata yang dilatih.
Occurrences float Jumlah kata tersebut ditemukan dalam kelas spam.
LastUpdate timestamp Jejak waktu terakhir kata tersebut di-update.
3.4.3.3. Msgtype Database (Inbox)
Primary Key : User, MessageID
Tabel 3.3. msgtype Database
Nama Field Tipe Data Ukuran Keterangan
User varchar 175 Username yang menggunakan inbox.
MessageID varchar 75 Nomor pesan.
Type enum(spam,ham) Klasifikasi pesan.
LastUpdate timestamp Jejak waktu terakhir pesan tersebut di-update.
81
3.4.3.4. Spamtoken Database
Primary Key : User, Token
Tabel 3.4. spamtoken Database
Nama Field Tipe Data Ukuran Keterangan
User Varchar 175 Username yang melakukan
training.
Token Varchar 128 Kata yang dilatih.
Occurrences Float Jumlah kata tersebut
ditemukan dalam kelas spam.
LastUpdate timestamp Jejak waktu terakhir kata
tersebut di-update.
3.4.4. Spesifikasi Proses
Dalam tahap ini, rancangan aplikasi yang telah disusun diimplementasikan dalam
bentuk pseudocode. Pseudocode akan dibagi berdasarkan modul – modul sesuai
dengan fungsi masing – masing.
3.4.4.1. Modul Login
Awal
Buka koneksi ke mail server
If (username tidak terdaftar)
Kembali ke layar login
Tampilkan pesan error “User is not registered”
Else If (username terdaftar tapi password salah)
82
Kembali ke layar login
Tampilkan pesan error “Wrong password”
Else If (username dan password cocok)
Create session dengan username dan password tersebut
End If
If (mailbox TRASHBOX belum dibuat)
Buat mailbox TRASHBOX
End If
If (mailbox SPAMBOX belum dibuat)
Buat mailbox SPAMBOX
End If
If(mailbox SPAMTRAIN belum dibuat)
Buat mailbox SPAMTRAIN
End If
If (mailbox HAMTRAIN belum dibuat)
Buat mailbox HAMTRAIN
End If
If (file user config belum ada)
Buat file user config
End If
If (settingan “automatic check” diaktifkan dan settings “trained”
diaktifkan dan ada pesan di inbox)
83
Cek semua mail di inbox, apakah spam atau bukan dan
lakukan training
End If
Tampilkan layar inbox
Akhir
3.4.4.2. Modul Pengecekan
Awal
Ambil “body” dan “subject” dari message
Parsing “body” dan “subject” dari message tersebut menjadi kata
Ambil data statistik dari tabel stats dari database
Ambil list dari token spam dari tabel spamtoken dari database
Ambil list dari token ham dari tabel hamtoken dari database
Hitung besar kemungkinan spam / ham
Train spam filter
If ( pesan = spam dan automove aktif)
Pindahkan message tersebut ke mailbox SPAMBOX
End If
Akhir
3.4.4.3. Modul Pelatihan
Awal
Masukkan message tersebut ke dalam tabel msgtype di database
84
If (jenis message spam)
Masukkan list words yang baru ke dalam tabel spamtoken pada
database
End If
If (jenis message ham)
Masukkan list words yang baru ke dalam tabel hamtoken pada
database
End If
Update tabel stats pada database
If (spam terhitung > 0 dan ham terhitung > 0)
Update trained menjadi true
End If
Akhir
3.4.4.4. Modul Parser
Awal
Ganti tanda baca dengan “ “
Pecahkan isi pesan dan subject dari pesan menjadi huruf-huruf dengan
menggunakan RE dengan dipisahkan oleh spasi ataupun turun baris
Akhir
3.4.4.5. Modul Pelatihan Ulang
Awal
85
Hapus isi tabel msgtype yang mengandung user yang bersangkutan
Hapus isi tabel hamtoken yang mengandung user yang bersangkutan
Hapus isi tabel spamtoken yang mengandung user yang bersangkutan
Hapus isi tabel stats yang mengandung user yang bersangkutan
Akhir
3.4.4.6. Modul Primary Key
Awal
Ambil header dari message
If (ada subject)
If (panjang subject > 15)
Ambil 15 huruf terdepan dari subject
End If
End If
If (ada from address)
Ganti ‘<’ dan ‘>’ dengan ‘(‘ dan ‘)’
End if
Gabungkan subject, from address, size, dan date dengan dipisahkan oleh ‘#’
menjadi message ID
If (panjang message ID > 73)
Ambil 73 huruf dari belakang dari message ID
End If
Akhir