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.