bab ii tinjauan pustaka

advertisement
10
BAB II
TINJAUAN PUSTAKA
2.1 Landasan Teori
2.1.1 Analisis
Analisis adalah penyelidikan terhadap suatu peristiwa (perbuatan, karangan
dan sebagainya) untuk mendapatkan fakta yang tepat (asal usul, sebab, penyebab
sebenarnya, dan sebagainya). Penguraian pokok persoalan atas bagian-bagian,
penelaahan bagian-bagian tersebut dan hubungan antar bagian untuk mendapatkan
pengertian yang tepat dengan pemahaman secara keseluruhan. (Salim, Peter.
2002).
Analisis adalah analisis kebutuhan perangkat lunak yaitu mendaftarkan apaapa yang harus dipenuhi oleh sistem perangkat lunak, bukan mengenai bagaimana
sistem perangkat lunak melakukan. (Hariyanto, Bambang. 2004).
Dari kedua pengertian di atas dapat disimpulkan bahwa analisis adalah suatu
penyelidikan yang menghasilkan fakta yang tepat dalam penguraian pokok
permasalahan untuk mendapatkan fakta secara keseluruhan dalam kebutuhan
perangkat lunak.
2.1.2 Data Mining
Data mining atau Knowledge Discovery in Database (KDD) adalah
ekstraksi informasi-informasi penting atau knowledge dari basis data yang besar.
11
Data mining menspesifikasikan pola-pola yang ditemukan pada kumpulan data
tersebut sehingga data yang telah ada itu lebih bermanfaat dalam kehidupan nyata.
Fungsionalitas yang ada pada data mining antara lain Karakterisasi dan
Diskriminasi, Asosiasi, Klasifikasi dan Prediksi, Analisa Cluster dan Analisa
Outlier. (Rachli, Muhammad. 2007).
Data mining adalah Knowledge Discovery ataupun pattern recognition,
kedua istilah tersebut sebenarnya memiliki ketepatan masing-masing. Istilah
Knowledge Discovery atau penemuan pengetahuan tepat digunakan karena tujuan
utama dari data mining memang untuk mendapatkan pengetahuan yang masih
tersembunyi di dalam bongkahan data. (Susanto, Sani. 2010).
Dari kedua pengertian di atas dapat disimpulkan bahwa data mining adalah
suatu pengetahuan dalam intelegensia buatan yang berisi tentang informasiinformasi yang penting dari suatu basis data yang memiliki suatu tujuan.
2.1.3 Klasifikasi
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 set)
dan menggunakan model tersebut untuk klasifikasi test data serta mengukur
akurasi dari model. (Rachli, Muhammad. 2007).
12
Klasifikasi adalah analisis data yang bisa digunakan untuk mengekstrak
model dari data yang berisi kelas-kelas atau untuk memprediksi data, klasifikasi
dalam bentuk kategori. (Rachli, Muhammad. 2007).
Dari kedua pengertian di atas dapat disimpulkan bahwa klasifikasi adalah
suatu proses pencarian model dari data-data yang berisi kelas dalam suatu obyek
yang bertujuan untuk memprediksikan data tersebut.
2.1.4 Pengertian Aplikasi
Menurut Kamus Besar Bahasa Indonesia (2008 : 85), “Aplikasi adalah
penerapan dari rancang sistem untuk mengolah data yang menggunakan aturan
atau ketentuan bahasa pemrograman tertentu”. Aplikasi adalah suatu program
komputer yang dibuat untuk mengerjakan dan melaksanakan tugas khusus dari
pengguna.
Menurut Pressman dalam bukunya Software Engineering, aplikasi perangkat
lunak terdiri dari program mandiri yang memecahkan kebutuhan bisnis yang
spesifik. Aplikasi dalam hal ini memproses bisnis atau data teknis dengan cara
yang memfasilitasi operasi bisnis atau manajemen pengambilan keputusan teknis.
Selain aplikasi pengolahan data konvensional, aplikasi perangkat lunak
digunakan untuk mengontrol fungsi bisnis secara real time (Pressman 2005 : 4).
Aplikasi Perangkat lunak adalah program komputer dan dokumentasi
terkait. Produk perangkat lunak dapat dikembangkan untuk pelanggan tertentu
atau dapat dikembangkan untuk pasar umum. (Sommerville, 2006: 6).
Dari kedua pengertian di atas dapat disimpulkan bahwa aplikasi adalah
penerapan dari suatu rancang sistem yang bertujuan untuk mengolah data yang
13
memiliki aturan tertentu dalam bahasa pemograman untuk menyelesaikan suatu
permasalahan.
2.1.5 Spam
Spam adalah praktek pengiriman pesan komersial atau iklan kepada
sejumlah besar newsgroup atau email yang sebetulnya tidak berkeinginan atau
tidak tertarik menerima pesan tersebut. (Wahid, Fatul. 2005).
Spam adalah menurut Paul Graham (2002) mendefinisikan spam sampah
adalah email yang tidak diinginkan yang dikirimkan secara otomatis. Atau dapat
didefinisikan sebagai email yang dikirimkan kepada ribuan penerima. (Defiyanti,
Sofi. 2008).
Dari kedua pengertian di atas dapat disimpulkan bahwa spam adalah
pengiriman email yang disalahgunakan karena biaya yang murah dan ini
dimanfaatkan oleh perusahaan-perusahaan besar untuk mempromosikan suatu
produk walaupun si penerima tidak menyetujuinya.
2.1.6 Eletronic mail
Eletronic mail atau lebih sering kita kenal dengan singkatan email
merupakan salah satu layanan internet yang paling banyak digunakan. Email
adalah media komunikasi yang murah, cepat dan mudah penggunaannya. Format
email terdiri dari sebuah envelope, beberapa field header, sebuah blank line dan
body. Email memiliki sifat data berupa teks yang semi terstruktur dan memiliki
dimensi yang tinggi. (Rachli, Muhammad. 2007).
14
Email adalah singkatan dari surat elektronic merupakan aplikasi untuk
mengirim pesan antar pengguna komputer khususnya menggunakan jaringan
internet. (Ariyus, Dony. 2005)
Dari kedua pengertian di atas dapat disimpulkan bahwa email adalah suatu
media komunikasi dalam layanan internet yang berbentuk surat elektronic yang
yang selalu digunakan karena biaya yang murah serta cara penggunaan yang
cepat.
2.1.7 Email Filtering
Spam mail merupakan salah satu masalah yang sering sekali muncul dalam
dunia internet khususnya untuk Iayanan email. Dari hari ke hari jumlah spam yang
diterima oleh sebagian besar pengguna email semakin banyak dan sangat
mengganggu. Pengguna email biasanya mengalami masalah (kerepotan) dalam
menghapus spam mail satu persatu, sehingga salah satu cara untuk mengatasinya
adalah dengan cara menggunakan email filtering yaitu mengotomasisasikan
proses pemilahan antara email yang spam dan yang bukan spam. Beberapa
metode yang dapat digunakan untuk email filtering antara lain Keyword filtering,
Black listing dan White listing, Signature-Based Filtering, Naive Bayesian
(Statistical) Filtering, Challenge-response filtering, Rule-based (heuristic)
filtering. (Rachi, Muhammad. 2007).
Email filtering adalah salah satu cara yang dapat digunakan dimana
mengaplikasikan proses pemilahan email untuk menentukan apakah email
tersebut adalah spam atau non spam. (Diwasasri, Dyah. 2010).
15
Dari kedua pengertian di atas dapat disimpulkan bahwa email filtering
adalah suatu cara penyaringan email yang dilakukan dengan cara pemilahan spam
mail atau legit mail dengan suatu aplikasi filter spam.
2.1.8 Naive Bayesan Filtering
Naive bayesian filter merupakan metode terbaru yang digunakan untuk
mendeteksi spam mail. Algoritma ini memanfaatkan teori probabilitas yang
dikemukakan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi
probabilitas di masa depan berdasarkan pengalaman di masa sebelumnya. Dua
kelompok peneliti, satu oleh Pantel dan Lin, dan yang lain oleh Microsoft
Research memperkenalkan metode statistik bayesian ini pada teknologi anti spam
filter. Tetapi yang membuat Naive Bayesian Filtering ini popular adalah
pendekatan yang dilakukan oleh Paul Graham. Banyak aplikasi menghubungkan
antara atribut set dan variabel kelas yang non deterministic.
Dengan kata lain, label kelas test record tidak dapat diprediksi dengan
peristiwa tertentu meski atribut set identik dengan beberapa contoh training.
Situasi ini makin meningkat karena noisy data atau kehadiran faktor confounding
tertentu yang mempengaruhi klasifikasi tetapi tidak termasuk di dalam analisis.
(Rachi, Muhammad. 2007).
Naive
Bayesan
Filtering
memudahkan
kita
untuk
memprediksi
kemungkinan apakah suatu email adalah spam dari hasil tes kata yaitu keadaan
dari kata-kata tertentu yang telah ditentukan sebelumnya. (Diwasasri, Dyah.
2010).
16
Dari uraian diatas dapat diambil kesimpulan bahwa naive bayesan filtering
adalah suatu metode yang digunakan untuk mempermudah memprediksikan
kemungkinan dari suatu email yang asli atau bukan.
2.1.9 Teorema Bayes Untuk Klasifikasi
Sebelum mendeskripsikan bagaimana Teorema Bayes digunakan untuk
klasifikasi, disusun masalah klasifikasi dari sudut pandang statistik. Jika X
melambangkan set atribut data dan Y melambangkan kelas variabel. Jika variabel
kelas memiliki hubungan non deterministic dengan atribut, maka dapat
diperlakukan X dan Y sebagai variabel acak dan menangkap hubungan peluang
menggunakan P Y X . Peluang bersyarat ini juga dikenal dengan posterior
peluang untuk Y , dan sebaliknya peluang prior P Y . Selama fase training, perlu
mempelajari peluang posterior untuk seluruh kombinasi X dan Y berdasar
informasi yang diperoleh dari training data. Dengan mengetahui peluang ini, test
record
X
dapat diklasifikasikan dengan menemukan kelas
Y
yang
memaksimalkan peluang posterior P Y X . (Rachi, Muhammad. 2007).
2.1.10 Naive Bayes Classifier
Naive Bayes Classifier mengestimasi peluang kelas bersyarat dengan
mengasumsikan bahwa atribut adalah independen secara bersyarat yang diberikan
dengan label kelas y . Asumsi independen bersyarat dapat dinyatakan dalam
bentuk berikut :
d
P XY
y
P Xi Y
i 1
y
... (2)
17
dengan tiap set atribut X
X 1 , X 2 , , X d
terdiri dari d atribut. (Rachi,
Muhammad. 2007).
2.1.11 Cara Kerja Naive Bayes Classifier
Asumsi independen bersyarat, termasuk menghitung peluang bersyarat
untuk setiap kombinasi X , hanya memerlukan mengestimasi peluang bersyarat
untuk tiap X i yang diberikan Y . pendekatan selanjutnya lebih praktis karena
tidak mensyaratkan training set sangat besar untuk memperoleh estimasi peluang
yang baik.
Untuk mengklasifikasi tes record, naive bayes classifier menghitung peluang
posterior untuk tiap kelas Y :
PY X
P X
PY
d
i 1
P Xi Y
P X
... (5)
adalah tetap untuk seluruh Y , cukup untuk memilih kelas yang
memaksimalkan istilah numerator, P Y
d
i 1
P X i Y . (Rachi, Muhammad. 2007).
2.1.12 Java
Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk
aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan
bahasa pemrograman konvensional yang lain. Java adalah bahasa pemrograman
yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform
sistem operasi. Perkembangan Java tidak hanya terfokus oada satu sistem operasi,
tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source.
(Andry Alamsyah, 2003).
18
Java adalah bahasa pemrograman yang dapat digunakan untuk banyak
keperluan dengan sejumlah fitur yang membuat bahasa ini cocok digunakan pada
Word Wide Web. (Wahid, fathul. 2005).
Dari uraian diatas dapat diambil kesimpulan bahwa Java adalah suatu
bahasa pemrograman yang banyak digunakan dalam segala keperluan baik secara
online maupun offline.
2.1.13 Fase – fase Pemrograman Java
Gambar dibawah ini menjelaskan aliran proses kompilasi dan eksekusi
sebuah program Java :
Gambar 2.1 Fase Pemograman Java
Langkah pertama dalam pembuatan sebuah program berbasis Java adalah
menuliskan kode program pada text editor. Contoh text editor yang dapat
digunakan antara lain : notepad, vi, emacs dan lain sebagainya. Kode program
yang dibuat kemudian tersimpan dalam sebuah berkas berekstensi java. Setelah
membuat dan menyimpan kode program, kompilasi file yang berisi kode program
tersebut dengan menggunakan Java Compiler. (Andry Alamsyah, 2003).
19
2.1.14 Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan
menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi
hardware dan platform dimana kompilasi kode Java terjadi. Spesifikasi inilah
yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun
karena proses kompilasi diselesaikan oleh JVM. Aplikasi program Java
diciptakan dengan file teks berekstensi java. Program ini dikompilasi
menghasilkan satu berkas bytecode berekstensi class atau lebih. Bytecode adalah
serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode
mesin harus dijalankan pada sistem komputer dimana kompilasi ditujukan,
sementara
bytecode berjalan pada
java interpreter yang tersedia di semua
platform sistem komputer dan sistem operasi. (Luwis, 2011).
JVM adalah file kode sumber dalam java dikompilasi ke dalam format yang
disebut bytecode yang dapat dijalankan oleh interpreter Java. Kode Java yang
telah di kompilasi dapat dijalankan oleh sebagian besar komputer karena
interpreter Java dan lingkungan runtime. (Wahid, Fathul. 2005).
Dari uraian diatas dapat di ambil kesimpulan bahwa JVM adalah suatu file
kode yang telah di kompilasi dalam format bytecode dan dapat dijalankan dalam
sebagian besar komputer.
2.1.15 Unified Modeling Language (UML)
Unified Modeling Language adalah keluarga notasi grafis yang didukung
oleh model-model tunggal yang membantu pendeskripsian dan desain sistem
perangkat lunak khususnya sistem yang dibangun menggunakan pemrograman
20
berorientasi objek. (Fowler, Martin. 2005:1).
Unified
Modeling
Language
adalah
bahasa
pemodelan
untuk
menspesifikasikan, menvisualisasikan, membangun dan mendokumentasikan
artifak-artifak sistem (Hariyanto, Bambang. 2004:261).
Dari uraian diatas dapat di simpulkan Unified Modeling Language adalah
bahasa pemodelan yang berorientasi objek dengan notasi grafis yang membantu
menspesifikasikan, menvisualisasikan, membangun dan mendokumentasikan
desain sistem perangkat lunak khususnya sistem yang dibangun menggunakan
pemrograman berorientasi objek.
2.1.16 Class Diagram
Diagram ini memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka,
kalaborasi-kalaborasi. Class Diagram menggambarkan struktur dan deskripsi
class, package dan objek beserta hubungan satu sama lain seperti containment,
pewarisan dan asosiasi. Class Diagram umumnya dijumpai pada pemodelan
sistem berorientsi objek. (Supriyanto, 2005).
Nama
Nama objek
Atribut
Atribut/properti
operasi
Method/behavior
Kelas
Gambar 2.2 Bentuk Realisasi Class
21
2.1.17 Use Case Diagram
Diagram ini memperlihatkan himpunan use-case dan aktor-aktor (suatu
jenis khusus dari kelas) diagram ini terutama sangat penting untuk
memvisualisasikan, menspesifikasikan, mendokumentsiakan dan pemodelan
perilaku dari sustu sistem yang dibutuhkan serta diharapkan pengguna. Masingmasing diagram use case menunjukkan sekumpulan use case, aktor dan
hubungannya. Diagram use case merupakan pusat pemodelan perilaku sistem,
subsistem, kelas (Supriyanto, 2005). Berikut elemen-elemen dalam use case :
Symbol
Keterangan
Aktor: seseorang atau sesuatu yang
beriteraksi dengan sistem yang sedang
dikembangkan.
Use case : abstrak dari interaksi antara
sistem dan aktor.
Association : adalah abstraksi dari
penghubung antara aktor dan use case.
Generalisasi
spesialisasi
:
aktor
menunjukkan
untuk
berpartisipasi dalam use case.
Tabel 2.1 Simbol Use Case Diagram
dapat
22
2.1.18 Activity Diagram
Diagram aktivitas adalah diagram flowchart yang diperluas yang
menunjukkan aliran kendali satu aktivitas ke aktivitas lain. Kegunaan diagram ini
adalah untuk memodelkan workflow atau jalur kerja, memodelkan operasi,
bagaimana objek-objek bekerja, aksi-aksi dan pengaruh terhadap objek.
Aktivitas ini adalah tipe khusus dari diagram state yang memperlihatkan aliran
dari suatu aktivitas lainnya dalam suatu sistem, diagram ini terutama penting
dalam pemodelan fungsi-fungsi dalam suatu sistem memberi tekanan kendali
antar objek (Supriyanto, 2005). Simbol-simbol yang terdapat dalam Activity
Diagram sebagai berikut:
Simbol
Keterangan
Titik awal atau permulaan
Titik akhir atau akhir dari aktivitas
Aktivity atau aktivitas yang dilakukan
oleh aktor.
Decision
atau
pilihan
mengambil keputusan.
Arah tanda panah alur proses
Tabel 2.2 Simbol Activity Diagram
untuk
23
2.1.19 Object Oriented Design (OOD)
Object Oriented Design adalah tahapan perantara untuk memetakan
spesifikasi atau kebutuhan sistem yang akan dibangun dengan konsep berorientasi
objek ke desain pemodelan agar lebih mudah diimplementasikan dengan
pemrograman berorientasi objek. (Rosa, 101-102:2011).
Object Oriented Design adalah mendefinisikan notasi dan proses untuk
membangun sistem perangkat lunak kompleks dan memberikan sekumpulan
model logik dan fisik. (Hariyanto, Bambang. 409:2004).
Dari kedua pengertian diatas dapat di ambil kesimpulan bahwa Object
Oriented Design adalah tahapan perantara dengan mendefinisikan notasi dan
proses sehingga dapat memetakan spesifikasi atau kebutuhan sistem yang akan
dibangun dengan konsep berorientasi objek ke desain pemodelan agar lebih
mudah diimplementasikan.
2.1.20 Penelitian Sebelumnya
Sebelumnya telah banyak penelitian yang dilakukan pada bidang email
filtering. Penelitian-penelitian tersebut diantaranya :
1. Judul: Aplikasi Teorema Bayes dalam Penyaringan Email, penelitinya: Dyah
Diwasasri Ratnaningsih (2010), Penjelasan: Dalam membuat aplikasi
penyaringan email dengan menggunakan Teorema Bayes, dalam penelitian ini
ada beberapa hal yang dibahas dari latar belakang masalah yang menguraikan
tentang pengertian email dan tujuan penulisannya adalah melakukan
eksplorasi terhadap isu, metode, dan masalah. Ruang lingkup penulisannya
yaitu aplikasi teori peluang dan statistika dalam bidang sistem dan teknologi
24
informasi. Dalam penelitian tersebut mengaplikasikan Teorema Bayes yakni
Naive Bayesan dalam metode penyaringan email, dan ada juga kebutuhan dari
Email filtering di antaranya adalah: Binary Class, Easy Computation,
Prediksi, Learning, Kinerja. Di penelitian ini juga membahas tentang
kelebihan dan kekurangan dari metode Naive Bayesan tersebut. Jadi dari
penelitian ini ada beberapa kesimpulan:
a. Teorema Bayes adalah dasar dari probabilitas sebagai sumber dari
pengaplikasian berbagai hal dalam dunia nyata dengan klasifikasi Naive
Bayesan adalah kasus spesifik dari kategori ini.
b. Bayesan spam filtering adalah aplikasi dari klasifikasi Naive Bayesan
dalam hal email filtering yang berhubungan dengan peluang yang didapat
dari beberapa percobaan.
2. Judul: Metode Penyaringan Email yang tidak Di inginkan Menggunakan
Pendekatan
Probabilistik.
Penelitinya:
Miftah
Andriansyah
(2005),
Penjelasan: Penelitian yang berjudul Metode Penyaringan Email yang tidak
Di inginkan Menggunakan Pendekatan Probabilistik yaitu membahas tentang
penyebaran email atau yang sering disebut spam. Metode yang digunakan
adalah metode probabilistik yang mampu membunuh spam dengan nilai yang
signifikan hingga 99,9%. Metode probabilistik ini mengadopsi metode Naive
Bayesan. Dalam penelitian ini digunakan teknik penyaringan probabilistik,
teori bayes, filtering anti spam naive bayesan, tingkatan filtering dalam bayes.
Disamping itu juga penelitian ini membangun filter bayesan diantaranya:
pembangunan database spam, pembuatan database probabilitas, pembuatan
25
database ham, pembuatan database spam. Analisis dan kesimpulan dari
penelitian ini yaitu: Pembentukan database spam dan non spam menjadi
suatu keharusan agar filter Bayesan selalu waspada dalam mengenali suatu
spam. Di satu sisi kekuatan anti spam filter Bayesan nampaknya cukup
akurat, namun kelebihan tersebut di sisi lain menjadi kelemahan manakala
tingkat error meningkat dalam klasifikasi suatu email spam or non spam,
pendeteksian suatu email masuk dalam kategori spam atau non spam
membutuhkan suatu pelatihan bagi filter Bayesan agar terbiasa dengan katakata yang terkandung dalam email. Yang menjadi kunci di sini yaitu,
memblok suatu email sebagai spam lebih aman di banding meloloskan
sebagai ham, dalam rangka menjaga keamanan jaringan komputer pengguna
atau institusi.
Download