Download - PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

Transcript
Page 1: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

2015

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

iii

HALAMAN PERSETUJUAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

iv

HALAMAN PENGESAHAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

vi

PERNYATAAN KEASLIAN KARYA

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

vii

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH

UNTUK KEPENTINGAN AKADEMIS

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

ix

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

2.9.2 Data Testing ............................................................................................. 25

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

LAMPIRAN..................................................................................................................... 63

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Tabel 5.6 Kata Unik Pada Tiap Kelas ........................................................................... 56

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Gambar 5.2 Pengujian Data Testing ............................................................................ 53

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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,

penelitian ini pengelompokan data pada lirik lagu yang baik atau tidak baik untuk

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Multinomial Naive Bayes.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

teks lirik lagu dari berbagai macam situs website.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Multinomial Naïve Bayes.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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.

DocumentDocument

RepresentationQuery

Information

Need

Matching

Gambar 2.1 Model Pemerolehan Informasi (Bates, 1989).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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.

Peringkat pada daftar data digunakan oleh pengguna untuk menemukan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

stemming digunakan algortima porter untuk menentukan kata dasar.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

cocok pada Bahasa Indonesia.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

-pun NULL 2 NULL pensilpun pensil

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

ke- NULL NULL kepada pada

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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…𝑐1𝑐1,

𝑐1 ≠ s, 𝑐2≠ i,

dan awalan ϵ

curangi curang

(men)jalani jalan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

pada beberapa data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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≤𝑘≤𝑛𝑑 (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.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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:

𝑃(𝑡𝑃𝑡𝑘|𝑐) = 𝑇𝑐𝑡+1

∑ 𝑡′∈𝑉 𝑇𝑐𝑡 + 𝐵′ (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

pernah cukup untuk mewakili frekuensi saat terdapat kejadian langka.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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 DokumenKategori

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

Berlagu penuh cinta

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

tralala dan tralala dan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

la aku la aku

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

la aku rumput takkan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

rumput takkan rumput akhir

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

bukit 1 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

bukit 1 0 atau 1 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

atau 1 0 dari 0 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

bukit 0.008 0 bukit 16.94915254 5.586592179

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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 DokumenKategori

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

ini Mati

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Mati mati

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

mati takkan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

rela kan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

buat main 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

main 1 tetap 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

tinggal 3

tinggal 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

… …

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

tak 2 25.42372881 16.75977654

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

telah melalui proses terhadap data training.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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 StemmingSorting dan

Grouping

Indexing

Hitung Prior

Porbabilitas

Hitung Conditional

ProbabilitesLaplace Smoothing

Training

Data Testing Tokenazing Normalization Stop Word StemmingSorting dan

Grouping

Indexing

Matching

Pangkatkan Nilai

Conditional

Probabilites

Hitung Probabilitas

Tiap Kelas

Testing

Hasil Klasifikasi

Model

Index

Index

Classification

Modelling

Gambar 3.1 Diagram Block Proses Klasifikasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

data teks lirik lagu dari berbagai macam situs website.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

menggunakan confusion matrix.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

yang sama.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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:

𝑷(𝒕𝑷𝒕𝒌|𝒄) = 𝑻𝒄𝒕 + 𝟏

∑ 𝒕′ ∈ 𝑽 𝑻𝒄𝒕 + 𝑩′

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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:

𝑨𝒌𝒖𝒓𝒂𝒔𝒊 = 𝑻𝑷 + 𝑻𝑵

𝑻𝑷 + 𝑭𝑵 + 𝑭𝑷 + 𝑻𝑵 𝒙 𝟏𝟎𝟎%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

50L.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

Gambar 4.2 Input Data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

50L.Baik Test

LT.Baik Test 50

0%

Gambar 4.7 Akurasi Sistem

Gambar diatas merupakan panel yang digunakan untuk melakukan proses

pengujian terhadap keseluruhan data testing atau sesuai dengan jumlah data yang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Gambar 4.9 Progres Sistem dan Reset

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

data testing.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Klasifikasi LB LB LB LB LB LB LB LB LB LB

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Data 1 2 3 4 5 6 7 8 9 10

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Klasifikasi LTB LTB LTB LB LTB LTB LB LTB LTB LTB

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Lagu Tidak Baik 11 39

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

baik dan lagu tidak baik diperoleh sebanyak 3084 kata unik.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

hasil sebagai berikut:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

Presentase 4.75E-04 99.9995

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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%

4 4 8 37%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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'

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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'

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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 –

masing klasifikasi terdapat pula pada masing – masing klasifikasi dikarenakan kata

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

dalam sebuah dokumen untuk perhitungan klasifikasi lagu.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

kata dalam data training.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

61

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

tidak baik untuk anak.

3. Program hendaknya dikembangkan menjadi sistem informasi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

62

DAFTAR PUSTAKA

Bates, Marcia J. (1989). The Design Of Browsing And Berrypicking Techniques For

The Online Search Interface. University of California.

Bing Liu. (2010). Sentiment Analysis and Subjectivity, in Handbook of Natural

Language Processing.

Go, A., Huang, L., & Bhayani, R. (2009). Twitter Sentiment Analysis. Final Project

Report, Stanford University, Department of Computer Science.

Manning, C. D., Raghavan, P., & Schutze, H. (2008). An Introduction to

Information Retrieval. Cambridge University Press.

Paskianti, Kristina. (2011). Klasifikasi Dokumen Tumbuhan Obat menggunakan

Algoritma KNN Fuzzy. Institut Pertanian Bogor.

Porter, M. (2006, January). The Porter Stemming Algorithm. Retrieved February

25, 2011, from Tartarus: http://tartarus.org/~martin/PorterStemmer/

Shu, Hanjie. (2010). Opinion Mining For Song Lyrics. Norwegian University of

Science and Technology.

Tala, F. Z. (2003). A Study of Stemming Effects on Information Retrieval in Bahasa

Indonesia. M.Sc. Thesis, University of Amsterdam.

Tan, P. N., Steinbach, M., & Kumar, V. (2006). Introduction to Data Mining.

Pearson Education.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

63

LAMPIRAN

Source Code

main.fig

main.m

function varargout = main(varargin) % MAIN MATLAB code for main.fig % MAIN, by itself, creates a new MAIN or raises the

existing % singleton*. % % H = MAIN returns the handle to a new MAIN or the handle

to % the existing singleton*. % % MAIN('CALLBACK',hObject,eventData,handles,...) calls the

local % function named CALLBACK in MAIN.M with the given input

arguments. % % MAIN('Property','Value',...) creates a new MAIN or raises

the % existing singleton*. Starting from the left, property

value pairs are % applied to the GUI before main_OpeningFcn gets called.

An % unrecognized property name or invalid value makes

property application % stop. All inputs are passed to main_OpeningFcn via

varargin.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

64

% % *See GUI Options on GUIDE's Tools menu. Choose "GUI

allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help main

% Last Modified by GUIDE v2.5 04-Jul-2015 20:36:13

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @main_OpeningFcn, ... 'gui_OutputFcn', @main_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end

if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State,

varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before main is made visible. function main_OpeningFcn(hObject, ~, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to main (see VARARGIN)

% Choose default command line output for main handles.output = hObject; clc; % Clear command windows evalin( 'base', 'clearvars *' ); % Clear workspace

% Menampilkan gambar axes(handles.axLogoUSD); imshow('Gambar\logosadar.png')

axes(handles.axGambarNote); imshow('Gambar\gambarNote.jpg')

% PEngaturan tabel no lagu set(handles.tblNoLBaik,'ColumnWidth',{50}); set(handles.tblNoLBaik,'Data',{}); set(handles.tblNoLTdkBaik,'ColumnWidth',{50});

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

65

set(handles.tblNoLTdkBaik,'Data',{});

% Update handles structure guidata(hObject, handles);

% UIWAIT makes main wait for user response (see UIRESUME) % uiwait(handles.main);

% --- Outputs from this function are returned to the command

line. function varargout = main_OutputFcn(~, ~, handles) % varargout cell array for returning output args (see

VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in proses_dtraining. function proses_dtraining_Callback(hObject, eventdata, handles)

%#ok<INUSL,DEFNU> % hObject handle to proses_dtraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% clear; clc; set(handles.lb_htraining,'String','0'); set(handles.ltb_htraining,'String','0'); set(handles.kataunik_htraining,'String','0'); set(handles.txtProgres,'String','0'); pause(0.1); nLgBaik=str2double(get(handles.lb_dtraining,'String')); nLgTdkBaik=str2double(get(handles.ltb_dtraining,'String'));

dirTestLgBaik='DataLagu\LaguBaik\'; dirTestLgTdkBaik='DataLagu\LaguTidakBaik\';

nFileTestLbBaik=length(dir([dirTestLgBaik, '\*.txt'])); nFileTestLbTdkBaik=length(dir([dirTestLgTdkBaik, '\*.txt']));

if (nLgBaik == nLgTdkBaik) && (nLgBaik <= nFileTestLbBaik) &&

(nLgTdkBaik <= nFileTestLbTdkBaik) % PREPROCESSING % Baca file yang berisi kata penghubung/yang tidak

dibutuhkan fileID = fopen('KamusKata\kataTiadaArti.txt'); % Membuka

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

66

kataTiadaArti=data{1}; % Memasukkan data file ke dalam

matriks cell array

% Baca file yang berisi kata dasar fileID = fopen('KamusKata\katadasar.txt'); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file kamusKataDasar=data{1}; % Memasukkan data file ke dalam

matriks cell array

% Lagu baik

[matrixkataDasarHasilStemLgBaik{1:nLgBaik,1}]=deal(zeros(0)); ktDasarTraining_lgBaik=[]; gagalStemTraining_lgBaik=[]; kataTiadaArtiTraining_lgBaik=[]; progresTemp=50/nLgBaik; progres=0; for i=1:nLgBaik

fileLagu=strcat('DataLagu\LaguBaik\',int2str(i),'.txt');

fileID = fopen(fileLagu); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file data=data{1}; % Memasukkan data file ke dalam matriks

[kataDasarHasilStem,dataKataPrefixSufixGagal_lgBaik,tiadaArti_lg

Baik] = termFrequency(data,kataTiadaArti,kamusKataDasar ); matrixkataDasarHasilStemLgBaik{i} = kataDasarHasilStem;

ktDasarTraining_lgBaik=[ktDasarTraining_lgBaik;kataDasarHasilSte

m]; %#ok<AGROW>

gagalStemTraining_lgBaik=[gagalStemTraining_lgBaik;dataKataPrefi

xSufixGagal_lgBaik]; %#ok<AGROW>

kataTiadaArtiTraining_lgBaik=[kataTiadaArtiTraining_lgBaik;tiada

Arti_lgBaik]; %#ok<AGROW>

% Progres progres=progres+progresTemp; set(handles.txtProgres,'String',num2str(int8(progres))); pause(0.1); end

matrixGabunganLgBaik=[]; for i=1:nLgBaik

matrixGabunganLgBaik=[matrixGabunganLgBaik;matrixkataDasarHasilS

temLgBaik{i}]; %#ok<AGROW> end

[kataUnikLgBaik,~,indeksKataLgBaik]=unique(matrixGabunganLgBaik)

; % Menentukan kata unik beserta indeksnya

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

67

jmlReduksiKataUnikLgBaik = length(kataUnikLgBaik); % Jumlah

total kata unik jmlPerKataUnikLgBaik =

hist(indeksKataLgBaik,1:jmlReduksiKataUnikLgBaik); % Jumlah per

kata unik jmlPerKataUnikLgBaik=jmlPerKataUnikLgBaik'; totalKataLgBaik=sum(jmlPerKataUnikLgBaik(:));

assignin('base','KataTiadaArti_Training_lgBaik',kataTiadaArtiTra

ining_lgBaik);

assignin('base','KataDasarSteming_Training_lgBaik',kataUnikLgBai

k);

assignin('base','KataGagalStemming_Training_LgBaik',gagalStemTra

ining_lgBaik);

assignin('base','jmlPerKataUnikLgBaik',jmlPerKataUnikLgBaik);

set(handles.lb_htraining,'String',num2str(totalKataLgBaik));

% Lagu tidak baik

[matrixkataDasarHasilStemLgTdkBaik{1:nLgTdkBaik,1}]=deal(zeros(0

)); ktDasarTraining_lgTdkBaik=[]; gagalStemTraining_lgTdkBaik=[]; kataTiadaArtiTraining_lgTdkBaik=[]; progresTemp=50/nLgTdkBaik; for i=1:nLgTdkBaik

fileLagu=strcat('DataLagu\LaguTidakBaik\',int2str(i),'.txt');

fileID = fopen(fileLagu); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file data=data{1}; % Memasukkan data file ke dalam matriks [

kataDasarHasilStem,dataKataPrefixSufixGagal_lgTdkBaik,tiadaArti_

lgTdkBaik] = termFrequency(data,kataTiadaArti,kamusKataDasar ); matrixkataDasarHasilStemLgTdkBaik{i} =

kataDasarHasilStem;

ktDasarTraining_lgTdkBaik=[ktDasarTraining_lgTdkBaik;kataDasarHa

silStem]; %#ok<AGROW>

gagalStemTraining_lgTdkBaik=[gagalStemTraining_lgTdkBaik;dataKat

aPrefixSufixGagal_lgTdkBaik]; %#ok<AGROW>

kataTiadaArtiTraining_lgTdkBaik=[kataTiadaArtiTraining_lgBaik;ti

adaArti_lgTdkBaik];

% Progres progres=progres+progresTemp; set(handles.txtProgres,'String',num2str(int8(progres))); pause(0.1);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

68

end

matrixGabunganLgTdkBaik=[]; for i=1:nLgBaik

matrixGabunganLgTdkBaik=[matrixGabunganLgTdkBaik;matrixkataDasar

HasilStemLgTdkBaik{i}]; %#ok<AGROW> end

[kataUnikLgTdkBaik,~,indeksKataLgTdkBaik]=unique(matrixGabunganL

gTdkBaik); % Manentukan kata unik beserta indeksnya jmlReduksiKataUnikLgTdkBaik = length(kataUnikLgTdkBaik); %

Jumlah total kata unik jmlPerKataUnikLgTdkBaik =

hist(indeksKataLgTdkBaik,1:jmlReduksiKataUnikLgTdkBaik); %

Jumlah per kata unik jmlPerKataUnikLgTdkBaik=jmlPerKataUnikLgTdkBaik'; totalKataLgTdkBaik=sum(jmlPerKataUnikLgTdkBaik(:));

assignin('base','KataTiadaArti_Training_lgTdkBaik',kataTiadaArti

Training_lgTdkBaik);

assignin('base','KataDasarSteming_Training_lgTdkBaik',kataUnikLg

TdkBaik);

assignin('base','KataGagalStemming_Training_LgTdkBaik',gagalStem

Training_lgTdkBaik);

assignin('base','jmlPerKataUnikLgTdkBaik',jmlPerKataUnikLgTdkBai

k);

set(handles.ltb_htraining,'String',num2str(totalKataLgTdkBaik));

kataunik_htraining=jmlReduksiKataUnikLgBaik+jmlReduksiKataUnikLg

TdkBaik;

set(handles.kataunik_htraining,'String',num2str(kataunik_htraini

ng));

% Smoothing lagu baik dan lagu tidak baik % Lagu baik smoothingLgBaik=zeros(size(jmlReduksiKataUnikLgBaik,1)); for i=1:jmlReduksiKataUnikLgBaik

smoothingLgBaik(i)=(jmlPerKataUnikLgBaik(i)+1)/(totalKataLgBaik+

kataunik_htraining); end smoothingLgBaik=smoothingLgBaik'; % assignin('base','smoothingLgBaik',smoothingLgBaik);

% Lagu tidak baik

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

69

smoothingLgTdkBaik=zeros(size(jmlReduksiKataUnikLgTdkBaik,1)); for i=1:jmlReduksiKataUnikLgTdkBaik

smoothingLgTdkBaik(i)=(jmlPerKataUnikLgTdkBaik(i)+1)/(totalKataL

gTdkBaik+kataunik_htraining); end smoothingLgTdkBaik=smoothingLgTdkBaik'; % assignin('base','smoothingLgTdkBaik',smoothingLgTdkBaik);

kataUnikSemuaJenisLg=[kataUnikLgBaik;kataUnikLgTdkBaik];

[kataUnikSemuaJenisLg,~,indeksKataUnikSemuaJenisLagu]=unique(kat

aUnikSemuaJenisLg); % Manentukan kata unik beserta indeksnya jmlReduksiKataUnikSemuaJenisLg =

length(kataUnikSemuaJenisLg); % Jumlah total kata unik jmlPerKataUnikSemuaJenisLg =

hist(indeksKataUnikSemuaJenisLagu,1:jmlReduksiKataUnikSemuaJenis

Lg); % Jumlah per kata unik jmlPerKataUnikSemuaJenisLg=jmlPerKataUnikSemuaJenisLg'; totalKataSemuaJenisLg=sum(jmlPerKataUnikSemuaJenisLg(:));

%#ok<NASGU>

matrixSmoothing=zeros(jmlReduksiKataUnikSemuaJenisLg,2); % Lagu baik [yaTidak,idx]=ismember(kataUnikSemuaJenisLg,kataUnikLgBaik); n=1; for i=1:length(yaTidak) if yaTidak(i)==1 matrixSmoothing(i,1)=smoothingLgBaik(idx(i)); n=n+1; else

matrixSmoothing(i,1)=(0+1)/(totalKataLgBaik+kataunik_htraining); end end

% Lagu tidak baik

[yaTidak,idx]=ismember(kataUnikSemuaJenisLg,kataUnikLgTdkBaik); n=1; for i=1:length(yaTidak) if yaTidak(i)==1 matrixSmoothing(i,2)=smoothingLgTdkBaik(idx(i)); n=n+1; else

matrixSmoothing(i,2)=(0+1)/(totalKataLgTdkBaik+kataunik_htrainin

g); end end matrixSmoothing=matrixSmoothing*1000;

assignin('base','matrixSmoothing',matrixSmoothing);

% Persiapan data yang akan disimpan dalam dataTraining.mat lb_dtraining=str2double(get(handles.lb_dtraining,'String'));

%#ok<NASGU>

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

70

ltb_dtraining=str2double(get(handles.ltb_dtraining,'String'));

%#ok<NASGU> lb_htraining=str2double(get(handles.lb_htraining,'String'));

%#ok<NASGU>

ltb_htraining=str2double(get(handles.ltb_htraining,'String'));

%#ok<NASGU>

kataunik_htraining=str2double(get(handles.kataunik_htraining,'St

ring')); %#ok<NASGU>

% Simpan data dalam file dataTraining.mat save('dataTraining.mat',... 'lb_dtraining',... 'ltb_dtraining',... 'lb_htraining',... 'ltb_htraining',... 'kataunik_htraining',... 'kataTiadaArti',... 'kamusKataDasar',... 'kataUnikSemuaJenisLg',... 'indeksKataUnikSemuaJenisLagu',... 'jmlReduksiKataUnikSemuaJenisLg',... 'jmlPerKataUnikSemuaJenisLg',... 'totalKataSemuaJenisLg',... 'matrixSmoothing');

uiwait(msgbox('Proses stemming telah

selesai','Peringatan','modal')); else uiwait(msgbox({'Jumlah lagu training lagu baik dan lagu

tidak baik harus sama',... ['dan tidak boleh lebih dari ',

num2str(nFileTestLbBaik),' !']},'Peringatan','modal')); end guidata(hObject, handles);

% --- Executes on button press in browse_file. function browse_file_Callback(hObject, eventdata, handles)

%#ok<INUSL,DEFNU> % hObject handle to browse_file (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA) clc; set(handles.txtProgres,'String','0'); pause(0.1); [filename, pathname] = uigetfile({'*.txt'},'Pilih

file','DataLagu\'); % untuk membuka file yang akan dicari if filename ~= 0 fullpathname = strcat (pathname, filename); % menampilkan

keseluruhan pathname text = fileread(fullpathname); % untuk menampilkan isi teks lagu={text};

% Menampilkan isi fullpathname/ isi dari file

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

71

handles.isiLagu=lagu; menampilkanData(hObject,handles); % Menampilkan isi lagu ke

panel

set(handles.data_file_browse, 'String', fullpathname) %

Tampil alamat file

fileID = fopen(fullpathname); % Membuka file yang telah

dipilih data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file data=data{1}; % Memasukkan data file ke dalam matriks

load 'dataTraining.mat';

% Testing data set(handles.txtProgres,'String','1'); pause(0.1);

[probabilitasBaik,probabilitasTidakBaik,persenBaik,persenTidakBa

ik]=testingData(data,ltb_dtraining,lb_dtraining,kataUnikSemuaJen

isLg,matrixSmoothing,kataTiadaArti,kamusKataDasar);

set(handles.lb_htesting,'String',num2str(probabilitasBaik));

set(handles.presentase_lb_htesting,'String',num2str(persenBaik))

;

set(handles.ltb_htesting,'String',num2str(probabilitasTidakBaik)

);

set(handles.presentase_ltb_htesting,'String',num2str(persenTidak

Baik));

% Tampilan tulisan if persenBaik > persenTidakBaik set(handles.textHasilTest,'String','Lagu baik untuk

anak','ForegroundColor',[0 0.5 0]); elseif persenBaik < persenTidakBaik set(handles.textHasilTest,'String','Lagu tidak baik

untuk anak','ForegroundColor','r'); else set(handles.textHasilTest,'String','Tidak

diketahui','ForegroundColor','m'); end set(handles.txtProgres,'String','100'); pause(0.1); end

% --- Executes on button press in btnAkurasi. function btnAkurasi_Callback(hObject, eventdata, handles)

%#ok<INUSL,DEFNU> % hObject handle to btnAkurasi (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

72

clc; set(handles.txtAkurasi,'String','0','ForegroundColor','k'); set(handles.tblNoLBaik,'Data',{}); set(handles.edJmlBenarBaik,'String','0'); set(handles.tblNoLTdkBaik,'Data',{}); set(handles.edJmlBenarTdkBaik,'String','0'); set(handles.txtProgres,'String','0'); pause(0.1); nLgBaik=str2double(get(handles.edJmlLBaikTest,'String')); nLgTdkBaik=str2double(get(handles.edJmlLTBaikTest,'String')); dirTestLgBaik='DataLagu\DataTesting\LaguBaikTest\'; dirTestLgTdkBaik='DataLagu\DataTesting\LaguTdkBaikTest\';

nFileTestLbBaik=length(dir([dirTestLgBaik, '\*.txt'])); nFileTestLbTdkBaik=length(dir([dirTestLgTdkBaik, '\*.txt']));

if (nLgBaik == nLgTdkBaik) && (nLgBaik <= nFileTestLbBaik) &&

(nLgTdkBaik <= nFileTestLbTdkBaik) load 'dataTraining.mat'; % Testing lagu baik nBenarBaik=0; idxLgBaik=0; n=1; progresTemp=50/nLgBaik; progres=0; for i=1:nLgBaik %

fileLagu=strcat('DataLagu\DataTesting\LaguBaikTest\',int2str(i),

'.txt'); fileLagu=strcat(dirTestLgBaik,int2str(i),'.txt');

fileID = fopen(fileLagu); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file data=data{1}; % Memasukkan data file ke dalam matriks

[~,~,persenBaik,persenTidakBaik]=testingData(data,ltb_dtraining,

lb_dtraining,kataUnikSemuaJenisLg,matrixSmoothing,kataTiadaArti,

kamusKataDasar);

if persenBaik > persenTidakBaik nBenarBaik=nBenarBaik+1; idxLgBaik(n,1)=i; %#ok<AGROW> n=n+1; elseif persenBaik < persenTidakBaik

else

end

% Progres progres=progres+progresTemp; set(handles.txtProgres,'String',num2str(int8(progres))); pause(0.1); end

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

73

% Testing lagu tidak baik nBenarTdkBaik=0; idxLgTdkBaik=0; n=1; progresTemp=50/nLgTdkBaik; for i=1:nLgTdkBaik %

fileLagu=strcat('DataLagu\DataTesting\LaguTdkBaikTest\',int2str(

i),'.txt'); fileLagu=strcat(dirTestLgTdkBaik,int2str(i),'.txt'); fileID = fopen(fileLagu); % Membuka file data = textscan(fileID,'%s'); % Membaca file fclose(fileID); % Menutup file data=data{1}; % Memasukkan data file ke dalam matriks

[~,~,persenBaik,persenTidakBaik]=testingData(data,ltb_dtraining,

lb_dtraining,kataUnikSemuaJenisLg,matrixSmoothing,kataTiadaArti,

kamusKataDasar);

if persenBaik > persenTidakBaik % nBenarBaik=nBenarBaik+1; elseif persenBaik < persenTidakBaik nBenarTdkBaik=nBenarTdkBaik+1; idxLgTdkBaik(n,1)=i; %#ok<AGROW> n=n+1; else

end

% Progres progres=progres+progresTemp; set(handles.txtProgres,'String',num2str(int8(progres))); pause(0.1); end

% Perhitungan akurasi assignin('base','idxLgBaik',idxLgBaik); assignin('base','idxLgTdkBaik',idxLgTdkBaik); % jmlBenarLgBaik=nBenarBaik/nLgBaik % jmlBenarLgTdkBaik=nBenarTdkBaik/nLgTdkBaik %

akurasiSistemProb=((jmlBenarLgBaik+jmlBenarLgTdkBaik)/2)*100

akurasiSistem=(nBenarBaik+nBenarTdkBaik)/(nLgBaik+nLgTdkBaik)*10

0; % akurasiSistem=((nBenarBaik+(nLgTdkBaik-

nBenarTdkBaik))/(nLgBaik+nLgTdkBaik))*100; if akurasiSistem > 50

set(handles.txtAkurasi,'String',num2str(akurasiSistem),'Foregrou

ndColor',[0 0.5 0]); else

set(handles.txtAkurasi,'String',num2str(akurasiSistem),'Foregrou

ndColor','r'); end

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

74

% Memasukkan indeks lagu yang benar pada tabel No Lagu dan

jumlahnya set(handles.tblNoLBaik,'Data',idxLgBaik); set(handles.edJmlBenarBaik,'String',num2str(nBenarBaik)); set(handles.tblNoLTdkBaik,'Data',idxLgTdkBaik);

set(handles.edJmlBenarTdkBaik,'String',num2str(nBenarTdkBaik));

uiwait(msgbox('Proses Akurasi telah

selesai','Peringatan','modal')); else uiwait(msgbox({'Jumlah lagu testing lagu baik dan lagu tidak

baik harus sama',... ['dan tidak boleh lebih dari ',

num2str(nFileTestLbBaik),' !']},'Peringatan','modal')); end

function

[probabilitasBaik,probabilitasTidakBaik,persenBaik,persenTidakBa

ik]=testingData(data,ltb_dtraining,lb_dtraining,kataUnikSemuaJen

isLg,matrixSmoothing,kataTiadaArti,kamusKataDasar) probabilitasBaik=1; probabilitasTidakBaik=1;

% Stemming [kataDasarHasilStem,dataKataPrefixSufixGagal_Testing,tiadaArti_T

esting] = termFrequency(data,kataTiadaArti,kamusKataDasar ); [kataUnikLgTesting,~,indeksKataLgTesting]=unique(kataDasarHasilS

tem); % Manentukan kata unik beserta indeksnya jmlReduksiKataUnikLgTesting = length(kataUnikLgTesting); %

Jumlah total kata unik jmlPerKataUnikLgTesting =

hist(indeksKataLgTesting,1:jmlReduksiKataUnikLgTesting); %

Jumlah per kata unik jmlPerKataUnikLgTesting=jmlPerKataUnikLgTesting';

% Pembatasan term frekuensi [m,~]=size(jmlPerKataUnikLgTesting); dataTemp2=[]; dataTemp3=[]; dataTempBuang1=[]; dataTempBuang2=[]; x=1; y=1; for i=1:m

if jmlPerKataUnikLgTesting(i,1)>2 &&

jmlPerKataUnikLgTesting(i,1)<10 dataTemp2(x,1)=jmlPerKataUnikLgTesting(i,1); %#ok<AGROW> dataTemp3{x,1}=kataUnikLgTesting{i,1}; %#ok<AGROW> x=x+1; else dataTempBuang1(y,1)=jmlPerKataUnikLgTesting(i,1);

%#ok<AGROW> dataTempBuang2{y,1}=kataUnikLgTesting{i,1}; %#ok<AGROW> y=y+1; end end

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

75

jmlPerKataUnikLgTesting= dataTemp2; kataUnikLgTesting= dataTemp3;

if ~isempty(kataUnikLgTesting)

assignin('base','jmlPerKataUnikLgTesting',jmlPerKataUnikLgTestin

g); assignin('base','kataUnikLgTesting',kataUnikLgTesting);

assignin('base','jmlPerKataUnikLgTestingDibuang',dataTempBuang1)

; assignin('base','kataUnikLgTestingDibuang',dataTempBuang2);

% Prior probabilitas jmlDocLgBaik=lb_dtraining; jmlDocLgTdkBaik=ltb_dtraining;

priorProbabilitasLgBaik=jmlDocLgBaik/(jmlDocLgBaik+jmlDocLgTdkBa

ik);

priorProbabilitasLgTdkBaik=jmlDocLgTdkBaik/(jmlDocLgTdkBaik+jmlD

ocLgBaik);

% Hasil matching nilai conditional probabilitas dengan tf

nilaiKondisionalProbabilitas=zeros(jmlReduksiKataUnikLgTesting,2

); assignin('base','kataUnikLgTesting',kataUnikLgTesting);

yaTidak=ismember(kataUnikLgTesting,kataUnikSemuaJenisLg);

assignin('base','kataUnikSemuaJenisLg',kataUnikSemuaJenisLg);

% Normalisasi matrixSmoothing

assignin('base','KataDasarSteming_Testing',kataDasarHasilStem);

assignin('base','KataGagalStemming_Testing',dataKataPrefixSufixG

agal_Testing); assignin('base','KataTiadaArti_Testing',tiadaArti_Testing);

matrixSmoothingUtkTesting=[];

n=1; for i=1:length(yaTidak) if yaTidak(i)==1

nilaiKondisionalProbabilitas(n,1)=(matrixSmoothing(i,1)^jmlPerKa

taUnikLgTesting(n));

nilaiKondisionalProbabilitas(n,2)=(matrixSmoothing(i,2)^jmlPerKa

taUnikLgTesting(n)); matrixSmoothingUtkTesting(n,1)=matrixSmoothing(i,1);

%#ok<AGROW>

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

76

matrixSmoothingUtkTesting(n,2)=matrixSmoothing(i,2);

%#ok<AGROW> n=n+1; else nilaiKondisionalProbabilitas(n,1)=0; nilaiKondisionalProbabilitas(n,2)=0; n=n+1; end end

assignin('base','matrixSmoothingUtkTesting',matrixSmoothingUtkTe

sting);

% Perkalian nilai cp [m,~]=size(nilaiKondisionalProbabilitas); for i=1:m if nilaiKondisionalProbabilitas(i,1)> 0

probabilitasBaik=probabilitasBaik*nilaiKondisionalProbabilitas(i

,1);

probabilitasTidakBaik=probabilitasTidakBaik*nilaiKondisionalProb

abilitas(i,2); end end

% Hasil probabilitas probabilitasBaik=probabilitasBaik*priorProbabilitasLgBaik;

probabilitasTidakBaik=probabilitasTidakBaik*priorProbabilitasLgT

dkBaik;

persenBaik=(probabilitasBaik/(probabilitasBaik+probabilitasTidak

Baik))*(100);

persenTidakBaik=(probabilitasTidakBaik/(probabilitasTidakBaik+pr

obabilitasBaik))*(100); else persenBaik=0; persenTidakBaik=0; end

% Function untuk menampilkan isi lagu di panel function menampilkanData(hObject,handles) uicontrol(handles.pIsiLagu, 'Style','edit', 'FontSize',10, ... 'Min',0, 'Max',2, 'HorizontalAlignment','center', ... 'BackgroundColor','white',... 'Units','normalized', 'Position',[0 0 1 1], ... 'String',handles.isiLagu'); guidata(hObject,handles);

% --- Executes on button press in btnReset.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

77

function btnReset_Callback(hObject, eventdata, handles)

%#ok<INUSL,DEFNU> % hObject handle to btnReset (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA) choice = questdlg('Apakah Anda yakin untuk melakukan proses

mereset?', ... 'Reset', ... 'Ya','Tidak','Tidak'); % Handle response switch choice case 'Ya' clc; evalin( 'base', 'clearvars *' ); set(handles.lb_dtraining,'String','200'); set(handles.ltb_dtraining,'String','200'); set(handles.lb_htraining,'String','0'); set(handles.ltb_htraining,'String','0'); set(handles.kataunik_htraining,'String','0'); set(handles.data_file_browse,'String',''); set(handles.edJmlLBaikTest,'String','50'); set(handles.edJmlLTBaikTest,'String','50');

set(handles.txtAkurasi,'String','0','ForegroundColor','k'); set(handles.lb_htesting,'String','0'); set(handles.presentase_lb_htesting,'String','0'); set(handles.ltb_htesting,'String','0'); set(handles.presentase_ltb_htesting,'String','0'); set(handles.textHasilTest,'String',''); set(handles.txtProgres,'String','0'); set(handles.tblNoLBaik,'Data',{}); set(handles.tblNoLTdkBaik,'Data',{}); set(handles.edJmlBenarBaik,'String','0'); set(handles.edJmlBenarTdkBaik,'String','0'); uicontrol(handles.pIsiLagu, 'Style','edit',

'FontSize',10, ... 'Min',0, 'Max',2, 'HorizontalAlignment','center',

... 'BackgroundColor','white',... 'Units','normalized', 'Position',[0 0 1 1], ... 'String',''); uiwait(msgbox('Proses reset

selesai.','Peringatan','modal')); end

function data_file_browse_Callback(~, ~, ~) %#ok<DEFNU> % hObject handle to data_file_browse (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of

data_file_browse as text % str2double(get(hObject,'String')) returns contents of

data_file_browse as a double

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

78

% --- Executes during object creation, after setting all

properties. function data_file_browse_CreateFcn(hObject, ~, ~) %#ok<DEFNU> % hObject handle to data_file_browse (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function lb_dtraining_Callback(~, ~, ~) %#ok<DEFNU> % hObject handle to lb_dtraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of lb_dtraining

as text % str2double(get(hObject,'String')) returns contents of

lb_dtraining as a double

% --- Executes during object creation, after setting all

properties. function lb_dtraining_CreateFcn(hObject, ~, ~) %#ok<DEFNU> % hObject handle to lb_dtraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function ltb_dtraining_Callback(~, ~, ~) %#ok<DEFNU> % hObject handle to ltb_dtraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of ltb_dtraining

as text

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

79

% str2double(get(hObject,'String')) returns contents of

ltb_dtraining as a double

% --- Executes during object creation, after setting all

properties. function ltb_dtraining_CreateFcn(hObject, ~, ~) %#ok<DEFNU> % hObject handle to ltb_dtraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function lb_htraining_Callback(~, ~, ~) %#ok<DEFNU> % hObject handle to lb_htraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of lb_htraining

as text % str2double(get(hObject,'String')) returns contents of

lb_htraining as a double

% --- Executes during object creation, after setting all

properties. function lb_htraining_CreateFcn(hObject, ~, ~) %#ok<DEFNU> % hObject handle to lb_htraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function kataunik_htraining_Callback(~, ~, ~) %#ok<DEFNU> % hObject handle to kataunik_htraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

80

% Hints: get(hObject,'String') returns contents of

kataunik_htraining as text % str2double(get(hObject,'String')) returns contents of

kataunik_htraining as a double

% --- Executes during object creation, after setting all

properties. function kataunik_htraining_CreateFcn(hObject, ~, ~) %#ok<DEFNU> % hObject handle to kataunik_htraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function lb_htesting_Callback(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to lb_htesting (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of lb_htesting

as text % str2double(get(hObject,'String')) returns contents of

lb_htesting as a double

% --- Executes during object creation, after setting all

properties. function lb_htesting_CreateFcn(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to lb_htesting (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function ltb_htesting_Callback(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to ltb_htesting (see GCBO)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

81

% eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of ltb_htesting

as text % str2double(get(hObject,'String')) returns contents of

ltb_htesting as a double

% --- Executes during object creation, after setting all

properties. function ltb_htesting_CreateFcn(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to ltb_htesting (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function presentase_lb_htesting_Callback(hObject, eventdata,

handles) %#ok<INUSD,DEFNU> % hObject handle to presentase_lb_htesting (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of

presentase_lb_htesting as text % str2double(get(hObject,'String')) returns contents of

presentase_lb_htesting as a double

% menghitung presentase % lagu baik

% --- Executes during object creation, after setting all

properties. function presentase_lb_htesting_CreateFcn(hObject, eventdata,

handles) %#ok<INUSD,DEFNU> % hObject handle to presentase_lb_htesting (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

82

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function presentase_ltb_htesting_Callback(hObject, eventdata,

handles) %#ok<INUSD,DEFNU> % hObject handle to presentase_ltb_htesting (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of

presentase_ltb_htesting as text % str2double(get(hObject,'String')) returns contents of

presentase_ltb_htesting as a double

% --- Executes during object creation, after setting all

properties. function presentase_ltb_htesting_CreateFcn(hObject, eventdata,

handles) %#ok<INUSD,DEFNU> % hObject handle to presentase_ltb_htesting (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all

properties. function axLogoUSD_CreateFcn(hObject, eventdata, handles)

%#ok<INUSD,DEFNU>

% hObject handle to axLogoUSD (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: place code in OpeningFcn to populate axLogoUSD

% --- Executes during object creation, after setting all

properties. function ltb_htraining_CreateFcn(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to ltb_htraining (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

83

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edJmlLBaikTest_Callback(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to edJmlLBaikTest (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of

edJmlLBaikTest as text % str2double(get(hObject,'String')) returns contents of

edJmlLBaikTest as a double

% --- Executes during object creation, after setting all

properties. function edJmlLBaikTest_CreateFcn(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to edJmlLBaikTest (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edJmlLTBaikTest_Callback(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to edJmlLTBaikTest (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of

edJmlLTBaikTest as text % str2double(get(hObject,'String')) returns contents of

edJmlLTBaikTest as a double

% --- Executes during object creation, after setting all

properties.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

84

function edJmlLTBaikTest_CreateFcn(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to edJmlLTBaikTest (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edJmlBenarBaik_Callback(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to edJmlBenarBaik (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of

edJmlBenarBaik as text % str2double(get(hObject,'String')) returns contents of

edJmlBenarBaik as a double

% --- Executes during object creation, after setting all

properties. function edJmlBenarBaik_CreateFcn(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to edJmlBenarBaik (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edJmlBenarTdkBaik_Callback(hObject, eventdata, handles)

%#ok<INUSD,DEFNU> % hObject handle to edJmlBenarTdkBaik (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of

edJmlBenarTdkBaik as text

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

85

% str2double(get(hObject,'String')) returns contents of

edJmlBenarTdkBaik as a double

% --- Executes during object creation, after setting all

properties. function edJmlBenarTdkBaik_CreateFcn(hObject, eventdata,

handles) %#ok<INUSD,DEFNU> % hObject handle to edJmlBenarTdkBaik (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on

Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

stemming.m

function

[kataDasar,dataKataPrefixSufixGagal]=stemming(data,kamus) dataKataPrefixSufixGagal=[]; % Stemming % Cek awal untuk mengambil kata dasar atau tidak [kataDasar,dataKataPrefixSufix]=cekKeKamus(data,kamus);

% assignin('base','kataDasarCekKamusAwal',kataDasar); % assignin('base','dataKataPrefixSufix',dataKataPrefixSufix); if ~isempty(dataKataPrefixSufix)

[kataDasar,dataKataPrefixSufixGagal]=cekPrefixSufix(dataKataPref

ixSufix,kamus,kataDasar);

end end

function [kataDasar,dataKataPrefixSufix]=cekKeKamus(data,kamus) % Cek ke kamus dan mengambil kata dasar dan tidak

x=1; y=1; kataDasar={}; dataKataPrefixSufix={}; yaTidak=ismember(data,kamus); for i=1:length(data) if yaTidak(i)==1 kataDasar{x}=data{i}; x=x+1; else dataKataPrefixSufix{y}=data{i}; y=y+1;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

86

end end kataDasar=sort(kataDasar'); dataKataPrefixSufix=sort(dataKataPrefixSufix'); end

function

[kataDasar,dataKataPrefixSufixGagal]=cekPrefixSufix(dataKataPref

ixSufix,kamus,kataDasarTemp)

% Hilangkan akhiran % -kah, -lah, pun inflection_particle={'kah' 'lah' 'pun' 'kan'}; % [m,n]=size(dataKataPrefixSufix); % kataDasar2={}; dataHilangSufix1={}; kataDasarTempKahLahPun={}; for i=1:length(dataKataPrefixSufix) kataTemp=dataKataPrefixSufix{i}; % mm=size(kataTemp,2); % kataTemp(mm-2:mm) % for j=1:length(inflection_particle) if length(kataTemp)>4 if ismember(kataTemp(end-2:end),inflection_particle) dataHilangSufix1{i}=kataTemp(1:end-3); %

dataHilangSufix1{i}=regexprep(kataTemp,inflection_particle,'','m

atchcase'); if ismember(dataHilangSufix1{i},kamus); kataDasarTempKahLahPun{i}=dataHilangSufix1{i}; dataHilangSufix1{i}=''; else dataHilangSufix1{i}=kataTemp; end else dataHilangSufix1{i}=kataTemp; end else dataHilangSufix1{i}=kataTemp; end end dataHilangSufix1=dataHilangSufix1'; kataDasarTempKahLahPun=kataDasarTempKahLahPun'; kataDasarTemp=[kataDasarTemp;kataDasarTempKahLahPun]; dataHilangSufix1=dataHilangSufix1(~cellfun('isempty',dataHilangS

ufix1)); % Menghilangkan cell yang kosong

% -ku, -mu, -nya inflection_possesif1={'ku' 'mu'}; inflection_possesif2={'nya'}; kataDasarTempKuMU={}; kataDasarTempNya={}; dataHilangSufix2={}; for i=1:length(dataHilangSufix1) kataTemp=dataHilangSufix1{i};

if length(kataTemp)>3 if ismember(kataTemp(end-1:end),inflection_possesif1)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

87

% ismember(kataTemp(end-

1:end),inflection_possesif1) % kataTemp(1:end-2) % kataTemp(end-1:end) dataHilangSufix2{i}=kataTemp(1:end-2); if ismember(dataHilangSufix2{i},kamus); kataDasarTempKuMU{i}=dataHilangSufix2{i}; dataHilangSufix2{i}=''; else dataHilangSufix2{i}=kataTemp; end elseif ismember(kataTemp(end-

2:end),inflection_possesif2) dataHilangSufix2{i}=kataTemp(1:end-3); if ismember(dataHilangSufix2{i},kamus); kataDasarTempNya{i}=dataHilangSufix2{i}; dataHilangSufix2{i}=''; else dataHilangSufix2{i}=kataTemp; end else dataHilangSufix2{i}=kataTemp; end else dataHilangSufix2{i}=kataTemp; end end kataDasarTempKuMU=kataDasarTempKuMU'; kataDasarTempNya=kataDasarTempNya'; dataHilangSufix2=dataHilangSufix2'; dataHilangSufix2=dataHilangSufix2(~cellfun('isempty',dataHilangS

ufix2)); % Menghilangkan cell yang kosong kataDasarTemp=[kataDasarTemp;kataDasarTempKuMU;kataDasarTempNya]

;

% Cek awalan % pen-, ter-, me-, di-, ke- prefix1_2={ 'me' 'di' 'ke' 'ku'}; prefix1_3={'pen' 'ter'}; % prefix1_4={'meng' 'peng'}; kataDasarTempMeDiKe={}; kataDasarTempPenTer={}; dataHilangPrefix1={}; for i=1:length(dataHilangSufix2) kataTemp=dataHilangSufix2{i}; if length(kataTemp)>3 if ismember(kataTemp(1:2),prefix1_2) dataHilangPrefix1{i}=kataTemp(3:end); if ismember(dataHilangPrefix1{i},kamus); kataDasarTempMeDiKe{i}=dataHilangPrefix1{i}; dataHilangPrefix1{i}=''; else

[hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix1{i},kamus); if ismember(hasilKata,kamus); kataDasarTempMeDiKe{i}=hasilKata; dataHilangPrefix1{i}=''; else dataHilangPrefix1{i}=kataTemp;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

88

end end elseif ismember(kataTemp(1:3),prefix1_3) dataHilangPrefix1{i}=kataTemp(4:end); if ismember(dataHilangPrefix1{i},kamus); kataDasarTempPenTer{i}=dataHilangPrefix1{i}; dataHilangPrefix1{i}=''; else

[hasilKata]=hilangkanSufixKanAnI(dataHilangPrefix1{i},kamus); if ismember(hasilKata,kamus); kataDasarTempMeDiKe{i}=hasilKata; dataHilangPrefix1{i}=''; else dataHilangPrefix1{i}=kataTemp; end

end else dataHilangPrefix1{i}=kataTemp; end else dataHilangPrefix1{i}=kataTemp; end end kataDasarTempMeDiKe=kataDasarTempMeDiKe'; kataDasarTempPenTer=kataDasarTempPenTer'; dataHilangPrefix1=dataHilangPrefix1'; dataHilangPrefix1=dataHilangPrefix1(~cellfun('isempty',dataHilan

gPrefix1)); % Menghilangkan cell yang kosong kataDasarTemp=[kataDasarTemp;kataDasarTempMeDiKe;kataDasarTempPe

nTer];

% meng-, peng-, meny-, meng-, peng-, peny-, pem-, mem-, men- prefix2_3={'pem' 'mem' 'men'}; prefix2_4={'meng' 'peng' 'meny' 'meng' 'peng' 'peny'};

kataDasarTempMengPengMenyMengPengPeny={}; kataDasarTempPemMemMen={}; kataDasarTempPrefixLain={}; dataHilangPrefix2={}; for i=1:length(dataHilangPrefix1) kataTemp=dataHilangPrefix1{i}; if length(kataTemp)>4 % Cek apakah masuk prefix2_3 dan pefix2_4 atau tidak if ismember(kataTemp(1:3),prefix2_3) ||

ismember(kataTemp(1:4),prefix2_4) if ismember(kataTemp(1:4),prefix2_4) dataHilangPrefix2{i}=kataTemp(5:end); % Cek apakah huruf awal fokal atau tidak

[hasilKata]=jikaKondisiPrefixHurufAwalVokalAtauTidak(dataHilangP

refix2{i},kamus); % Menghilangkan sufix -kan,-an,i [hasilKata]=hilangkanSufixKanAnI(hasilKata,kamus); kataDasarTempMengPengMenyMengPengPeny{i}=hasilKata; dataHilangPrefix2{i}=''; elseif ismember(kataTemp(1:3),prefix2_3)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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'; if ismember(kataTemp,kamus);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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 hasilKata=data;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL i HALAMAN JUDUL ii HALAMAN PERSETUJUAN ...

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

end

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI