13
oleh
AHMAD FADHIL JATMIKA M0103015
SKRIPSI
Ditulis dan diajukan untuk memenuhi sebagian persyaratan Memperoleh Gelar Sarjana Sains Matematika
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SEBELAS MARET
SKRIPSI
IMPLEMENTASI METODE BAYES PADA PROSES EMAIL FILTERING
yang disampaikan dan disusun oleh AHMAD FADHIL JATMIKA
M0103015
Dibimbing oleh Pembimbing I,
Irwan Susanto, DEA NIP. 19710511 199512 1 001
Pembimbing II,
Winita Sulandari, M.Si NIP. 19780814 200501 2 002 telah dipertahankan di depan dewan penguji
pada hari selasa, tanggal 25 Januari 2010 dan dinyatakan telah memenuhi syarat. Anggota Tim Penguji
1. Drs. Pangadi, M.Si
NIP. 19571012 199103 1 001 2. Drs. Sugiyanto, M.Si
NIP. 19611224 199203 1 003 3. Bowo Winarno, S.Si, M.Kom
Fakultas Matematika dan Ilmu Pengetahuan Alam
Dekan,
Prof. Drs. Sutarno, M.Sc, Ph.D NIP. 19600809 198612 1 001
Ketua Jurusan Matematika,
Drs. Sutrima, M.Si
ABSTRAK
Ahmad Fadhil Jatmika, 2010. IMPLEMENTASI METODE BAYES PADA PROSES EMAIL FILTERING. Fakultas Matematika Dan Ilmu Pengetahuan Alam Universitas Sebelas Maret Surakarta.
Spam adalah unsolicited email (email yang tidak diminta) yang berisi promosi produk, pornografi, virus dan content-content yang tidak penting, yang dikirim ke banyak orang. Masalah spam dapat diatasi dengan adanya aplikasi email filtering, yaitu aplikasi yang secara otomatis mendeteksi sebuah email, apakah email tersebut spam atau bukan. Bayesian filtering merupakan metode email filtering terbaru. Metode ini memanfaatkan teorema probabilitas yaitu teorema Bayes, dengan memprediksi probabilitas di masa depan berdasarkan informasi di masa sebelumnya.
Tujuan dalam penulisan skripsi ini adalah mengkaji penerapan metode Bayes pada proses email filtering yang mengacu pada pendekatan yang dilakukan oleh Paul Graham (Graham, 2002) dan menganalisis tingkat keakuratan dari Bayesian filtering dalam memfilter email. Hasil pengujian aplikasi terhadap 50 email yang terdiri dari 30 email spam dan 20 legitimate email, didapatkan akurasi tertinggi yang dicapai adalah 94 % dengan mengambil data training yang terdiri dari 500 email spam dan 500 legitimate email.
ABSTRACT
Ahmad Fadhil Jatmika, 2010. IMPLEMENTATION OF BAYESIAN METHOD IN EMAIL FILTERING PROCESS. The Faculty of Mathematics and Natural Sciences, Sebelas Maret University.
Spam is unsolicited email (unwanted email) which contains promotional products, pornography, viruses and content-content that is not important that sent to many people. Spam problem can be overcome by email filtering applications, ie applications that automatically detect an email, whether an email is spam or not. Bayesian filtering is the latest method of email filtering. This methods use probability theorem that is Bayesian theorem, to predict the probability in the future based on the information in the past.
The purpose of this thesis is to examine the implementation of Bayesian method which refers to the approach taken by Paul Graham (Graham, 2002) and analyze the accuracy of Bayesian filtering in the process of email filtering. From the results of application testing against 50 email consisting of 30 spam email and 20 legitimate email, obtained the highest accuracy achieved is 94% by taking the training data that consist of 500 spam email and 500 legitimate email.
MOTTO
Hanya mereka yang berani gagal dapat meraih keberhasilan
(Robert F. Kenedy)
Selesaikan apa yang telah kamu mulai
(Penulis)
Sesungguhnya Allah beserta orang-orang yang sabar
PERSEMBAHAN
Kupersembahkan karya sederhana ini untuk :
KATA PENGANTAR
Segala puji bagi Allah Ta’ala. Penulis memuji, memohon pertolongan dan ampunan-Nya, serta penulis berlindung kepada Allah Ta’ala dari kejahatan diri dan keburukan amal. Rasa syukur Penulis kepada Allah Ta’ala yang telah memberikan kesempatan kepada Penulis untuk bisa menyelesaikan skripsi ini.
Maksud dari penulisan dan pengajuan skripsi ini adalah dalam rangka memenuhi sebagian persyaratan memperoleh gelar Sarjana Sains Matematika. Penulis sadar akan keterbatasan yang dimiliki dalam penulisan skripsi ini, terutama keterbatasan kemampuan dan pengetahuan, sehingga hasil skripsi ini masih jauh dari sempurna. Penulis mengucapkan terima kasih kepada pribadi-pribadi berikut yang telah membantu dalam proses penyelesaian skripsi ini.
1. Bapak Irwan Susanto, DEA selaku dosen pembimbing I dan Ibu Winita Sulandari, M.Si selaku dosen pembimbing II , yang telah dengan sabar mem-bimbing dan memberi motivasi kepada penulis dalam penulisan skripsi ini. 2. Bapak Drs. Santoso Budi W, M.Si selaku pembimbing akademik.
3. Teman-teman Gundhu Community yang selalu mengingatkan dan memberi motivasi kepada penulis.
4. Semua pihak yang telah membantu kelancaran penyusunan skripsi
Penulis menyerahkan semuanya hanya kepada Allah Ta’ala dan Penulis berharap skripsi ini dapat bermanfaat bagi semua pihak yang berkepentingan.
Surakarta, 11 Januari 2009
DAFTAR ISI 1.1.Latar Belakang Masalah ……….
1.2.Perumusan Masalah ………
2.1.1. Surat Elektronik (e-mail) ………
2.1.2. Spam ………
2.1.3. Email Filtering……….
2.1.4. Klasifikasi (Classification)……….. 2.1.5. Bayesian (Statistical) Filtering ……….. 2.1.6. Perhitungan Probabilitas Berdasarkan Bayesian Filtering ….
2.2.Kerangka Pemikiran ………
BAB IV PEMBAHASAN ………. 4.1 Pembuatan Database Email ………... 4.2 Perancangan Bayesian Filtering Dengan Netbeans IDE …………...
4.2.1 Proses Tokenizing ………
4.2.2 Proses Pemberian Nilai Pada Token (Scoring)……… 4.2.3 Proses Combining ………... 4.3 Aplikasi Bayesian Filtering ………... 4.4 Uji Coba Aplikasi Bayesian Filtering ……… BAB V PENUTUP ………..
5.1. Kesimpulan ………
5.2. Saran ………..
DAFTAR PUSTAKA ……….. LAMPIRAN ……….
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Penggunaan internet telah menjadi kebutuhan yang penting dalam kehidupan berkomunikasi. Dari sekian banyak fasilitas di internet, salah satunya adalah surat elektronik atau yang lebih dikenal sebagai email. Electronic mail (email) merupakan media komunikasi di internet seperti untuk berdiskusi (maillist), transfer informasi berupa file (mail attachment) bahkan dapat digunakan untuk media iklan suatu perusahaan. Mengingat fasilitas email yang murah dan kemudahan untuk mengirimkan ke berapapun jumlah penerimanya maka beberapa pihak tertentu memanfaatkannya dengan mengirimkan email berisi promosi produk atau jasa, pornografi, virus, dan content-content yang tidak penting ke ribuan pengguna email. Email-email inilah yang biasanya disebut dengan spam.
Dewasa ini, spam telah menjadi masalah besar di internet. Dalam jumlah sedikit, spam sebenarnya bukan masalah yang terlalu serius bagi pengguna email. Tetapi sebaliknya, spam tersebut akan menjadi masalah yang merepotkan bagi pengguna email apabila masuk ke inbox dalam jumlah yang banyak dan setiap hari. Hal ini akan mengakibatkan banyaknya waktu yang terbuang hanya untuk menghapus sekian banyak spam tersebut secara manual.
Masalah tersebut dapat diatasi dengan adanya aplikasi email filtering. Tetapi meskipun berbagai perangkat lunak email filtering banyak tersedia, masalah spam juga semakin berkembang, sehingga melahirkan beberapa metode email filtering. Salah satu metode email filtering yang paling populer yaitu
metode Bayes (Bayesian filtering). Metode ini memanfaatkan teorema probabilitas yaitu teorema Bayes, dengan memprediksi probabilitas di masa depan berdasarkan informasi di masa sebelumnya.
paper tentang email filtering (Graham, 2002). Selanjutnya, Bayesian filtering mulai populer sebagai sebuah metode untuk membedakan spam dengan legitimate email.
Bayesian filtering ini mengenali spam berdasarkan kata-kata (token) yang terkandung pada sebuah email. Metode ini pertama kali perlu dilatih menggunakan dua koleksi email, satu koleksi merupakan spam, dan koleksi yang lain merupakan legitimate email. Dengan cara seperti ini, pada setiap email baru yang diterima, Bayesian filtering dapat memperkirakan probabilitas spam berdasarkan kata-kata yang sering muncul pada koleksi spam atau pada koleksi legitimate email. Bayesian filtering efektif untuk memblok spam karena metode ini dapat secara otomatis mengkategorikan spam atau legitimate email.
Pada skripsi ini, penulis mencoba mengkaji penerapan metode Bayes pada proses email filtering dan kemudian menganalisis tingkat akurasi dari Bayesian filtering tersebut.
1.2 Perumusan Masalah
Berdasarkan latar belakang masalah, dibuat perumusan masalah yaitu, bagaimana cara kerja dan tingkat keakuratan Bayesian filtering dalam memfilter email, jika jumlah data training untuk melatih metode tersebut dibuat berbeda.
1.3 Batasan Masalah
Batasan masalah yang digunakan dalam penulisan skripsi ini adalah. 1. Proses email filtering pada skripsi ini mengacu pada pendekatan yang
dilakukan oleh Paul Graham.
2. Bayesian filtering pada skripsi ini dibangun menggunakan bahasa pemrograman Java dengan bantuan Netbeans 6.
3. Aplikasi yang dibangun hanya bersifat simulasi (tanpa email client) yang menjelaskan tentang proses email filtering dengan menggunakan metode Bayes.
1.4 Tujuan Penelitian Tujuan dari penulisan skripsi ini adalah.
1. Untuk mengetahui cara kerja email filtering dengan metode Bayes.
2. Menganalisis tingkat keakuratan dari Bayesian filtering dalam memfilter email, jika jumlah data training untuk melatih metode tersebut dibuat berbeda.
1.5 Manfaat Penelitian Manfaat penelitian dari skripsi ini adalah.
1. Dapat mengetahui kelebihan dan kekurangan dari metode Bayes dalam memfilter email dan dapat mengetahui cara kerja dan kinerja dari Bayesian filtering.
BAB II
LANDASAN TEORI
2.1 Tinjauan Pustaka 2.1.1 Surat Elektronik (e-mail)
Surat elektronik (disingkat ratel atau surel atau surat-e) atau pos elektronik (disingkat pos-el) atau nama umumnya dalam bahasa Inggris adalah "e-mail atau email" (ejaan Indonesia: imel) adalah sarana kirim mengirim surat melalui jalur
Internet. Email merupakan salah satu layanan internet yang paling banyak digu-nakan serta media komunikasi yang murah, cepat dan mudah penggunaannya.
2.1.2 Spam
Spam atau junk mail adalah penyalahgunaan dalam pengiriman berita
elektronik untuk menampilkan berita iklan dan keperluan lainnya yang meng-akibatkan ketidaknyamanan bagi para pengguna web. Menurut Rahardjo (2006), spam adalah unsolicited email (email yang tidak diminta) yang dikirim ke banyak
orang.
Berikut ini definisi dari spam menurut Lambert (2003).
1. Isi atau konten dari email tidak relevan dengan minat penerima.
2. Penerima tidak dapat menolak datangnya email yang tidak diminta tersebut dengan cara-cara lazim.
3. Dari sisi penerima, pengiriman dan penerimaan pesan tersebut memberikan keuntungan bagi pengirimnya.
Bentuk berita spam yang umum dikenal meliputi: spam pos-el, spam pesan instan, spam usenet news-group, spam mesin pencari informasi web (web search engine spam), spam blog, spam berita pada telepon genggam, spam forum
internet, dan lain lain. Spam ini biasanya datang bertubi-tubi tanpa diminta dan sering kali tidak dikehendaki oleh penerimanya.
Spam dapat dikategorikan sebagai berikut.
1. Junk mail yaitu email yang dikirimkan secara besar-besaran dari suatu perusahaan bisnis, yang sebenarnya tidak kita inginkan.
2. Non-commercial spam, misalnya surat berantai atau cerita humor yang dikirimkan secara masal tanpa tujuan komersial tertentu.
3. Pornographic spam yaitu email yang dikirimkan secara masal untuk mengirimkan gambar-gambar pornografi.
4. Virus spam yaitu email yang dikirimkan secara massal, dan mengandung virus atau Trojans.
2.1.3 Email Filtering
Email filtering adalah suatu proses yang otomatis akan mendeteksi sebuah
email, apakah email tersebut sebuah spam atau bukan (legitimate email). Beberapa metode yang dapat digunakan untuk email filtering antara lain Keyword filtering, Black listing dan White listing, Signature-Based filtering, Naive
Bayesian (statistical) filtering.
Beberapa karakteristik email filtering yaitu. 1. Binary class
email filtering hanya mengklasifikasikan email ke dalam kelas spam dan legitimate email.
2. Prediksi
email filtering mampu melakukan prediksi kelas dari suatu email.
3. Komputasi mudah
mengingat sifat data email yang memiliki dimensi tinggi maka dibutuhkan sebuah email filter yang mampu melakukan komputasi dengan mudah. 4. Learning
mampu melakukan learning dari email-email yang sudah ada sebelumnya. 5. Kinerja yang bagus
2.1.4 Klasifikasi (classification)
Klasifikasi adalah proses pencarian sekumpulan model atau fungsi yang menggambarkan dan membedakan kelas data dengan tujuan agar model tersebut dapat digunakan untuk memprediksi kelas dari suatu obyek yang belum diketahui kelasnya.
Klasifikasi memiliki dua proses yaitu membangun model klasifikasi dari sekumpulan kelas data yang sudah didefinisikan sebelumnya (training data) dan menggunakan model tersebut untuk klasifikasi data uji serta mengukur akurasi dari model. Model klasifikasi dapat disajikan dalam berbagai macam model klasifikasi seperti decision trees, bayesian classification, k-nearest-neighbourhood classifier, neural network, classification (IF-THEN) rule, dll.
Klasifikasi dapat dimanfaatkan dalam berbagai aplikasi seperti diagnosa medis, selective marketing, pengajuan kredit perbankan dan email.
Menurut Zdziarski (2005), klasifikasi teks adalah sebuah proses pengidentifikasian kategori dari sebuah teks yang dimasukkan. Klasifikasi teks mempunyai dua unsur penting yaitu pembelajaran dan pengambilan keputusan.
Klasifikasi terdiri dari tiga komponen penting, yaitu sebagai berikut. 1. Data training
merupakan database yang berisi email yang digunakan sebagai proses pembelajaran dari filter.
2. Tokenizer
tokenizer bertanggung jawab pada terjadinya proses tokenizing yaitu
proses pembacaan email dan memecah-mecahnya menjadi beberapa elemen yang lebih kecil (token).
3. Analysis engine
analysis engine bertanggung jawab pada terjadinya proses analisis
2.1.5 Bayesian (Statistical) Filtering
Bayesian filtering merupakan metode filter anti spam yang terbaru.
Metode memanfaatkan teori probabilitas yang dikemukakan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi probabilitas di masa depan berdasarkan pengalaman di masa sebelumnya.
Bayesian filtering mendeteksi spam dengan cara menghitung probabilitas
dari suatu pesan (email) berdasarkan isinya. Probabilitas ini dapat dihitung dengan terlebih dahulu membuat suatu database spam dan database non spam. Kemudian dengan proses training, Bayesian filtering dapat dilatih untuk melihat kata-kata yang sering digunakan pada spam, sehingga pada akhirnya dihasilkan filter anti spam yang akurat dengan sesedikit mungkin false positives. False positives adalah
email legal yang ditujukan kepada penerima, tetapi karena kesalahan dari filter anti spam, dikategorikan menjadi spam.
Pada dasarnya, metode Bayesian filtering merupakan merupakan pengembangan dari metode penilaian pesan (scoring content-based filter, hampir sama dengan keywords filtering) yaitu filter mencari karakteristik kata-kata yang banyak digunakan pada spam, kata-kata ini diberi nilai individual, dan nilai spam secara keseluruhan dihitung dari nilai individual tersebut (Satterfield, 2005). Tetapi metode ini memiliki kelemahan yaitu karakteristik kata-kata pada spam dan legitimate email akan berbeda-beda untuk setiap individu. Kata “business” misalnya yang untuk sebagian orang akan termasuk pada karakteristik kata-kata pada spam, tetapi untuk perusahaan tertentu yang bergerak di bidang itu, kata “business” tersebut akan termasuk pada legitimate email. Dapat dikatakan bahwa algoritma scoring content-based filter ini tidak kompatibel.
antara lain berdasarkan kata-kata pada body message, header message, dan juga kode HTML (seperti pemberian background warna).
2.1.6 Perhitungan Probabilitas Berdasarkan Bayesian Filtering Pada awalnya, Bayesian filtering ini harus di-training terlebih dahulu menggunakan sejumlah spam dan sejumlah legitimate email. Bayesian filtering akan menghitung probabilitas dari suatu token, misalnya kata “adult”, untuk muncul di kelompok spam. Probabilitas ini dapat dirumuskan sebagai berikut
Pr莠 | Pr莠 | ·Pr莠
Pr莠 | ·Pr莠 Pr莠 | ·Pr莠 莠1
dimana
Pr莠 | adalah probabilitas suatu email adalah spam dengan diketahui terdapat suatu kata misal “w”,
Pr莠 | adalah probabilitas munculnya kata misal “w” dalam email spam, Pr莠 | adalah probabilitas munculnya kata misal “w” dalam legitimate email, Pr莠 adalah probabilitas suatu email adalah spam,
Pr 莠 adalah probabilitas suatu email adalah legitimate email,
Data statistik terbaru menunjukkan bahwa probabilitas suatu email merupakan spam adalah 80%, sehingga Pr莠 0.8 dan Pr莠 0.2. Bayesian filtering dalam penulisan ini menggunakan asumsi bahwa peluang suatu email
yang masuk untuk dikategorikan sebagai spam adalah sama dengan peluang email tersebut dikategorikan sebagai legitimate email yaitu 0.5 (Wikipedia, 2009), maka persamaan (1) diatas dapat disederhanakan menjadi
Pr莠 | Pr莠 |
Pr莠 | Pr莠 | 莠2
Rumus (2) oleh Graham (2002) dimodifikasi dengan menggandakan probabilitas kata yang muncul dalam legitimate email. Tujuan dari penggandaan probabilitas kata yang muncul dalam legitimate email ini adalah untuk mengurangi false positive. Sehingga rumus (2) diatas menjadi
Pr莠 | Pr莠 |
Bayesian filtering menggunakan asumsi bahwa masing-masing kata dalam
email adalah independen satu sama lain (Wikipedia, 2009). Probabilitas dari masing-masing kata tersebut kemudian menggunakan aturan rantai (chain rule) Bayes untuk menentukan probabilitas dari suatu email adalah spam berdasarkan kata-kata (token) yang terkandung didalamnya. Bayesian chain rule dirumuskan sebagai berikut
章
章 莠1 章 莠1 莠4 dimana,
a adalah probabilitas suatu email dikategorikan sebagai spam dengan adanya token misal “w1”,
b adalah probabilitas suatu email dikategorikan sebagai spam dengan adanya token misal “w2”.
Pada pendekatan yang dilakukan oleh Graham (2002), diambil 15 kata (token) yang mempunyai nilai probabilitas spam tertinggi. Sehingga rumus (4) diatas dapat dituliskan menjadi
1 · 2 · 3 · … · 15
1 · 2 · 3 · … · 15 莠1 1 · 莠1 2 · 莠1 3 · … · 莠1 15
dimana
adalah probabilitas bahwa email yang masuk adalah spam,
1 adalah probabilitas suatu email adalah spam dengan diketahui terdapat suatu kata “w1” didalamnya,
2 adalah probabilitas suatu email adalah spam dengan diketahui terdapat suatu kata “w2” didalamnya,
dan seterusnya, sampai dengan 15.
2.2 Kerangka Pemikiran
BAB III
METODE PENELITIAN
Penulisan skripsi ini menggunakan metode studi literatur, yaitu metode penulisan dengan semua bahan diambil dari buku referensi, jurnal, dan artikel. Definisi dan teorema yang terdapat di dalam jurnal dan buku referensi digunakan dalam pembahasan. Semua email yang digunakan dalam penulisan skripsi ini didapat dari TREC 2007 Spam Track Public Corpora.
Langkah-langkah yang dilakukan untuk mencapai tujuan skripsi ini adalah sebagai berikut.
1. Melakukan studi literatur tentang email, terutama spam dan metode yang digunakan untuk mengatasi spam, terutama metode Bayesian.
2. Mempelajari tentang cara kerja metode Bayesian yang digunakan untuk proses klasifikasi email.
3. Mengumpulkan data-data yaitu berupa email, yang akan digunakan sebagai training database dan sebagai email yang akan diujikan.
4. Untuk email yang akan digunakan sebagai training database, terlebih dahulu harus diklasifikasikan menjadi 2 kategori, yaitu spam dan legitimate email. 5. Pembuatan program dengan menggunakan bahasa pemrograman Java untuk
menggambarkan proses filtering dengan metode Bayesian.
6. Dilakukan ujicoba dan analisis program yang telah dibuat disertai dengan pengambilan kesimpulan.
Dalam proses pembuatan aplikasi Bayesian filtering ini, penulis menggunakan perangkat keras dan perangkat lunak berikut ini :
1. Perangkat keras
Tabel 3.1. spesifikasi perangkat keras Jenis perangkat Spesifikasi Prosesor
Memori Harddisk Kartu vga Monitor
Intel Pentium 4 CPU 3.40GHz 1 Gb RAM
Seagate Barracuda 40Gb Nvidia gforce 7100 GS Samsung SyncMaster 551v 2. Perangkat lunak
perangkat lunak yang penulis gunakan diberikan pada Tabel 4.2. Tabel 3.2. spesifikasi perangkat lunak
Jenis perangkat Spesifikasi
System operasi Windows XP Professional Edition Service Pack 3 Teks editor TextPad
BAB IV PEMBAHASAN
Pada bab ini akan dijelaskan tahap-tahap pembuatan aplikasi Bayesian filtering yang terdiri dari.
1. Pembuatan database email yang terdiri dari data training dan data testing. 2. Perancangan Bayesian filtering dengan netbeans IDE.
dan selanjutnya akan dilakukan pengujian dari aplikasi Bayesian filtering yang telah dibuat.
4.1.Pembuatan Database Email
Untuk pembuatan database email ini, penulis menggunakan kumpulan email (corpus) dari TREC 2007 Spam Track Public Corpora. Dalam email corpus ini terdapat 37.822 email yang terdiri dari 12.910 email yang merupakan legitimate email dan 24.912 email yang merupakan spam, tetapi tidak digunakan
semua dikhawatirkan akan memboroskan memori pada saat digunakan dalam aplikasi.
Dari email corpus ini, kemudian akan dipisahkan menjadi dua, yaitu corpus untuk data training dan corpus untuk data testing. Pada training corpus terlebih akan dipisahkan menjadi dua corpus, yaitu spam dan legitimate email. Langkah selanjutnya adalah membuat file teks untuk masing-masing corpus dengan TextPad, yaitu spam.txt dan ham.txt, yang selanjutnya file ini akan digunakan pada proses training dari aplikasi Bayesian filtering.
4.2.Perancangan Bayesian Filtering Dengan Netbeans IDE
Sebelum masuk pada tahap pembuatan form aplikasi Bayesian filtering, terlebih dulu akan dijelaskan secara singkat mengenai proses-proses yang ada pada aplikasi Bayesian filtering, proses-proses tersebut adalah sebagai berikut. 1. Proses tokenizing.
Diagram alir sistem secara keseluruhan dapat dilihat pada Gambar 4.1 sebagai berikut
START
input training corpus PROSES TRAINING tokenizing
scoring
input testing email
tokenizing
combining
ya
章 0.9 email adalah spam
tidak
email adalah legitimate email
END
Gambar 4.1. Diagram alir sistem 4.2.1. Proses Tokenizing
Pada proses tokenizing, training email dan testing email akan dibaca dan dipecah-pecah menjadi beberapa komponen yang lebih kecil (token). Proses tokenizing akan membaca seluruh teks pada email, termasuk header message,
Berikut akan diberikan contoh bagaimana proses tokenizing pada suatu email. Seperti contoh email dibawah ini
From: "Julie Ellison" <[email protected]> Subject: Dont Pay For Name Brand Drugs
Date: Sun, 11 Apr 2045 10:21:05 +0600 CANADIAN GENERICS NOW HAS VALIUM
Order Some HERE
akan dihasilkan beberapa token sebagai berikut
i
Setelah email yang diterima dipisahkan menjadi beberapa token, maka setiap token akan diberi nilai atau disebut juga dengan metode scoring. Metode ini memberikan nilai (score) pada setiap token yang telah diproses dengan metode tokenizing. Langkah-langkah pada proses scoring adalah sebagai berikut.
1. Untuk tiap-tiap token yang dihasilkan, akan dilihat dalam tabel hash untuk mengetahui jumlah kemunculan dari token.
2. Dihitung nilai probabilitas token dengan rumus (3).
3. Jika perhitungan nilai probabilitas token menghasilkan nilai lebih besar dari 0.99, maka probabilitas token diset menjadi 0.99.
4. Jika perhitungan nilai probabilitas token menghasilkan nilai lebih kecil dari 0.01, maka probabilitas token diset menjadi 0.01.
5. Untuk token yang tidak terdapat dalam tabel atau belum pernah muncul sebelumnya, nilai probabilitas token diset menjadi 0.4.
Diagram alir untuk proses scoring dapat dilihat seperti pada Gambar 4.2 berikut ini
Scoring
Token ada dalam nilai token di-set tabel tidak menjadi 0.4 ya
Pr莠 | Pr莠 | Pr莠 | 2 ·Pr莠 |
return
ii
Sebagai contoh, misalkan token “the” muncul 96 kali pada spam corpus dan muncul 48 kali pada legitimate corpus. Dengan jumlah total token, 224 pada email spam dan 112 pada legitimate email, akan didapatkan nilai probabilitas spam dari token “the” tersebut sebagai berikut
P莠 | 莠 | tidak akan dipakai oleh filter untuk proses combining, karena bukan merupakan interesting token.
Interesting token adalah token yang mempunyai suatu nilai yang dianggap
dapat mempengaruhi filter dalam proses pengambilan keputusan apakah email yang diujikan merupakan spam atau tidak.
Semakin dekat nilai probabilitas suatu token dengan 1.0, semakin tinggi tingkat spam token tersebut. Setelah proses tokenizing dan pemberian nilai token, selanjutnya dapat dibuat suatu database token, dimana dalam aplikasi Bayesian filtering ini berupa dua buah tabel hash masing-masing untuk spam corpus dan
legitimate corpus. Tabel hash ini memetakan token ke dalam nilai probabilitasnya
(Graham, 2002).
4.2.3. Proses Combining
Proses combining terjadi pada saat filter melakukan analisis terhadap email yang diuji (testing email) untuk menentukan apakah email, yang diuji merupakan spam atau legitimate email. Proses ini mengambil 15 token yang memiliki nilai
terjauh dari nilai netral (0.5). Langkah-langkah yang dilakukan oleh filter adalah sebagai berikut.
iii
2. Nilai tersebut kemudian diurutkan secara descending dan diambil 15 token teratas.
3. Dari 15 interesting token akan dihitung total probabilitas dengan rumus
· · · … ·
· · · … · 莠1 · 莠1 · 莠1 · … · 莠1
4. Jika nilai 0.9, maka email tersebut adalah spam, sebaliknya jika 0.9, maka email tersebut adalah legitimate email.
Diagram alir untuk proses combining dapat dilihat seperti pada Gambar 4.3 berikut ini
Combining
Ambil 15 interesting token
Hitung probabilitas email menggunakan rumus combining
return
Gambar 4.3. Diagram alir untuk proses combining. 4.3.Aplikasi Bayesian Filtering
Berdasarkan proses-proses yang telah dijelaskan sebelumnya, dibuat aplikasi Bayesian filtering menggunakan bahasa pemrograman java dengan bantuan Netbeans IDE 6.1. Tahap-tahapnya adalah sebagai berikut.
1. Membuat sebuah kelas untuk mendeskripsikan token. Berikut ini adalah kode program dari kelas word.
iv
public void calcBadProb(int total) {
if (total > 0) rBad = countBad / (float) total; }
public void calcGoodProb(int total) {
if (total > 0) rGood = 2*countGood / (float) total;
public void setPSpam(float f) { pSpam = f;
Fungsi kelas word diatas adalah untuk mendeskripsikan token yang telah di-tokenizing yaitu berupa string token, total kemunculan pada spam corpus, total
kemunculan pada legitimate corpus dan nilai spam dari token. Pada perhitungan nilai spam dari token, jika nilainya kurang dari 0.01, maka nilai spam dari token tersebut akan di-set menjadi 0.01 dan jika nilai lebih besar
0.99, maka akan di-set menjadi 0.99.
v
Form Bayesian filtering ini terdapat empat panel, yaitu panel training, panel
analizing, panel interesting word dan panel statistical result. Dalam panel
training terdapat tiga tombol, yaitu tombol browse untuk mencari file spam
corpus, tombol browse untuk mencari file legitimate corpus dan tombol
proses untuk menjalankan proses training. Dalam panel analizing terdapat dua tombol, yaitu tombol open untuk mencari file testing corpus dan tombol analize untuk menjalankan proses analisis dari filter. Dalam panel interesting
word terdapat tabel yang akan memperlihatkan interesting token yang
dihasilkan dari proses analisis filter, dan terakhir adalah panel statistical result yang akan menampilkan hasil analisis filter berupa nilai probabilitas spam dari email corpus yang diuji. Untuk lebih jelasnya tampilan form dari Bayesian filtering seperti pada Gambar 4.4.
Gambar 4.4. Form tampilan dari aplikasi Bayesian filtering. 3. Menambahkan action listener untuk tiap tombol.
i. Tombol browse untuk spam corpus.
vi
if ( evt.getSource ( ) == jButtonBrowse1 ){
JFileChooser fileChooser = new JFileChooser ( ) ; FileNameExtensionFilter TXTFilter = new
FileNameExtensionFilter("TXT File","txt");
fileChooser.addChoosableFileFilter(TXTFilter); int ret = fileChooser.showOpenDialog ( this ) ; if ( ret == JFileChooser.APPROVE_OPTION ){
File nama = fileChooser.getSelectedFile ( ); jTextFieldSpam.setText(nama.getPath()); } }
ii. Tombol browse untuk legitimate corpus.
Kode action listener-nya adalah sebagai berikut.
if ( evt.getSource ( ) == jButtonBrowse2 ){
JFileChooser fileChooser = new JFileChooser ( ) ; FileNameExtensionFilter TXTFilter = new
FileNameExtensionFilter("TXT File","txt");
fileChooser.addChoosableFileFilter(TXTFilter); int ret = fileChooser.showOpenDialog ( this ) ; if ( ret == JFileChooser.APPROVE_OPTION ){
File nama = fileChooser.getSelectedFile ( ); jTextFieldGood.setText(nama.getPath()); }
}
Saat memulai proses training, dibutuhkan dua email corpus yaitu spam corpus dan legitimate corpus. Pada saat tombol browse dieksekusi,
aplikasi akan mencari masing-masing file tersebut. iii. Tombol proses untuk memulai proses training.
Kode action listener-nya adalah sebagai berikut.
Task task1 = new Task(); task1.execute();
vii
public class Task extends SwingWorker{ @Override
ix String goodcount = jLabel5.getText(); jProgressBar1.setValue(100);
jLabel9.setText(spamcount); jProgressBar2.setValue(100); jLabel10.setText(goodcount); jButtonProses.setEnabled(false); }
}
x
Gambar 4.5. Tampilan aplikasi pada saat proses training.
iv. Tombol open untuk menginput email yang akan diuji. Kode action listener-nya adalah sebagai berikut.
if ( evt.getSource ( ) == jButtonOpen ){
JFileChooser fileChooser = new JFileChooser ( ) ; FileNameExtensionFilter JPEGFilter = new
FileNameExtensionFilter("TXT File","txt");
fileChooser.addChoosableFileFilter(JPEGFilter); int ret = fileChooser.showOpenDialog ( this ) ; if ( ret == JFileChooser.APPROVE_OPTION ){ File nama = fileChooser.getSelectedFile ( ); jTextFieldFile.setText(nama.getPath()); try {
FileReader fr = new FileReader(nama.getPath()); BufferedReader reader = new BufferedReader (fr) ; String temp = null ;
jTextArea.setText ( "" ) ;
xi
reader.close ( ) ; }
catch(IOException ex) {
Logger.getLogger(SpamBayes.class.getName()).log(Level.SEVER E, null, ex);
} }
}
Saat tombol open dieksekusi aplikasi akan mencari file dari email yang akan dianalisis. Selanjutnya akan ditampilkan seluruh teks dari email tersebut dalam text area. Gambar 4.6 tampilan aplikasi pada saat membaca email yang masuk.
Gambar 4.6 Tampilan aplikasi saat membaca email yang masuk. v. Tombol analize untuk memulai proses analisis.
Kode action listener-nya adalah sebagai berikut.
ArrayList interesting = new ArrayList(); try {
xii
A2ZFileReader fr = new A2ZFileReader(file); String stuff = fr.getContent();
String[] tokens = stuff.split(splitregex); for (int i = 0; i < tokens.length; i++) {
xiii
jTable1.setModel(new DefaultTableModel(results, titles));
jLabel14.setText(" "+ pspam);
if (pspam > 0.9f) jLabel15.setText(" SPAM DETECTED "); else jLabel15.setText(" NO SPAM DETECTED "); }
xiv
Gambar 4.7. Tampilan pada saat proses analisis filter. 4.4.Uji Coba Aplikasi Bayesian filtering.
Tujuan dari uji coba aplikasi Bayesian filtering ini adalah untuk menguji tingkat akurasi dari aplikasi yang telah dibuat dengan menggunakan data training (training corpus) yang berbeda-beda.
Proses uji coba ini terdiri dari lima tahap. Berikut adalah tahap-tahap pengujian dari aplikasi Bayesian filtering.
1. Tahap pertama.
Pengujian dengan perbandingan jumlah data training email spam lebih banyak daripada legitimate email.
2. Tahap kedua.
Pengujian dengan perbandingan jumlah data training email spam lebih sedikit daripada legitimate email.
3. Tahap ketiga.
xv
Data uji (testing corpus) untuk tiap pengujian adalah sama yaitu 50 email terdiri dari 30 email spam dan 20 legitimate email.
Setelah dilakukan proses uji coba sesuai dengan tahap-tahap diatas, didapatkan hasil sebagai berikut.
1. Tahap pertama.
Hasil pengujian tahap pertama diberikan pada tabel 4.3 berikut ini. Tabel 4.3. hasil pengujian tahap pertama.
training testing
Hasil pengujian tahap kedua diberikan pada tabel 4.4 berikut ini.
Tabel 4.4. hasil pengujian tahap kedua.
training testing
Hasil pengujian tahap ketiga diberikan pada tabel 4.5 berikut ini. Tabel 4.5. hasil pengujian tahap ketiga.
xvi
300 300 18 12 20 0 76.00%
500 500 27 3 20 0 94.00%
xvii BAB V PENUTUP
5.1. Kesimpulan
Berdasarkan hasil pembahasan, diperoleh kesimpulan bahwa klasifikasi Bayesian filtering pendekatan Paul Graham dapat digunakan dengan baik dalam
aplikasi email filtering. Semakin banyak jumlah data training yang digunakan maka semakin tinggi keakuratannya, hal ini terlihat pada saat uji coba aplikasi, nilai akurasi tertinggi yaitu 94% berhasil dicapai dengan data training paling banyak. Aplikasi Bayesian filtering mempunyai false positive yang rendah, meskipun data training untuk legitimate email berjumlah sedikit.
5.2. Saran
Dari hasil pembahasan, saran yang dapat diberikan penulis adalah sebagai berikut.
1. Aplikasi dapat dikembangkan lebih lanjut sehingga mampu melakukan analisis terhadap body email bertipe html atau mime dan attachment yang dianalisa dari contentnya.
2. Aplikasi dapat juga dikembangkan lebih lanjut dengan menambahkan metode whitelist atau blacklist untuk menganalisa header email.
xviii
DAFTAR PUSTAKA
Graham, P., A Plan for Spam, http://www.paulgraham.com/spam.html, 2002. (diakses 19 Agustus 2008)
Graham, P., Better Bayesian filtering, http://www.paulgraham.com/better.html, 2003. (diakses 21 Agustus 2008)
Hakim, R. dan Sutarto., Mastering Java, PT Elex Media Komputindo, 2009. Hartati, G. S., Suharto, B. H. dan Wijono, M. S., pemrograman GUI Swing Java dengan Netbeans 5, ANDI Yogyakarta, 2007.
Lambert, A., Analysis of SPAM, Master's thesis, Department of Computer Science, University of Dublin, Trinity College, 2003.
Sahami, M., Dumais, S., Heckerman, D. dan Horvitz, E., A Bayesian Approach to Filtering Junk E-Mail, Computer Science Department, Stanford University, Stanford, 1998.
Rahardjo, B., Spam! Definisi, bahaya, penanggulangan, http://budi.insan.co.id, 2006. (diakses 7 Juli 2008)
Satterfield, B., Ten Spam-Filtering Methods Explained: Learn how different spam-fighting techniques work, http://www.techsoup.org/learningcenter/ page6028.cfm.htm, 2006. (diakses 7 Juli 2008)
Shiffman, D., Bayesian Filtering, http://www.shiffman.net/teaching/a2z/bayesian, 2005. (diakses 19 Agustus 2008)
TREC 2007 Spam Track Public Corpora, http://plg.uwaterloo.ca/~gvcormac/ treccorpus07/about.html, 2007. (diakses 25 Agustus 2009)
Wikipedia, Bayesian Spam Filtering, http://www.wikipedia.com/ Bayesian_spam_filtering.htm, 2009. (diakses 15 September 2009)
Wikipedia, Spam, http://www.wikipedia.com/Spam.htm, 2009. (diakses 26 Maret 2009