Analisis sentimen pada lirik lagu menggunakan metode multinomial naive bayes.

(1)

Lirik merupakan salah satu media komunikasi yang sering digunakan untuk menyampaikan perasaan dari seseorang. Salah satunya yaitu melalui lirik lagu yang dapat dijumpai oleh seluruh masyarakat melalui media online, buku dan lainnya. Lirik lagu ini digunakan sebagai data yang diperoleh melalui beberapa situs website, lirik lagu yang telah disalin akan disimpan dengan format ekstensi *.txt agar mampu diolah oleh sistem.

Agar mempermudah dalam pemerolehan informasi data lirik lagu yang dicari, maka dilakukan pengklasifikasian data teks. Penelitian ini bertujuan untuk memudahkan pemilihan lagu yang baik dan tidak baik terhadap anak. Fungsi klasifikasi pada penelitian ini dibagi dalam dua klasifikasi yaitu baik dan tidak baik. Proses yang akan dilalui oleh data diantaranya membaca data, tokenizing, normalization, stop word, stemming, sorting dan grouping. Sistem

ini akan menggunakan vektor ciri berupa TF (Term Frequency) yang merupakan jumlah

kemunculan suatu kata dalam sebuah dokumen.

Proses klasifikasi teks lirik lagu menggunakan algoritma Multinomial Naïve Bayes. Harapannya adalah berdasarkan pengelompokan yang terbentuk melalui proses klasifikasi ini, dapat diketahui lagu yang baik dan lagu yang tidak baik untuk anak. Dengan adanya pengelompokan ini dapat membantu dalam menentukkan lagu yang baik dan tidak baik untuk anak.


(2)

A song is one of the media that is often used to express feelings for a person. Song texts amongst other can be found by all people online, in books and in other media. The songs used in this research were obtained from various online media and were transcribed and saved with *.txt extension so that it can be processed through the system.

To facilitate the collection of information on songs that were searched, the text was classified. The purpose of this research is to facilitate the selection of songs that are appropriate and inappropriate for children. The classification function in this research was divided into two groups; appropriate and inappropriate songs for children. The data processing includes reading of the data, tokenizing, normalization, stop word, stemming, calculation of data frekuensi, sorting and grouping. This system uses vector feature Term Frequency, meaning the number of times a certain word appears in certain data.

The classification process of song texts used a Multinominal Naïve Bayes algorithm. The expectation is that the grouping based on this classification will specify which song is

appropriate and which song is inappropriate for children. The grouping will assist in deciding which songs are appropriate and inappropriate for children.


(3)

i HALAMAN JUDUL

ANALISIS SENTIMEN PADA LIRIK LAGU

MENGGUNAKAN METODE MULTINOMIAL NAÏVE BAYES

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh

Elsa Rika Octaviana

115314079

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(4)

ii HALAMAN JUDUL

ANALYSIS SENTIMENT FOR SONG LYRICS

BY USING MULTINOMIAL NAÏVE BAYES METHOD

A Final Project

Presented as Partial Fulfillment of The Requirements

To Obtain Sarjana Komputer Degree

In Informatics Engineering Study Program

By

Elsa Rika Octaviana

115314079

INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY

YOGYAKARTA 2015


(5)

iii


(6)

iv


(7)

v

HALAMAN PERSEMBAHAN

Tugas akhir ini saya persembahkan kepada:

Tuhan Yesus yang telah memberikan berkat, rahmat, perlindungan serta arahan yang terbaik dalam hidupku.

Ayahanda dan Ibunda tercinta Saudara dan saudari yang terkasih.


(8)

vi


(9)

vii

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS


(10)

viii

KATA PENGANTAR

Puji dan syukur penulis panjatkan atas kehadirat Tuhan Yang Maha Esa atas berkat, rahmat serta kasih-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul “Analisis Sentimen pada Lirik Lagu Menggunakan Metode Multinomial Naive Bayes”.

Penulisan skripsi ini bertujuan untuk memenuhi sebagian syarat memperoleh gelar sarjana komputer program studi S1 jurusan Teknik Informatika Universitas Sanata Dharma. Penulis menyadari bahwa skripsi ini masih jauh dari sempurna oleh sebab itu penulis mengharapkan kritik dan saran yang bersifat membangun dari semua pihak demi kesempurnaan skripsi ini.

Selesainya skripsi ini tidak lepas dari peran penting berbagai pihak, sehingga pada kesempatan ini penulis dengan segala kerendahan hati serta rasa hormat

mengucapkan terima kasih yang sebesar – besarnya kepada semua pihak yang telah

memberikan dukungan baik secara langsung maupun tidak langsung kepada penulis dalam penyusunan skripsi ini hingga selesai, terutama kepada yang saya hormati:

1. Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku pembimbing yang sabar

memberikan pengarahan serta solusi dalam pengerjaan skripsi ini hingga selesai.

2. Yang tersayang orang tua penulis yaitu Marlan Rikeh, S.Pd., M.Pd. dan

Frederica Ujiana, S.Pd yang selalu rela berkorban, mendoakan serta memberikan motivasi baik dari segi moril maupun material kepada penulis sehingga dapat terselesaikan skripsi ini dengan baik.

3. Yang terkasih saudara dan saudari yaitu Frederikus Rinaldo dan Cyintia

Septiana Rini yang telah mendoakan.

4. Yang terkasih Gersom Jalaq yang telah meluangkan waktu serta membantu

dalam penyelesaian skripsi ini dengan baik.

5. Seluruh keluarga besar yang yang telah memberikan dukungan serta motivasi

baik dari segi moril dan material sehingga penyelesaian skripsi penulis berjalan dengan lancar.


(11)

(12)

x ABSTRAK

Lirik merupakan salah satu media komunikasi yang sering digunakan untuk menyampaikan perasaan dari seseorang. Salah satunya yaitu melalui lirik lagu yang dapat dijumpai oleh seluruh masyarakat melalui media online, buku dan lainnya. Lirik lagu ini digunakan sebagai data yang diperoleh melalui beberapa situs website, lirik lagu yang telah disalin akan disimpan dengan format ekstensi *.txt agar mampu diolah oleh sistem.

Agar mempermudah dalam pemerolehan informasi data lirik lagu yang dicari, maka dilakukan pengklasifikasian data teks. Penelitian ini bertujuan untuk memudahkan pemilihan lagu yang baik dan tidak baik terhadap anak. Fungsi klasifikasi pada penelitian ini dibagi dalam dua klasifikasi yaitu baik dan tidak baik. Proses yang akan dilalui oleh data diantaranya membaca data, tokenizing, normalization, stop word, stemming, sorting dan grouping. Sistem ini akan

menggunakan vektor ciri berupa TF (Term Frequency) yang merupakan jumlah

kemunculan suatu kata dalam sebuah dokumen.

Proses klasifikasi teks lirik lagu menggunakan algoritma Multinomial Naïve Bayes. Harapannya adalah berdasarkan pengelompokan yang terbentuk melalui proses klasifikasi ini, dapat diketahui lagu yang baik dan lagu yang tidak baik untuk anak. Dengan adanya pengelompokan ini dapat membantu dalam menentukkan lagu yang baik dan tidak baik untuk anak.


(13)

xi ABSTRACT

A song is one of the media that is often used to express feelings for a person. Song texts amongst other can be found by all people online, in books and in other media. The songs used in this research were obtained from various online media and were transcribed and saved with *.txt extension so that it can be processed through the system.

To facilitate the collection of information on songs that were searched, the text was classified. The purpose of this research is to facilitate the selection of songs that are appropriate and inappropriate for children. The classification function in this research was divided into two groups; appropriate and inappropriate songs for children. The data processing includes reading of the data, tokenizing, normalization, stop word, stemming, calculation of data frekuensi, sorting and grouping. This system uses vector feature Term Frequency, meaning the number of times a certain word appears in certain data.

The classification process of song texts used a Multinominal Naïve Bayes algorithm. The expectation is that the grouping based on this classification will specify which song is appropriate and which song is inappropriate for children. The grouping will assist in deciding which songs are appropriate and inappropriate for children.


(14)

xii DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN JUDUL ... ii

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ...iv

HALAMAN PERSEMBAHAN ...iv

PERNYATAAN KEASLIAN KARYA ...vi

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ... vii

KATA PENGANTAR ... viii

ABSTRAK ... x

ABSTRACT ... xi

DAFTAR ISI... xii

DAFTAR TABEL ... xiv

DAFTAR GAMBAR ... xv

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 3

1.4 Tujuan Penelitian ... 3

1.5 Metodologi Penelitian ... 3

BAB II LANDASAN TEORI ... 5

2.1 Analisis Sentimen ... 5

2.2 Pemerolehan Informasi ... 5

2.3 Indexing ... 7

2.4 Porter Stemmer ... 9

2.4.1 Tentang Porter Stemmer ... 9

2.4.2 Porter Stemmer Bahasa Indonesia ... 9

2.5 Klasifikasi Teks ... 13

2.6 Naive Bayes ... 14

2.7 Multinomial Naive Bayes... 14

2.8 Penerapan Multinomial Naive Bayes Pada Klasifikasi Teks ... 16

2.9.1 Data Training ... 16


(15)

xiii

BAB III PERANCANGAN SISTEM ... 36

3.1 Gambaran Umum Sistem ... 36

3.2 Teknik Analisis Data ... 37

3.2.1 Metode Pengumpulan Data ... 37

3.2.1 Pengolahan Data ... 38

3.2.2 Preprocessing Data ... 39

3.2.3 Klasifikasi Data ... 40

3.3 Akurasi Data ... 41

BAB IV IMPLEMENTASI ... 43

4.1 Antarmuka Menu ... 43

4.2 Antarmuka Training ... 43

4.3 Antarmuka Testing ... 44

BAB V PENGUJIAN ... 48

5.1 Pengujian Data ... 48

5.1.1 Pengujian Akurasi... 51

5.2 Analisis Pengujian ... 52

BAB VI KESIMPULAN DAN SARAN ... 60

6.1 Kesimpulan ... 60

6.2 Saran ... 60

DAFTAR PUSTAKA ... 62


(16)

xiv

DAFTAR TABEL

Tabel 2.1 Aturan 1 Inflection Particle. ... 10

Tabel 2.2 Aturan 2 Inflection Possessive Pronouns. ... 11

Tabel 2.3 Aturan 3 Fisrt Order of Derivational Prefixs. ... 11

Tabel 2.4 Aturan 4 Second Order of Derivational Prefixs. ... 12

Tabel 2.5 Aturan 5 Derivational Suffixes. ... 12

Tabel 2.6 Aturan 6 Suku Kata dalam Bahasa Indonesia ... 13

Tabel 2.7 Tokenizing Training ... 17

Tabel 2.8 Normalization Training ... 18

Tabel 2.9 Stop Word Training ... 19

Tabel 2.10 Stemming Training ... 20

Tabel 2.11 Daftar Kata beserta Frekuensi Kata Training ... 21

Tabel 2.12 Hasil Sorting secara Ascending Training ... 22

Tabel 2.13 Hasil Grouping dengan Kata yang Sama Training ... 23

Tabel 2.14 Prior Probabilitas Training ... 24

Tabel 2.15 Conditional Probabilitas Training ... 24

Tabel 2.16 Tokenizing Testing ... 26

Tabel 2.17 Normalization Testing... 27

Tabel 2.18 Stop Word Testing ... 28

Tabel 2.19 Stemming Testing ... 29

Tabel 2.20 Daftar Kata beserta Frekuensi Kata Testing ... 30

Tabel 2.21 Hasil Sorting secara Ascending Testing ... 31

Tabel 2.22 Hasil Grouping dengan Kata yang Sama Testing ... 32

Tabel 2.23 Prior Probabilitas Testing ... 33

Tabel 2.24 Hasil Proses Matching antara Model dengan Data Testing ... 33

Tabel 2.25 Hasil Matching beserta dengan Nilai Conditional Probabilitas Testing . 34 Tabel 2.26 Hasil Perkalian Nilai Conditional Probabilitas dengan Frekuensi Kata Testing ... 35

Tabel 2.27 Hitung Probabilitas Testing ... 35

Tabel 3.1 Tabel Data Training dan Testing ... 38

Tabel 3.2 Tabel Confusion Matrix ... 41

Tabel 5.1 Sebelum Diolah Sistem... 48

Tabel 5.2 Setelah Diolah Sistem ... 49

Tabel 5.3 Tabel Confusion Matrix ... 51

Tabel 5.4 Perbandingan Data Testing Terhadap Model ... 54

Tabel 5.5 Batasan Frekuensi Kata... 55


(17)

xv

DAFTAR GAMBAR

Gambar 2.1 Model Pemerolehan Informasi (Bates, 1989). ... 5

Gambar 2.2 Proses Porter Stemmer untuk Bahasa Indonesia (Tala, 2003). ... 10

Gambar 3.1 Diagram Block Proses Klasifikasi ... 36

Gambar 4.1 Menu ... 43

Gambar 4.2 Input Data ... 43

Gambar 4.3 Hasil Stemming ... 44

Gambar 4.4 Ambil File ... 44

Gambar 4.5 Hasil Klasifikasi ... 45

Gambar 4.6 Penentu Kategori Lagu ... 45

Gambar 4.7 Akurasi Sistem ... 45

Gambar 4.8 Nomor Lagu ... 46

Gambar 4.9 Progres Sistem dan Reset ... 46

Gambar 4.10 Isi Teks Lagu ... 47

Gambar 5.1 Jumlah Kata ... 52


(18)

1 1. BAB I PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi yang semakin pesat membuat manusia melakukan

berbagai macam karya cipta yang baru dan inovatif. Pada dunia industri musik,

terutama pada lirik lagu yang dapat mempengaruhi terhadap perkembangan anak.

Pengawasan yang kurang dari orang tua membuat anak bebas melakukan banyak

hal baik itu bersifat hal positif maupun negatif. Tanpa disadari musik telah

mempengaruhi kehidupan sosial masyarakat khususnya untuk anak. Musik dapat

dikatakan sebagai sebuah media dalam menyampaikan pesan oleh penulis.

Dalam penelitian ini penggunaan lirik lagu sebagai acuan untuk

mengklasifikasikan lagu dalam dua kelas yaitu lagu yang baik atau tidak baik untuk

anak. Pemilihan lirik lagu sebagai acuan klasifikasi dikarenakan pada lirik lagu

terdapat kata yang mengandung suatu ungkapan perasaan atau makna tertentu yang

disampaikan oleh pembicara atau penulis untuk pendengar. Sehingga lirik lagu

dapat dijadikan sebagai salah satu acuan untuk menggali data dalam mengetahui

ketepatan akurasi dari penggunaan algoritma Naive Bayes dalam klasifikasi data

teks.

Sebelumnya pernah dilakukan penelitian mengenai oponion mining pada lirik

lagu (Shu, 2010). Penelitian tersebut adalah mengklasifikasikan lagu dengan lirik

berdasarkan kepopuleran lagu pada tahun tertentu. Pada penelitian ini

menggunakan teori Natural Language Processing. Hal berbeda pada penelitian ini,


(19)

2 anak dengan menggunakan analisis sentimen terhadap hasil klasifikasi lagu yang

baik dan tidak baik. Analisis sentimen (Go & Bhayani, 2009) adalah proses

memahami, mengekstrak dan mengolah data tekstual secara otomatis untuk

mendapatkan informasi. Analisis sentimen merupakan salah satu bagian dari

opinion mining.

Berkenaan dengan penggalian data dengan menggunakan analisis sentimen

maka digunakan metode Multinomial Naive Bayes. Klasifikasi yang akan

dilakukan dengan mengklasifikasikan data berdasarkan jumlah kemunculan kata

dalam teks lirik lagu. Kegiatan klasifikasi data pada lirik lagu ini dapat

menggunakan metode Multinomial Naive Bayes untuk mengklasifikasikan data

sehingga dapat diperoleh hasil analisis sentimen terhadap klasifikasi lagu yang baik

atau tidak baik untuk anak.

1.2 Rumusan Masalah

Berdasarkan pada latar belakang yang telah dipaparkan, perumusan masalah

akan dijabarkan sebagai berikut:

1. Bagaimana mengklasifikasikan lagu untuk analisis sentimen lagu yang baik

atau tidak baik untuk anak.

2. Bagaimana ketepatan akurasi klasifikasi data lirik lagu untuk menentukan

analisis sentimen lagu baik atau tidak untuk anak dengan menggunakan metode


(20)

3 1.3 Batasan Masalah

Dalam penulisan ini batasan – batasan permasalahan yang akan dibahas yaitu:

1. Bahasa yang digunakan dalam data berupa bahasa Indonesia.

2. Klasifikasi lagu ditujukan pada anak usia 5 – 10 tahun.

1.4 Tujuan Penelitian

Tujuan penulisan ini adalah memperoleh hasil analisis sentimen

terhadap klasifikasi lagu baik atau tidak baik untuk anak dengan

menggunakan Multinomial Naive Bayes.

1.5 Metodologi Penelitian

Langkah – langkah yang digunakan untuk melakukan penelitian ini adalah

sebagai berikut:

1. Studi Pustaka

Penggunaan studi pustaka pada penelitian ini adalah untuk mencari sumber –

sumber mengenai metode Multinomial Naive Bayes untuk mengklasifikasikan

data teks.

2. Observasi

Penggunaan observasi pada penelitian adalah untuk melakukan pencarian data


(21)

4

3. Antarmuka

Penggunaan antarmuka pada penelitian adalah mempermudah melakukan

analisis sentimen terhadap klasifikasi lagu yang baik dan tidak baik untuk anak.

4. Pengujian

Penggunaan pengujian pada penelitian berikut adalah untuk mengukur

ketepatan akurasi klasifikasi data teks dengan menggunakan metode


(22)

5 2. BAB II

LANDASAN TEORI

2.1 Analisis Sentimen

Analisis sentimen atau opinion mining merupakan proses memahami,

mengekstrak dan mengolah data tekstual secara otomatis untuk mendapatkan

informasi sentimen yang terkandung dalam suatu kalimat opini. Analisis sentimen

dilakukan untuk melihat pendapat atau kecenderungan opini terhadap sebuah

masalah atau objek oleh seseorang, apakah cenderung beropini negatif atau positif.

2.2 Pemerolehan Informasi

Pemerolehan informasi atau biasa dikenal dengan Information Retrieval

mengacu pada pengambilan data terstruktur yang berisi bahasa teks alami. Data

yang dapat diolah dalam pemerolehan informasi diantaranya teks, gambar, video,

audio dan lainnya. Pemerolehan informasi fokus pada pengambilan data teks alami,

karena terdapat tekanan penting dan banyaknya data tekstual dalam internet dan

data pribadi.

Document Document

Representation Query

Information Need

Matching


(23)

6 1. Document

Document merupakan kumpulan informasi yang dibutuhkan oleh pengguna.

Pada penelitian ini data yang dimaksud adalah data teks pada lirik lagu yang

akan diklasifikasikan berdasarkan kata.

2. Document Representastion

Document representation merupakan kumpulan informasi yang telah

direpresentasikan atau diolah sesuai dengan kebutuhan yang diinginkan oleh

pengguna. Pada penelitian ini proses yang dilakukan untuk mendapatkan

document representation tersebut yaitu melalui proses indexing.

3. Query

Query merupakan proses merepresentasikan informasi yang dibutuhkan oleh

pengguna sehingga menghasilkan sebuah query. Pengertian secara umum

query merupakan interaksi antara pengguna dan komputer, sehingga

menghasilkan suatu pemahaman terhadap informasi yang dibutuhkan oleh

pengguna.

4. Information Need

Informastion need merupakan kebutuhan pengguna mengenai suatu informasi

yang belum jelas atau belum dipahami.

5. Matching

Matching merupakan sebuah proses untuk membandingkan query dengan

indexed document yang diperoleh melalui proses pencocokan. Tujuan dalam proses matching tersebut berguna dalam menemukan data teks yang sesuai.

Hasil proses matching tersebut berupa daftar peringkat (rangking) dalam data.


(24)

7 informasi yang dibutuhkan. Pada penelitian ini yang diharapkan adalah

perbandingan mengenai lagu yang akan diklasifikasikan menggunakan model

berdasarkan hasil training dengan menggunakan Multinomial Naive Bayes

sehingga hasil yang didapatkan sesuai.

2.3 Indexing

Langkah – langkah untuk membangun sebuah indeks dalam data teks menurut

Christopher dan Raghavan:

1. Tokenizing

Tokenizing merupakan proses pemisahan karakter yang muncul dalam suatu

teks

Input: Andi, mari kita berangkat sekarang Juga !

Output:

Andi mari kita berangkat sekarang juga !

Tokenizing:

Titik (.) Kurung siku ([]) Kurung kurawal ({})

Petik (“) Sign (@ _ ) Operator matematika (+ - * / = <>)

Titik dua (:) Kurung ( ( ) ) Karakter special ( | & ~)

Koma (,) Titik koma (;)

2. Normalization

Normalization merupakan proses menyamakan ejaan dalam sebuah teks yang memiliki berbagai macam ejaan dengan arti atau makna yang sama. Misal, t’lah,


(25)

8 tlah, atau Telah; pada tiga kata tersebut terdapat penulisan kata yang berbeda tetapi

memiliki makna atau arti yang sama sehingga diganti menjadi telah.

3. Stop Word

Stop word merupakan proses menghilangkan kata pada data yang tidak

memiliki arti atau makna yang mempengaruhi proses klasifikasi sehingga

mendapatkan hasil akurasi yang lebih tepat. Stop word didapat dari hasil tokenizing

dan normalization.

stop word:

abang ada adalah adik agar ah akan aku alih anak andaikan antara apabila apalagi

asalkan atas atau ayah bagai bahkan bahwa bak biar biarpun bibi cicit cucu dan

daripada demi demikian dengan di dia du engkau hanya ho hoo ialah ibarat ibu ini

ipar itu jika jikalau kakak kakek kalau kami kamu kanda karena ke kemudian

kendati kendatipun keponakan ketika la lagi lagipula laksana maka manakala

maupun melainkan menantu menjadi mereka mertua meskipun namun nenek oh

oleh om ooo pada padahal paman pun sambil sampai seakan seandainya sebab

sebagai sebagaimana sebelum sedangkan sedari sehingga sehubungan sejak sekali

sekalipun sekiranya selagi selain selama selesai semenjak sementara seolah seperti

sepupu seraya serta sesudah setelah setelah seusai sewaktu sungguh sungguhpun

supaya tanpa tante tatkala tetapi tidak umpamanya untuk walau walaupun yaitu

yakni yang

4. Stemming

Stemming merupakan proses menghilangkan kata imbuhan pada setiap kata

seperti awalan, akhiran, dan sisipan sehingga diperoleh kata dasar. Dalam proses


(26)

9

5. Sorting dan Grouping

Proses sorting dan grouping akan dilakukan setelah stemming dilakukan.

Data yang diperoleh akan diurutkan mulai dari abjad a sampai dengan z.

2.4 Porter Stemmer

2.4.1 Tentang Porter Stemmer

Porter Stemmer (Porter, 2006) merupakan sebuah algoritma yang digunakan

untuk melakukan proses menghapus akhiran infeksional dan morfologi yang umum

pada kata dalam Bahasa Inggris. Terutama, penggunaan porter stemmer sebagai

proses normalisasi pada kata yang biasa digunakan pada saat membangun sebuah

pemerolehan informasi (Information retrieval).

Algoritma porter stemmer didasarkan pada ide akhiran dalam Bahasa Inggris,

secara umum terdiri dari kombinasi akhiran yang sederhana. Proses pada algoritma

porter stemmer akan melalui beberapa tahapan, simulasi proses infleksional dan

derivasional pada sebuah kata.

Pada tahapan tersebut, sebuah akhiran dihapus melalui aturan subsitusi, aturan

subsitusi menerapkan pada suatu kondisi harus terpenuhi secara keseluruhan.

Dalam suatu kondisi kata dasar yang diakhiri dengan huruf mati maupun huruf

hidup, maka panjang pada kata dasar yang telah dihasilkan disebut dengan measure.

2.4.2 Porter Stemmer Bahasa Indonesia

Dalam Bahasa Indonesia terdapat sebuah kombinasi pada struktur yaitu

infleksional dan derivasional yang sederhana. Tahap – tahap dalam porter stemmer

adalah simulasi proses pada infleksional dan derivasional dalam Bahasa Inggris


(27)

10 Penggunaan bahasa yang berbeda tersebut adalah sangat berbeda sehingga

terdapat aturan tersendiri pada penggunaan algoritma porter stemmer untuk Bahasa

Indonesia. Aturan untuk Bahasa Indonesia diantaranya, menghilangkan awalan,

konflik, dan peneyesuaian ejaan pada kasus, dimana pada karakter awal pada

sebuah kata dasar dapat berubah pada saat penambahan awalan dilakukan.

Remove Particle

Remove Possessive

Remove First Order Prefix

Remove Second Order Prefix Remove Suffix

Remove Suffix Remove Second Order Prefix Word

Stem

Gambar 2.2 Proses Porter Stemmer untuk Bahasa Indonesia (Tala, 2003).

Tabel 2.1 Aturan 1 Inflection Particle.

Akhiran Replacement Measure

Conditional

Additional

Conditional

-kah NULL 2 NULL pensilkah pensil

-lah NULL 2 NULL janganlah jangan


(28)

11 Tabel 2.2 Aturan 2 Inflection Possessive Pronouns.

Akhiran Replacement Measure

Conditional

Additional

Conditional

-ku NULL 2 NULL pensilku pensil

-mu NULL 2 NULL bukumu buku

-nya NULL 2 NULL pensilnya pensil

Tabel 2.3 Aturan 3 Fisrt Order of Derivational Prefixs.

Awalan Replacement Measure

Conditional

Additional

Conditional

meng- NULL 2 NULL menggali gali

meny- NULL 2 NULL menyapa apa

men- NULL 2 NULL mencuri curi

mem- NULL 2 NULL membaca baca

me- NULL 2 NULL menulis tulis

peng- NULL 2 NULL penggali gali

peny- NULL 2 NULL penyayang sayang

pen- NULL 2 NULL pencuri curi

pem- NULL 2 NULL pembawa bawa

di- NULL 2 NULL dicuri curi

ter- NULL 2 NULL tercuri curi


(29)

12 Tabel 2.4 Aturan 4 Second Order of Derivational Prefixs.

Awalan Replacement Measure

Conditional

Additional

Conditional

ber- NULL 2 NULL berlutut lutut

Bel NULL 2 NULL belajar ajar

Be NULL 2 NULL bekerja kerja

Per NULL 2 NULL perjelas jelas

pel- NULL 2 NULL pelajar ajar

pe- NULL 2 NULL penulis tulis

Tabel 2.5 Aturan 5 Derivational Suffixes.

Akhiran Replacement Measure

Conditional

Additional

Conditional

-kan NULL 2 Awalan ϵ

{ke, peng}

tuliskan tulis

carikan cari

-an NULL 2 Awalan ϵ

{di, meng,

ter}

(per)janjian janji

minuman minum

-i NULL 2 V|K… ,

s, ≠ i, dan awalan ϵ

curangi curang


(30)

13

{ber, ke,

peng}

Tabel 2.6 Aturan 6 Suku Kata dalam Bahasa Indonesia

Akhiran Replacement Measure Conditional

0 Kh, ng, ny Kh, ng, ny

1 Ma, af, nya, nga Ma, af, nya, nga

2 Maaf, kami, rumpun, kompleks Ma-af, ka-mi, rum-pun, kom-pleks

3 Mengapa, menggunung, tandai Meng-apa, meng-gu-nung, tan-da-i

2.5 Klasifikasi Teks

Banyak kebutuhan pengguna dalam berbagai macam aplikasi dalam

menggunakan pengklasifikasian teks, misalnya dalam data teks yang datanya terus

bertambah. Klasifikasi teks kata masuk pada golongan supervised dikarenakan

merupakan proses pembentukan golongan atau kelas dari data teks berdasarkan

golongan atau kelas yang sesuai dengan kebutuhan.

Klasifikasi teks merupakan suatu proses pengklasifikasian terhadap suatu

data teks dengan membagi menjadi beberapa bagian kelas yang berbeda. Proses

klasifikasi tersebut akan melalui beberapa tahapan reprocessing untuk mendapatkan

data yang dibutuhkan oleh pengguna sehingga proses klasifikasi memiliki tingkat

akurasi yang tinggi. Penggunaan klasifikasi pada teks biasanya dapat digunakan


(31)

14 2.6 Naive Bayes

Naïve bayes (Tan & Kumar, 2006) merupakan salah satu metode yang

digunakan untuk pengklasifikasian sebuah data dengan berdasarkan teorema bayes

dengan mengasumsikan bahwa suatu data memiliki sifat tidak saling terkait antar

satu dengan yang lain atau disebut independen. Teknik penggunaan Naive Bayes

sangat sederhana dan cepat dengan penggunaan probabilistik. Untuk

memaksimalkan penggunaan dari metode Naive Bayes maka digunakan metode

Multinomial Naive Bayes.

2.7 Multinomial Naive Bayes

Multinomial Naive Bayes merupakan proses pengambilan jumlah kata yang

muncul dalam setiap dokumen, dengan mengasumsikan dokumen memiliki

beberapa kejadian dalam kata dengan panjang yang tidak tergantung dari kelasnya

dalam dokumen. Menurut (Manning, Raghavan, & Schutze, 2008), probabilitas

sebuah dokumen d berada dikelas c, kondisi berikut dapat dinyatakan dengan

rumus:

� | ∝ � ∏ ≤�≤� � ��| (1)

P(tk|c) merupakan conditional probabilitas dari kata � yang terdapat dalam sebuah

dokumen dari kelas c.

P(c) merupakan prior probabilitas dari sebuah dokumen yang terdapat dalam kelas

c.

(t1, t2, …, tnd) merupakan token dalam dokumen d yang merupakan bagian dari vocabulary yang digunakan sebagai klasifikasi dan merupakan jumlah token dalam dokumen d.


(32)

15

Untuk memperkirakan prior probability � ̂ dinyatakan dengan rumus:

� = � (2)

�� = jumlah dokumen training dalam kelas c.

� = jumlah keseluruhan dokumen training dari seluruh kelas.

Untuk perkiraan conditional probability � ̂ �| dinyatakan dengan rumus:

� �| = ��

∑ �′∈� � (3)

��� = jumlah kemunculan kata t dalam sebuah dokumen training pada kelas c.

��

∑ �′∈� � = jumlah total keseluruhan kata dalam dokumen training pada kelas c.

�′ = jumlah total kata dalam dokumen training

Untuk menghilangkan nilai nol pada sebuah dokumen, digunakan laplace

smoothing sebagai proses penambahan nilai 1 pada setiap nilai Tct pada perhitungan conditional probabilities dan dinyatakan dengan rumus:

� ����| = ∑ �∈� ���++ �′ (4)

�′ = total kata unik pada keseluruhan kelas dalam dokumen training

Untuk memperoleh nilai probabilitas yang tinggi dari setiap kata digunakan laplace

smoothing atau add-one, laplace smoothing digunakan agar nilai dari probabilitas

masing – masing kata dapat memenuhi syarat yaitu tidak sama dengan 0. Jika nilai

dari probabilitas kata adalah 0 maka data baik training maupun testing tidak akan


(33)

16 2.8 Penerapan Multinomial Naive Bayes Pada Klasifikasi Teks

2.9.1 Data Training

Data training merupakan kumpulan dokumen yang dijadikan sebuah data

percobaan untuk menghasilkan sebuah model, data yang diuji sebagai berikut:

Aku adalah anak gembala Selalu riang serta gembira Karena aku senang bekerja Tak pernah malas ataupun lengah

Tralala la la la la Tralala la la la la la la Setiap hari ku bawa ternak Ke padang rumput, di kaki bukit

Rumputnya hijau subur dan banyak Ternakku makan tak pernah

sdikit Tralala la la la la Tralala la la la la la la

Aku seorang Kapiten mempunyai pedang panjang Kalau berjalan prok-prok-prok

Aku seorang Kapiten Akan kuingat selalu

Ade irma suryani Waktu dipeluk dipangku ibu

Dengan segala kasih Kini ia terbaring dipangkuan

tuhan Senang dan bahagia hatinya Kini ia terlena tertidur terbaring

Nyenyak dipelukan tuhannya Baik

Isi Dokumen Kategori

Aku ini anak manja kusendiri di rumah saja

tiap hari kubernyanyi lagunya sesuka hati

Ayah ibu kaya raya apa saja yang kuminta

semuanya tersedia

Aku makan tiga kali maksakannya enak sekali

pakaianku tiga almari serba mewah, warna warni Tidak Baik

Akankah kau melihatku Saat ku jauh Akankah kau merasakan

Kehilanganku

Jiwaku yang telah mati Bukan cintaku Janjiku s'lalu abadi

Hanya milikmu

Aku pergi dan takkan kembali Akhir dari cinta yang abadi

Akankah kau melihatku Di akhir nanti Jiwaku yang telah mati

Bukan cintaku Janjiku s'lalu abadi

Hanya untukmu

Aku pergi dan takkan kembali Air mata untuk yang abadi Aku pergi ke alam yang suci

Akhir dari abadi cintaku

Aku pergi ke alam yang abadi Akhir dari cinta yang abadi

Ada yang bergerak di dalam dadaku ini Seperti ku kenal pernah

kurasakan Waktu aku jatuh cinta Waktu hatiku tertarik Rasanya pun begini

Jatuh cinta

Apakah ini sama seperti yang itu Hatiku bergerak

Aku jatuh cinta Dinding hatiku berlagu Harmoni cinta menyentuh

Pipiku pun merona Jatuh cinta

Harmoni cintaku kini datang Nyanyikan suara hatiku


(34)

17 1) Tokenizing

Tabel 2.7 Tokenizing Training

Kata Tokenizing

Baik Tidak Baik Baik Tidak Baik

aku akankah aku akankah

adalah kau adalah kau

anak melihatku anak melihatku

gembala saat gembala saat

selalu ku selalu ku

riang jauh riang jauh

serta akankah serta akankah

gembira kau gembira kau

karena merasakan karena merasakan

aku kehilanganku aku kehilanganku

senang jiwaku senang jiwaku

bekerja yang bekerja yang

tak mati tak mati

pernah bukan pernah bukan

malas cintaku malas cintaku

ataupun janjiku ataupun janjiku

lengah s'lalu lengah s'lalu

tralala abadi tralala abadi

la hanya la hanya

la milikmu la milikmu

la aku la aku

la pergi la pergi


(35)

18 2) Normalization

Tabel 2.8 Normalization Training

Tokenizing Normalization

Baik Tidak Baik Baik Tidak Baik

aku akankah aku akankah

adalah kau adalah kau

anak melihatku anak melihatku

gembala saat gembala saat

selalu ku selalu ku

riang jauh riang jauh

serta akankah serta akankah

gembira kau gembira kau

karena merasakan karena merasakan

aku kehilanganku aku kehilanganku

senang jiwaku senang jiwaku

bekerja yang bekerja yang

tak mati tak mati

pernah bukan pernah bukan

malas cintaku malas cintaku

ataupun janjiku ataupun janjiku

lengah s'lalu lengah s'lalu

tralala abadi tralala abadi

la hanya la hanya

la milikmu la milikmu


(36)

19 3) Stop Word

Tabel 2.9 Stop Word Training

Normalization Stopword

Baik Tidak Baik Baik Tidak Baik

aku akankah gembala akankah

adalah kau selalu kau

anak melihatku riang melihatku

gembala saat gembira saat

selalu ku senang ku

riang jauh bekerja jauh

serta akankah tak akankah

gembira kau pernah kau

karena merasakan malas merasakan

aku kehilanganku ataupun kehilanganku

senang jiwaku lengah jiwaku

bekerja yang tralala mati

tak mati tralala bukan

pernah bukan setiap cintaku

malas cintaku hari janjiku

ataupun janjiku ku s'lalu

lengah s'lalu bawa abadi

tralala abadi ternak hanya

la hanya ke milikmu

la milikmu padang pergi


(37)

20 4) Stemming

Tabel 2.10 Stemming Training

Stopword Stemming

Baik Tidak Baik Baik Tidak Baik

gembala akankah gembala akan

selalu kau selalu kau

riang melihatku riang saat

gembira saat gembira ku

senang ku senang jauh

bekerja jauh kerja akan

tak akankah tak kau

pernah kau pernah rasa

malas merasakan malas jiwa

ataupun kehilanganku atau mati

lengah jiwaku lengah bukan

tralala mati hari cinta

tralala bukan ku janji

setiap cintaku bawa lalu

hari janjiku ternak abadi

ku s'lalu ke hanya

bawa abadi padang milik

ternak hanya rumput pergi

ke milikmu kaki tak

padang pergi bukit kembali


(38)

21 5) Daftar Kata beserta Frekuensi Kata

Kumpulan kata pada tabel 2.10 kemudian disusun kedalam satu kolom dan

dihitung frekuensi kata kemunculan masing – masing dokumen.

Tabel 2.11 Daftar Kata beserta Frekuensi Kata Training Stemming

Daftar Kata Beserta Frekuensi Kata Baik Tidak Baik

gembala akan

Kata Frekuensi Kata

selalu kau Baik Tidak Baik

riang saat gembala 1 0

gembira ku selalu 1 0

senang jauh riang 1 0

kerja akan gembira 1 0

tak kau senang 1 0

pernah rasa kerja 1 0

malas jiwa tak 1 0

atau mati pernah 1 0

lengah bukan malas 1 0

hari cinta atau 1 0

ku janji lengah 1 0

bawa lalu hari 1 0

ternak abadi ku 1 0

ke hanya bawa 1 0

padang milik ternak 1 0

rumput pergi ke 1 0

kaki tak padang 1 0

bukit kembali rumput 1 0

rumput akhir kaki 1 0


(39)

22 6) Hasil Sorting secara Ascending

Tabel 2.12 Hasil Sorting secara Ascending Training Daftar Kata Beserta

Frekuensi Kata

Hasil Sorting Secara Ascending

Kata

Frekuensi Kata

Kata

Frekuensi Kata

Baik Tidak Baik Baik Tidak Baik

gembala 1 0 abadi 0 1

selalu 1 0 abadi 0 1

riang 1 0 abadi 0 1

gembira 1 0 abadi 0 1

senang 1 0 abadi 0 1

kerja 1 0 abadi 0 1

tak 1 0 abadi 0 1

pernah 1 0 ade 1 0

malas 1 0 air 0 1

atau 1 0 akan 0 1

lengah 1 0 akan 0 1

hari 1 0 akan 0 1

ku 1 0 akhir 0 1

bawa 1 0 akhir 0 1

ternak 1 0 akhir 0 1

ke 1 0 akhir 0 1

padang 1 0 alam 0 1

rumput 1 0 apa 0 1

kaki 1 0 apakah 0 1


(40)

23 7) Hasil Grouping dengan Kata yang Sama

Setelah proses sorting pada tabel 2.12, dapat dilihat kata yang sama sehingga

kata yang sama dapat digabungkan seperti pada tabel berikut:

Tabel 2.13 Hasil Grouping dengan Kata yang Sama Training Hasil sorting secara

ascending

Hasil Grouping berdasarkan kata yang sama

Kata

Frekuensi kata

Kata

Frekuensi kata

Baik Tidak Baik Baik Tidak Baik

abadi 0 1 abadi 0 7

abadi 0 1 ade 1 0

abadi 0 1 air 0 1

abadi 0 1 akan 0 3

abadi 0 1 akhir 0 4

abadi 0 1 alam 0 1

abadi 0 1 apa 0 1

ade 1 0 apakah 0 1

air 0 1 atau 1 0

akan 0 1 bahagia 1 0

akan 0 1 banyak 1 0

akan 0 1 baring 2 0

akhir 0 1 bawa 1 0

akhir 0 1 begini 0 1

akhir 0 1 bukan 0 2

akhir 0 1 bukit 1 0

alam 0 1 cinta 0 12

apa 0 1 dada 0 1

apakah 0 1 dalam 0 1


(41)

24 8) Prior Probabilitas

Tabel 2.14 Prior Probabilitas Training Atribut kelas P(class)

Lagu Baik 3/6

Lagu Tidak Baik 3/6

9) Conditional Probabilitas

Tabel 2.15 Conditional Probabilitas Training

Conditional probabilitas (P(t|c) Laplace Smoothing

Kata Baik Tidak Baik Kata Baik Tidak Baik

abadi 0 0.039106145 abadi 8.474576271 44.69273743

ade 0.008 0 ade 16.94915254 5.586592179

air 0 0.005586592 air 8.474576271 11.17318436

akan 0 0.016759777 akan 8.474576271 22.34636872

akhir 0 0.022346369 akhir 8.474576271 27.93296089

alam 0 0.005586592 alam 8.474576271 11.17318436

apa 0 0.005586592 apa 8.474576271 11.17318436

apakah 0 0.005586592 apakah 8.474576271 11.17318436

atau 0.008 0 atau 16.94915254 5.586592179

bahagia 0.008 0 bahagia 16.94915254 5.586592179

banyak 0.008 0 banyak 16.94915254 5.586592179

baring 0.017 0 baring 25.42372881 5.586592179

bawa 0.008 0 bawa 16.94915254 5.586592179

begini 0 0.005586592 begini 8.474576271 11.17318436

bukan 0 0.011173184 bukan 8.474576271 16.75977654


(42)

25 2.9.2 Data Testing

Data testing merupakan data yang digunakan sebagai uji coba terhadap

model yang terbentuk dari data training dengan data sebagai berikut:

Hati hati dengan hatiku Karna hatiku mudah layu Jangan kamu bermain-main

Karna kutak’ main-main

Sungguh aku bersungguh-sungguh Cintaku ini cinta mati

Mati-matian aku Pertahankan cintaku Aku takkan rela...bila kau tinggalkan

Aku kan berbuat...apa saja Untuk mendapatkan kamu lagi

Rupa rupa alasan kamu Untuk tetap tinggalkan aku

Rupanya kamu memang Sudah tak cinta aku Cintamu yang berbisa

Bisa racuni aku

Bisa-bisanya kamu mau tinggalkan aku ?

Isi Dokumen Kategori


(43)

26 1) Tokenizing

Tabel 2.16 Tokenizing Testing

Kata Tokenizing

Hati Hati

hati hati

dengan dengan

hatiku hatiku

Karna Karna

hatiku hatiku

mudah mudah

layu layu

Jangan Jangan

kamu kamu

bermain bermain

- main

main Karna

Karna kutak’

kutak’ main

main main

- Sungguh

main aku

Sungguh bersungguh

aku sungguh

bersungguh Cintaku

- ini

sungguh cinta

Cintaku mati


(44)

27 2) Normalization

Tabel 2.17 Normalization Testing

Tokenizing Normalization

Hati hati

hati hati

dengan dengan

hatiku hatiku

Karna karna

hatiku hatiku

mudah mudah

layu layu

Jangan jangan

kamu kamu

bermain bermain

main main

Karna karna

kutak’ kutak’

main main

main main

Sungguh sungguh

aku aku

bersungguh bersungguh

sungguh sungguh

Cintaku cintaku

ini ini

cinta cinta

mati mati


(45)

28 3) Stop Word

Tabel 2.18 Stop Word Testing

Normalization Stopword

hati hati

hati hati

dengan hatiku

hatiku karna

karna hatiku

hatiku mudah

mudah layu

layu jangan

jangan bermain

kamu main

bermain karna

main kutak’

karna main

kutak’ main

main bersungguh

main sungguh

sungguh cintaku

aku cinta

bersungguh mati

sungguh mati

cintaku matian

ini pertahankan

cinta cintaku


(46)

29 4) Stemming

Tabel 2.19 Stemming Testing

Stopword Stemming

hati hati

hati hati

hatiku hati

karna hati

hatiku mudah

mudah layu

layu jangan

jangan main

bermain main

main main

karna main

kutak’ sungguh

main sungguh

main cinta

bersungguh cinta

sungguh mati

cintaku mati

cinta tahan

mati cinta

mati tak

matian rela

pertahankan bila

cintaku kau

takkan tinggal


(47)

30 5) Daftar Kata Beserta Frekuensi Kata

Tabel 2.20 Daftar Kata beserta Frekuensi Kata Testing

Stemming Daftar Kata Beserta Frekuensi

Kata

Hati Kata Frekuensi Kata

hati apa 1

hati bila 1

hati bisa 1

mudah bisa 1

layu bisa 1

jangan bisa 1

main buat 1

main cinta 1

main cinta 1

main cinta 1

sungguh cinta 1

sungguh cinta 1

cinta dapat 1

cinta hati 1

mati hati 1

mati hati 1

tahan hati 1

cinta jangan 1

tak kan 1

rela kau 1

bila layu 1

kau main 1

tinggal main 1

kan main 1


(48)

31 6) Hasil Sorting secara Ascending

Tabel 2.21 Hasil Sorting secara Ascending Testing Daftar kata beserta frekuensi

katanya Hasil sorting secara ascending

Kata Frekuensi kata Kata Frekuensi kata

apa 1 apa 1

bila 1 bila 1

bisa 1 bisa 4

bisa 1 buat 1

bisa 1 cinta 5

bisa 1 dapat 1

buat 1 hati 4

cinta 1 jangan 1

cinta 1 kan 1

cinta 1 kau 1

cinta 1 layu 1

cinta 1 main 4

dapat 1 mati 3

hati 1 mau 1

hati 1 memang 1

hati 1 mudah 1

hati 1 rela 1

jangan 1 rupa 3

kan 1 saja 1

kau 1 sungguh 2

layu 1 tahan 1

main 1 tak 2


(49)

32 7) Hasil Grouping dengan Kata yang Sama

Tabel 2.22 Hasil Grouping dengan Kata yang Sama Testing

Hasil Sorting Secara Ascending Hasil Grouping Berdasarkan Kata Yang Sama

Kata Frekuensi Kata Kata Frekuensi Kata

apa 1 apa 1

bila 1 bila 1

bisa 4 bisa 4

buat 1 buat 1

cinta 5 cinta 5

dapat 1 dapat 1

hati 4 hati 4

jangan 1 jangan 1

kan 1 kan 1

kau 1 kau 1

layu 1 layu 1

main 4 main 4

mati 3 mati 3

mau 1 mau 1

memang 1 memang 1

mudah 1 mudah 1

rela 1 rela 1

rupa 3 rupa 3

saja 1 saja 1

sungguh 2 sungguh 2

tahan 1 tahan 1

tak 2 tak 2

tetap 1 tetap 1


(50)

33 8) Prior Probabilitas

Tabel 2.23 Prior Probabilitas Testing Prior Porbabilitas

Atribut Kelas P(Class)

Baik 1/2

Tidak Baik 1/2

9) Hasil Proses Matching antara Model dengan Data Testing

Tabel 2.24 Hasil Proses Matching antara Model dengan Data Testing Hasil Proses Matching

antara Model dengan Data Testing

Kata Frekuensi Kata

apa 1

cinta 5

hati 4

kau 1

mati 3

saja 1

tak 2


(51)

34 10) Hasil Matching beserta dengan Nilai Conditional Probabilitas

Setelah proses hasil matching antara model beserta dengan nilai conditional

probabilitas-nya, frekuensi kata akan digabungkan dengan nilai conditional

probabilitas-nya.

Tabel 2.25 Hasil Matching beserta dengan Nilai Conditional Probabilitas Testing

Hasil Matching beserta dengan Nilai Conditional Probabilitas-nya

kata Frekuensi kata Baik Tidak Baik

apa 1 8.474576271 11.17318436

cinta 5 8.474576271 72.62569832

hati 4 16.94915254 27.93296089

kau 1 8.474576271 22.34636872

mati 3 8.474576271 16.75977654

saja 1 8.474576271 16.75977654


(52)

35 11) Hasil Perkalian Nilai Conditional Probabilitas dengan Frekuensi Kata Tabel 2.26 Hasil Perkalian Nilai Conditional Probabilitas dengan Frekuensi

Kata Testing

Hasil Perkalian Nilai Conditional Probabilitas Dengan Frekuensi Kata

Kata Baik Tidak Baik

apa 8.474576271 11.17318436

cinta 43710.92162 2020466279

hati 82526.22002 608790.5374

kau 8.474576271 22.34636872

mati 608.6308727 4707.655467

saja 8.474576271 16.75977654

tak 646.3659868 280.8901095

Total 8.63711E+17 6.80633E+24

12) Hitung Probabilitas

Untuk menghitung nilai probabilitas dari data testing diperlukan perkalian

antara nilai prior probabilitas dengan hasil perkalian antara nilai contiditional

probabilitas dengan frekuensi kata sehingga didapat hasil sebagai berikut: Tabel 2.27 Hitung Probabilitas Testing

Hitung probabilitas

P(Baikllagu7) 4.31855E+17

P(Tidak Baikllagu7) 3.40316E+24

Dari hasil perhitungan diatas dapat disimpulkan bahwa lagu7 kata masuk

pada klasifikasi lagu yang tidak baik untuk anak dengan nilai 3.40316E+24 yang


(53)

36 3. BAB III

PERANCANGAN SISTEM

3.1 Gambaran Umum Sistem

Sistem yang dibangun dalam penelitian ini adalah sistem pengujian akurasi

dari penggunaan metode Multinomial Naïve Bayes pada klasifikasi data teks lirik

lagu. Lirik lagu yang digunakan adalah lirik lagu dari beberapa situs website salah

satunya adalah lirik.kapanlagi.com dan liriklaguanak.com. Proses klasifikasi yang

akan dilakukan pada sistem ini menggunakan metode Multinomial Naïve Bayes

sebagai klasifikasi.

User dalam sistem ini adalah pihak yang menggunakan sistem. Data yang

digunakan dalam penelitian adalah data dengan format ekstensi *.txt yang diimport

dari direktori kemudian hasil teks akan dieksekusi kedalam proses indexing. Proses

klasifikasi tersebut dapat dilihat pada Gambar 3.1.

Data Training Tentukan Kategori Tokenazing Normalization Stop Word Stemming Sorting dan Grouping

Indexing

Hitung Prior Porbabilitas

Hitung Conditional

Probabilites Laplace Smoothing

Training

Data Testing Tokenazing Normalization Stop Word Stemming Sorting dan Grouping Indexing Matching

Pangkatkan Nilai Conditional Probabilites

Hitung Probabilitas Tiap Kelas

Testing Hasil Klasifikasi

Model

Index

Index

Classification

Modelling


(54)

37 Pada Gambar 3.1 proses indexing menghasilkan kumpulan kata beserta nilai

frekuensi kata dari masing - masing yang telah diseleksi. Kumpulan kata ini akan

diolah menggunakan metode Multinomial Naïve Bayes sehingga menghasilkan

model yang digunakan untuk proses klasifikasi.

Proses klasifikasi, akan melalui proses indexing yang sama pada proses

training tanpa diketahui kelas atau kategorinya yang menghasilkan kumpulan kata.

Hasil kumpulan kata digunakan untuk proses matching agar mendapatkan daftar

kata yang sama pada kumpulan kata dan data model. Hasil proses matching

digunakan untuk melakukan klasifikasi menggunakan metode Multinomial Naïve

Bayes.

3.2 Teknik Analisis Data 3.2.1 Metode Pengumpulan Data

Data yang diperoleh merupakan data yang melalui beberapa tahapan.

Adapaun tahapan yang dilalui untuk melakukan pengumpulan data dalam penelitian

ini sebagai berikut:

1. Studi Pustaka

Penggunaan studi pustaka pada penelitian ini adalah untuk mencari sumber –

sumber mengenai metode Multinomia Naive Bayes untuk mengklasifikasikan

data teks.

2. Observasi

Penggunaan observasi pada penelitian adalah untuk melakukan pencarian


(55)

38

3. Wawancara

Metode wawancara digunakan untuk pengelompokan data sebagai acuan

pemberian label terhadap data dari seorang ahli. Dalam kasus penelitian ahli

dipilih dari dosen psikologi untuk menentukan klasifikasi data yang baik dan

tidak baik untuk anak.

3.2.1 Pengolahan Data

Dalam penelitian data yang digunakan sebanyak 500. Data yang digunakan

diperoleh melalui beberapa situs website. Pembagian data dapat dilihat pada tabel

3.1 berikut:

Tabel 3.1 Tabel Data Training dan Testing Jumlah Data

Data Training Data Testing

Klasifikasi

Lagu Baik 200 50

Lagu Tidak Baik 200 50

Total 400 100

Sebanyak 400 data sebagai data training akan melalui tahap preprocessing

untuk mendapatkan sebuah model dan 100 data sebagai data testing akan melalui

tahap preprocessing untuk mencocokan data testing dengan model untuk

mengetahui hasil klasifikasi. Sampai pada akhirnya perhitungan akurasi dengan


(56)

39 3.2.2 Preprocessing Data

Preprocessing akan dilalui oleh data sebelum proses klasifikasi. Proses ini

dilakukan untuk meminimalisir permasalahan yang timbul dalam data diantaranya

mengurangi jumlah kata yang tidak berarti atau tidak memiliki makna dalam data

dalam dokumen. Proses yang berlangsung pada setiap data dilakukan melalui

tahapan sebagai berikut :

1) Tokenizing

Tahapan ini, menghilangkan karakter yang tidak memiliki arti pada kumpulan

kata.

2) Normalization

Tahapan ini, mengembalikan bentuk kata dari huruf besar menjadi huruf kecil.

3) Stop Word

Tahapan ini, menghilangkan kata yang tidak memiliki arti atau tidak

mempengaruhi pemerolehan informasi.

4) Stemming

Tahapan ini, mengembalikan bentuk kata menjadi bentuk kata dasar

5) Sorting dan Grouping

Tahapan ini, mengurutkan kata dari abjad a sampai z serta menggabungkan kata


(57)

40 3.2.3 Klasifikasi Data

Proses klasifikasi data yang telah melalui tahapan menghitung frekuensi kata

yang akan diklasifikasikan berdasarkan klasifikasi yang telah ditentukan.

Klasifikasi data ini menggunakan metode Multinomial Naïve Bayes, adapun

tahapan dalam proses klasifikasi data adalah sebagai berikut :

1. Menghitung Prior Probabilitas

Pada proses ini , hitung prior probabilitas pada data training dalam kelas

dengan menggunakan rumus:

� � = �

2. Menghitung Conditional Probabilitas

Pada proses ini , hitung nilai conditional probabilitas pada setiap data baik data

training atau testing dengan menggunakan rumus berikut:

� |� = ∈ � �

Untuk menghilangkan nilai nol pada sebuah dokumen, digunakan laplace

smoothing sebagai proses penambahan nilai 1 pada setiap nilai Tct pada

perhitungan conditional probabilities dan dinyatakan dengan rumus:

� � �|� = ∈ � ��� +


(58)

41

3. Hasil proses matching antara model dan data testing

Pada proses ini, untuk data testing akan dicari hasil matching melalui

pengecekan ada atau tidak kata yang dicari pada model.

4. Hasil matching beserta dengan nilai conditional probabilitas-nya

Pada proses ini, setelah proses matching antara model dan data testing maka

nilai dari kata yang sama pada data testing dan model, maka nilai dari kata

pada model akan diambil dan dimasukkan dalam data testing.

5. Hasil perkalian conditional probabilitas dengan frekuensi kata

Pada proses ini, nilai yang diperoleh dari masing – masing kata pada data testing akan dipangkatkan sesuai dengan jumlah frekuensi kata yang dicari.

3.3 Akurasi Data

Confusion matrix (Paskianti, 2011) adalah sebuah tabel yang menyatakan jumlah data uji yang benar diklasifikasikan dan jumlah data uji yang salah

diklasifikasikan. Confusion matrix ditunjukan pada tabel berikut: Tabel 3.2 Tabel Confusion Matrix

Kelas Prediksi

1 0

Kelas sebenarnya

1 TP FN

0 FP TN

tp (True positive) : jumlah dokumen dari kelas 1 yang benar diklasifikasikan sebagai kelas 1

tn (True negative) : jumlah dokumen dari kelas 0 yang benar diklasifikasikan sebagai kelas 0


(59)

42 fp (False positive) : jumlah dokumen dari kelas 0 yang salah diklasifikasikan sebagai kelas 1

fn(False negative) : jumlah dokumen dari kelas 1 yang salah diklasifikasikan sebagai kelas 0

Perhitungan akurasi dinyatakan dalam persamaan berikut:

� � � = �� + ��


(60)

43 4. BAB IV IMPLEMENTASI

4.1 Antarmuka Menu

LIRIK LAGU

ANALISIS SENTIMEN PADA LIRIK LAGU

MENGGUNAKAN METODE MULTINOMIAL NAÏVE BAYES

GAMBAR LOGO

Lagu Baik Lagu Tidak Baik

Total TF Lagu Baik Total TF Lagu Tidak Baik Jumlah Kata Unik dalam Keseluruhan Dokumen

P(Baik|Data Testing) P(Tidak Baik|Data Testing)

Apakah lirik dari lagu tersebut baik untuk anak ?

Nama : Elsa Rika .O. NIM : 115314079 Tujuan pembuatan aplikasi ini adalah membantu klasifikasi data teks dengan menggunakan metode

Multinomial Naïve Bayes guna mempermudah analisis sentimen lagu yang baik atau tidak baik bagi anak BROWSE 200 200 PROSES 0 0 0 0 % % GAMBAR AKURASI 50 L.Baik Test LT.Baik Test 50

0% RESET

0%

Baik Tdk Baik

0 0

Gambar 4.1 Menu

Gambar diatas merupakan tampilan menu utama dari sistem, tampilan sistem

ini mencakup keseluruhan bagian mulai dari input data training, klasifikasi lagu

data testing sampai dengan akurasi sistem.

4.2 Antarmuka Training

Lagu Baik Lagu Tidak Baik

Proses


(61)

44 Gambar diatas merupakan sebuah tampilan untuk menginputkan data yang

akan diolah. Data yang diolah merupakan data training dengan jumlah data

maksimal yang telah ditentukan. Masing – masing klasifikasi merupakan data lagu

yang tidak baik dengan jumlah data maksimal 200 data dan lagu yang tidak baik

maksimal sebanyak 200 data. Pengguna dapat memasukkan data sesuai keinginan

dengan jumlah data yang sama pada masing - masing klasifikasi tanpa melebihi

batas maksimal data pada masing – masing klasifikasi .

Total TF Lagu Baik Total TF Lagu Tidak Baik Jumlah Kata Unik dalam Keseluruhan Dokumen

Gambar 4.3 Hasil Stemming

Gambar diatas merupakan panel yang digunakan untuk menampung hasil

perhitungan dari proses preprocessing data training untuk mendapatkan total nilai

frekuensi kata dari lagu yang baik, frekuensi kata dari lagu yang tidak baik serta

jumlah kata unik dalam keseluruhan dokumen lagu baik dan lagu tidak baik.

4.3 Antarmuka Testing

BROWSE

Gambar 4.4 Ambil File


(62)

45 Gambar diatas merupakan panel yang digunakan untuk mengambil data pada

sebuah direktori untuk melakukan pengujian satu per satu terhadap data testing .

P(Baik|Data Testing) P(Tidak Baik|Data Testing)

% %

Gambar 4.5 Hasil Klasifikasi

Gambar diatas merupakan panel yang digunakan untuk menampung hasil dari

proses klasifikasi data testing untuk menentukan klasifikasi dari lagu data testing

yang diuji.

Apakah lirik dari lagu tersebut baik untuk anak ?

Gambar 4.6 Penentu Kategori Lagu

Gambar diatas merupakan panel yang digunakan untuk menampilkan

klasifikasi dari data testing yang telah diolah.

AKURASI 50

L.Baik Test

LT.Baik Test 50

0%

Gambar 4.7 Akurasi Sistem

Gambar diatas merupakan panel yang digunakan untuk melakukan proses


(63)

46 diinginkan oleh pengguna. Jumlah data testing baik pada klasifikasi lagu baik atau

lagu tidak baik harus sama.

Baik Tdk Baik

0 0

Gambar 4.8 Nomor Lagu

Gambar diatas merupakan panel yang digunakan untuk mengetahui nomor

dari lagu yang masuk klasifikasi lagu baik atau lagu tidak baik. Pada panel yang

berisi angka 0 merupakan tempat menampilkan total dari lagu yang masuk dalam

klasifikasi lagu baik dan total dari lagu yang masuk dalam kategori lagu tidak baik.

0% RESET


(64)

47 Gambar diatas merupakan sebelah kanan merupakan panel yang digunakan

untuk mengetahui progres dari sistem dan disebelah kiri merupakan panel yang

berisi button reset untuk mengembalikan sistem pada kondisi awal.

LIRIK LAGU

Gambar 4.10 Isi Teks Lagu

Gambar diatas merupakan panel yang digunakan untuk menampilkan isi dari

teks dari lagu yang dipilih oleh pengguna pada saat uji coba terhadap satu per satu


(65)

48 5. BAB V

PENGUJIAN

5.1 Pengujian Data

Pengujian terhadap 500 data, dengan pembagian sebanyak 250 data lagu baik

untuk anak dan 250 data lagu tidak baik untuk anak. Dari masing – masing

klasifikasi diambil 50 data lagu baik untuk anak dan 50 data lagu tidak baik untuk

anak sebagai data testing. Setelah dilakukan percobaan didapat hasil sebagai

berikut:

Sebelum diolah oleh sistem sebagai berikut:

Tabel 5.1 Sebelum Diolah Sistem Lagu Baik

Data 1 2 3 4 5 6 7 8 9 10

Klasifikasi LB LB LB LB LB LB LB LB LB LB

Data 11 12 13 14 15 16 17 18 19 20

Klasifikasi LB LB LB LB LB LB LB LB LB LB

Data 21 22 23 24 25 26 27 28 29 30

Klasifikasi LB LB LB LB LB LB LB LB LB LB

Data 31 32 33 34 35 36 37 38 39 40


(66)

49

Data 41 42 43 44 45 46 47 48 49 50

Klasifikasi LB LB LB LB LB LB LB LB LB LB

Lagu Tidak Baik

Data 1 2 3 4 5 6 7 8 9 10

Klasifikasi LTB LTB LTB LTB LTB LTB LTB LTB LTB LTB

Data 11 12 13 14 15 16 17 18 19 20

Klasifikasi LTB LTB LTB LTB LTB LTB LTB LTB LTB LTB

Data 21 22 23 24 25 26 27 28 29 30

Klasifikasi LTB LTB LTB LTB LTB LTB LTB LTB LTB LTB

Data 31 32 33 34 35 36 37 38 39 40

Klasifikasi LTB LTB LTB LTB LTB LTB LTB LTB LTB LTB

Data 41 42 43 44 45 46 47 48 49 50

Klasifikasi LTB LTB LTB LTB LTB LTB LTB LTB LTB LTB

Setelah diolah oleh sistem sebagai berikut:

Tabel 5.2 Setelah Diolah Sistem Lagu Baik


(67)

50

Klasifikasi LB LB LB LB LB LB LB LB LB LB

Data 11 12 13 14 15 16 17 18 19 20

Klasifikasi LB LB LB LB LB LB LB LB LB LB

Data 21 22 23 24 25 26 27 28 29 30

Klasifikasi LTB LB LB LB LB LB LB LB LB LB

Data 31 32 33 34 35 36 37 38 39 40

Klasifikasi LB LB LB LB LB LB LTB LB LB LB

Data 41 42 43 44 45 46 47 48 49 50

Klasifikasi LB LB LB LB LB LTB LB LB LB LB

Lagu Tidak Baik

Data 1 2 3 4 5 6 7 8 9 10

Klasifikasi LTB LTB LTB LTB LTB LTB LTB LTB LTB LTB

Data 11 12 13 14 15 16 17 18 19 20

Klasifikasi LTB LTB LTB LTB LTB LTB LTB LTB LTB LB

Data 21 22 23 24 25 26 27 28 29 30


(68)

51

Data 31 32 33 34 35 36 37 38 39 40

Klasifikasi LTB LTB LB LTB LB LTB LTB LTB LB LTB

Data 41 42 43 44 45 46 47 48 49 50

Klasifikasi LB LTB LB LB LTB LTB LTB LTB LB LB

LB = Lagu Baik; LTB = Lagu Tidak Baik

Dari hasil pengujian diatas yang dapat dilihat pada tabel 2.2 diatas dengan

data yang telah diklasifikasikan sebelumnya, diketahui bahwa setelah melalui tahap

pengujian, 50 data testing lagu baik diperoleh sebanyak 47 data masuk dalam

klasifikasi lagu baik dan dari 50 data testing lagu tidak baik diperoleh sebanyak 39

data masuk dalam klasifikasi lagu tidak baik untuk anak.

5.1.1 Pengujian Akurasi

Pengujian dilakukan terhadap 50 data testing lagu baik untuk anak dan 50

data testing lagu tidak baik untuk anak. Data testing yang diuji pada sistem dengan

hasil sebagai berikut:

Tabel 5.3 Tabel Confusion Matrix

Kelas Prediksi

Lagu Baik Lagu Tidak Baik

Kelas sebenarnya

Lagu Baik 47 3


(69)

52

� � � = + ++ + � %

= � % = %

Dari hasil pengujian diatas dapat diketahui kemampuan sistem untuk

membantu mengklasifikasikan data teks sebesar 86%.

5.2 Analisis Pengujian

Dari tabel diatas telah diperoleh data sebanyak 47 data testing lagu baik yang

masuk dalam klasifikasi lagu baik untuk anak dan 39 data testing lagu tidak baik

yang masuk dalam klasifikasi lagu tidak baik untuk anak.

Melalui hasil pengujian diatas dapat diketahui hasil analisis sentimen

terhadap klasifikasi lagu baik dan tidak baik untuk anak sebagai berikut:

1. Jumlah kata pada masing – masing klasifikasi data training

Gambar 5.1 Jumlah Kata

Gambar diatas menunjukkan jumlah kata dari masing – masing klasifikasi.

Dari 200 data lagu baik diperoleh jumlah kata sebanyak 13535 kata dan data lagu

tidak baik diperoleh jumlah kata sebanyak 16417 kata. Dari keseluruhan data lagu


(70)

53

2. Kegagalan dalam klasifikasi

Pengujian data yang terdapat pada lagu baik tetapi setelah diolah tidak masuk

dalam klasifikasi lagu baik seperti gambar 5.2 berikut:

Gambar 5.2 Pengujian Data Testing

Gambar 5.2 diatas menunjukkan bahwa data testing ini masuk dalam

klasifikasi lagu tidak baik untuk anak. Data testing dapat masuk ke dalam klasifikasi

lagu tidak baik dikarenakan nilai dari laplace smoothing yang terdapat pada masing – masing klasifikasi lagu baik dan tidak baik untuk anak berbeda – beda sesuai dengan frekuensi kata. Nilai dari laplace smoothing merupakan conditional

probabilitas yang akan dijadikan sebagai model sehingga nilai dari conditional

probabilitas pada model akan dipangkatkan sebanyak dengan frekuensi kata data

testing.

Lagu pada gambar 5.2 seharusnya masuk pada klasifikasi lagu yang baik,

dikarenakan nilai laplace smoothing dari masing – masing kata berbeda dengan

nilai laplace smoothing dari klasifikasi lagu tidak baik lebih tinggi dibandingkan

dengan nilai laplace smoothing dari klasifikasi lagu baik sehingga mendapatkan


(71)

54 Tabel 5.4 Perbandingan Data Testing Terhadap Model

Kata Unik Lagu Testing Kata Frequecy Lagu Testing (TF)

Hasil Pengecekan dari Kata Unik Testing Terhadap Kata Unik pada Model Ada/Tidak Lagu Baik Ada/Tidak Lagu Tidak Baik (Laplace Smoothing (LS)) (Laplace Smoothing (LS))

buat 8 Ada 0.361032553 Ada 0.61535

dari 6 Ada 0.421204645 Ada 0.05128

kita 4 Ada 0.060172092 Ada 0.10256

kota 3 Ada 0.060172092 Ada 0.10256

sahabat 4 Ada 0.060172092 Ada 0.15384

semua 6 Ada 0.060172092 Ada 0.87175

sudah 4 Ada 0.180516277 Ada 0.05128

teman 4 Ada 0.060172092 Ada 0.10256

LS^TF 2.89E-04 2.06E-02

5.58E-03 1.82E-08

1.31E-05 1.11E-04

2.18E-04 1.08E-03

1.31E-05 5.60E-04

4.75E-08 4.39E-01

1.06E-03 6.91E-06

1.31E-05 1.11E-04

1.00E+00 1.00E+00

LS*Prior

Probabilitas(PP) 1.99E-35 4.19E-30


(72)

55 Dari tabel 5.4 dapat diketahui bahwa kata unik yang ada dalam data testing

mulai dari kata buat, dari, kita, kota, sahabat, semua, sudah dan teman terdapat pada

klasifikasi lagu baik dan lagu tidak baik untuk anak dengan nilai laplace smoothing

yang berbeda.

Dari uji coba salah satu data testing menghasilkan klasifikasi yang tidak

sesuai dikarenakan nilai laplace smoothing dari klasifikasi lagu tidak baik terhadap

data testing memiliki nilai laplace smoothing yang lebih tinggi dibandingkan nilai

laplace smoothing dari klasifikasi lagu tidak baik.

Setiap kata unik yang terdapat pada data testing diantaranya kata buat, dari,

kita, kota, kata sahabat, kata, semua, sudah dan teman merupakan kata – kata yang

secara umum dapat digunakan tidak hanya dalam klasifikasi lagu baik melainkan

dapat digunakan pada klasifikasi lagu tidak baik karena kata – kata tersebut merupakan kata yang bersifat umum sehingga tidak mudah dalam menentukan

klasifikasi lagu dari data testing.

3. Batasan terhadap frekuensi kata

Melalui beberapa kali percobaan dengan memberikan batasan didapatkan

hasil sebagai berikut:

Tabel 5.5 Batasan Frekuensi Kata

Percobaan Min Max Presentase Akurasi

1 1 5 58%

2 2 5 52%

3 2 10 86%


(73)

56 Dari tabel 5.4 diatas dapat diketahui presentase akurasi yang baik digunakan

sebagai batasan terhadap data testing adalah percobaan kedua dengan batasan

minimal 2 frekuensi kata yang digunakan dan maksimal 10 frekuensi kata yang

digunakan.

4. Kata yang ambigu

Pada penelitian ini dapat dibandingkan antara total kata unik masing - masing

klasifikasi lagu baik dan lagu tidak baik untuk anak. Contoh beberapa kata unik

pada masing - masing kelas dapat dilihat pada tabel berikut: Tabel 5.6 Kata Unik Pada Tiap Kelas

Kata Unik Lagu Baik Kata Unik Lagu Tidak Baik

'abadi' 'abah' 'acara' 'ada' 'adik' 'adil' 'adu' 'agil' 'agung' 'air' 'aja' 'ajaib' 'ajak' 'ajal' 'ajar' 'akan' 'akhir' 'aksara' 'aku' 'alam' 'alangkah' 'album' 'abadi' 'abai' 'abis' 'abu' 'acak' 'acuh' 'ada' 'adik' 'adu' 'aduhai' 'agak' 'ahli' 'air' 'aja' 'ajak' 'ajar' 'akad' 'akal' 'akan' 'akang' 'akh' 'akhir'


(74)

57 'alhamdulillah' 'allah' 'alu' 'alun' 'ama' 'amat' 'ambil' 'anak' 'ancol' 'andai' 'andong' 'aneka' 'angan' 'angguk' 'angin' 'angka' 'angkasa' 'angkat' 'angsa' 'anjak' 'anjing' 'anoa' 'antara' 'antem' 'apa' 'apakah' 'api' 'arak' 'arek' 'arena' 'ari' 'aries' 'arti' 'asa' 'asal' 'asam' 'asap' 'asin' 'asing' 'akhirat' 'akhlak' 'akibat' 'aksi' 'aku' 'alam' 'alami' 'alangkah' 'alat' 'aling' 'alis' 'alur' 'aman' 'amanah' 'ambil' 'ambisi' 'amin' 'anak' 'anang' 'andai' 'aneh' 'angan' 'anggap' 'angin' 'angkasa' 'angkat' 'anjak' 'anjing' 'antar' 'antartika' 'antem' 'anti' 'anting' 'anugerah' 'apa' 'apakah' 'ape' 'apel' 'api'


(75)

58 'asli' 'asmara' 'asyik' 'atas' 'atau' 'atur' 'awan' 'awar' 'awas' 'ayah' 'ayam' 'ayo' 'ayun' 'bab' 'baca' 'arah' 'argumen' 'arti' 'arus' 'asa' 'asal' 'asmara' 'aspirin' 'asyik' 'atas' 'atau' 'atom' 'aura' 'awak' 'awal' 'awan' 'awas' 'ayah' 'ayam' 'ayat' 'ayem' 'ayo' 'ayu' 'ayun' 'baca'

Merah = kata berada pada klasifikasi lagu baik dan tidak baik.

Hitam = kata hanya terdapat salah satu klasifikasi lagu baik atau lagu tidak baik.

Pada tabel diatas dapat diketahui bahwa dari beberapa kata unik masing – masing kelas ditemukan kata yang sama baik pada klasifikasi lagu baik atau

klasifikasi lagu tidak baik untuk anak. Kata – kata yang terdapat pada masing –


(76)

59 yang muncul merupakan kata umum yang sering digunakan tidak hanya dalam lagu

baik tetapi dapat digunakan dalam lagu tidak baik untuk anak.

5. Jumlah training seimbang

Jika data yang digunakan tidak seimbang maka akan mempengaruhi hasil

klasifikasi. Misal data training lagu baik 5 dan lagu tidak baik 3, maka kosa kata

pada lagu baik akan lebih banyak dibandingkan kosa kata lagu tidak baik sehingga

pada saat data testing diuji maka hasil cenderung lebih mengarah pada lagu baik

karena kosa kata dari lagu baik lebih banyak dibandingkan lagu tidak baik.

Sehingga data yang digunakan harus seimbang karena penelitian data yang

digunakan tidak dinormalisasikan dan hanya menggunakan jumlah frekuensi kata


(77)

60 6. BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Kesimpulan dapat diambil melalui hasil pengujian dan implementasi yang

telah dipaparkan di atas sebagai berikut :

1. Metode multinomial naive bayes dapat digunakan untuk mengklasifikasikan

data berupa teks.

2. Penggunaan metode Multinomial Naïve Bayes dengan melakukan proses

pengambilan jumlah kata yang muncul dalam setiap dokumen membuat hasil

dari keseluruhan data bergantung dari jumlah kata yang muncul dalam setiap

dokumen.

3. Batasan dengan term frekuensi minimal 2 dan maksimal 10 memberikan

akurasi tertinggi yaitu 86%.

4. Frekuensi kata dari sebuah dokumen memberi pengaruh yang besar dalam

klasifikasi teks karena pada penelitian ini perhitungan berdasarkan dari

jumlah frekuensi kata dalam sebuah dokumen.

6.2 Saran

Beberapa saran kiranya dapat membantu dalam meningkatkan efektifitas dari

pengklasifikasian data teks sebagai berikut :

1. Penambahan jumlah data sekiranya dapat membantu memperbanyak kosa


(78)

61 2. Penambahan kelas klasifikasi tidak hanya klasifikasi lagu baik dan lagu

tidak baik untuk anak.


(1)

89

dataHilangPrefix2{i}=kataTemp(4:end); % Cek apakah huruf awal fokal atau tidak

[hasilKata]=jikaKondisiPrefixHurufAwalVokalAtauTidak(dataHilangP refix2{i},kamus);

% Menghilangkan sufix -kan,-an,i

[hasilKata]=hilangkanSufixKanAnI(hasilKata,kamus); kataDasarTempPemMemMen{i}=hasilKata;

dataHilangPrefix2{i}=''; end

else

% -kan, -an, -i

[hasilKata]=hilangkanSufixKanAnI(kataTemp,kamus);

[hasilKata]=hilangkanPrefixBerBelBePerPelPe(kataTemp,kamus); kataDasarTempPrefixLain{i}=hasilKata;

end else

dataHilangPrefix2{i}=kataTemp; end

end

kataDasarTempMengPengMenyMengPengPeny=kataDasarTempMengPengMenyM engPengPeny';

kataDasarTempPemMemMen=kataDasarTempPemMemMen'; kataDasarTempPrefixLain=kataDasarTempPrefixLain'; dataHilangPrefix2=dataHilangPrefix2';

dataHilangPrefix2=dataHilangPrefix2(~cellfun('isempty',dataHilan gPrefix2)); % Menghilangkan cell yang kosong

kataDasarTemp=[kataDasarTemp;kataDasarTempMengPengMenyMengPengPe ny;kataDasarTempPemMemMen;kataDasarTempPrefixLain];

kataDasarTemp=kataDasarTemp(~cellfun('isempty',kataDasarTemp)); % Menghilangkan cell yang kosong

kataDasarTemp=sort(kataDasarTemp);

% assignin('base','dataHilangPrefix2',dataHilangPrefix2); % assignin('base','kataDasarTambah',kataDasarTemp);

[kataDasarTemp,dataKataPrefixSufixGagal]=cekKeKamus(kataDasarTem p,kamus);

kataDasar=sort(kataDasarTemp); end

function

[hasilKata]=jikaKondisiPrefixHurufAwalVokalAtauTidak(data,kamus) kataTemp=data;

vokal='[aiuoe]';

if ismember(kataTemp(1:1),vokal) kataTemp=strcat('s',kataTemp); if ismember(kataTemp,kamus); hasilKata=kataTemp; else

[kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus);

hasilKata=kataTemp; else

kataTemp(1:1)='t';


(2)

90

hasilKata=kataTemp; else

[kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus);

hasilKata=kataTemp; else

kataTemp(1:1)='p';

if ismember(kataTemp,kamus); hasilKata=kataTemp; else

[kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus); hasilKata=kataTemp; else

kataTemp(1:1)='l';

if ismember(kataTemp,kamus); hasilKata=kataTemp; else

[kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus);

if ismember(kataTemp,kamus); hasilKata=kataTemp; else

kataTemp(1:1)='k';

if ismember(kataTemp,kamus); hasilKata=kataTemp; else

[kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus);

hasilKata=kataTemp; else

kataTemp(1:1)='c'; if

ismember(kataTemp,kamus);

hasilKata=kataTemp;

else [kataTemp]=hilangkanSufixKanAnI(kataTemp,kamus); if ismember(kataTemp,kamus);

hasilKata=kataTemp;

else

% Kata dihilangkan jika huruf pertama vokal tetapi setelah

% ditambah s,t,p,k,atau c tetap tidak ada di kamus.

kataTemp(1:1)='';

hasilKata=kataTemp;

end end end end


(3)

91

end end end end end end end end else

% Kondisi huruf awal bukan vokal hasilKata=kataTemp;

end end

% Menghilangkan sufix -kan,-an,i

function [hasilKata]=hilangkanSufixKanAnI(data,kamus) sufixKan={'kan'};

sufixAn={'an'}; sufixI={'i'}; kataTemp=data;

if length(kataTemp)>3

if ismember(kataTemp(end-2:end),sufixKan) dataHilangSufixKan=kataTemp(1:end-3); if ismember(dataHilangSufixKan,kamus); hasilKata=dataHilangSufixKan; else

% dataHilangSufixKan cek awalan ber dll

[hasilKata]=hilangkanPrefixBerBelBePerPelPe(dataHilangSufixKan,k amus);

end

elseif ismember(kataTemp(end-1:end),sufixAn) dataHilangSufixAn=kataTemp(1:end-2); if ismember(dataHilangSufixAn,kamus); hasilKata=dataHilangSufixAn; else

% dataHilangSufixAn cek awalan ber dll

[hasilKata]=hilangkanPrefixBerBelBePerPelPe(dataHilangSufixAn,ka mus);

end

elseif ismember(kataTemp(end:end),sufixI) dataHilangSufixI=kataTemp(1:end-1); if ismember(dataHilangSufixI,kamus); hasilKata=dataHilangSufixI; else

% dataHilangSufixI cek awalan ber dll

[hasilKata]=hilangkanPrefixBerBelBePerPelPe(dataHilangSufixI,kam us);

end else

hasilKata=data; end

else


(4)

92

end end

% Menghilangkan prefix ber-, bel-, be-, per-, pel-, atau pe-function [hasilKata]=hilangkanPrefixBerBelBePerPelPe(data,kamus) prefix1_3={'ber' 'bel' 'per' 'pel'};

prefix2_2={'be' 'pe'}; kataTemp=data;

if length(kataTemp)>3

if ismember(kataTemp(1:3),prefix1_3) dataHilangPrefix=kataTemp(4:end); if ismember(dataHilangPrefix,kamus); hasilKata=dataHilangPrefix; else

[hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix,kamus); end

elseif ismember(kataTemp(1:2),prefix2_2) dataHilangPrefix=kataTemp(3:end); if ismember(dataHilangPrefix,kamus); hasilKata=dataHilangPrefix; else

[hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix,kamus); end

else

hasilKata=kataTemp; end

else

hasilKata=kataTemp; end

end

strjoin.m

function output = strjoin(input, separator)

%STRJOIN Concatenate an array into a single string. %

% Sumber:

http://www.mathworks.com/matlabcentral/fileexchange/31862-strjoin

%

% S = strjoin(C)

% S = strjoin(C, separator) %

% Description %

% S = strjoin(C) takes an array C and returns a string S which concatenates

% array elements with comma. C can be a cell array of strings, a character

% array, a numeric array, or a logical array. If C is a matrix, it is first

% flattened to get an array and concateneted. S = strjoin(C, separator) also


(5)

93

% specifies separator for string concatenation. The default separator is comma.

%

% Examples %

% >> str = strjoin({'this','is','a','cell','array'}) % str =

% this,is,a,cell,array %

% >> str = strjoin([1,2,2],'_') % str =

% 1_2_2 %

% >> str = strjoin({1,2,2,'string'},'\t') % str =

% 1 2 2 string %

if nargin < 2, separator = ','; end

assert(ischar(separator), 'Invalid separator input: %s', class(separator));

separator = strrep(separator, '%', '%%'); output = '';

if ~isempty(input) if ischar(input)

input = cellstr(input); end

if isnumeric(input) || islogical(input)

output = [repmat(sprintf(['%.15g', separator], input(1:end-1)), ...

1, ~isscalar(input)), ... sprintf('%.15g', input(end))]; elseif iscellstr(input)

output = [repmat(sprintf(['%s', separator], input{1:end-1}), ...

1, ~isscalar(input)), ... sprintf('%s', input{end})]; elseif iscell(input)

output = strjoin(cellfun(@(x)strjoin(x, separator), input, ...

'UniformOutput', false), ... separator);

else

error('strjoin:invalidInput', 'Unsupported input: %s', class(input));

end end end

stemming.m

function [

kataDasarHasilStem,dataKataPrefixSufixGagal,ktTiadaArti] = termFrequency(data,kataTiadaArti,kamus )

%UNTITLED Summary of this function goes here % Detailed explanation goes here


(6)

94

tiadaArti=[];

data=lower(data); % Mengubah huruf besar menjadi kecil data=regexprep(data,'[.,?!"-+=\/:;_12345678910]',' '); % Menghilangkan tanda baca

tiadaArtiTemp=ismember(data,kataTiadaArti); % Mengambil kata tiada arti dari teks

% dataTempt=data{1}

mTiadaArti=size(tiadaArtiTemp); n=1;

for i=1:mTiadaArti

if tiadaArtiTemp(i) == 1 tiadaArti{n}=data{i}; n=n+1;

end end

tiadaArti=tiadaArti'; ktTiadaArti=tiadaArti;

data = strjoin(data(~ismember(data,kataTiadaArti)),' '); % Menghilangkan kata yang tidak punya arti dari data

data=regexprep(data,'-',' '); % Menghilangkan tanda baca % data=regexprep(data,kataTiadaArti,'')

data = textscan(data,'%s'); % Membaca file

data=data{1}; % Memasukkan data file ke dalam matriks cell array % data(strcmp('',data)) = []; % Menghilangkan cell yang kosong data=data(~cellfun('isempty',data)); % Menghilangkan cell yang kosong

data=sort(data);

% assignin('base','data',data);

[kamusKataDasar]=unique(kamus); % Memastikan bahwa di kamus data tidak ada kata yang sama

[kataDasarHasilStem,dataKataPrefixSufixGagal]=stemming(data,kamu sKataDasar); % steming