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
39
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 servernya, 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
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.
User
LastUpdate
timestamp
Keterangan
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
User
varchar
175
Username yang melakukan training.
Token
varchar
128
Kata yang dilatih.
Occurrences
float
LastUpdate
timestamp
Keterangan
Jumlah kata tersebut ditemukan dalam kelas spam. 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
User
varchar
175
Username yang menggunakan inbox.
MessageID
varchar
75
Nomor pesan.
Type LastUpdate
enum(spam, ham) timestamp
Keterangan
Klasifikasi pesan. 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
Varchar
175
Keterangan Username yang melakukan
User
training. Token
Varchar
128
Kata yang dilatih. Jumlah kata tersebut
Occurrences
Float ditemukan dalam kelas spam. Jejak waktu terakhir kata
LastUpdate
timestamp 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