BAB 3 ANALISIS DAN PERANCANGAN. Pada bab ini akan diuraikan analisis algoritma Naive Bayes Classifier dan

dokumen-dokumen yang mirip
BAB I PENDAHULUAN I-1

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. sequential (waterfall). Metode ini terdiri dari empat tahapan yaitu, analisis, perancangan,

Spam Filter Domain Statistics

BAB IV HASIL DAN PEMBAHASAN

BAB IV PERANCANGAN SISTEM

Gambar 4.1 Gambar Use Case Diagram

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

BAB IV HASIL DAN UJICOBA

BAB III ANALISIS DAN PERANCANGAN

BAB 4 PERANCANGAN DAN IMPLEMENTASI. operasi Linux Fedora Core 4 dengan menggunakan bahasa pemrograman Java.

BAB III ANALISIS DAN PERANCANGAN

Perancangan Halaman Tampil Pelunasan Perancangan Halaman Tampil Transaksi

BAB III PERENCANAAN KEBUTUHAN DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM

1. Pendahuluan 1.1 Latar Belakang

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB 5 IMPLEMENTASI DAN EVALUASI. password untuk dapat masuk ke halaman Home.

PEMBANGUNAN SPAM FILTERING SYSTEM DENGAN METODE NAIVE BAYESIAN

Spam Filter Manage Outgoing Users

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB 3 ANALISIS DAN PERANCANGAN

BAB III METODE DAN PERANCANGAN SISTEM

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN SISTEM. Pada bab ini akan dibahas mengenai analisa dan perancangan dari sistem.

BAB 3 PERANCANGAN SISTEM

BAB III. ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN Analisis Sistem Yang Sedang Berjalan

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN

Bab III. PERANCANGAN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

Security. Tutun Juhana STEI ITB

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB 4 IMPLEMENTASI DAN EVALUASI. Pelaksanaan implementasi sistem bank soal pada Binus School Serpong. melibatkan beberapa elemen utama, yaitu:

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB I PENDAHULUAN. Electronic mail ( ) merupakan media komunikasi di internet seperti

BAB III ANALISA DAN DESAIN SISTEM

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM. sistem dan dapat dipandang sebagai usaha untuk mewujudkan sistem yang

BAB III ANALISA DAN PERANCANGAN

BAB 1 PENDAHULUAN Latar Belakang

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB II DASAR TEORI. Pada bab ini akan dibahas teori-teori pendukung yang digunakan sebagai acuan dalam merancang algoritma.

BAB IV PERANCANGAN SISTEM

BAB IV PERANCANGAN LAYAR ANTAR MUKA

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

Bab 3 Metode Perancangan

Spam Filter Manage Outgoing Users

BAB IV PENGUJIAN ALAT

BAB III PEMBAHASAN. Analisis merupakan suatu tahap untuk memperoleh kesimpulan persoalan

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

ANALISA DAN PERANCANGAN

BAB IV HASIL DAN UJI COBA. Berikut ini akan dijelaskan tentang tampilan hasil rancangan dari

BAB V PENGUJIAN DAN IMPLEMENTASI SITEM. metode pengujian dan pelaksanaan pengujian.

BAB III ANALISA DAN DESAIN SISTEM

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN DESAIN SISTEM

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

MODUL VI INTERAKSI DATABASE

BAB IV ANALISIS DAN PERANCANGAN SISTEM. di PT. POS INDONESIA khususnya pada layanan POS Express sudah

BAB 3 PERANCANGAN SISTEM

Spam Filter Manage Outgoing Users

BAB III ANALISA DAN DESAIN SISTEM

BAB IV ANALISIS DAN PERANCANGAN. Analisis sistem ini merupakan penguraian dari sistem yang utuh, kedalam

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN SISTEM. masyarakat serta lembaga usaha dalam menghadapi ancaman bencana.

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB 3 PERANCANGAN PROGRAM APLIKASI

BAB III ANALISA DAN DESAIN SISTEM

Prosedur Pemakaian Program:

BAB III DESAIN DAN PERANCANGAN

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM. implementasi sistem. Implementasi sistem akan mengubah bentuk dari analisis

BAB III ANALISA DAN DESAIN SISTEM

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN PERANCANGAN

BAB IV PERANCANGAN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

Transkripsi:

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 F 1 hingga F n. 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 F i 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 F i independen untuk setiap F j 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(f i ) 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(w 1 S) = 10/70 p(w 1 S) = 15/30 p(w 2 S) = 5/70 p(w 2 S) = 15/30 p(w 3 S) = 5/70 p(w 3 S) = 20/30 p(w 4 S) = 15/70 p(w 4 S) = 25/30 Setelah mengidentifikasi tiap variabel, substitusikan tiap variabel kedalam Hingga didapat hasil sebagai berikut i p(w i S) = ln 0,14285 + ln 0,07142 + ln 0,07142 + ln 0,21428 = -8,76447 i p(w i 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

3.4.1.3. STD Modul Inbox 64

3.4.1.4. STD Modul Spambox 65

3.4.1.5. STD Modul Trashbox 66

67 3.4.1.6. STD Modul Compose 3.4.1.7. STD Modul Settings

3.4.1.8. STD Modul Stats 68

Gambar 3.10 State Transition Diagram Stats 69

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 TotalMsg bigint 20 HamCount bigint 20 SpamCount bigint 20 FalseP bigint 20 FalseN bigint 20 Username yang menggunakan inbox. Jumlah seluruh pesan yang diterima oleh pengguna. Jumlah seluruh ham yang diterima oleh pengguna. Jumlah seluruh spam yang diterima oleh pengguna. Jumlah kesalahan pengklasifikasian spam. 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 LastUpdate float timestamp 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 Keterangan User varchar 175 Username yang menggunakan inbox. MessageID varchar 75 Nomor pesan. Type LastUpdate enum(spam, ham) timestamp 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 Keterangan User Varchar 175 Username yang melakukan training. Token Varchar 128 Kata yang dilatih. Occurrences LastUpdate Float timestamp Jumlah kata tersebut ditemukan dalam kelas spam. 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