Pengembangan Aplikasi Pendeteksi SMS Spam denga Metode Naive Bayes Berbasis Android.
vi
ABSTRAK
Penipuan dengan menggunakan pesan singkat pada ponsel yang diterima oleh pengguna sampai sekarang ini masih sangat banyak. Pesan penipuan ini dikirim oleh orang yang tidak bertanggung jawab dan orang yang ingin mendapat untung untuk diri sendiri. Aplikasi pendeteksi spam dibutuhkan untuk membantu mengurangi pesan singkat yang dikirim oleh orang yang tidak bertanggung jawab terhadap ponsel pemakai. Metode yang dipakai untuk aplikasi ini adalah machine learning yang memiliki tingkat keakuratan yang tinggi dalam menentukan apakah pesan tersebut merupakan spam atau pesan biasa.
(2)
vii
ABSTRACT
Fraudulent use of short message received by the mobile users until now is still very much. The fraudulent messages sent by people who are not responsible and the people who want to make a profit for yourself. Spam detection applications needed to help reduce the short messages sent by people who are not responsible for the mobile user. The method used for this application is a learning machine that has a high degree of accuracy in determining whether the message is spam or regular messages.
(3)
viii
DAFTAR ISI
LEMBAR PENGESAHAN ... i
PERNYATAAN PUBLIKASI KARYA ILMIAH ... ii
SURAT PERNYATAAN ORISINALITAS KARYA ... iii
KATA PENGANTAR ... iv
ABSTRAK ... vi
ABSTRACT ... vii
DAFTAR ISI ... viii
DAFTAR TABEL ... xi
DAFTAR SIMBOL ... xii
DAFTAR GAMBAR ... xv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan Pembahasan ... 2
1.4 Ruang Lingkup Kajian ... 2
1.5 Sistematika Penulisan ... 2
BAB II LANDASAN TEORI ... 4
2.1 Machine Learning ... 4
2.2 Tokenisasi ... 5
2.3 Regular Expression ... 5
2.4 MySQL ... 6
2.5 Naive Bayes Classifier ... 7
2.6 C# ... 8
2.7 Web Service ... 9
2.8 Short Message Service(SMS) ... 10
2.9 Entity Relational Diagram (ERD) ... 10
2.10 Flowchart ... 14
(4)
ix
2.11.1 Use case Diagram ... 17
2.11.2 Activity Diagram ... 18
2.11.3 Class Diagram... 18
BAB III ANALISIS DAN DESAIN ... 19
3.1 Metodologi Penelitian ... 19
3.1.1 Pengumpulan Data Pesan... 20
3.1.2 Penghilangan Kata-kata Stop Word dan Mencari Fitur Terbanyak ... 20
3.1.3 Pemilihan Fitur dan Penghitungan Pada Data Pesan ... 22
3.1.4 Perhitungan Manual dengan Menggunakan Contoh ... 23
3.2 Entity Relationship Diagram ... 25
3.3 Gambaran Keseluruhan ... 26
3.3.1 Persyaratan Antarmuka Eksternal ... 26
3.3.2 Antarmuka dengan Pengguna ... 26
3.3.3 Antarmuka Perangkat Keras ... 26
3.3.4 Antarmuka Perangkat Lunak ... 27
3.3.5 Fitur–fitur Produk Perangkat Lunak ... 27
3.4 Desain Perangkat Lunak ... 31
3.4.1 Pemodelan Perangkat Lunak ... 31
3.4.2 Rancangan User Interface ... 37
BAB IV PENGEMBANGAN PERANGKAT LUNAK ... 43
4.1 Impelemntasi Class Modul ... 43
4.1.1 Class Diagram Likelihood ... 43
4.1.2 Class DiagramPrior ... 44
4.1.3 Class DiagramSpamChecker ... 44
4.1.4 Class DiagramReceive SMS ... 45
4.1.5 Class Diagram Spam ... 46
4.2 Implementasi Penyimpanan Data ... 46
4.3 Implementasi Webservice ... 47
4.4 Impelementasi Antarmuka... 48
4.4.1 Form Menu ... 49
(5)
x
4.4.3 FormUpdate Data ... 54
4.4.4 Form Data Spam ... 58
4.4.5 Form Manage Data ... 60
BAB V PEMBAHASAN DAN HASIL UJI COBA PENELITIAN ... 65
5.1 Hasil Analisis Tingkat Keberhasilan Naive Bayes Classifier ... 65
5.2 Form Data Spam ... 70
5.3 Form Spam List ... 71
5.4 Form Lapor Spam ... 71
5.5 Form Update Data ... 72
5.6 Form Manage Data ... 72
BAB VI KESIMPULAN DAN SARAN ... 74
6.1 Kesimpulan ... 74
6.2 Saran ... 74
DAFTAR PUSTAKA ... 75
(6)
xi
DAFTAR TABEL
Tabel 3.1 Tabel Daftar Fitur... 21
Tabel 3.2 Data Perhitungan Setiap Fitur ... 22
Tabel 3.3 Hasil Perhitungan Dari Setiap Fitur Pada Contoh Kalimat ... 24
Tabel 4.1 Tabel Spam ... 47
Tabel 4.2 Tabel Data SMS ... 47
Tabel 5.1 Hasil Testing dari Metode Naïve Bayes ... 67
Tabel 5.2 Hasil Testing Kalkulasi Tingkat Keberhasilan Perhitungan Naive Bayes ... 70
Tabel 5.3 Hasil Testing Form Menu ... 70
Tabel 5.4 Hasil Testing Form Spam List ... 71
Tabel 5.5 Hasil Testing Form Lapor Spam ... 71
Tabel 5.6 Hasil Testing Form Update Data ... 72
(7)
xii
DAFTAR SIMBOL
1. Simbol ERD (Fathansyah, 2002)
Simbol Nama Keterangan
Entitas (Entity)
Disimbolkan dengan rectangle box (persegi panjang) untuk menggambarkan atau menyatakan suatu entitas
Atribut (Attribute) Mendeskripsikan
karakter entitas
Relasi (Relation)
Menggambarkan adanya hubungan atau relasi antar entitas
____________________ Garis (Line)
Penghubung antara entitas dengan relasi
(8)
xiii 2. Simbol Flowchart (Febriani, 2007)
Simbol Nama Keterangan
Process
Simbol yang menunjukkan pengolahan yang dilakukan
Komputer
Decision
Simbol untuk kondisi yang akan menghasilkan beberapa kemungkinan jawaban / aksi
Predefined Process
Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan didalam storage
Terminal Simbol untuk permulaan atau
akhir darti suatu program
Manual Input Simbol untuk pemasukan data
secara manual on-line keyboard
Arus / Flow Penghubung antara prosedur /
(9)
xiv
Simbol Nama Keterangan
Connector
Simbol keluar / masuk prosedur atau proses dalam lembar /
halaman yang sama
Off-line Connector
Simbol keluar / masuk prosedur atau proses dalam lembar /
(10)
xv
DAFTAR GAMBAR
Gambar 2.1 Gambar Kelas Karakter Regular Expression ... 5
Gambar 2.2 Gambar Kelas Karakter Regular Expression 2 ... 6
Gambar 2.3 Contoh Algoritma Naive Bayes Classifier ... 8
Gambar 2.4Relasi Satu ke Satu (Fathansyah, 2002) ... 13
Gambar 2.5 Relasi Satu ke Banyak(Fathansyah, 2002). ... 13
Gambar 2.6 Relasi Banyak ke Satu(Fathansyah, 2002) ... 14
Gambar 2.7 Relasi Banyak ke Banyak (Fathansyah, 2002) ... 14
Gambar 3.1 Gambar Data Pesan yang Dikumpulkan ... 20
Gambar 3.2 ERD Aplikasi Pendeteksi Spam pada Android ... 25
Gambar 3.3 use case sistem aplikasi pendeteksi spam pada android. ... 32
Gambar 3.4 Use Case sistem aplikasi pendeteksi spam pada server. ... 32
Gambar 3.5 ActivityTambah Data Spam ... 33
Gambar 3.6 Activity Prediksi Spam ... 34
Gambar 3.7 Activity Melihat Data Spam... 35
Gambar 3.8 Activity Mengelola Data Server... 36
Gambar 3.9 Activity Memperbaharui Data Learning ... 37
Gambar 3.10 User Interface Form Menu ... 38
Gambar 3.11 User Interface Form Data Spam ... 39
Gambar 3.12 User Interface Form Lapor Spam ... 40
Gambar 3.13 User Interface Form Email ... 41
Gambar 3.14 User Interface Form Manage Data Server ... 42
Gambar 4.1 Class Diagram Sistem Pendeteksi Spam pada Ponsel Android ... 43
(11)
1
BAB I
PENDAHULUAN
11.1 Latar Belakang
Di era yang serba teknologi ini, sudah sangat mudah sekali untuk berkomunikasi satu dengan yang lain. Disamping mudah, berkomunikasi dengan satu dan lainnya pun sangat murah. Karena murah tersebut, banyak orang menyalahgunakan kemudahan ini dan menggunakannya dengan maksud yang tidak baik dan merugikan orang lain.
Banyak orang yang merasa dirugikan oleh orang-orang yang tidak bertanggung jawab atas penggunaan teknologi tersebut. Contohnya adalah pada penyalahgunaan fungsi pesan singkat yang terdapat pada sebuah ponsel yang digunakan untuk menipu atau membuat onar dengan membuat pesan yang tidak penting kepada si penerima.
Banyaknya kasus penipuan yang terjadi yang disebabkan oleh pesan singkatpun kian meningkat seiring dengan bertambah mudah dan murahnya pengiriman pesan singkat tersebut. Masyarakat pun sudah mulai resah dan menganggap serius masalah ini.
Melihat masalah di atas penulis tertarik untuk membuat aplikasi pada
ponsel android yang berguna untuk menyaring pesan yang masuk pada ponsel
apakah pesan tersebut adalah pesan iseng atau bersifat negatif atau pesan yang penting. Dalam pembuatannya, aplikasi ini akan menggunakan bahasa
pemrograman JAVA dan MySQL sebagai database. Penerapan sistem dengan
bentuk Desktop tentunya akan memudahkan pengguna dalam menggunakannya. Rancangan antar muka akan dibuat secara interaktif dan bersahabat dengan pengguna, sehingga aplikasi ini mampu dioperasikan dengan mudah oleh pengguna.
(12)
2
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah, masalah-masalah yang muncul dan dapat di identifikasi adalah sebagai berikut:
1. Bagaimana cara sistem untuk menghindari pesan singkat yang bersifat
mengganggu?
2. Bagaimana cara sistem untuk mengetahui pesan singkat seperti apa yang
biasanya spam?
3. Bagaimana cara sistem untuk meminimalisir banyaknya kemunculan spam
di ponsel android pengguna?
1.3 Tujuan Pembahasan
Berdasarkan rumusan masalah yang ada, maka tujuan dari pembuatan laporan ini adalah sebagai berikut:
1. Cara sistem untuk menghindari pesan singkat yang bersifat mengganggu
dengan menggunakan aplikasi pendeteksi spam secara otomatis.
2. Cara sistem untuk mengetahui pesan singkat yang biasanya spam adalah
dengan menggunakan metode naïve bayes classifier.
3. Cara meminimalisir kemunculan spam di ponsel adalah dengan melakukan
proses retraining untuk mendapatkan fitur yang baru.
1.4 Ruang Lingkup Kajian
Dalam Kerja Praktek ini penulis membatasi ruang lingkup permasalahan yang akan dibahas, yaitu:
1. Pengelolaan data pesan singkat pengguna.
2. Pengelolaan data kontak pengguna.
3. Ruang lingkup sistem ini hanya untuk ponsel android.
4. Bahasa yang digunakan adalah bahasa indonesia baku.
1.5 Sistematika Penulisan
Sistematika penulisan yang akan digunakan untuk menyusun laporan adalah sebagai berikut:
(13)
3
BAB I PENDAHULUAN
Bab ini menjelaskan tentang latar belakang, rumusan masalah, tujuan, batasan masalah dan sistematika pembahasan.
BAB II LANDASAN TEORI
Bab ini menjelaskan tentang teori-teori yang berhubungan dengan pembuatan aplikasi atau sistem dan mendukung aplikasi atau sistem.
BAB III ANALISIS DAN DISAIN
Bab ini menjelaskan tentang bagaimana analisis keadaan, kebutuhan dari aplikasi, perancangan aplikasi, DFD, ERD, dan gambaran arsitektur dari aplikasi yang dibuat.
BAB IV PENGEMBANGAN PERANGKAT LUNAK
Bab ini menjelaskan mengenai implementasi dari rancangan aplikasi yang dibuat.
BAB V TESTING DAN EVALUASI SISTEM
Bab ini menjelaskan pengujian dari aplikasi atau sistem yang dibuat. BAB VI KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran yang didapatkan dari hasil implementasi atau pembuatan aplikasi atau sistem.
DAFTAR PUSTAKA
Bab ini berisi tentang sumber-sumber referensi yang digunakan untuk mencari informasi yang mendukung dalam pembuatan aplikasi atau sistem.
(14)
74
BAB VI
KESIMPULAN DAN SARAN
66.1 Kesimpulan
Dari hasil pembahasan diatas maka bisa ditarik kesimpulan sebagai berikut:
1. Aplikasi ini dapat membantu pengguna untuk terhindar dari sebagian besar
pesan spam yang dikirim oleh pihak yang tidak bertanggung jawab.
2. Naive Bayes Classifier digunakan untuk memprediksi apakah pesan yang dikirimkan oleh nomor tidak dikenal adalah spam atau bukan spam dengan tingkat kesuksesan yang tinggi.
3. Penseleksian fitur yang ada pada data learning, membuat aplikasi bekerja
dengan baik pada sebagian besar ponsel android dengan spesifikasi rendah.
Secara umum, aplikasi ini bisa dikatakan berhasil dalam membantu pengguna agar terhindar dari pesan yang dikirim oleh pihak yang tidak bertanggung jawab. Diharapkan hasil pengerjaan aplikasi ini dapat diterapkan dan di publish pada android market.
6.2 Saran
Adapun saran yang bisa diberikan dalam aplikasi ini yaitu:
1. Tampilan pada aplikasi ini dapat dibuat menjadi lebih menarik.
2. Masukan aplikasi pendeteksi spam bahasa Indonesia ini ke Google
Playstore.
3. Efektivitas sistem pada aplikasi ini ditingkatkan agar mengurangi
(15)
xviii
DAFTAR PUSTAKA
Ambler, Scott W. Introduction to UML 2 Class Diagrams. Agile Modeling (AM) Home Page: Effective Practices for Modeling and Documentation. Ambysoft Inc. Web. 14 Jan. 2011.
<http://www.agilemodeling.com/artifacts/classDiagram.htm>.
Arbie. 2004. Manajemen Database dengan MySQL. Yogyakarta: Andi.
Fathansyah. 2002. Basis Data. Bandung: Informatika.
Dwi Prasetyo, Didik. 2007. 150 Rahasia Pemrograman Java. Jakarta: PT Elex Media Komputindo.
Hill, T. & Lewicki, P. 2007. Statistics: Methods and Applications. Edisi kesatu. Statsoft, Inch.
Harrington, Peter. 2012. Machine Learning In Action. Shelter Island: Manning Publication Co.
Smola, Alex. & Vishwanathan, S.V.N. 2008. Introduction to Machine Learning.
Cambridge: The University of Cambridge.
Figura, Juraj. 2012. Machine Learning for Google Android. Prague: Charles
University.
Merrifield Mew, Kyle. 2011. Android 3.0 Application Developtment Cookbook.
Birmingham: Packt Publishing Ltd.
Croft, Bruce. 2010. Search Engines Information Retrieval in Practice. United States: Pearson Education, Inc.
(1)
DAFTAR GAMBAR
Gambar 2.1 Gambar Kelas Karakter Regular Expression ... 5
Gambar 2.2 Gambar Kelas Karakter Regular Expression 2 ... 6
Gambar 2.3 Contoh Algoritma Naive Bayes Classifier ... 8
Gambar 2.4Relasi Satu ke Satu (Fathansyah, 2002) ... 13
Gambar 2.5 Relasi Satu ke Banyak(Fathansyah, 2002). ... 13
Gambar 2.6 Relasi Banyak ke Satu(Fathansyah, 2002) ... 14
Gambar 2.7 Relasi Banyak ke Banyak (Fathansyah, 2002) ... 14
Gambar 3.1 Gambar Data Pesan yang Dikumpulkan ... 20
Gambar 3.2 ERD Aplikasi Pendeteksi Spam pada Android ... 25
Gambar 3.3 use case sistem aplikasi pendeteksi spam pada android. ... 32
Gambar 3.4 Use Case sistem aplikasi pendeteksi spam pada server. ... 32
Gambar 3.5 ActivityTambah Data Spam ... 33
Gambar 3.6 Activity Prediksi Spam ... 34
Gambar 3.7 Activity Melihat Data Spam... 35
Gambar 3.8 Activity Mengelola Data Server... 36
Gambar 3.9 Activity Memperbaharui Data Learning ... 37
Gambar 3.10 User Interface Form Menu ... 38
Gambar 3.11 User Interface Form Data Spam ... 39
Gambar 3.12 User Interface Form Lapor Spam ... 40
(2)
BAB I
PENDAHULUAN
11.1 Latar Belakang
Di era yang serba teknologi ini, sudah sangat mudah sekali untuk berkomunikasi satu dengan yang lain. Disamping mudah, berkomunikasi dengan satu dan lainnya pun sangat murah. Karena murah tersebut, banyak orang menyalahgunakan kemudahan ini dan menggunakannya dengan maksud yang tidak baik dan merugikan orang lain.
Banyak orang yang merasa dirugikan oleh orang-orang yang tidak bertanggung jawab atas penggunaan teknologi tersebut. Contohnya adalah pada penyalahgunaan fungsi pesan singkat yang terdapat pada sebuah ponsel yang digunakan untuk menipu atau membuat onar dengan membuat pesan yang tidak penting kepada si penerima.
Banyaknya kasus penipuan yang terjadi yang disebabkan oleh pesan singkatpun kian meningkat seiring dengan bertambah mudah dan murahnya pengiriman pesan singkat tersebut. Masyarakat pun sudah mulai resah dan menganggap serius masalah ini.
Melihat masalah di atas penulis tertarik untuk membuat aplikasi pada ponsel android yang berguna untuk menyaring pesan yang masuk pada ponsel apakah pesan tersebut adalah pesan iseng atau bersifat negatif atau pesan yang penting. Dalam pembuatannya, aplikasi ini akan menggunakan bahasa pemrograman JAVA dan MySQL sebagai database. Penerapan sistem dengan bentuk Desktop tentunya akan memudahkan pengguna dalam menggunakannya. Rancangan antar muka akan dibuat secara interaktif dan bersahabat dengan pengguna, sehingga aplikasi ini mampu dioperasikan dengan mudah oleh pengguna.
(3)
2
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah, masalah-masalah yang muncul dan dapat di identifikasi adalah sebagai berikut:
1. Bagaimana cara sistem untuk menghindari pesan singkat yang bersifat mengganggu?
2. Bagaimana cara sistem untuk mengetahui pesan singkat seperti apa yang biasanya spam?
3. Bagaimana cara sistem untuk meminimalisir banyaknya kemunculan spam di ponsel android pengguna?
1.3 Tujuan Pembahasan
Berdasarkan rumusan masalah yang ada, maka tujuan dari pembuatan laporan ini adalah sebagai berikut:
1. Cara sistem untuk menghindari pesan singkat yang bersifat mengganggu dengan menggunakan aplikasi pendeteksi spam secara otomatis.
2. Cara sistem untuk mengetahui pesan singkat yang biasanya spam adalah dengan menggunakan metode naïve bayes classifier.
3. Cara meminimalisir kemunculan spam di ponsel adalah dengan melakukan proses retraining untuk mendapatkan fitur yang baru.
1.4 Ruang Lingkup Kajian
Dalam Kerja Praktek ini penulis membatasi ruang lingkup permasalahan yang akan dibahas, yaitu:
1. Pengelolaan data pesan singkat pengguna. 2. Pengelolaan data kontak pengguna.
3. Ruang lingkup sistem ini hanya untuk ponsel android. 4. Bahasa yang digunakan adalah bahasa indonesia baku.
(4)
3
BAB I PENDAHULUAN
Bab ini menjelaskan tentang latar belakang, rumusan masalah, tujuan, batasan masalah dan sistematika pembahasan.
BAB II LANDASAN TEORI
Bab ini menjelaskan tentang teori-teori yang berhubungan dengan pembuatan aplikasi atau sistem dan mendukung aplikasi atau sistem.
BAB III ANALISIS DAN DISAIN
Bab ini menjelaskan tentang bagaimana analisis keadaan, kebutuhan dari aplikasi, perancangan aplikasi, DFD, ERD, dan gambaran arsitektur dari aplikasi yang dibuat.
BAB IV PENGEMBANGAN PERANGKAT LUNAK
Bab ini menjelaskan mengenai implementasi dari rancangan aplikasi yang dibuat.
BAB V TESTING DAN EVALUASI SISTEM
Bab ini menjelaskan pengujian dari aplikasi atau sistem yang dibuat. BAB VI KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran yang didapatkan dari hasil implementasi atau pembuatan aplikasi atau sistem.
DAFTAR PUSTAKA
Bab ini berisi tentang sumber-sumber referensi yang digunakan untuk mencari informasi yang mendukung dalam pembuatan aplikasi atau sistem.
(5)
BAB VI
KESIMPULAN DAN SARAN
66.1 Kesimpulan
Dari hasil pembahasan diatas maka bisa ditarik kesimpulan sebagai berikut:
1. Aplikasi ini dapat membantu pengguna untuk terhindar dari sebagian besar pesan spam yang dikirim oleh pihak yang tidak bertanggung jawab.
2. Naive Bayes Classifier digunakan untuk memprediksi apakah pesan yang dikirimkan oleh nomor tidak dikenal adalah spam atau bukan spam dengan tingkat kesuksesan yang tinggi.
3. Penseleksian fitur yang ada pada data learning, membuat aplikasi bekerja dengan baik pada sebagian besar ponsel android dengan spesifikasi rendah.
Secara umum, aplikasi ini bisa dikatakan berhasil dalam membantu pengguna agar terhindar dari pesan yang dikirim oleh pihak yang tidak bertanggung jawab. Diharapkan hasil pengerjaan aplikasi ini dapat diterapkan dan di publish pada android market.
6.2 Saran
Adapun saran yang bisa diberikan dalam aplikasi ini yaitu: 1. Tampilan pada aplikasi ini dapat dibuat menjadi lebih menarik.
2. Masukan aplikasi pendeteksi spam bahasa Indonesia ini ke Google Playstore.
(6)
DAFTAR PUSTAKA
Ambler, Scott W. Introduction to UML 2 Class Diagrams. Agile Modeling (AM) Home Page: Effective Practices for Modeling and Documentation. Ambysoft Inc. Web. 14 Jan. 2011.
<http://www.agilemodeling.com/artifacts/classDiagram.htm>. Arbie. 2004. Manajemen Database dengan MySQL. Yogyakarta: Andi. Fathansyah. 2002. Basis Data. Bandung: Informatika.
Dwi Prasetyo, Didik. 2007. 150 Rahasia Pemrograman Java. Jakarta: PT Elex Media Komputindo.
Hill, T. & Lewicki, P. 2007. Statistics: Methods and Applications. Edisi kesatu. Statsoft, Inch.
Harrington, Peter. 2012. Machine Learning In Action. Shelter Island: Manning Publication Co.
Smola, Alex. & Vishwanathan, S.V.N. 2008. Introduction to Machine Learning. Cambridge: The University of Cambridge.
Figura, Juraj. 2012. Machine Learning for Google Android. Prague: Charles University.
Merrifield Mew, Kyle. 2011. Android 3.0 Application Developtment Cookbook. Birmingham: Packt Publishing Ltd.
Croft, Bruce. 2010. Search Engines Information Retrieval in Practice. United States: Pearson Education, Inc.