Buku TA 113080129_Rian Agustama Susilo

68
Implementasi Metode Support Vector Machine dalam Pendeteksian Spam Opinion (Junk Post dalam Forum) Implementation of Support Vector Machine Method to Detect Spam Opinion (Junk Post in The Forum) Tugas Akhir Diajukan untuk memenuhi sebagian dari syarat untuk memperoleh gelar Sarjana Teknik Fakultas Informatika IT TELKOM Rian Agustama Susilo 113080129 Fakultas Informatika Institut Teknologi Telkom Bandung 2012

description

Implementasi algoritma SVM dalam penyelesaian kasus junk post

Transcript of Buku TA 113080129_Rian Agustama Susilo

  • i

    Implementasi Metode Support Vector Machine dalam

    Pendeteksian Spam Opinion (Junk Post dalam Forum)

    Implementation of Support Vector Machine Method to

    Detect Spam Opinion (Junk Post in The Forum)

    Tugas Akhir

    Diajukan untuk memenuhi sebagian dari syarat

    untuk memperoleh gelar Sarjana Teknik

    Fakultas Informatika

    IT TELKOM

    Rian Agustama Susilo

    113080129

    Fakultas Informatika

    Institut Teknologi Telkom

    Bandung

    2012

  • ii

    Lembar Pernyataan

    Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul Implementasi Metode Support Vector Machine dalam Pendeteksian Spam Opinion (Junk Post

    dalam Forum) beserta seluruh isinya adalah benar-benar karya saya sendiri dan saya tidak melakukan penjiplakan atau pengutipan dengan cara-cara yang tidak

    sesuai dengan etika keilmuan yang berlaku dalam masyarakat keilmuan. Atas

    pernyataan ini, saya siap menanggung resiko/sanksi yang dijatuhkan kepada saya

    apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam

    karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini.

    Bandung, 4 Mei 2012

    Yang membuat pernyataan,

    Rian Agustama Susilo

  • iii

    Lembar Pengesahan

    Implementasi Metode Support Vector Machine dalam

    Pendeteksian Spam Opinion (Junk Post dalam Forum)

    Implementation of Support Vector Machine Method to

    Detect Spam Opinion (Junk Post in The Forum)

    Rian Agustama Susilo

    113080129

    Tugas Akhir ini telah diterima dan disahkan untuk memenuhi sebagian dari syarat

    untuk memperoleh gelar Sarjana Teknik Fakultas Informatika

    Institut Teknologi Telkom

    Bandung, 14 Mei 2012

    Menyetujui

    Pembimbing I

    Warih Maharani, S.T, M.T

    NIP: 01780256-1

    Pembimbing II

    Intan Nurma Yulita, S.T, M.T

    NIP: 10850715-3

  • iv

    Abstrak

    Seiring dengan penggunaan internet sebagai media untuk bertukar informasi,

    bertukar dan berbagi opini juga dapat dilakukan. Dari opini-opini yang ada di

    internet, tidak semua opini tersebut berguna sehingga terkadang menyulitkan

    pihak-pihak yang membutuhkan informasi yang terkait. Opini yang tidak

    diperlukan tersebut dapat disebut juga dengan opinion spam. Spam opinion dalam

    dunia internet dapat terjadi dalam hal apapun, salah satunya dalam forum. Spam

    opinion dalam forum dapat berupa opini-opini sampah yang tidak berguna dalam

    suatu topik permasalahan yang sedang dibahas.

    Text Classification merupakan salah satu solusi yang dapat mengatasi

    permasalahan tersebut. Salah satu metode pada Text Classification adalah Support

    Vector Machine. Klasifikasi berfokus pada penentuan postingan yang termasuk

    junk post atau tidak. Dalam Tugas Akhir ini, proses pembobotan dataset dengan

    memanfaatkan nilai TF dan juga nilai TF-IDF. Pembobotan dengan TF-IDF

    menghasilkan hasil yang lebih baik jika dibandingkan dengan TF saja. Kedua

    pembobotan tersebut digunakan untuk menghitung nilai similarity dari masing-

    masing postingan dan dikaitkan dengan topik yang sedang dibahas pada forum

    dengan menggunakan cosine similarity. Hasil evaluasi menunjukkan metode

    Support Vector Machine mampu menyelesaikan permasalahan spam opinion ini.

    Proses preprocessing data seperti penghilangan stopword dapat menurunkan hasil

    akurasi klasifikasi, sedangkan nilai parameter C tidak dapat mempengaruhi hasil

    klasifikasi secara signifikan.

    Kata kunci: text classification, opinion spam, Support Vector Machine, TF,TF-

    IDF, cosine similarity

  • v

    Abstract

    Along with the use of the internet as tools to share information, exchange and

    share opinions can also be perfomed. The opinions that exist on the internet, not

    all opinions are useful so that sometimes complicate the parties who need the

    related information. The opinions that are not useful can be describe as Spam

    Opinion. Spam opinion in internet can occur in any case, one of them in the

    forum. Spam opinion in the forum can be the junk opinions that useless in a topic

    being discussed.

    Text Classification is one of the solution that can solve these problems. One

    of Text Classification method is the Support Vector Machine (SVM). The

    classification focused on determining a post that junk post or not. In practice,

    carried out weighting the data set by using the TF and TF-IDF. The TF-IDF

    weighting is produced better results when compared to TF alone. Both weighting

    was used to calculate the similarity of the existing posts which are associated with

    the topic being discussed on the forum using the cosine similarity. The evaluation

    result shows that Support Vector Machine method is able to soleve the junk post

    problems. The process of data preprocessing such as stopword removal may affect

    the classification results, while the value of the parameter C can not affect the

    classification results significantly.

    Keywords: text classification, opinion spam, Support Vector Machine, TF,TF-

    IDF, cosine similarity

  • vi

    Lembar Persembahan

    Pada kesempatan ini Penulis ingin menyampaikan terima kasih kepada semua

    pihak yang telah membantu dalam penyelesaian Tugas Akhir ini:

    1. Allah SWT, atas segala rahmat dan karunia-Nya yang tak terkira yang telah memberikan Penulis kesempatan untuk dapat menyelesaikan Tugas Akhir ini.

    2. Rasulullah SAW, sebagai panutan, inspirasi dan motivasi hidup dan juga dalam penyelesaian Tugas Akhir ini.

    3. Kedua orang tuaku tercinta, terimakasih kepada Mama dan Papa yang selalu memberikan motivasi, semangat,dukungan moril maupun materiil dan selalu

    mendoakan Penulis dalam pengerjaan Tugas Akhir ini dan selama kuliah yang selalu memberikan dukungan yang tak dapat tersebutkan.

    4. Adik-adikku tercinta, Dwijanesya dan Ridho, semoga kalian lebih baik yah dari kakak kalian ini. Tidak lupa juga kepada keluarga besar yang selalu

    memberikan dukungan dan motivasi dalam pengerjaan Tugas Akhir ini.

    5. Ibu Warih Maharani, S.T, M.T selaku pembimbing I yang sudah mencurahkan waktunya untuk mendengarkan keluh kesah penulis,

    memberikan semua ilmunya untuk penulis, pengalaman dan juga pengarahan

    yang sangat berarti dalam penyusunan Tugas Akhir ini. Ibu Intan Nurma

    Yulita, S.T, M.T selaku pembimbing II atas segala bimbingan, waktu,

    pengarahan, dan tidak lupa pula omelannya yang diberikan selama

    penyusunan Tugas Akhir ini. Semoga atas semua keikhlasan dalam

    membimbing penulis, dapat diberikan ganjaran yang setimpal dari Allah

    SWT.

    6. Ibu Vera Suryani, S.T selaku dosen wali yang telah banyak mempermudah jalan penulis hingga saat ini dan juga dosen-dosen IT Telkom yang pernah

    menjadi dosen dalam perkuliahan yang membimbing serta memberikan

    ilmunya kepada Penulis.

    7. Orang-orang terdekat penulis, Awalia Windarsari P yang banyak banget membantu penulis dalam penulisan buku Tugas Akhir ini. Motivasi dan

    omelannya yang selalu melekat dan terus memacu semangat penulis. Terima

    kasih semuanya.

    8. Teman-teman Asisten Laboratorium IF Lab, Damar, Aim, Arga, Faris, Oku yang sudah rela menemani penulis dalam penulisan buku ini. Pengen

    menggila lagi bareng kalian, cepet kelarin Tugas Akhir ya semua. Tidak lupa

    juga kepada asisten praktikum yang memberikan keceriaan dengan

    kenyamanan kalian di lab tercinta ini, makasih untuk semangat dan motivasi

    yang diberikan kepada Penulis.

    9. Teman-teman Lab DMC yang menemani perjalanan penulis semenjak semester 2. Makasih buat tempat pinjeman komputernya, pinjeman kasurnya,

    dan lain-lain yang tidak bisa disebutkan dengan kata-kata.

    10. Teman seperjuangan pengerjaan Tugas Akhir, Ika, Rebecca, Tetty, Zizah, Aul, dan lain-lain yang secara tidak langsung memberikan semangat untuk

    penulis dalam pengerjaan Tugas Akhir ini. Semangat semua.

    11. Teman-teman awal perjuangan di kampus ini, Prima, Chandra, Kinur. Terima kasih telah menemani hari-hari penulis di kampus ini.

  • vii

    12. Teman-teman IF 32-02, terima kasih atas pertemanannya selama ini. Kalian is the best.

    13. Temen kostan villazone tempat penulis menghabiskan masa-masa awal semester, Risky, Luqman dan Ateng yang sudah rela direpotin oleh penulis.

    Terima kasih banyak.

    14. Teman teman angkatan 2008 lainnya, sebagai teman seperjuangan selama Penulis kuliah di IT Telkom. Banyak sekali yang tidak bisa disebutkan disini.

    Terima kasih semua.

    15. Teman-teman IT Telkom, kakak-kakak kelas yang telah memberikan pengalaman yang berharga dalam memotivasi pengerjaan Tugas Akhir dan

    juga untuk adik-adik kelas yang Penulis tidak dapat sebutkan satu persatu.

    Semoga kalian bisa sampai ke tahapan ini. Tetap semangat dan terus

    berjuang.

  • viii

    Kata Pengantar

    Puji Syukur kehadirat Allah SWT atas segala rahmat dan karunia-Nya

    sehingga Tugas Akhir yang berjudul Implementasi Metode Support Vector Machine dalam Pendeteksian Spam Opinion (Junk Post dalam Forum) dapat Penulis selesaikan. Tugas Akhir ini disusun sebagai salah satu syarat untuk

    mendapatkan gelar Sarjana Teknik Fakultas Teknik Informatika Institut Teknologi

    Telkom.

    Dalam Tugas Akhir yang Penulis susun ini, Penulis menyadari bahwa masih

    banyak kekurangan. Oleh sebab itu, Penulis mengharapkan kritik dan saran guna

    memperbaiki Tugas Akhir ini. Penulis juga berharap dengan adanya Tugas Akhir

    yang Penulis susun ini semoga dapat bermanfaat bagi dunia pendidikan khususnya

    untuk civitas keluarga besar IT Telkom dan dapat dikembangkan kemudian.

    Bandung, Mei 2012

    PENULIS

  • ix

    Daftar Isi

    ABSTRAK .................................................................................................................................... IV

    ABSTRACT .................................................................................................................................... V

    LEMBAR PERSEMBAHAN ...................................................................................................... VI

    KATA PENGANTAR ............................................................................................................... VIII

    DAFTAR ISI ................................................................................................................................. IX

    DAFTAR GAMBAR .................................................................................................................... XI

    DAFTAR TABEL........................................................................................................................ XII

    DAFTAR ISTILAH .................................................................................................................. XIII

    1. PENDAHULUAN .................................................................................................................... 1

    1.1 LATAR BELAKANG ............................................................................................................. 1 1.2 PERUMUSAN MASALAH ...................................................................................................... 2 1.3 TUJUAN .............................................................................................................................. 2 1.4 METODOLOGI PENYELESAIAN MASALAH ............................................................................ 3

    2. LANDASAN TEORI ............................................................................................................... 4

    2.1 TEXT MINING ...................................................................................................................... 4 2.2 OPINION SPAM .................................................................................................................... 5 2.3 TF-IDF .............................................................................................................................. 5 2.4 COSINE SIMILARITY ........................................................................................................... 6 2.5 SCALING DATA .................................................................................................................. 7 2.6 SUPPORT VECTOR MACHINE ................................................................................................ 7 2.7 CROSS VALIDATION ......................................................................................................... 10 2.8 PENGUKURAN EVALUASI ................................................................................................. 10 2.9 KASKUS ........................................................................................................................... 11

    3. PERANCANGAN SISTEM ................................................................................................. 12

    3.1 DESKRIPSI DAN ANALISIS SISTEM .................................................................................... 12 3.1.1 Gambaran Sistem .................................................................................................... 12 3.1.2 Gambaran Umum Sistem ......................................................................................... 13

    3.2 PERANCANGAN SISTEM .................................................................................................... 13 3.2.1 Kebutuhan Fungsional ............................................................................................ 13 3.2.2 Data Flow Diagram (DFD)..................................................................................... 14 3.2.3 Kamus Data ............................................................................................................. 15 3.2.4 Process Spesification ............................................................................................... 16 3.2.5 Entity Relationship Diagram ................................................................................... 20

    4. IMPLEMENTASI DAN ANALISIS HASIL PENGUJIAN .............................................. 22

    4.1 LINGKUNGAN IMPLEMENTASI SITEM ............................................................................... 22 4.1.1 Spesifikasi Perangkat Lunak ................................................................................... 22 4.1.2 Spesifikasi Perangkat Keras .................................................................................... 22

    4.2 PENGUJIAN SISTEM .......................................................................................................... 22 4.2.1 Dataset .................................................................................................................... 22 4.2.2 Tujuan Pengujian .................................................................................................... 23 4.2.3 Skenario Pengujian ................................................................................................. 23

    4.3 ANALISIS HASIL PENGUJIAN ............................................................................................ 23 4.3.1 Analisis Skenario 1 .................................................................................................. 23 4.3.2 Analisis Skenario 2 .................................................................................................. 25 4.3.3 Analisis Skenario 3 .................................................................................................. 26 4.3.4 Analisis Skenario 4 .................................................................................................. 28

  • x

    4.3.5 Analisis Keseluruhan Skenario................................................................................ 29

    5. KESIMPULAN DAN SARAN ............................................................................................. 31

    5.1 KESIMPULAN .................................................................................................................... 31 5.2 SARAN ............................................................................................................................. 31

    DAFTAR PUSTAKA .................................................................................................................... 32

    LAMPIRAN A: DATA PENGUJIAN ......................................................................................... 34

    DATA THREAD ............................................................................................................................. 34 DATA POST (TRAIN) ..................................................................................................................... 35 DATA POST (TEST) ....................................................................................................................... 46

    LAMPIRAN B: KAMUS .............................................................................................................. 51

    KAMUS STOPWORD ...................................................................................................................... 51

  • xi

    Daftar Gambar

    GAMBAR 2-1 REPRESENTASI DOKUMEN DALAM RUANG VEKTOR[9] ................................................ 6 GAMBAR 2-2 SVM BERUSAHA UNTUK MENEMUKAN HYPERPLANE TERBAIK YANG MEMISAHKAN

    KEDUA KELAS -1 DAN +1 [14] .................................................................................................... 7 GAMBAR 2-3 HYPERPLANE TERBENTUK DIANTARA KELAS-1 DAN +1[14] ......................................... 8 GAMBAR 3-1 WORKFLOW DIAGRAM ............................................................................................... 12 GAMBAR 3-2 DIAGRAM KONTEKS ................................................................................................... 14 GAMBAR 3-3 DFD LEVEL 1 ............................................................................................................. 14 GAMBAR 3-4 DFD LEVEL 2 KLASIFIKASI SVM ............................................................................... 14 GAMBAR 3-5 DFD LEVEL 2 PENGUJIAN MODEL .............................................................................. 15 GAMBAR 3-6 DFD LEVEL 2 SIMULASI ............................................................................................. 15 GAMBAR 3-7 ENTITY RELATIONSHIP DIAGRAM ............................................................................... 20 GAMBAR 3-8 TABEL RELASI ............................................................................................................ 20 GAMBAR 4-1 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 1 ............... 24 GAMBAR 4-2 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 2 ............... 26 GAMBAR 4-3 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 3 ............... 27 GAMBAR 4-4 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 4 .............. 29 GAMBAR 4-5 GRAFIK AKURASI CV(TRAIN) DAN AKURASI (TEST) KESELURUHAN ........................ 29

  • xii

    Daftar Tabel

    TABEL 2-1 CONFUSION TABLE ......................................................................................................... 10 TABEL 3-1 PROCESS SPECIFICATION 1.1 .......................................................................................... 16 TABEL 3-2 PROCESS SPECIFICATION 1.2 .......................................................................................... 16 TABEL 3-3 PROCESS SPECIFICATION 1.3 .......................................................................................... 17 TABEL 3-4 PROCESS SPECIFICATION 1.4 .......................................................................................... 17 TABEL 3-5 PROCESS SPECIFICATION 1.5 .......................................................................................... 17 TABEL 3-6 PROCESS SPECIFICATION 1.6 .......................................................................................... 18 TABEL 3-7 PROCESS SPECIFICATION 2.1 .......................................................................................... 18 TABEL 3-8 PROCESS SPECIFICATION 2.2 .......................................................................................... 18 TABEL 3-9 PROCESS SPECIFICATION 2.3 .......................................................................................... 18 TABEL 3-10 PROCESS SPECIFICATION 2.4 ........................................................................................ 19 TABEL 3-11 PROCESS SPECIFICATION 2.5 ........................................................................................ 19 TABEL 3-12 PROCESS SPECIFICATION 2.6 ........................................................................................ 19 TABEL 3-13 PROCESS SPECIFICATION 3.1 ........................................................................................ 19 TABEL 3-14 PROCESS SPECIFICATION 3.2 ........................................................................................ 20 TABEL 3-15 TABEL ENTITAS THREAD .............................................................................................. 20 TABEL 3-16 TABEL ENTITAS POST ................................................................................................... 21 TABEL 4-1 HASIL PENGUJIAN SKENARIO 1 (TANPA PREPROCESSING, PEMBOBOTAN DENGAN TF) ... 24 TABEL 4-2 HASIL PENGUJIAN SKENARIO 2 (TANPA PREPROCESSING, PEMBOBOTAN DENGAN TF-IDF)

    ................................................................................................................................................. 25 TABEL 4-3 HASIL PENGUJIAN SKENARIO 3 (PENGHILANGAN STOPWORD, PEMBOBOTAN DENGAN TF)

    ................................................................................................................................................. 26 TABEL 4-4 HASIL PENGUJIAN SKENARIO 4 (PENGHILANGAN STOPWORD, PEMBOBOTAN DENGAN TF-

    IDF) ......................................................................................................................................... 28

  • xiii

    Daftar Istilah

    Dataset Sekumpulan data mentah yang akan diolah, diuji, dan

    dianalisis.

    DFD Data Flow Diagram yang menggambarkan aliran data

    pada suatu sistem informasi.

    Entity

    RelationshipDiagram

    suatu pemodelan data sistem yang

    menggunakan beberapa notasi untuk menggambarkan

    data dalam artian entitas-entitas dan

    hubungan relasi yang didiskripsikan oleh data tersebut.

    ERD merupakan salah satu teknik

    untuk mengorganisir dan mendokumentasi data sistem.

    Feature Vector Ruang dimensi yang berisi kumpulan vector dari suatu

    feature yang merepresentasikan suatu objek

    Forum Suatu wadah diskusi yang membahas suatu topik antar

    sesama anggota

    Hyperplane Garis pemisah antar dua kelas

    Input Space Ruang masukan data

    Internet sistem global dari seluruh jaringan komputer yang saling

    terhubung menggunakan standar Internet Protocol Suite

    (TCP/IP) untuk melayani miliaran pengguna di seluruh

    dunia

    Junk Post Postingan sampah dalam forum yang biasanya tidak

    berguna dan tidak berkaitan dengan topic yang sedang

    dibahas

    Machine Learning Disiplin ilmu yang mempelajari bagaimana membuat

    computer/mesin mempunyai sebuah kecerdasan dan

    dapat belajar

    Process Spesification Deskripsi rinci setiap proses yang muncul pada DFD

    yang sudah tidak dapat didekomposisi lagi

    Stopword kata umum (common words) yang biasanya muncul

    dalam jumlah besar dan dianggap tidak memiliki makna.

    Term Sekumpulan kata hasil pemecahan dokumen atau teks

    Workflow otomatisasi proses bisnis yang meliputi perpindahan

    dokumen melalui suatu prosedur kerja

  • 1

    1. Pendahuluan

    1.1 Latar belakang

    Perkembangan internet sampai saat ini sudah benar-benar menarik banyak minat

    dari segala bidang, mulai dari bidang pendidikan, bisnis, sosial, dan lain-lain.

    Internet sebagai sarana pemersatu orang untuk berkumpul di dunia maya sudah

    dirasakan memiliki banyak sekali manfaat untuk kehidupan, salah satunya

    informasi. Informasi yang beredar di internet sudah sangat up-to-date dan sering

    kali informasi tersebut lebih cepat sampai ketimbang melalui media lainnya,

    seperti koran, televisi, dan sarana komunikasi informasi lainnya.

    Fitur unik dari internet lainnya yang bisa menggabungkan pemikiran maupun

    opini-opini seseorang ialah forum. Forum dalam internet tidak jauh berbeda

    dengan forum dalam dunia nyata. Kegiatan utama dalam forum ialah saling

    berinteraksi satu sama lain dalam mengomentari kejadian ataupun kasus yang

    disajikan dalam forum itu. Setiap orang bebas memilih topik yang paling digemari

    dan disukai untuk terlibat aktif dalam forum tersebut.

    Adanya suatu wadah diskusi seperti forum ini bukan berarti tidak ada masalah

    dan selalu memberikan dampak positif untuk penggunanya. Banyak masalah yang

    harus dialami dalam forum. Salah satu yang menjadi bahasan dalam penelitian ini

    ialah mengenai masalah junk post (opini sampah) yang tidak berguna dan tidak

    ada keterkaitan antara opini tersebut dengan topik yang sedang dibahas.

    Analisis spam opinion bisa diterapkan untuk menangani postingan-potingan

    yang ada dalam forum[18], salah satunya mengenai masalah junk post ini. Junk

    post atau opini sampah ialah opini yang diberikan oleh seseorang terhadap suatu

    kasus, namun tidak memiliki bobot terhadap kasus tersebut. Postingan seperti ini

    dibuat oleh seseorang agar jumlah postingan orang tersebut semakin bertambah

    dan berharap bisa mendapat reputasi yang baik karena telah aktif dalam forum itu.

    Aktif disini bukan berarti orang tersebut benar-benar terlibat dalam setiap

    permasalahan yang ada pada forum, namun karena jumlah postingan yang

    didapatnya bukan dari pemikiran, melainkan hanya untuk mendapat reputasi yang

    baik dilihat dari jumlah postingan, tidak melihat dari sisi bagaimana opini tersebut

    kritis terhadap masalah yang ada.

    Masalah junk post ini hampir dirasakan di semua forum-forum yang beredar

    luas di internet. Hal ini dirasakan mengganggu mengingat dalam suatu forum

    yang seharusnya menjadi lahan diskusi untuk suatu topik, hanya dipakai sebagai

    sarana untuk menambah jumlah postingan dan mencari reputasi. Oleh karena itu,

    dirasakan perlu adanya suatu penanganan agar masalah junk post ini tidak

    berlarut-larut sehingga lebih mewujudkan forum yang benar-benar sebagai lahan

    diskusi.

    Pada penelitian ini, penulis ingin mengklasifikasikan bagaimana postingan atau

    opini yang termasuk junk atau tidak, sehingga ke depannya postingan seperti ini

    bisa lebih dikurangi dalam sebuah forum. Metode yang digunakan dalam masalah

    ini yaitu Support Vector Machine (SVM) untuk pengklasifikasian. Pemilihan

    metode ini dikarenakan SVM bisa diterapkan dalam hal kategorisasi teks[5] dan

    juga memberikan performansi yang lebih baik jika dibandingkan dengan metode-

    metode learning lainnya, seperti Nive Bayes, Bayesian network, atau Decision

  • 2

    Trees[8]. Selain itu juga, penerapan SVM pada kasus ini benar-benar linear

    classifier[14] karena menerapkan linier kernel untuk menentukan apakah

    postingan termasuk junk atau tidak. Metode SVM tidak memanfaatkan data yang

    banyak untuk bisa melakukan learning, sehingga metode ini cocok untuk kasus ini

    karena data dari forum bersifat private menyangkut kepentingan user masing-

    masing dan terbatas. Dalam penerapannya, dilakukan juga pembobotan postingan

    memanfaatkan nilai tf-idf karena dari penelitian yang ada, mengukur dimensi dari

    feature vector dengan Inverse Document frequency (IDF)-nya dapat

    meningkatkan performansi[12][17] dan menggunakan cosine similarity untuk

    menghitung nilai similarity dari postingan yang ada yang dikaitkan dengan topik

    yang sedang dibahas pada forum.

    1.2 Perumusan masalah

    Dengan mengacu latar belakang di atas, maka permasalahan yang dibahas dan

    diteliti adalah :

    1. Bagaimana mengklasifikasikan suatu postingan/opini termasuk junk post atau tidak?

    2. Bagaimana mengimplementasikan metode Support Vector Machine (SVM) dalam penanganan masalah ini?

    3. Bagaimana akurasi prediksi yang dihasilkan dari metode Support Vector Machine (SVM)?

    Sedangkan batasan masalah dalam tugas akhir ini adalah :

    1. Forum yang digunakan ialah forum Indonesia, sehingga pengklasifikasian junk atau tidak hanya untuk opini dalam bahasa indonesia

    2. Data yang digunakan sebagai data training untuk melakukan pemodelan berasal dari forum-forum yang ada di indonesia, untuk yang paling sederhana

    penulis memakai dataset dari kaskus sebagai forum terbesar di Indonesia

    3. Penelitian ini berfokus pada pengklasifikasian opini seperti apa yang termasuk junk atau tidak

    4. Jumlah dataset yang digunakan bergantung kepada setiap forum dan atribut yang dipakai dalam masalah ini bergantung data dari forum tersebut dan akan

    disesuaikan untuk melakukan pengklasifikasiannya

    5. Tidak membahas sistem data mining secara keseluruhan 6. Tidak online learning

    1.3 Tujuan

    Tujuan yang ingin dicapai dalam tugas akhir ini, yaitu:

    a. Mengklasifikasikan postingan yang termasuk junk atau tidak menggunakan metode Support Vector Machine (SVM)

    b. Menganalisis akurasi prediksi yang dihasilkan metode Support Vector Machine dalam penanganan kasus junk post ini.

  • 3

    1.4 Metodologi penyelesaian masalah

    Metodologi yang digunakan dalam memecahkan masalah di atas adalah dengan

    menggunakan langkah-langkah berikut:

    1. Studi literatur Pencarian literatur yang berhubungan dengan web mining, opinion spam,

    teori Support Vector Machine, teori tf-idf, teori cosine similarity. Literatur

    didapat dari perpustakaan IT Telkom, perpustakaan Lab DMC, jurnal-

    jurnal online gratis di internet maupun jurnal online berlangganan yang

    dimiliki IT Telkom atau dari sumber-sumber lain.

    2. Pengumpulan data Data Training yang dibutuhkan berasal dari forum kaskus sebagai forum

    terbesar di Indonesia

    3. Analisis dan perancangan sistem Melakukan analisis dan perancangan terhadap sistem yang dibangun,

    menganalisis metode yang akan digunakan untuk penyelesaian masalah,

    termasuk dalam menentukan bahasa pemrograman yang digunakan,

    arsitektur, fungsionalitas, dan antarmuka sistem

    4. Implementasi dan pembangunan sistem Secara umum prosedur yang dilakukan pada penelitian ini adalah:

    - Melihat secara keseluruhan bagaimana dataset yang ada, apakah perlu dilakukan feature selection untuk menentukan feature apa saja yang

    akan terpakai dalam penelitian ini

    - Melakukan analisis terhadap topik yang sedang dibicarakan dengan metode tf-idf

    - Melakukan pembobotan terhadap opini dalam dataset dibandingkan dengan topik yang sedang dibahas menggunakan metode tf-idf

    - Menghitung similarity antara opini denga topik yang ada dengan menggunakan cosine similarity

    - Melakukan proses klasifikasi dengan menggunakan metode SVM - Melakukan analisis hasil klasifikasi dengan data sebenarnya untuk

    menyesuaikan apakah opini termasuk junk atau tidak

    5. Pengujian dan analisis Pengujian dan analisis meliputi:

    a. Pengujian untuk menentukan seberapa baik metode tf-idf dan cosine similarity digunakan

    b. Pengujian untuk menentukan hasil klasifikasi dari metode SVM c. Pengujian untuk menentukan lama proses klasifikasi sesuai dengan

    jumlah data yang ada

    d. Menganalisis penerapan metode SVM dengan tf e. Menganalisis penerapan metode SVM dengan tf-idf f. Pengambilan kesimpulan dan penyusunan laporan Tugas Akhir

  • 4

    2. Landasan Teori

    2.1 Text Mining

    Text mining sudah banyak didefinisikan oleh ahli riset dan praktisi[1][2] . Text

    mining memiliki definisi menambang data yang berupa teks di mana sumber data

    biasanya didapatkan dari dokumen, dan tujuannya adalah mencari kata - kata yang

    dapat mewakili isi dari dokumen sehingga dapat dilakukan analisis keterhubungan

    antar dokumen. Text mining juga merupakan proses penemuan akan informasi

    atau trend baru yang sebelumnya tidak terungkap dengan memproses dan

    menganalisis data dalam jumlah besar.

    Text mining merupakan subjek riset yang tergolong baru. Text mining dapat

    memberikan solusi dari permasalahan seperti pemrosesan, pengorganisasian /

    pengelompokkan dan menganalisis unstructured text dalam jumlah besar.

    Sistem text mining terdiri dari komponen text preprocessing, feature selection,

    dan komponen data mining. Komponen text preprocessing berfungsi untuk

    mengubah data tekstual yang tidak terstruktur seperti dokumen, kedalam data

    terstruktur dan disimpan ke dalam basis data. Feature selection akan memilih kata

    yang tepat dan berpengaruh pada proses klasifikasi. Komponen terakhir akan

    menjalankan teknik data mining pada output dari komponen sebelumnya.

    Dalam memberikan solusi, text mining mengadopsi dan mengembangkan

    banyak teknik dari bidang lain, seperti Data mining, Information Retrieval,

    Statistik dan Matematik, Machine Learning, Linguistic, Natural Languange

    Processing, dan Visualization. Dalam menganalisis sebagian atau keseluruhan

    unstructured text, text mining mencoba untuk mengasosiasikan satu bagian text

    dengan yang lainnya berdasarkan aturan-aturan tertentu. Hasil yang di harapkan

    adalah informasi baru atau insight yang tidak terungkap jelas sebelumnya. Permasalahan yang dihadapi pada text mining sama dengan permasalahan yang

    terdapat pada data mining, yaitu jumlah data yang besar, dimensi yang tinggi, data

    dan struktur yang terus berubah, dan data noise. Perbedaan di antara keduanya

    adalah pada data yang digunakan. Pada data mining, data yang digunakan adalah

    structured data, sedangkan pada text mining, data yang digunakan text mining

    pada umumnya adalah unstructured data, atau minimal semistructured. Hal ini

    menyebabkan adanya tantangan tambahan pada text mining yaitu struktur text

    yang kompleks dan tidak lengkap, arti yang tidak jelas dan tidak standar, dan

    bahasa yang berbeda ditambah translasi yang tidak akurat.

    Struktur data yang baik dapat memudahkan proses komputerisasi secara

    otomatis. Sehingga text mining perlu melakukan preprocessing yang lebih

    kompeks daripada data mining karena data yang diolah berbentuk unstructured.

    Aplikasi text mining bisa dibagi berdasarkan tipe unstructured text yang

    diproses. Untuk Unstructured text dalam bentuk emails, instant messages dan

    blogs, pada umumnya pengguna ingin melakukan mining untuk mencari informasi

    mengenai orang (email pengirim, alamat, nama lengkap), perusahaan (nama

    lengkap dan lokasi), organisasi dan kejadian kejadian baru (penemuan baru, pengumuman penting). Untuk buku dan artikel sains, text mining bisa digunakan

    untuk mendeteksi trend di bidang riset tertentu. Salah satu cara yang bisa

    dilakukan adalah dengan memonitor jumlah publikasi untuk bidang riset tertentu

  • 5

    dalam jangka waktu tertentu. Hasil hasil untuk bidang riset yang berbeda bisa dibandingkan dan dianalisis guna memberikan hasil trend yang berarti.

    Untuk technical working paper, dokumentasi, dan software spesifikasi

    dokumen, text mining bisa di gunakan untuk mengekstrak software requirement

    dari spesifikasi dokumen secara otomatis atau mendeteksi ke kurangan antara

    source code dan documentasinya secara otomatis.

    2.2 Opinion Spam

    Salah satu hal mendasar adanya opinion spam ialah nilai ekonomi dan publikasi

    dari posisi ranking sebuah page yang diberikan oleh search engine[18]. Dalam

    konteks opini dalam web, permasalahannya sama. Ini menjadi hal yang sangat

    wajar jika seseorang mencari dan membaca opini dari suatu web dengan tujuan

    tertentu. Contohnya dalam pembelian barang, review suatu barang, dan lain-lain.

    Berdasarkan hal ini, spam opinion ada karena perilaku manusia yang mencoba

    memberikan opini yang semata-mata hanya ingin menarik minat dari masyarakat

    umum saja. Tidak jarang juga opini yang berbeda-beda tersebut dapat

    mempromosikan sesuatu yang salah yang bertujuan untuk merusak reputasi.

    Salah satu kemungkinan kombinasi metode yang digunakan dalam spam

    opinion yaitu mengklasifikasikan masalah dalam penentuan spam.

    Pengkategorisasian spam atau tidak dapat dilihat dari indikator yang menandakan

    hal tersebut termasuk spam atau tidak. Proses dimulai dengan memberikan label

    manual kepada data untuk dilakukan learning dengan metode klasifikasi. Hasilnya

    dapat digunakan untuk mengklasifikasikan setiap opini yang termasuk spam atau

    tidak.

    Sepanjang seseorang atau organisasi menggunakan opini dalam menentukan

    suatu keputusan, pembuat spam memiliki ruang gerak yang tidak terbatas seperti

    pada suatu review, diskusi maupun pada blog.

    2.3 TF-IDF

    Term Frequency (TF) merupakan frekuensi kemunculan term pada dokumen. TF

    suatu dokumen dengan dokumen yang lain akan berbeda, bergantung pada tingkat

    kepentingan sebuah term dalam dokumen. [7] Inverse Document Frequency (IDF)

    merupakan sebuah perhitungan dari bagaimana term didistribusikan secara luas

    pada koleksi dokumen yang bersangkutan. Semakin sedikit dokumen yang

    mengandung term yang dimaksud, maka nilai idf semakin besar. Jika setiap

    dokumen dalam koleksi mengandung term yang bersangkutan, maka nilai dari idf

    dari term tersebut adalah nol. Hal ini menunjukkan bahwa sebuah term yang

    muncul pada setiap dokumen dalam koleksi tidak berguna untuk membedakan

    dokumen berdasarkan topik tertentu. Nilai IDF sebuah term t dirumuskan dalam

    persamaan berikut:

    IDF(t) = log (N/df(t)) (2.1)

    N adalah jumlah dokumen dan df(t) adalah jumlah dokumen yang mengandung

    term yang bersangkutan.

  • 6

    Dengan menggunakan tf-idf maka dapat diketahui deskripsi terbaik dari

    dokumen adalah term yang banyak muncul dalam dokumen tersebut dan sangat

    sedikt kemunculannya pada dokumen yang lain. Bobot terendah akan diberikan

    pada term yang muncul sangat jarang pada beberapa dokumen (low-frequency

    documents) dan term yang muncul pada hampir atau seluruh dokumen (high-

    frequency documents. Penelitian belakangan ini [16] telah mengkombinasikan TF

    dan IDF untuk menghitung bobot term dan menunjukkan bahwa gabungan

    keduanya menghasilkan performansi yang lebih baik. Kombinasi bobot dari

    sebuah term t pada text d didefinisikan sebagai berikut :

    TFIDF(d.t)=TF(d.t).IDF(t) (2.2)

    Faktor TF dan IDF dapat berkontribusi untuk memperbaiki nilai akurasi, recall

    dan precision.

    2.4 Cosine Similarity

    Salah satu ukuran kemiripan teks yang paling populer adalah cosine similarity.

    Cosime Similarity dapat juga digunakan untuk mencari suatu kesamaan

    (similarity) antar dokumen. Pengertian dokumen dalam Tugas Akhir ini yaitu

    thread dan juga postingan dalam thread tersebut di suatu forum. Cosine similarity

    termasuk dalam metode vector space, yaitu mencari kesamaan antar dokumen

    melalui penggambaran vektor sebagai suatu dokumen. Representasi dua dokumen

    dalam ruang vector tiga dimensi sebagai berikut :

    Gambar 2-1 Representasi Dokumen dalam Ruang Vektor[9]

    Cara menghitung similarity dengan menggunakan cosine similarity ialah

    dengan menghitung nilai cosinus sudut antara dua vektor. Jika terdapat dua vektor

    dokumen dj dan query q, serta t term diekstrak dari koleksi dokumen maka nilai

    cosinus antara dj dan q didefinisikan sebagai berikut [4]:

    ( )

    | | | |

    ( )

    (2.3)

  • 7

    2.5 Scaling Data

    Scaling data sebelum diterapkan dalam klasifikasi data dengan menggunakan

    Support Vector Machine (SVM) sangat penting dikarenakan data yang ada dalam

    kasus, menyebar dengan range kontinu yang sangat beragam, sehingga agar data

    seragam, dilakukan scaling terlebih dahulu. Keuntungan digunakan scaling ialah

    untuk menghindari atribut dengan range yang besar mendominasi atribut dengan

    range kecil dan juga dengan dilakukan scaling, akan mempermudah pada saat

    komputasi program.[11]

    2.6 Support Vector Machine

    Support Vector Machine (SVM) pertama kali diperkenalkan oleh Vapnik pada

    tahun 1992 sebagai rangkaian harmonis konsep-konsep unggulan dalam bidang

    pattern recognition[14]. Sebagai salah satu metode pattern recognition, usia SVM

    terbilang masih relatif muda, namun menempatkannya sebagai state of the art

    dalam pattern recognition.

    SVM adalah metode learning machine yang bekerja atas prinsip Structural

    Risk Minimization (SRM) dengan tujuan menemukan hyperplane terbaik yang

    memisahkan dua buah kelas pada input space. Gambar 2-2 memperlihatkan

    beberapa pattern yang merupakan anggota dari dua buah kelas : +1 dan 1. Pattern yang tergabung pada class 1 disimbolkan dengan warna merah (kotak), sedangkan pattern pada kelas +1, disimbolkan dengan warna kuning (lingkaran).

    Problem klasifikasi dapat diterjemahkan dengan usaha menemukan garis

    (hyperplane) yang memisahkan antara kedua kelompok tersebut.[14]

    Gambar 2-2 SVM berusaha untuk menemukan hyperplane terbaik yang

    memisahkan kedua kelas -1 dan +1 [14]

  • 8

    Gambar 2-3 Hyperplane terbentuk diantara kelas-1 dan +1[14]

    Hyperplane pemisah terbaik antara kedua kelas dapat ditemukan dengan

    mengukur margin hyperplane tersebut dan mencari titik maksimalnya. Margin

    adalah jarak antara hyperplane tersebut dengan pattern terdekat dari masing-

    masing kelas. Pattern yang paling dekat ini disebut sebagai support vector. Garis

    solid pada gambar 2-3 menunjukkan hyperplane yang terbaik, yaitu yang terletak

    tepat pada tengah-tengah kedua kelas, sedangkan titik merah dan kuning yang

    berada dalam lingkaran hitam adalah support vector. Usaha untuk mencari lokasi

    hyperplane ini merupakan inti dari proses pembelajaran pada SVM.

    Penerapan kernel pada Tugas Akhir ini menggunakan Linear Kernel. Linier

    Kernel merupakan kernel yang paling sederhana dalam SVM. Input pada

    pelatihan SVM terdiri dari poin-poin yang merupakan vektor dari angka-angka ril.

    Data yang tersedia dinotasikan sebagai i d sedangkan label masing-masing

    dinotasikan sebagai yi {-1,+1} untuk i = 1,2,,l, dimana l adalah banyaknya data. Diasumsikan kedua kelas -1 dan +1 dapat terpisah secara sempurna oleh

    hyperplane berdimensi d, yang didefinisikan [14] :

    . + b = 0 (2.4)

    Sebuah pattern i yang termasuk kelas -1 (sampel negative) dapat dirumuskan sebagai pattern yang memenuhi pertidaksamaan :

    i + b -1 (2.5)

    sedangkan pattern i yang termasuk kelas +1(sampel positif) :

    i + b +1 (2.6)

    Margin terbesar dapat ditemukan dengan memaksimalkan nilai jarak antara

    hyperplane dan titik terdekatnya, yaitu 1/ . Hal ini dapat dirumuskan sebagai Quadratic Programming (QP) problem, yaitu mencari titik minimal persamaan

    (2.7), dengan memperhatikan batasan persamaan (2.8).

  • 9

    2 (2.7)

    (2.8)

    Permasalahan ini dapat dipecahkan dengan berbagai teknik komputasi, di

    antaranya Lagrange Multiplier sebagaimana ditunjukkan pada persamaan (2.9).

    (2.9)

    i adalah Lagrange multipliers, yang bernilai nol atau positif. Nilai optimal dari

    persamaan (2.9) dapat dihitung dengan meminimalkan L terhadap dan b , dan memaksimalkan L terhadap i. Dengan meperhatikan sifat bahwa pada tiik optial gradient L=0, persamaan (2.9) dapat dimodfikasi sebagai maksimalisasi yang

    hanya mengandung i saja, yaitu

    (2.10)

    yang memenuhi,

    (2.11)

    Dari hasil perhitungan diatas didapatlah yang kebanyakan bernilai positif. Data yang berkorelasi dengan yang positif inilah yang disebut sebagai support vector. Setelah menemukan support vector, maka hyperplane pun dapat

    ditentukan.

    Penjelasan SVM di atas berlaku jika kedua buah kelas dapat dipisahkan

    secara sempurna oleh hyperplane. Akan tetapi, pada umumnya input space tidak

    dapat dipisahkan secara sempurna sehingga menyebabkan batasan pada

    persamaan (2.8) tidak dapat terpenuhi, sehingga optimisasi tidak dapat dilakukan.

    Untuk mengatasi permasalahan ini, maka SVM dirumus ulang dengan

    menggunakan teknik soft margin. Dengan menggunakan teknik soft margin,

    persamaan (2.8) dimodifikasi dengan memasukan slack variabel dan sebuah fungsi penalty sebagai berikut [13] :

    (2.12)

    dimana dan dengan demikian persamaan (2.7)

    (2.13)

    Parameter C dipilih untuk mengatur trade off antara margin dan error

    klasifikasi . Nilai C yang besar berarti akan memberikan penalty yang lebih besar terhadap error klasifikasi tersebut.

  • 10

    2.7 Cross Validation

    Cross validation merupakan suatu teknik untuk menguji performansi dari model

    pada sebuah data yang independen. Mekanisme pengujian pada cross validation

    ialah dengan melakukan pengecekan terhadap data itu sendiri (independen).

    Pengecekan tersebut melibatkan beberapa subset data dengan cara membagi data

    tersebut ke dalam satu subset (training set) dan memvalidasi analisis pada subset

    lainnya.

    Cross Validation dilakukan secara berulang dengan partisi yang berbeda-beda

    dan hasilnya dirata-ratakan sampai pratisi habis. Fold (k) ialah parameter dalam

    cross validation yang akan membagi data ke dalam k subset data. Perulangan akan

    dilakukan terhadap satu subset yang diuji sampai k-1 subset. Cross Validation

    dapat mencegah terjadinya overfitting.

    Dalam sistem penanganan junk post ini, teknik cross validation digunakan

    untuk menentukan parameter C terbaik dalam SVM dengan melihat hasil

    pengujian yang berupa akurasi yang dihasilkan[11].

    2.8 Pengukuran Evaluasi

    Pengujian keefektifan atau kualitas hasil suatu klasifikasi dibutuhkan suatu

    pengukuran yang disebut evaluation measure. Skenario pengukuran dapat dibagi

    menjadi dua, yaitu macro-averaging dan micro-averaging [15] :

    a. Micro-averaging Diberikan sebuah set confusion table. Dibangun sebuah tabel baru dimana

    setiap sel pada tabel merepresentasikan jumlah dari dokumen yang

    bersesuaian dengan kolom maupun baris pada tabel tersebut.

    b. Macro-averaging Diberikan sebuah confusion table. Dibangun sebuah tabel baru dimana

    setiap sel pada tabel merepresentasikan nilai presisi atau recall dari setiap

    kategori.

    Tabel 2-1 Confusion Table

    Machine Says

    Positif Negatif

    Human

    says

    Positif True Positif (TP) False Negative (FN)

    Negatif False Positif (FP) True Negative (TN)

    Dalam Tugas Akhir ini, micro-averaging dipilih karena berdasarkan [13],

    micro-averaging memiliki performansi yang lebih baik jika dbandingkan dengan

    macro-averaging. Dengan menggunakan micro-averaging, perhitungan akurasi

    bisa didapatkan dengan menggunakan rumus:

    (2.14)

  • 11

    2.9 Kaskus

    Penelitian pada Tugas Akhir ini menggunakan data dari forum Kaskus. Kaskus

    berdiri pada tanggal 6 November 2000 di Amerika Serikat (Washington) oleh tiga

    mahasiswa Indonesia. Kaskus merupakan gabungan dari kata KASAK &

    KUSUK. Tujuan awal dari didirikannya komunitas ini adalah untuk

    mempersatukan manusia-manusia Indonesia dalam / luar negeri dalam satu

    Komunitas. Kaskus selalu berusaha memberikan kebebasan berbicara & berfikir

    bagi anggota, karena kami menganut asas "Freedom Of Speech" dimana

    merupakan salah satu basic dari Human Rights.

    Pada bulan Agustus 2005, situs Kaskus mendapatkan penghargaan sebagai

    "The Best Indonesian Community" oleh PC Magazine Indonesia, pada saat itu

    member Kaskus sudah mencapai 110.000 anggota.

    Klasifikasi postingan yang termasuk junk atau tidak ialah sebagai berikut (dikutip

    dari situs kaskus.com) :

    One liner postingan seperti: nice info gan, mantap gan, menyimak dulu gan, keren gan, mungkin bawah ane tau gan, dan sebagainya ( tidak ada

    komentar spesifik yang sesuai dengan topik ).

    Tulisan pertamax, keduax, ketigax, page one, gagal pertamax, atas ane cepet banget gan,dsb tanpa disertai komentar lain yang sesuai dengan

    topik, termasuk disini gambar-gambar pertamax, dsb yang diposting tanpa

    komentar lain yang sesuai dengan topik. Gambar-gambar yang terlalu

    besar dan tidak senonoh juga termasuk akan didelete.

    Mantra: asfdggfh, fjfkflsl, dsb

    Copy paste postingan.

    Memosting hanya berupa emoticon ( ilovekaskus,sup,maho, dsb ).

    Spam berupa promosi/ngiklan/link ke lapak dalam setiap postingan.

    Spamming yang mengganggu kenyamanan forum dan user lain, bersifat merusak trid seperti spamming gambar yang menghina SARA, gambar

    BB17/porno, gambar DP/disturbing pictures, longcat/bandwith killer

    images, flash/video/lagu yang mengganggu, dan sebagainya.

    Postingan ngobrol/chatting di trid yang sudah Out Of Topic, tanpa multiquote.

    Postingan yang bersifat trolling/flaming ( menghina, kasar, dan sebagainya).

    Postingan double, tripple, dan seterusnya.

    Menyundul trid secara berlebihan. Dalam forum kaskus, dikenal adanya suatu thread dan juga post. Thread ialah

    topik yang dibahasa oleh pembuat topik dengan tujuan ingin menyampaikan

    bahasan maupun pendapatnya kepada forum. Sedangkan post ialah komentar-

    komentar yang disampaikan oleh pengguna aktif forum untuk menanggapi topik

    yang sedang dibahas.

    Data forum pada umumnya merupakan data yang berbeda dengan artikel

    Bahasa Indonesia lainnya. Dalam data ini tidak semua struktur kalimat disajikan

    secara baku dan juga penulisan untuk tiap kata tidak selalu sesuai dengan ejaan

    pada umumnya. Dalam kata-kata ini juga terdapat penyingkatan untuk kata yang

    dianggap umum digunakan dalam proses komunikasi sehari-hari.

  • 12

    3. Perancangan Sistem

    3.1 Deskripsi dan Analisis Sistem

    3.1.1 Gambaran Sistem

    Data

    Forum

    Data thread or

    post?

    Processing

    Data

    thread

    Preprocessing

    Data

    post

    Train/test?

    Tokenisasi

    Stopword

    indexing

    Tokenisasi

    Stopword

    Indexing

    Pembobotan

    Data Dengan TF

    Dengan TF-IDF

    train

    test

    Pembobotan

    Data

    Dengan TF

    Dengan TF-IDF

    Similarity

    Pemodelan

    dengan SVMSimilarity

    Cross Validation untuk

    penentuan parameter C

    Model Data Hasil Pengujian Akurasi

    Gambar 3-1 Workflow Diagram

  • 13

    3.1.2 Gambaran Umum Sistem

    1. Sistem yang dibuat berbentuk halaman web pada umumnya dengan beberapa menu tampilan, seperti Home, Data, Preprocessing, Training, Testing dan

    juga Simulasi.

    2. Tampilan Home berisi halaman pembuka web yang berisi informasi mengenai forum yang turut terlibat dalam pembuatan tugas akhir ini.

    3. Tampilan Data berisi informasi mengenai data yang digunakan dalam pengujian tugas akhir ini. Data yang digunakan dalam sistem ini yaitu data

    suatu topik beserta postingan dalam suatu forum.

    4. Tampilan Preprocessing merupakan tampilan untuk melakukan pre-processing terhadap data. Preprocessing dapat dilakukan jika data terpilih

    terlebih dahulu. Jika data tidak terpilih, maka proses ini tidak dapat

    dijalankan. Output dari proses ini ialah menghasilkan file yang akan

    dipergunakan untuk training dan testing sesuai scenario masing-masing.

    5. Tampilan Training digunakan untuk melakukan training terhadap data yang dihasilkan oleh proses preprocessing sebelumnya. Dalam proses ini, training

    dilakukan berdasarkan scenario yang terdapat pada sistem ini dan melakukan

    penentuan parameter C yang paling tepat untuk masing-masing scenario. User

    memilih scenario apa yang akan digunakan dalam proses training dan juga

    menentukan nilai parameter C yang paling sesuai. Parameter dapat dikatakan

    baik dilihat dari hasil akurasi cross validation data training tersebut dengan

    parameter C yang ditentukan sebelumnya.

    6. Tampilan Testing digunakan untuk melakukan testing terhadap data testing

    yang sudah dilakukan preprocessing sebelumnya. Testing dilakukan

    berdasarkan model yang telah dibuat dalam proses training. Hasil output

    proses ini yaitu nilai akurasi untuk masing-masing scenario. Tampilan

    Simulasi digunakan untuk mensimulasikan keadaan suatu forum dimana ada

    suatu topic pembahasan yang bisa dikomentari oleh anggota forum. User

    bebas menentukan postingan yang ingin disampaikan namun dalam prosesnya

    akan dilakukan pengecekan terhadap model yang telah dibuat sebelumnya,

    sehingga sistem bisa menilai apakah komentar yang disampaikan termasuk

    komentar junk atau tidak.

    3.2 Perancangan Sistem

    3.2.1 Kebutuhan Fungsional

    Kemampuan yang harus dimiliki oleh sistem:

    1. Sistem mampu melakukan text preprocessing meliputi tokenisasi teks, stopword removal, dan indexing.

    2. Sistem mampu melakukan pembobotan dengan tf saja dan juga tf-idf. 3. Sistem mampu melakukan validasi dengan cross validation dalam penentuan

    parameter C dalam SVM

    4. Sistem mampu menghasilkan data training dan juga testing yang siap diterima oleh SVM

    5. Sistem mampu menghasilkan model dari proses training data 6. Sistem mampu menampilkan performansi dari SVM dalam bentuk akurasi

  • 14

    3.2.2 Data Flow Diagram (DFD)

    User

    Sistem filter

    spam opinion

    forum

    parameter_svm, posting_komentar

    hasil_prediksi, akurasi

    Gambar 3-2 Diagram Konteks

    user

    1.0

    Klasifikasi

    SVM

    3.0 Simulasi

    2.0

    Pengujian

    Model

    parameter_svm model_svm

    model_svm

    posting_komentar

    model_svm

    akurasi

    model

    hasil_prediksi

    Gambar 3-3 DFD Level 1

    thread

    1.1

    Preprocessing

    Data

    1.2

    Pembobotan

    TF

    1.3

    Pembobotan

    TF-IDF

    1.4

    Cosine

    Similarity

    1.5

    Scaling

    1.6

    Klasifikasi

    SVM

    data_thread Data_hasil bobot_data_TF

    data_olah

    data_scale

    Data_hasil

    Parameter_svm

    Model_svm

    Bobot_data_TFIDF

    post

    data_train

    Gambar 3-4 DFD Level 2 Klasifikasi SVM

  • 15

    post

    2.1

    Preprocessing

    Data

    2.2

    Pembobotan

    TF

    2.3

    Pembobotan

    TF-IDF

    2.4

    Cosine

    Similarity

    2.5

    Scaling

    2.6

    Pengujian

    data_testdata_hasil bobot_data_TF

    data_olah

    data_scale

    data_hasil

    model_svm

    akurasi

    bobot_data_TFIDF

    model

    Gambar 3-5 DFD Level 2 Pengujian Model

    model

    3.2

    Simulasi dengan

    model hasil

    klasifikasi SVM

    3.1

    Olah Sesuai

    format sistemmodel_svmdata_hasil_simmulasi

    hasil_prediksi

    Posting_komentar

    Gambar 3-6 DFD Level 2 Simulasi

    3.2.3 Kamus Data

    Data store

    thread = array

    post = array

    model = array

    data_train = array

    data_test = array

    model_svm = array

    Arus Data

    parameter_svm = number

    posting_komentar = string

    hasil_prediksi = number

    akurasi = number

  • 16

    bobot_data_TF = number

    bobot_data_TFIDF = number

    data_olah = number

    data_scale = number

    data_hasil = string

    data_hasil_simulasi = number

    number = [0-9]

    string = [a-z][A-Z][1-9]

    3.2.4 Process Spesification

    Tabel 3-1 Process Specification 1.1

    No. Proses 1.1

    Nama Proses Preprocessing data

    Input data_train, data_thread

    Output data_hasil

    Logika Proses

    For i=1 sampai jumlah data_thread

    Lakukan tokenisasi terhadap teks

    Penghilangan stopword dan tanda baca

    end for

    For i=1 sampai jumlah data_train yang termasuk thread

    Lakukan tokenisasi terhadap teks

    Penghilangan stopword dan tanda baca

    end for

    Tabel 3-2 Process Specification 1.2

    No. Proses 1.2

    Nama Proses Pembobotan TF

    Input data_hasil

    Output bobot_data_TF

    Logika Proses

    For i=1 sampai jumlah data_thread

    Lakukan indexing terhadap data dengan thread

    Hitung frequensi kata yang ada dalam data_thread

    Hitung banyaknya term untuk mencari lenght data_thread

    end for

    For i=1 sampai jumlah data_train

    Lakukan indexing terhadap data dengan thread

    Hitung frequensi kata yang ada dalam data_thread dan juga data_train

    Hitung banyaknya term untuk mencari lenght data_train

    end for

  • 17

    Tabel 3-3 Process Specification 1.3

    No. Proses 1.3

    Nama Proses Pembobotan TF-IDF

    Input data_hasil

    Output bobot_data_TFIDF

    Logika Proses

    For i=1 sampai jumlah data_thread

    Lakukan indexing terhadap data dengan thread

    Hitung frequensi jumlah kata yang muncul di semua data_thread (IDF)

    Hitung frequensi kata yang ada dalam data_thread

    Hitung banyaknya term untuk mencari lenght data_thread

    Kalikan nilai IDF dengan frequensi kata

    Kalikan nilai IDF dengan jumlah term

    end for

    For i=1 sampai jumlah data_train

    Lakukan indexing terhadap data dengan thread

    Hitung frequensi jumlah kata yang muncul di semua data_thread (IDF)

    Hitung frequensi kata yang ada dalam data_thread dan juga data_train

    Hitung banyaknya term untuk mencari lenght data_train

    Kalikan nilai IDF dengan frequensi kata

    Kalikan nilai IDF dengan jumlah term

    end for

    Tabel 3-4 Process Specification 1.4

    No. Proses 1.4

    Nama Proses Perhitungan Cosine Similarity

    Input bobot_data_TF, bobot_data_TFIDF

    Output data_olah

    Logika Proses

    For i=1 sampai jumlah data_train

    Hitung nilai similarity berdasarkan jumlah frequensi dan length data dengan

    melibatkan bobot data sebelumnya

    end for

    Tabel 3-5 Process Specification 1.5

    No. Proses 1.5

    Nama Proses Scaling data

    Input data_olah

    Output data_scale

    Logika Proses

    For i=1 sampai jumlah data_train

    Scale data ke dalam range [0-1]

    end for

  • 18

    Tabel 3-6 Process Specification 1.6

    No. Proses 1.6

    Nama Proses Klasifikasi SVM

    Input data_scale, parameter_svm

    Output model_svm

    Logika Proses

    For j=1 sesuai keinginan user

    Lakukan perubahan nilai parameter_svm berdasarkan inputan manual

    For i=1 sampai jumlah data_scale

    Cek akurasi cross validation

    end for

    end for

    Tabel 3-7 Process Specification 2.1

    No. Proses 2.1

    Nama Proses Preprocessing data

    Input data_test

    Output data_hasil

    Logika Proses

    For i=1 sampai jumlah data_test

    Lakukan tokenisasi terhadap teks

    Penghilangan stopword dan tanda baca

    end for

    Tabel 3-8 Process Specification 2.2

    No. Proses 2.2

    Nama Proses Pembobotan TF

    Input data_hasil

    Output bobot_data_TF

    Logika Proses

    For i=1 sampai jumlah data_hasil

    Lakukan indexing terhadap data dengan thread

    Hitung frequensi kata yang ada dalam data_test

    Hitung banyaknya term untuk mencari lenght data_test

    end for

    Tabel 3-9 Process Specification 2.3

    No. Proses 2.3

    Nama Proses Pembobotan TF-IDF

    Input data_hasil

    Output bobot_data_TFIDF

    Logika Proses

    For i=1 sampai jumlah data_test

    Lakukan indexing terhadap data dengan test

    Hitung frequensi jumlah kata yang muncul di semua data_test (IDF)

    Hitung frequensi kata yang ada dalam data_test

    Hitung banyaknya term untuk mencari lenght data_test

  • 19

    Kalikan nilai IDF dengan frequensi kata

    Kalikan nilai IDF dengan jumlah term

    end for

    Tabel 3-10 Process Specification 2.4

    No. Proses 2.4

    Nama Proses Perhitungan Cosine Similarity

    Input bobot_data_TF, bobot_data_TFIDF

    Output data_olah

    Logika Proses

    For i=1 sampai jumlah data_train

    Hitung nilai similarity berdasarkan jumlah frequensi dan length data dengan

    melibatkan bobot data sebelumnya

    end for

    Tabel 3-11 Process Specification 2.5

    No. Proses 2.5

    Nama Proses Scaling data

    Input data_olah

    Output data_scale

    Logika Proses

    For i=1 sampai jumlah data_test

    Scale data ke dalam range [0-1]

    end for

    Tabel 3-12 Process Specification 2.6

    No. Proses 2.6

    Nama Proses Pengujian sistem

    Input data_test, model_svm

    Output akurasi

    Logika Proses

    For i=1 sampai jumlah data_test

    Cek model_svm terhadap data_test

    end for

    Tabel 3-13 Process Specification 3.1

    No. Proses 3.1

    Nama Proses Penyesuaian format sistem

    Input posting_komentar

    Output data_hasil_simulasi

    Logika Proses

    For i=1 (sekali memasukkan postingan)

    Lakukan tokenisasi terhadap teks

    Penghilangan stopword dan tanda baca

    Lakukan indexing

    Hitung frequensi kata

    Hitung banyaknya term untuk mencari lenght postingan_komentar

  • 20

    Hitung nilai cosine similarity

    end for

    Tabel 3-14 Process Specification 3.2

    No. Proses 3.2

    Nama Proses Simulasi Sistem

    Input data_hasil_simulasi, model_svm

    Output hasil_prediksi

    Logika Proses

    For i=1 (sekali memasukkan postingan)

    Cek model_svm terhadap data_hasil_simulasi

    end for

    3.2.5 Entity Relationship Diagram

    Thread memiliki Post

    Id_thread Judul

    isi status

    Id_post posting

    tipe kelas

    1 N

    Gambar 3-7 Entity Relationship Diagram

    Thread

    PK id_thread

    judul

    isi

    status

    post

    PK id_post

    posting

    tipe

    kelas

    FK1 id_thread

    Gambar 3-8 Tabel Relasi

    Tabel 3-15 Tabel Entitas Thread Atribut Tipe Data Keterangan

    Id_thread Integer Id thread

    Judul Varchar Judul suatu topik

    Isi Varchar Isi topik

    status Integer Status terpilih data

  • 21

    Tabel 3-16 Tabel Entitas Post Atribut Tipe Data Keterangan

    Id_post Integer Id post

    posting Varchar Isi postingan

    Tipe Varchar Tipe data

    Kelas Integer Kelas postingan

    Id_thread Integer Id thread suatu post

  • 22

    4. Implementasi dan Analisis Hasil Pengujian

    4.1 Lingkungan Implementasi Sitem

    4.1.1 Spesifikasi Perangkat Lunak Perangkat lunak yang digunakan untuk membangun aplikasi antara lain:

    1. Sistem Operasi: Windows 7 2. XAMPP 1.7.7 VC9 3. Text Editor : Notepad++ dan Aptana Studio 4. Web browser : Mozilla Firefox 11

    4.1.2 Spesifikasi Perangkat Keras Perangkat keras yang digunakan untuk membangun aplikasi antara lain:

    1. Processor : Intel Core i3 2. Memory : 4GB 3. Hardisk : 500GB 4. Monitor dengan resolusi 1360x768 pixel

    4.2 Pengujian Sistem

    4.2.1 Dataset

    Dataset yang digunakan dalam pengujian sistem ini adalah data forum yang

    berupa thread atau topik pembahasan dalam suatu forum dan juga postingan

    komentar dari anggota forum lainnya. Data didapat dari forum terbesar di

    Indonesia yaitu Kaskus.

    Dalam data ini, dipisahkan menjadi dua bagian data, yaitu data thread dan juga

    data postingan. Data thread ini berisi tentang topik pembahasan yang disajikan

    dalam forum. Sedangkan data postingan berisi komentar-komentar terhadap topik

    tersebut.

    Data postingan dipisahkan kembali menjadi dua bagian, yaitu data training dan

    testing yang memiliki fungsi yang berbeda. Data training digunakan sebagai data

    yang akan digunakan dalam proses learning, sedangkan data testing digunakan

    sebagai data pengujian hasil learning sebelumnya. Pembagian untuk data training

    dan juga testing yaitu 70% data postingan sebagai data training dan 30% sebagai

    data testing.

    Data training berjumlah 280 data yang terdiri dari dua kelas yang berbeda yaitu

    -1 untuk data yang termasuk junk dan juga 1 untuk data yang termasuk non-junk.

    Perbandingan untuk dua kelas tersebut ialah data junk ada sebanyak 158 data

    sedangkan data non-junk sebanyak 122 data.

    Tidak jauh berbeda dengan data training, data testing terdiri dari dua kelas pula

    namun dengan jumlah data yang lebih sedikit. Data testing berjumlah 120 data

    dengan perbandingan untuk dua kelas dalam data testing yaitu data junk ada

    sebanyak 68 data dan data non-junk sebanyak 52 data.

    Penentuan kelas data termasuk junk atau tidak dilakukan secara manual untuk

    kedua data, data training dan data test. Penentuan ini menggunakan informasi

    klasifikasi postingan yang termasuk junk atau tidak berdasarkan aturan dari situs

    penyedia, yaitu Kaskus. Dikarenakan dilakukan secara manual, bisa saja terjadi

  • 23

    human error dalam proses pelabelan data yang menyebabkan karakteristik antara

    data training dan juga data testing berbeda.

    4.2.2 Tujuan Pengujian

    Tujuan dilakukannya pengujian ini adalah sebagai berikut :

    a. Mengetahui pengaruh preprocessing data dalam pembentukan model Support Vector Machine.

    b. Mengetahui preprocessing data terbaik yang dapat diterapkan dalam kasus penanganan spam opinion khususnya untuk filter junk post forum.

    c. Mengetahui pengaruh parameter C pada performansi Support Vector Machine.

    4.2.3 Skenario Pengujian

    Pengujian sistem ini dilakukan dengan beberapa percobaan. Percobaan-percobaan

    ini dilakukan untuk mengetahui pengaruh tiap-tiap parameter pada tiap-tiap

    dataset terhadap performansi sistem. Berikut ini adalah percobaan-percobaan yang

    dilakukan :

    1. Pengolahan data tanpa preprocessing (pembobotan menggunakan tf) 2. Pengolahan data tanpa preprocessing (pembobotan menggunakan tf-idf) 3. Pengolahan data dengan stopword removal (pembobotan menggunakan tf) 4. Pengolahan data dengan stopword removal (pembobotan menggunakan tf-idf)

    Keempat skenario pengujian di atas mampu menjawab hal-hal yang menjadi

    tujuan pengujian pada sistem ini. Dalam keempat skenario di atas, yang menjadi

    pembanding untuk masing-masing skenario pengujian yaitu data hasil

    preprocessing. Preprocessing yang diterapkan dalam pengujian ini berbeda-beda

    dan dapat mempengaruhi hasil pemodelan yang dilakukan oleh sistem. Dari

    keempat skenario tersebut dapat ditarik kesimpulan manakah preprocessing yang

    paling tepat dalam penanganan kasus junk post ini. Semakin banyak

    preprocessing yang dilakukan terhadap data, akan mempengaruhi performansi

    data tersebut dalam sistem. Begitu pula dengan pengaruh parameter C ketika data

    hasil preprocessing berbeda-beda dilakukan pengujian, dapat ditarik kesimpulan

    juga bahwa seberapa pengaruhnya parameter C ini terhadap performansi sistem.

    4.3 Analisis Hasil Pengujian 4.3.1 Analisis Skenario 1 Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh

    parameter C dalam SVM terhadap performansi dataset jika tanpa dilakukan

    preprocessing. Pembobotan yang digunakan dalam skenario ini hanya

    menggunakan TF saja. Penentuan parameter C yang baik dapat dilihat dari hasil

    akurasi cross validation pada data train tersebut. Berikut hasil pengujian pada

    skenario 1 :

  • 24

    Tabel 4-1 Hasil Pengujian Skenario 1 (tanpa preprocessing, pembobotan dengan

    TF)

    Skenario Parameter C Akurasi CV (train) Akurasi (Test)

    1

    1 77.14% 79.17%

    5 79.29% 69.17%

    10 82.86% 66.67%

    15 80.36% 64.17%

    20 80.71% 63.33%

    25 81.43% 63.33%

    30 81.07% 63.33%

    35 81.43% 63.33%

    40 81.79% 63.33%

    45 81.07% 62.50%

    50 81.79% 62.50%

    Rata-rata 80.81% 65.53%

    Dari tabel 4-1, pemilihan parameter C dapat mempengaruhi dalam penentuan

    model hasil klasifikasi. Pengujian skenario 1 menunjukkan bahwa rata-rata

    akurasi cross validation yang dihasilkan saat training data ialah 80.81%. Akurasi

    cross validation berfungsi untuk menentukan parameter C terbaik dari

    serangkaian percobaan. Dari hasil di atas, parameter C terbaik yaitu 10. Namun

    ketika model diuji coba terhadap data testing, nilai C=10 menghasilkan akurasi

    yang lebih buruk dibandingkan C=1. Hal ini terjadi karena karakteristik data yang

    digunakan dalam proses training berbeda dengan testing. Hal ini berdampak

    kepada akurasi yang diberikan oleh model yang telah dibuat sebelumnya tidak

    terlalu baik dalam melakukan klasifikasi data sehingga ketika data dengan

    toleransi tradeoff yang rendah (C=1), memberikan hasil yang baik terhadap data

    testing.

    Gambar 4-1 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 1

    0%

    10%

    20%

    30%

    40%

    50%

    60%

    70%

    80%

    90%

    100%

    1 5 10 15 20 25 30 35 40 45 50parameter C

    Akurasi (Test)

    Akurasi

  • 25

    Berdasarkan grafik di atas, nilai akurasi menunjukkan penurunan jika parameter C

    terus dinaikkan. Hal ini menandakan parameter C yang berfungsi sebagai

    parameter untuk mengatur trade off kesalahan memiliki peranan dalam penentuan

    akurasi. Semakin besar nilai C, akan memberikan penalty yang lebih besar

    terhadap error klasifikasi yang berakibat akurasi data saat dilakukan testing

    menjadi menurun.

    4.3.2 Analisis Skenario 2

    Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh

    parameter C dalam SVM terhadap performansi dataset jika tanpa dilakukan

    preprocessing. Pembobotan yang digunakan dalam skenario ini hanya

    menggunakan TF-IDF. Penentuan parameter C yang baik dapat dilihat dari hasil

    akurasi cross validation pada data train tersebut. Berikut hasil pengujian pada

    skenario 2 :

    Tabel 4-2 Hasil Pengujian Skenario 2 (tanpa preprocessing, pembobotan dengan

    TF-IDF)

    Skenario Parameter C Akurasi CV (train) Akurasi (Test)

    2

    1 79.64% 80.83%

    5 83.93% 79.17%

    10 84.29% 77.50%

    15 84.64% 78.33%

    20 84.29% 77.50%

    25 84.29% 78.33%

    30 83.93% 78.33%

    35 82.86% 78.33%

    40 84.64% 78.33%

    45 84.29% 78.33%

    50 84.29% 78.33%

    Rata-rata 83.83% 78.48%

    Dari tabel 4-2, nilai akurasi cross validation menunjukkan hasil yang lebih baik

    jika dibandingkan dengan skenario 1. Hal ini membuktikan bahwa penerapan

    preprocessing dengan TF-IDF lebih baik jika dibandingkan dengan preprocessing

    dengan menggunakan TF saja. Pengujian skenario 2 menunjukkan bahwa rata-

    rata akurasi cross validation yang dihasilkan saat training data ialah 83.83%.

    Hasil ini lebih baik dibanding akurasi cross validation skenario 1 yang hasilnya

    80.81%. Dari hasil di atas, parameter C terbaik yaitu nilai C sama dengan 15 dan

    40. Penetuan parameter C berguna dalam memberikan tradeoff kesalahan terhadap

    error klasifikasi. Dalam skenario ini, parameter C terlihat hampir merata untuk

    keseluruhan percobaan, berkisar antara 79,64% hingga 84,64%. Perbedaan antara

    akurasi data training maupun testing sekitar 5% saja. Hal ini membuktikan bahwa

    model yang dihasilkan dari proses training mampu mengklasifikasikan data

    testing dengan baik, dengan hasil rata-rata akurasi mencapai 78,48%.

  • 26

    Gambar 4-2 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 2

    Grafik akurasi testing di atas berbeda dengan skenario 1 yang menunjukkan hasil

    penurunan jika parameter C dinaikkan. Dalam skenario 2 ini, parameter C

    menunjukkan penurunan hasil akurasi, namun pada saat C=15 menunjukkan hasil

    akurasi yang lebih baik dibandingkan C=10. Berdasarkan hasil ini, C yang terbaik

    untuk skenario 2 saat C=15. Dibuktikan juga dengan hasil akurasi cross validation

    yang baik saat C=15. Akurasi testing terbaik saat C=1 atau saat C rendah. Hal ini

    terjadi karena jika semakin besar C yang digunakan dalam proses klasifikasi akan

    memberikan trade off kesalahan yang lebih besar, sehingga akurasi dapat

    menurun.

    4.3.3 Analisis Skenario 3

    Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh

    parameter C dalam SVM terhadap performansi dataset dengan melakukan

    penghilangan stopword terhadap dataset. Penghilangan stopword memberikan

    hasil yang berbeda jika dibandingkan dengan skenario-skenario sebelumnya.

    Pembobotan yang digunakan dalam skenario ini yaitu menggunakan TF saja.

    Penentuan parameter C yang baik dapat dilihat dari hasil akurasi cross validation

    pada data train tersebut. Berikut hasil pengujian pada skenario 3 :

    Tabel 4-3 Hasil Pengujian Skenario 3 (penghilangan stopword, pembobotan

    dengan TF)

    Skenario Parameter C

    Akurasi CV

    (train)

    Akurasi

    (Test)

    3

    1 68.21% 66.67%

    5 75.36% 60%

    10 76.43% 58.33%

    15 78.93% 58.33%

    20 79.29% 58.33%

    25 77.86% 58.33%

    0%

    10%

    20%

    30%

    40%

    50%

    60%

    70%

    80%

    90%

    100%

    1 5 10 15 20 25 30 35 40 45 50

    parameter C

    Akurasi (Test)

    Akurasi (Test)

  • 27

    30 78.21% 58.33%

    35 77.50% 58.33%

    40 78.93% 58.33%

    45 80% 58.33%

    50 78.21% 58.33%

    Rata-rata 77.18% 59.24%

    Hasil tabel 4-3 menunjukkan penurunan dalam akurasi, baik akurasi

    menggunakan cross validation, maupun akurasi saat testing. Perbedaan antara

    skenario 3 dan 1 yaitu hanya terletak pada proses penghilangan stopword saja.

    Rata-rata akurasi cross validation pada skenario 1 yaitu 80.81%, sedangkan pada

    skenario 3 ini 77.18%. Penurunan disebabkan oleh kamus stopword yang

    digunakan dalam skenario ini yang umumnya kamus tersebut digunakan saat

    pengklasifikasian kasus lain, sehingga apabila diterapkan dalam kasus junk post

    ini menunjukkan hasil yang tidak terlalu baik. Nilai parameter C yang terbaik

    berdasarkan tabel di atas yaitu C=45. Nilai parameter ini memberikan perubahan

    yang berbeda dengan skenario sebelumnya karena nilai C dalam skenario-

    skenario sebelumnya tidak sebesar nilai C ketika dilakukan preprocessing. Hal ini

    menunjukkan SVM memberikan threshold penalty yang cukup besar jika

    dilakukan preprocessing pada data.

    Gambar 4-3 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 3

    Grafik di atas menunjukkan penurunan untuk setiap parameter C yang terus naik.

    Hasil ini sama dengan hasil pada skenario 1 dimana hasilnya pun menurun untuk

    setiap parameter C yang dinaikkan. Tidak jauh berbeda dengan scenario 1, grafik

    menurun dikarenakan semakin besar nilai C, akan memberikan penalty yang lebih

    besar terhadap error klasifikasi yang berakibat akurasi data saat dilakukan testing

    menjadi menurun.

    0%

    10%

    20%

    30%

    40%

    50%

    60%

    70%

    80%

    90%

    100%

    1 5 10 15 20 25 30 35 40 45 50

    parameter C

    Akurasi (Test)

    Akurasi (Test)

  • 28

    4.3.4 Analisis Skenario 4

    Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh

    parameter C dalam SVM terhadap performansi dataset dengan melakukan

    penghilangan stopword terhadap dataset. Penghilangan stopword memberikan

    hasil yang berbeda jika dibandingkan dengan skenario-skenario sebelumnya.

    Pembobotan yang digunakan dalam skenario ini yaitu menggunakan TF-IDF.

    Penentuan parameter C yang baik dapat dilihat dari hasil akurasi cross validation

    pada data train tersebut. Berikut hasil pengujian pada skenario 4 :

    Tabel 4-4 Hasil Pengujian Skenario 4 (penghilangan stopword, pembobotan

    dengan TF-IDF)

    Skenario Parameter C Akurasi CV (train) Akurasi (Test)

    4

    1 70.36% 70.83%

    5 77.86% 67.50%

    10 76.43% 66.67%

    15 76.79% 66.67%

    20 77.50% 66.67%

    25 77.86% 66.67%

    30 77.86% 66.67%

    35 77.14% 66.67%

    40 76.43% 66.67%

    45 76.43% 66.67%

    50 78.57% 67.50%

    Rata-rata 76.66% 67.20%

    Hasil tabel di atas menunjukkan penurunan dalam akurasi cross validation jika

    dibandingkan dengan skenario 3. Namun berbeda ketika dilakukan testing

    terhadap data. Akurasi lebih tinggi jika dibandingkan dengan skenario 3. Nilai

    parameter C dalam kasus ini cukup besar, yaitu C=50 yang memberikan akurasi

    cross validation paling besar. Proses penghilangan stopword mengakibatkan SVM

    menghasilkan nilai parameter C=50 yang besar. Parameter C yang besar berarti

    SVM memberikan tradeoff yang cukup besar terhadap error yang dihasilkan.

    Jika dibandingkan dengan skenario 2, perbedaan terletak pada penghilangan

    stepword saja. Hasil training antara skenario 2 dan 4 yaitu 83.83% dan 76.66%.

    Penghilangan stopword mengakibatkan akurasi menurun 6% dari sebelumnya.

    Karakteristik data ketika dilakukan penghilangan stopword menghasilkan data

    yang berisi kata-kata yang tidak terlalu umum digunakan, sehingga memberikan

    data yang tidak sebaik data tanpa penghilangan stopword. Data postingan pada

    forum ketika dilakukan penghilangan stopword akan menghilangkan kata-kata

    yang sangat umum digunakan dalam diskusi forum. Semakin banyak kata yang

    dihilangkan, maka nilai urgensitas dari suatu postingan bisa hilang, sehingga data

    menjadi buruk untuk dilakukan klasifikasi.

  • 29

    Gambar 4-4 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 4

    Grafik diatas menunjukkan penurunan akurasi testing di setiap parameter C yang

    dinaikkan. Namun ketika C=50, grafik naik karena hasil parameter C yang terbaik

    saat C=50 sehingga pada proses testing data, memberikan hasil grafik yang naik

    dibanding parameter C sebelumnya. Walaupun hasil akurasi naik pada C=50,

    namun hasil terbesar tetap ketika C=1.

    4.3.5 Analisis Keseluruhan Skenario

    Gambar 4-5 Grafik Akurasi CV(Train) dan Akurasi (Test) Keseluruhan

    0%

    10%

    20%

    30%

    40%

    50%

    60%

    70%

    80%

    90%

    100%

    1 5 10 15 20 25 30 35 40 45 50

    parameter C

    Akurasi (Test)

    Akurasi (Test)

    0%

    10%

    20%

    30%

    40%

    50%

    60%

    70%

    80%

    90%

    1 2 3 4

    skenario

    Perbandingan Skenario Keseluruhan

    Akurasi CV (train)

    Akurasi (Test)

  • 30

    Berdasarkan analisis grafik 4-5, skenario yang terbaik dalam pemecahan masalah

    junk post ini yaitu skenario 2. Dalam skenario ini, data tidak dilakukan

    penghilangan stopword dan dilakukan pembobotan dengan menggunakan TF-IDF.

    Akurasi training maupun testing menghasilkan hasil yang terbaik jika

    dibandingkan skenario lainnya. Selain itu juga, skenario 2 ini lebih baik

    dibandingkan skenario lain yang dilakukan penghilangan stopword terlebih

    dahulu. Penerapan preprocessing dalam kasus ini akan menghilangkan kata-kata

    yang tidak dianggap penting dalam suatu postingan forum. Data postingan pada

    forum ketika dilakukan penghilangan stopword akan menghilangkan kata-kata

    yang sangat umum digunakan dalam diskusi forum. Semakin banyak kata yang

    dihilangkan, maka nilai urgensitas dari suatu postingan bisa hilang, sehingga data

    menjadi buruk untuk dilakukan klasifikasi. Dalam kasus penerapan junk post

    forum ini, kata-kata dalam forum tidak sebaku artikel bahasa indonesia pada

    umumnya, sehingga apabila diterapkan proses penghilangan stopword ini,

    memberikan hasil yang tidak baik berdasarkan hasil pengujian ini.

  • 31

    5. Kesimpulan dan Saran

    5.1 Kesimpulan Berdasarkan pengujian yang dilakukan dalam Tugas Akhir ini, dapat disimpulkan

    bahwa :

    a. Semakin banyak proses preprocessing yang dilakukan dalam penanganan junk post ini, akan berdampak buruk kepada sistem penanganan junk post

    forum.

    b. Proses penghilangan stopword berpengaruh terhadap hasil klasifikasi SVM. Klasifikasi dengan penghilangan stopword memiliki akurasi Cross

    Validation yang lebih rendah jika dibandingkan pengolahan tanpa

    preprocessing. Terbukti juga dengan akurasi testing yang dilakukan

    terhadap data test.

    c. Perubahan nilai parameter C dalam metode SVM tidak berpengaruh secara signifikan. Namun pemilihan parameter C yang terlalu kecil menurunkan

    nilai akurasi cross validation dalam kasus penanganan junk post ini.

    d. Proses preprocessing yang tepat berdasarkan hasil pengujian Tugas Akhir ini yaitu tidak dilakukan preprocessing pada data dan dengan pembobotan

    TF-IDF. Hal ini karena karakteristik data forum yang berbeda dengan

    proses text mining lainnya.

    e. Dilihat dari nilai akurasi dari proses pengujian di atas, metode SVM dapat menentukan postingan yang termasuk junk atau tidak.

    5.2 Saran Saran yang diperlukan untuk pengembangan sistem lebih lanjut adalah sebagai

    berikut :

    a. Melakukan analisis lebih lanjut mengenai proses preprocessing pada data, seperti melakukan stemming atau penanganan thesaurus dalam sistem.

    b. Melakukan penambahan data terhadap sistem, baik data thread maupun juga keberagaman data dari forum-forum lain

    c. Melakukan analisis spam opinion dengan menggunakan metode klasifikasi lainnya seperti nave bayes, neural network atau maximum entrophy.

  • 32

    Daftar Pustaka

    [1] Adiwijaya, Igg. 2006. Text Mining dan Knowledge Discovery. Komunitas Data mining Indonesia & Soft-computing Indonesia.

    [2] Chen Jinxiu, Ji,Tan. 2005. Unsupervised Feature Selection for Relation Extraction. Singapore: National University of Singapore.

    [3] Chen Rung-Ching & Chen Su-Ping. 2007. Intrusion Detection Using A Hybrid Support Vector Machine Based on Entropy and TF-IDF. Taiwan: Chaoyang University of Technology.

    [4] Cios, Krzystof J., dkk. 2007. Data Mining A Knowledge Discovery Approach, New York: Springer.

    [5]

    Cristianini Nello & John Shawe-Taylor. 2000. An Introduction to Support Vector Machines and Other Kernel-Bases Learning Methods. UK: Cambridge Press.

    [6] Dewi Rani Charisma. 2005. Pengelompokan Berita Berbahasa Indonesia menggunakan Clustering. Bandung:STT Telkom.

    [7] DigilibITTelkom. 2012. TFIDF. Diakses pada 2 April 2012 di http://digilib.ittelkom.ac.id/index.php?option=com_content&view=articl

    e&id=996:tfidf&catid=6:internet&Itemid=14.

    [8] Dumais, S., J. Platt, D. Heckman, and M. Sahami. 1998. Inductive Learning Algorithms and Representations for Text Categorization. 7th International Conference on Information and Knowledge Management.

    [9] Firdaus, Yanuar. 2008. Vector Methods. Bandung: IT Telkom

    [10] Forman George. 2006. BNS Feature Scaling: An Improved Representation over TFIDF for SVM Text Classification. Hewlett-Packard Labs Tech Report

    [11] Hsu, Chih-Wei, Chih-Chung Chang, dan Chih-Jen Lin. 2010. A Practical Guide to Support Vector Classification. Taiwan: National Taiwan University

    [12] Joachims Thorsten. 1997. Text Categorization with Support Vector Machines: Learning with Many relevant Features. Dortmund: Universitt Dortmund.

    [13] Nugroho. A. N. (2008). Support Vector Machine: Paradigma Baru dalam Softcomputing. KNSI 2008; Bali.

  • 33

    [14] Nugroho Satriyo Anto, Arief Budi Witarto, dan Dwi Handoko. 2003. Support Vector Machine-Teori dan Aplikasinya dalam Bioinformatika dari http://ilmukomputer.com

    [15] Prabowo, Rudy and Thelwall, Mike. Sentiment Analysis: A Combined Approach. United Kingdom: School of Computing and Information Technology.

    [16] Salton, G. 1989. Automatic Text Processing: The Transformation, Analysis, and Retrieval of Information by Computer. Addison-wesley, Reading, Pennsylvania

    [17] Sari Khrisna Dini Yunita. 2006. Kategorisasi Teks dengan Metode Klasifikasi Support Vector Machine (SVM). Bandung: STTTelkom.

    [18] Xu Guandong, Yanchun Zhang, and Lin Li. 2011. Web Mining and Social Networking, Victoria: Springer.

  • 34

    Lampiran A: Data Pengujian

    Data Thread

    Dewasa ini, semakin banyak inovator-inovator handal yang lahir, begitu pun

    dengan para kreator. Tapi sayangnya siklus ini juga dibarengi dengan timbulnya

    para plagiator dan follower. Berarti ada kemajuan juga ada kekurangan. Di satu

    sisi kita bangga dengan lahirnya para inovator juga kreator, sisi lain, mengundang

    miris melihat lebih banyak yang menjadi plagiator ato malah berpuas sebagai

    follower.

    Kalo menurut saya sih sangat disayangkan ketika kita hanya mampu memplagiat

    atau hanya diam bertepuk tangan sebagai follower sementara banyak hal yang

    bisa kita lakukan. Oiya, sebelum lanjut, mendukung suatu karya itu beda lho

    dengan menjadi follower. Pun berinovasi karena pans melihat orang sukses juga

    beda dengan plagiator, apalagi di Indonesia.

    Saya pernah baca kalo daya tampung otak manusia itu lebih besar daripada hard

    disk berukuran tetabyte. Dan katanya, sampai manusia mati, daya yang di pakai

    otak untuk menyimpan memori dan bekerja itu tidak sampe seperempatnya.

    Einstein saja yang katanya manusia terpintar "cuma" menggunakan sepertiga

    kemampuan memori otaknya. Simpel kata, ketika mati, otak kita masih banyak

    menyisakan space yang belum terpakai. Dan sangat disayangkan sekali, dengan

    daya tampung otak yang sebesar itu, kita hanya mampu menjadi

    plagiator/follower.

    Lalu bagaimana dengan saya?

    Dari dulu saya mencoba menekankan pada diri sendiri untuk lebih menekan otak

    pada titik batas tertinggi. Mencoba lebih kreatif dan inovatif. Meyakinkan diri

    saya untuk bisa dan bisa. Kalau orang lain bisa kreatif, kenapa kita ga? Toh otak

    manusia dimana-mana sama kok, baik ukurannya, bahan dasarnya, juga

    posisinya. Yang membedakan hanya cara kita untuk menggunakannya. Juga

    mindset kita kepada otak.

    Saya suka mencontoh konsep orang, tapi bukan untuk di pakai mentah-mentah.

    Saya coba sederhanakan atau malah saya buat lebih besar jika mampu. Saya suka

    mencari referen