IDENTIFIKASI MAKNA KATA SABAR DALAM KARYA SASTRA MENGGUNAKAN K-NEAREST NEIGHBOR (KNN)
ABSTRAKSI
Kesabaran merupakan nilai hidup yang dipegang tinggi bangsa Indonesia. Menurut Subandi (2011), kesabaran merupakan ajaran yang dipegang oleh kelima agama yang besar di Indonesia (Islam, Kristen, Katolik, Hindu dan Budha). Lebih lanjut disebutkan oleh subandi bahwa dalam Al Qur'an terdapat 44 ayat yang menggunakan kata sabar dan 14 ayat yang menggunakan kata kesabaran. Penelusuran dalam Alkitab (Bible) Bahasa Indonesia menunjukkan 70 ayat yang menunggunakan kata sabar, kesabaran, dan kata lain dengan lema sabar. Subandi (2011) juga menyebutkan bahwa kesabaran merupakan bentuk pengendalian diri yang sangat penting dalam agama Budha dan agama Hindu.
Penelitian untuk mengidentifikasi makna kata sabar telah dilakukan oleh Dr. Benedictus Bherman Dwijatmoko, M.A. yang menghasilkan klasifikasi atau pengelompokan makna kata sabar kedalam 6 kategori atau kelompok, yaitu giliran, kondisi, komunikasi, sifat, pekerjaan dan urutan tindakan..
Dalam skripsi ini identifikasi makna kata sabar dilakukan dengan menggunakan algoritma K-Nearest Neighbor, yang hasilnya kemudian dibandingkan dengan hasil penelitian terdahulu oleh ahli untuk mendapatkan akurasi dari algoritma K-Nearest Neighbor dalam klasifikasi makna kata
sabar. Hasil akurasi yang diapat adalah 38,89% menggunakan data 108 artikel.
IDENTIFIED THE MEANING OF SABAR WORD IN LITERARY OF ARTS USING K-NEAREST NEIGHBOR (KNN) ALGORITHM
ABSTRACT
Kesabaran ‘patience’ is the value of life that hold Indonesian people
according to Subandi (2011) kesabara ‘patience’ is a doctrin that been held
by fifth big religions in Indonesia (Islam, Christian, Catholic, Hindu and Budha). Furthenmore, Subandi said that in Al-Qur’an there are 44 verses use the sabar ‘patient’ word and 14 verses use kesabaran ‘patience’ word. In
Bible that been translated into Indonesian language, there are 70 verses use patient, kesabaran‘patience’ and another word that has same meaning with sabar ‘patient’ word. Subandi (2011) also said that kesabaran ‘patience’ is
same with self controll that it important in Budhism and Hinduism.
The research to identified the meaning of sabar ‘patient’ word has been
done by Dwijatmoko, and the result is about grouping the meaning of sabar ‘patient’ word into six group, that is turn, condition, communication,
characteristic, and sequence of actions.
In this thesis, the identification of sabar‘patient’ word is done by using
K-Nearest Neighbor, and then compare the result of the system with the result that according to expert to get the accuration of K-Nearest Neighbor Algorithm in identification the meaning of sabar ’patient’ word. The results of the sistem are 38.89 % by 108 articles.
IDENTIFIKASI MAKNA KATA SABAR
DALAM KARYA SASTRA MENGGUNAKAN
K-NEAREST NEIGHBOR (KNN)
Skripsi
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh:
FX. Dwi Kurniawan
125314071
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
ii
IDENTIFIED THE MEANING OF SABAR WORD IN LITERARY OF ARTS USING K-NEAREST NEIGHBOR (KNN) ALGORITHM
THESIS
Presented as Partial Fulfillment of The Requirements
To Obtain the Computer Bachelor Degree
In Informatics Engineering
By:
FX. Dwi Kurniawan
125314071
INFORMATICS ENGINEERING STUDY PROGRAM FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, Januari 2017 Penulis
vi
HALAMAN MOTTO
“Victory Loves Preparation”
-The Mechanic Film
“Raise your head and taste the courage”
vii
HALAMAN PERSEMBAHAN
Tugas Akhir Ini saya persembahkan untuk:
Tuhan Yesus Kristus dan Bunda Maria, Eduardus Kusmarwanto, Yuliana Winarsih,
Teresia Juliana Melani, Keluarga,
Sahabat,
Teman - teman Prodi Teknik Informatika,
viii
IDENTIFIKASI MAKNA KATA SABAR DALAM KARYA SASTRA MENGGUNAKAN K-NEAREST NEIGHBOR (KNN)
ABSTRAKSI
Kesabaran merupakan nilai hidup yang dipegang tinggi bangsa Indonesia. Menurut Subandi (2011), kesabaran merupakan ajaran yang dipegang oleh kelima agama yang besar di Indonesia (Islam, Kristen, Katolik, Hindu dan Budha). Lebih lanjut disebutkan oleh subandi bahwa dalam Al Qur'an terdapat 44 ayat yang menggunakan kata sabar dan 14 ayat yang menggunakan kata kesabaran. Penelusuran dalam Alkitab (Bible) Bahasa Indonesia menunjukkan 70 ayat yang menunggunakan kata sabar, kesabaran, dan kata lain dengan lema sabar. Subandi (2011) juga menyebutkan bahwa kesabaran merupakan bentuk pengendalian diri yang sangat penting dalam agama Budha dan agama Hindu.
Penelitian untuk mengidentifikasi makna kata sabar telah dilakukan oleh Dr. Benedictus Bherman Dwijatmoko, M.A. yang menghasilkan klasifikasi atau pengelompokan makna kata sabar kedalam 6 kategori atau kelompok, yaitu giliran, kondisi, komunikasi, sifat, pekerjaan dan urutan tindakan..
Dalam skripsi ini identifikasi makna kata sabar dilakukan dengan menggunakan algoritma K-Nearest Neighbor, yang hasilnya kemudian dibandingkan dengan hasil penelitian terdahulu oleh ahli untuk mendapatkan akurasi dari algoritma K-Nearest Neighbor dalam klasifikasi makna kata
sabar. Hasil akurasi yang diapat adalah 38,89% menggunakan data 108 artikel.
ix
IDENTIFIED THE MEANING OF SABAR WORD IN LITERARY OF ARTS USING K-NEAREST NEIGHBOR (KNN) ALGORITHM
ABSTRACT
Kesabaran ‘patience’ is the value of life that hold Indonesian people
according to Subandi (2011) kesabara ‘patience’ is a doctrin that been held
by fifth big religions in Indonesia (Islam, Christian, Catholic, Hindu and Budha). Furthenmore, Subandi said that in Al-Qur’an there are 44 verses use the sabar ‘patient’ word and 14 verses use kesabaran ‘patience’ word. In
Bible that been translated into Indonesian language, there are 70 verses use patient, kesabaran‘patience’ and another word that has same meaning with
sabar ‘patient’ word. Subandi (2011) also said that kesabaran ‘patience’ is
same with self controll that it important in Budhism and Hinduism.
The research to identified the meaning of sabar ‘patient’ word has been
done by Dwijatmoko, and the result is about grouping the meaning of sabar ‘patient’ word into six group, that is turn, condition, communication,
characteristic, and sequence of actions.
In this thesis, the identification of sabar‘patient’ word is done by using K-Nearest Neighbor, and then compare the result of the system with the result that according to expert to get the accuration of K-Nearest Neighbor Algorithm in identification the meaning of sabar ’patient’ word. The results of the sistem are 38.89 % by 108 articles.
x
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMUAH UNTUK KEPERLUAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama : FX. Dwi Kurniawan
Nim : 125314071
Demi mengembangkan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:
IDENTIFIKASI MAKNA KATA SABAR DALAM KARYA SASTRA MENGGUNAKAN K-NEAREST NEIGHBOR (KNN)
Beserta pangkat yang diperlukan. Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta izin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, Januari 2017
Penulis
xi
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa atas berkat dan rahmat-Nya, sehingga Tugas Akhir Identifikasi Makna Kata Sabar Dalam Karya Sastra Menggunakan K-Nearest Neighbor (KNN)
ini dapat terselesaikan. Adapun penulisan tugas akhir ini adalah untuk memenuhi persyaratan dalam memperoleh gelar Sarjana Teknik Informatika Universitas Sanata Dharma, Yogyakarta.
Penyusunan Tugas Akhir ini tidak terlepas dari bantuan beberapa pihak, oleh karena itu penulis hendak mengucapkan terima kasih kepada:
1. Tuhan Yesus Kristus yang selalu memberikan berkat dan rahmat untuk setiap pertanyaan dan permasalahan dalam pengerjaan Tugas Akhir. 2. Bunda Maria yang selalu menemani dalam keluh kesah pengerjaan Tugas
Akhir ini.
3. Bapak Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. selaku Dekan Fakultas Sains dan Teknologi.
4. Ibu Dr.Anastasia Rita Widiarti, M.Kom selaku Kaprodi Fakultas Sains dan Teknologi.
5. Ibu Sri Hartati Wijono, M.Kom. dan Bapak Dr. B. B. Dwijatmoko, M.A selaku pembimbing Tugas Akhir yang bersedia memberikan bimbingan hingga penulisan Tugas Akhir ini dapat terselesaikan.
6. Bapak Eduardus Kusmarwanto dan Ibu Yuliana Winarsih yang tanpa lelah selalu memberikan dukungan, semangat, motivasi dan doa hingga penulisan Tugas Akhir ini dapat terselesaikan.
7. Teresia Juliana Melani yang tanpa lelah selalu memberikan semangat, dorongan, motivasi baik lewat canda, tawa, doa serta ejekan yang sifatnya adalah demi terselesaikannya Tugas Akhir ini.
xii
9. Teman –teman Teknik Informatika “Ikatan Teknik Informatika Liberal” yang telah memberikan keceriaan dan kebersamaan pada setiap semesternya selama masa perkuliahan.
10.Sahabat dan teman yang tidak bisa disebutkan satu persatu, terima kasih untuk dukungan dan bantuan dalam hal apapun.
xiii
DAFTAR ISI
HALAMAN JUDUL BAHASA INDONESIA ... i
HALAMAN JUDUL BAHASA INGGRIS ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN... iv
PERNYATAAN KEASLIAN KARYA ... v
HALAMAN MOTTO ... vi
HALAMAN PERSEMBAHAN ... vii
ABSTRAKSI ... viii
ABSTRACT ... ix
LEMBAR PERNYATAAN PERSETUJUAN ... x
KATA PENGANTAR ... xi
DAFTAR ISI ... xiii
DAFTAR GAMBAR ... xvi
DAFTAR TABEL ... xvii
DAFTAR LIST CODE ... xviii
PENDAHULUAN ... 1
1.1. Latar Belakang Masalah ... 1
1.2. Rumusan Masalah ... 3
1.3. Batasan Masalah ... 3
1.4. Tujuan Penelitian ... 3
1.5. Metodologi Penelitian ... 4
1.6. Sistematika Penulisan ... 5
BAB II ... 6
LANDASAN TEORI ... 6
2.1. Kesabaran ... 6
2.1.1. Makna Kata Sabar ... 6
2.2. Pemerolehan Informasi... 11
2.2.1. Proses Preprocessing Dokumen ... 12
2.3. Klasifikasi Teks ... 16
xiv
2.3.2. Langkah Algoritma KNN ... 19
2.3.3. Perhitungan Akurasi ... 20
BAB III ... 21
METODOLOGI PENELITIAN ... 21
3.1. Gambaran Umum Sistem ... 21
3.1.1. Input Data ... 22
3.1.2. Prepocessing... 23
3.1.3. Klasifikasi KNN ... 24
3.2. Analisa Kebutuhan Sistem ... 25
3.2.1. Definisi Aktor ... 25
3.2.2. Diagram Use Case ... 25
3.3. Perancangan Model Penyimpanan Data ... 32
3.4. Diagram Konteks ... 32
3.5. Diagram Aktivitas ... 33
BAB IV ... 36
IMPLEMENTASI ... 36
4.1. Spesifikasi Software dan Hardware yang dibutuhkan ... 36
4.1.1. Spesifikasi Software ... 36
4.1.2. Spesifikasi Hardware ... 36
4.2. Implementasi Antar Muka ... 37
4.3. Implementasi Sistem ... 38
4.3.1. Implementasi Preprocessing ... 38
4.3.2. Implementasi Klasifikasi... 44
BAB V... 46
HASIL DAN PEMBAHASAN ... 46
5.1. Pengujian ... 46
5.1.1. K fold Cross Validation ... 46
5.2. Analisa Hasil ... 49
BAB VI ... 58
PENUTUP ... 58
6.1. Kesimpulan ... 58
DAFTAR PUSTAKA ... 60
xv
Hasil Tokenisasi ... 61
LAMPIRAN 2 ... 65
Hasil Stopword ... 65
LAMPIRAN 3 ... 67
Hasil Stemming ... 67
LAMPIRAN 4 ... 70
Hasil Text Frequency ... 70
LAMPIRAN 5 ... 75
Hasil Perhitungan COSINE SIMILARITY ... 75
LAMPIRAN 6 ... 76
Hasil Pengurutan Vektor ... 76
LAMPIRAN 7 ... 77
Hasil Label Mayoritas ... 77
LAMPIRAN 8 ... 78
xvi
DAFTAR GAMBAR
Gambar 3. 1. Gambaran Umum Sistem ... 22
Gambar 3. 2. Diagram Konteks ... 32
Gambar 3. 2. 1. Diagram Use Case ... 25
Gambar 3. 5. 1. 1. Diagram Aktivitas Input Stopword ... 33
Gambar 3. 5. 1. 2. Diagram Aktivitas Input Stemming ... 33
Gambar 3. 5. 1. 3. Diagram Aktivitas Input Data Training ... 34
Gambar 3. 5. 1. 4. Diagram Aktivitas Data Testing ... 34
Gambar 3. 5. 2. 1. Diagram Aktivitas Input Nilai K ... 35
Gambar 3. 5. 2. 2. Diagram Aktivitas Klasifikasi ... 35
Gambar 4. 2. 1. Antar Muka Awal ... 37
xvii
DAFTAR TABEL
Tabel 3. 1. 1. Daftar Data ... 22
Tabel 3. 2. 1. Definisi Aktor ... 25
Tabel 3. 2. 3. 1. 1. Narasi Input Kamus Stopword ... 26
Tabel 3. 2. 3. 1. 2. Narasi Input Kamus Stemming ... 27
Tabel 3. 2. 3. 1. 3. Narasi Input Data Training ... 28
Tabel 3. 2. 3. 1. 4. Narasi Input Data Testing ... 29
Tabel 3. 2. 3. 2. 1. Narasi Input Nilai K ... 30
Tabel 3. 2. 3. 2. 2. Narasi Klasifikasi ... 31
Tabel 5. 1. 1. 1. Pembagian Data 3 Fold ... 47
Tabel 5. 2. 1. 1 Tahap 1 (K = 4) ... 49
Tabel 5. 2. 1. 2. Tahap 2 (K = 4) ... 49
Tabel 5. 2. 1. 3. Tahap 3 (K = 4) ... 50
Tabel 5. 2. 1. 4. Rata - Rata Akurasi (K = 4) ... 50
Tabel 5. 2. 2. 1. Tahap 1 (K = 5) ... 51
Tabel 5. 2. 2. 2. Tahap 2 (K = 5) ... 51
Tabel 5. 2. 2. 3. Tahap 3 (K = 5) ... 52
Tabel 5. 2. 2. 4. Rata - Rata Akurasi (K = 5) ... 52
Tabel 5. 2. 3. 1. Tahap 1 (K = 6) ... 53
Tabel 5. 2. 3. 2. Tahap 2 (K = 6) ... 53
Tabel 5. 2. 3. 3. Tahap 3 (K = 6) ... 54
Tabel 5. 2. 3. 4. Rata - Rata Akurasi (K = 6) ... 54
Tabel 5. 2. 4. 1. Tahap 1 (K = 7) ... 55
Tabel 5. 2. 4. 2. Tahap 2 (K = 7) ... 55
Tabel 5. 2. 4. 3. Tahap 3 (K = 7) ... 56
xviii
DAFTAR LIST CODE
List Code 4. 3. 1. 1. Implementasi Tokenisasi ... 38
List Code 4. 3. 1. 2. Implementasi Stopword ... 39
List Code 4. 3. 1. 3. Implementasi Stemming ... 40
List Code 4. 3. 1. 4. Implementasi Tf ... 41
List Code 4. 3. 1. 5. Implementasi Idf... 42
List Code 4. 3. 1. 6. Implementasi Pembobotan ... 43
List Code 4. 3. 2. 1. Implementasi Hitung Cosine Similarity ... 44
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Menurut Manning (2008), proses pemerolehan informasi dapat diartikan pencarian material dari dokumen yang sifatnya tidak terstruktur yang bertujuan untuk memenuhi kebutuhan informasi dari suatu kumpulan dokumen yang besar. Proses pemerolehan informasi ini dapat dilakukan dengan menggunakan hitungan manual maupun menggunakan metode-metode yang ada dalam data mining atau penambangan data atau dikenal juga dengan text mining dalam pemerolehan informasi. Dalam proses pemerolehan informasi ini, ada beberapa tahapan yang harus dilakukan. Tahap pertama adalah
preprocessing. Tahap ini terbagi menjadi 3 tahap lagi yaitu tokenizing,
stopword dan stemming. Setelah 3 tahap awal ini dilakukan, kemudian akan dilakukan perhitungan text frequency serta pembobotan. Setelah proses diatas dilakukan, selanjutnya adalah melakukan klasifikasi dengan menggunakan metode KNN atau K Nearest Neighbour.
Dalam klasifikasi ini kata akan dipisahkan ke dalam beberapa kelompok dengan berdasar kemiripan kata dalam dokumen. Dengan pengelompokan kata ini, akan mebantu untuk menemukan informasi dari sebuah dokumen secara lebih tepat. Dalam metode KNN, klasifikasi ini menggunakan hasil perhitungan tf atau text frequency
dengan melihat kemiripan cosine similarity setiap dokumen berdasarkan nilai k atau jumlah tetangga terdekat.
1.2. Rumusan Masalah
Berdasarkan latar belakang diatas maka didapatkan rumusan masalah yaitu:
1. Bagaimana membangun sistem untuk mengidentifikasi makna kata sabar dalam karya sastra Indonesia menggunakan metode KNN? 2. Berapa besar tingkat akurasi metode KNN dalam identifikasi makna
kata dalam kalimat pada karya sastra Indonesia?
1.3. Batasan Masalah
Batasan penulisan ini adalah sebagai berikut:
1. Data yang digunakan dalam penelitian ini adalah dokumen dengan format teks(*.txt).
2. Algoritma yang digunakan adalah algoritma KNN.
3. Data yang digunakan dalam klasifikasi adalah kalimat yang mengandung kata kunci sabar dan kalimat pendukung, yaitu kalimat yang berada di depan kalimat utama atau kalimat yang berada di belakang kalimat utama.
1.4. Tujuan Penelitian
Tujuan penulisan ini adalah sebagai berikut:
1. Mengimplementasikan metode KNN dalam identifikasi makna kata sabar dalam karya sastra Indonesia.
1.5. Metodologi Penelitian
Dalam penelitian ini, metodologi yang digunakan adalah sebagai berikut:
1. Studi Literatur
Pada tahap ini akan dilakukan dengan mencari informasi tentang penggunaan metode KNN dalam klasifikasi teks dari sumber-sumber buku, jurnal maupun website.
2. Pengumpulan data.
Pada tahap ini akan dilakukan pengumpulan data. Pengumpulan data ini diperoleh dari situs www.corci.org (Corpus Of Curremt Indonesia). Data yang berasal dari corci ini berupa kalimat dalam bahasa Indonesia yang berasal dari berbagai macam karya sastra Indonesia.
3. Perancangan
Pada tahap ini akan dilakukan perancangan sistem.
4. Pembuatan Sistem
Pada tahap ini setelah tahap perancangan dilakukan, maka akan dilanjutkan dengan tahap pembuatan sistem.
5. Implementasi dan Pengujian
Pada tahap ini implementasi dilakukan dengan cara melakukan pengujian pada sistem yaitu dengan memasukan data teks ke dalam sistem untuk selanjutnya dilakukan proses klasifikasi.
6. Evaluasi
1.6. Sistematika Penulisan BAB I PENDAHULUAN
Bab ini berisi gambaran umum tentang penulisan yang meliputi latar belakang, rumusan masalah, batasan masalah, tujuan serta metode penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi tentang dasar teori yang digunakan, konsep pemerolehan informasi, ideologi kesabaran dalam karya sastra Indonesia, metode klasifikasi KNN, akurasi Cross Validation.
BAB III METODOLOGI PENELITIAN
Bab ini berisi tentang proses perancangan sistem, alur kerja sistem serta tampilan antar muka yang digunakan dalam penelitan.
BAB IV IMPLEMENTASI
Bab ini berisi tentang implementasi indentifikasi makna kata sabar dalam Karya Sastra.
BAB V HASIL DAN PEMBAHASAN
Bab ini berisi tentang analisa hasil dari pengujian tehadap sistem.
BAB VI KESIMPULAN DAN SARAN
6
BAB II
LANDASAN TEORI
2.1. Kesabaran
Kesabaran menurut Subandi (2011) merupakan ajaran yang dijunjung tinggi oleh 5 agama besar di Indonesia (Islam, Kristen, Katolik, Hindu dan Budha). Dalam kitab Al Qur'an terdapat 44 ayat yang menggunakan kata sabar dan 14 ayat yang menggunakan kata kesabaran. Selain itu dalam Alkitab Bahasa Indonesia terdapat 70 ayat yang menggunakan kata sabar, kesabaran dan kata lain dengan lema sabar. Disebutkan pula oleh Subandi (2011) bahwa kesabaran merupakan bentuk pengendalian diri yang sangat penting dalam agama Budha dan agama Hindu. Penelitian ini menggunakan data yang diperoleh dari situs www.corci.org yang sebelumnya telah dilakukan penelitian oleh Dr. Benedictus Bherman Dwijatmoko, M.A.
Dalam penelitan yang telah dilakukan sebelumnya oleh Dr. Benedictus Bherman Dwijatmoko, M.A. selaku Dosen Pembimbing, kalimat dengan lema sabar dikelompokkan dalam 6 makna yaitu keadaan, urutan giliran, urutan tindakan, kesediaan menunggu dalam pembicaraan (komunikasi), sifat(kondisi) dan pekerjaan.
2.1.1.Makna Kata Sabar
Pada klasifikasi yang dilakukan akan dilakukan pembagian kelas berdasarkan makna dari kata sabar tersebut. Makna kata sabar tersebut adalah Keadaan, Urutan Giliran, Urutan Tindakan, Komunikasi, Sifat, Pekerjaan.
2.1.1.1. Keadaan
Contoh:
Pun ketika ingin membentuk sebuah kalimat, bingung aku menentukan tense-nya. Bahasa Inggrisku tak maju-maju.” “Begini, ” kata Lintang sabar menghadapi ketololanku. Ketika itu ia sedang memaku sandal cunghai-nya yang menganga seperti buaya lapar.
Penjelasan:
Pada Contoh diatas Lintang menunjukkan penerimaannya pada keadaan temannya yang bahasa Inggrisnya jelek. Lintang menerima ketololan pembicara dengan sabar.
2.1.1.2. Urutan Giliran
Kesabaran juga muncul pada penantian dari tindakan orang lain. Pelaku atau pembicara perlu sabar untuk menunggu orang lain selesai melakukan tindakannya atau menunggu gilirannya.
Contoh:
Penumpang berebut turun. Wajah gadis itu nampak sabarsekali menunggu luangnya jalan. Joki memberinya kesempatan untuk lewat.
Penjelasan:
Gadis pada contoh diatas sabar menunggu gilirannya untuk turun. Ia lebih aman dan nyaman menunggu sampai kesempatan untuk lewat datang.
2.1.1.3. Urutan Tindakan
Contoh:
1. Kami, delapan ekor sapi, yang akan tampil pada plot kedua, gemetar menunggu aba-aba dari Mahar untuk menerjang arena. Kami tak
sabar dan rasanya kaki sudah gatal ingin mendemonstrasikan kehebatan mamalia menari. Kami adalah remaja-remaja kelebihan energi dan lapar akan perhatian.
2. Tak satu baju pun yang tertinggal di almari. Seolah-olah Haji Sudung tak akan kembali lagi ke rumah itu. Malam itu, sambil mendekap buntalan tasnya, Haji Sudung tak sabar untuk segera tertidur. Ia ingin berlari memburu pagi.
Penjelasan:
Sapi-sapi pada contoh 1 menunjukkan ketidak-sabarannya untuk mengikuti urutan itu. Demikian juga Haji Sulung. Ia harus mengemasi barang-barangnya sebelum ia tidur dan kemudian pergi pada keesokan harinya. Ia ingin segera tidur dan pergi keesokan harinya.
2.1.1.4. Komunikasi
Kesaabaran juga mempunyai arti kesediaan menunggu dalam pembicaraan (Komunikasi). Peserta pembicaraan perlu menunggu sampai orang yang berbicara selesai berbicara sebelum ia memulai bicara. Menyela pembicaraan merupakan perilaku tidak sabar.
Contoh:
1. Cun An tercenung sebentar, kelihatannya menyerap omongan penyamun ini untuk disari-sarikan, tapi setelah itu dengan tak sabar
2. Mamak berhenti sejenak. Kalan semakin tidak sabar. Sebatang rokok keretek yang ia selai tak cukup mampu untuk menghilangkan
gundahnya. ”Maksud Mamak?
Penjelasan:
Cun An menunjukkan ketidak-sabarannya dengan memotong pembicaraan penyamun itu, dan Kalan dengan memotong pembicaraan Mamak.
Latar belakang ketidak-sabaran Cun An dan Kalan berbeda. Kalimat Sudah saya bilang jangan bertele-tele. Katakan saja tawaran itu menunjukkan bahwa Cun An mempunyai kekuatan yang lebih besar daripada penyamun itu. Cun An tidak takut pada penyamun itu. Berbeda dengan Cun An, Kalan merasa tidak nyaman untuk melakukan tindakan yang dapat diartikan tidak sabar. Ia merasa terpaksa harus memotong pembicaraan mamaknya, orang yang harus dihormatinya.
Sebatang rokok keretek yang ia selai tak cukup mampu untuk menghilangkan gundahnya.
2.1.1.5. Sifat
Sifat sabar merupakan sifat baik yang dipunyai oleh orang yang diidamkan. Sifat itu sejajar dengan sifat-sifat baik yang lain seperti bijaksana, baik, tabah, dan setia.
Contoh:
1. Perempuan memang bukan persoalan baginya. Hanya masalahnya sampai sekarang dia baru bisa memahami seorang perempuan saja, mamanya, wanita yang sabar, setia, bijaksana, dan penuh kasih sayang.
2. ”Kata orangtua saya, sebagai istri saya mesti menghormati suami,
saya tidak boleh membantah kata suami. Hanya orang yang baik dan
Penjelasan:
Contoh 1 membicarakan mama pelaku yang mempunyai sifat sabar, dan contoh 2 menunjukkan pembicara sendiri yang mempunyai sifat sabar. Sifat sabar pada contoh 1 disertai dengan sifat yang baik lainnya yaitu setia, bijaksana, dan penuh kasih sayang, dan pada contoh 2 sifat itu disertai dengan sifat baik.
Pengakuan pelaku bahwa ibu pelaku itu mempunyai sifat sabar yang belum ia jumpai pada wanita lain pada contoh 1 dan pengakuan pembicara bahwa sifat sabarnya ia kembangkan karena kata orangtuanya menunjukkan peran orang tua dalam penanaman sifat sabar. Mereka melihat sosok orang tua sebagai orang yang dapat mereka tauladani dalam kesabaran.
Akan tetapi perilaku sabar pada contoh 2 menunjukkan jalan pemikiran yang berbeda. Kesabaran pada wanita itu merupakan kesabaran yang dipaksakan. Seorang istri tidak boleh membantah kata suaminya apapun yang dikatakan suaminya. Bila ia melanggar aturan itu, ia diancam untuk tidak dapat masuk surga.
2.1.1.6. Pekerjaan
Arti kesabaran yang terakhir adalah ketekunan dalam pekerjaan. Orang yang sabar adalah orang yang dapat menghadapi situasi yang sulit untuk dihadapi atau melakukan pekerjaannya dengan tekun. Ia tidak mudah menyerah menghadapi keadaan yang sulit dan terus tekun untuk mencapai tujuannya.
Contoh:
1. "Bagaimana aku bisa sabar, kalau harus membuang tenaga, waktu, dan pikiran cuma untuk beberapa ratus Indian rupee!"
Penjelasan:
Pembicara pada contoh 1 tidak sabar atau tabah menghadapi keadaan yang sulit. Ia tidak mau membuang tenaga, waktu, dan pikirannya karena uang yang diterimanya sangat sedikitnya. Sebaliknya, Si Pelukis dengan gigih atau tekun terus membujuk ibu pembicara sehingga wanita itu mau menerima uang yang ingin diberikannya.
Latar belakangnya munculnya kesabaran atau ketidak-sabaran pada contoh 1 dan contoh 2 berbeda. Pembicara pada contoh 1 tidak sabar atas perilaku pemilik pekerjaan atau orang yang memberinya pekerjaan. Ia merasa diperlakukan tidak sebanding antara tenaga, waktu, dan pikiran yang dikeluarkannya dengan uang yang diterimanya. Pemilik uang, modal, atau pekerjaan dapat memperlakukan orang yang dipekerjakannya dengan tidak sepantasnya. Pada data contoh 2 faktor kedudukan dan usia Emak menuntut pelukis itu untuk bertindak gigih untuk meyakinkan wanita itu agar mau menerima uang.
2.2. Pemerolehan Informasi
Pemerolehan Informasi berhubungan dengan pengambilan informasi dari dokumen-dokumen yang didasarkan pada isi dan konteks dari dokumen-dokumen itu sendiri. Beberapa pengertian Pemerolehan Informasi dari berbagai sumber, antara lain :
Pemerolehan Informasi adalah menemukan materi (biasanya berupa dokumen) yang bersifat tidak terstruktur (biasanya dalam bentuk teks) yang memenuhi kebutuhan informasi dari dalam koleksi atau kumpulan besar (biasanya disimpan di komputer) (Manning, 2008).
Pemerolehan informasi merupakan “bidang berkaitan dengan
Information Retrieval adalah “bidang di persimpangan ilmu informasi dan ilmu komputer. Berkutat dengan pengindeksan dan pengambilan informasi dari sumber informasi heterogen (memiliki pengaruh yang berbeda) dan sebagian besar-tekstual (Mooers, 1951). “ Hersh, 2003.
Data yang dapat dijadikan sumber pencarian dapat berupa pesan teks, seperti e-mail, dan dokumen berita, bahkan dokumen yang beredar di internet. Dengan jumlah dokumen koleksi yang besar sebagai sumber pencarian, maka dibutuhkan suatu sistem yang dapat membantu user menemukan dokumen yang relevan dalam waktu yang singkat dan tepat.
2.2.1.Proses Preprocessing Dokumen
Setelah mendapatkan dokumen langkah selanjutnya adalah untuk memutuskan apakah harus dilakukan sebuah langkah untuk menyederhanakan pencarian atau lebih sering disebut dengan proses
preprocessing. Proses ini berfungsi untuk mendapatkan kata kunci yang nantinya dapat digunakan sebagai pembanding antar dokumen. Dalam proses ini ada beberapa tahap yaitu tokenisasi, stopword, stemming dan
text frequency.
2.2.1.1. Tokenisasi
Tokenisasi adalah proses memotong kalimat menjadi potongan-potongan kata yang disebut token dan pada saat yang sama karakter-karakter tertentu seperti tanda baca dihapus (Manning, 2008). Dalam tokenisasi ini pula kata dalam dokumen akan diubah menjadi huruf kecil.
Contoh:
Maka akan menjadi seperti dibawah ini:
2.2.1.2. Stopword
Stopword adalah kata yang sangat umum yang akan muncul menjadi nilai yang kecil dalam membantu dokumen pilih yang cocok dengan kebutuhan pengguna dikecualikan dari kosa kata seluruhnya (Manning, 2008). Pada stopword ini akan dibuat sebuah dokumen yang berisi kumpulan kata yang sering muncul namun dianggap tidak memiliki makna dalam kaitannya dengan kemiripan antar dokumen. Kata itu seperti kata yang, dan, aku dan lain sebagainya.
Contoh:
Maka akan menjadi seperti dibawah ini:
2.2.1.3. Stemming
Stemming adalah proses untuk mengambalikan sebuah bentuk kata menjadi bentuk kata dasar dengan cara menghilangkan semua imbuhan baik dari awalan, sisipan, akhiran dan kombinasi dari awalan dan akhiran.
aneh tadi ia tidak sabar menunggu
telepon tapi kini malah ragu mengangka
t perasaan cemas menyisip
aneh tadi ia tidak sabar menunggu telepon
tapi kin
i
malah ragu mengangkat perasaan
cemas menyisip
sabar menunggu telepon ragu mengangkat perasaan
Contoh:
Maka akan menjadi seperti dibawah ini:
2.2.1.3.1. Stemming Sastrawi
Disebutkan dalam situs www.github.com/sastrawi Sastrawi stemmer merupakan sebuah library stemmer sederhana yang didesain untuk dapat digunakan secara mudah.
Sastrawi stemmer menerapkan algoritma yang berbasis Nazief dan Adriani, kemudian ditingkatkan dengan Algoritma CS (Confix Stripping), kemudian ditingkatkan lagi dengan algortima ECS (Enhanced Confix Stripping), lalu ditingkatkan lagi dengan Modified ECS.
Dengan menggunakan algoritma-algoritma tersebut, banyak persoalan stemming berhasil diatasi:
1. mencegah overstemming dengan kamus kata dasar.
2. mencegah understemming dengan aturan-aturan tambahan. 3. Beberapa contoh kata hasil stem: Buku-buku ~> buku
Menahan ~> tahan
Berbalas – balasan ~> balas
sabar menunggu telepon ragu mengangkat
perasaan cemas menyisip
sabar tunggu telepo
n
ragu angka
t
rasa cemas
2.2.1.3.2. Stemming Nazief dan Adriani
Pada stemming dengan menggunakan algoritma Nazief & Adriani, terdapat beberapa tahapan diantaranya adalah:
1. Mencari kata yang akan di stem dengan menggunakan kamus kata dasar. Jika ditemukan maka algoritma akan berhenti dan kata tersebut diasumsikan sebagai root word.
2. Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”) dibuang. Jika berupa particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns(“-ku”, “-mu”, atau “-nya”), jika ada.
3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a.
3a. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut
adalah “-k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b.
3b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah 4.
4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi ke langkah 4a, jika tidak pergi ke langkah 4b. 4a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan.
Jika ditemukan maka algoritma berhenti, jika tidak pergi ke langkah 4b.
4b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti.
5. Melakukan Recoding.
2.2.1.4. Text Frequency dan Pembobotan
Semakin banyak kata yang mirip atau sama antara dua dokumen maka semakin dekat kedua dokumen tersebut dan akan memiliki bobot atau nilai yang lebih tinggi (Manning,2008). Pemberian bobot atau nilai akan menggunakan teknik TF/IDF(term frequency / inverse document frequency). TF adalah jumlah kemunculan suatu kata dalam sebuah dokumen, sedangkan IDF adalah inverse dari banyanknya dokumen dimana suatu term tersebut muncul.
Rumus Pembobotan Saton(1983):
W(t,d) = tft,d * idft = tf(t,d) * log(N/nt) (2.1)
Keterangan:
a. W(t,d) = bobot dari term(kata) t dalam dokumen d.
b. Tf(t,d) = frekuensi kemunculan term(kata) t dalam dokumen d.
c. Idft = Inverse document frequency dari kata t.
d. N = jumlah seluruh dokumen.
e. Nt = jumlah dari dokumen training yang mengandung kata t.
2.3. Klasifikasi Teks
2.3.1.K-Nearest Neighbour
Metode KNN adalah salah satu metode yang digunakan dalam sistem klasifikasi yang menggunakan pendekatan Machine Learning.
Machine Learning merupakan sebuah proses dalam membangun sistem klasifikasi melakui pembelajaran dari sejumlah contoh yang sudah diklasifikasikan sebelumnya (Feldman & Sanger, 2007).
Salah satu masalah yang dihadapi KNN adalah pemilihan nilai K yang tepat. Misalnya, diambil K bernilai 13, kelas 0 dimiliki oleh 7 tetangga yang jauh, sedangkan kelas 1 dimiliki oleh 6 tetangga yang lebih dekat. Hal ini mengakibatkan data uji tersebut akan terdistorsi sehingga ikut tergabung dengan kelas 0. Hal ini karena setiap tetangga tersebut memiliki bobot yang sama terhadap data uji, sedangkan nilai K yang terlalu kecil bisa menyebabkan algoritma terlalu sensitif terhadap noise. Nilai K yang bagus dapat dipilih berdasarkan optimisasi parameter, misalkan dengan cross validation (Eko Prasetyo, 2012).
Berikut ini adalah beberapa karakteristik kelebihan dan kekurangan metode KNN menurut Eko Prasetyo(2012).
1. KNN merupakan algoritma yang menggunakan seluruh data latih untuk melakukan proses klasifikasi (complete storage). Hal ini mengakibatkan proses prediksi yang sangat lama untuk data dalam jumlah yang sangat besar. Pendekatan lain adalah dengan menggunakan mean data dari setiap kelas, kemudian menghitung jarak terdekat data uji ke mean data setiap kelas tersebut. Hal ini memberi keuntungan kerja yang lebih cepat, tetapi hasilnya kurang memuaskan karena model hanya membentuk hyperplane tepat di tengah-tengah di antara 2 kelas yang memisahkan 2 kelas (untuk kasus 2 kelas). Semakin banyak data latih, semakin halus hyperplane
2. Algoritma KNN tidak membedakan setiap fitur dengan suatu bobot seperti pada Artificial Neural Network (ANN) yang berusaha menekan fitur yang tidak mempunyai kontribusi terhadap klasifikasi menjadi 0 pada bagian bobot. KNN tidak memiliki bobot untuk masing- masing fitur.
3. Karena KNN masuk kategori lazy learning yang menyimpan sebagian atau semua data dan hampir tidak ada proses pelatihan, KNN sangat cepat dalam proses pelatihan (karena memang tidak ada), tetapi sangat lambat dalam proses prediksi.
4. Hal yang rumit adalah menentukan nilai K yang paling sesuai. 5. Karena KNN pada prinsipnya memilih tetangga terdekat, parameter
2.3.2.Langkah Algoritma KNN
1. Tentukan parameter k = jumlah dokumen tetangga.
2. Hitung kemiripan antara dokumen baru dan dokumen pelatihan dengan menggunakan rumus cosine similarity (Manning, Raghavan, dan Schutze, 2008):
Sim(� , �) = �.
‖ �‖ ‖ ‖
(2.2)
(2.3)
Keterangan:
- � : dokumen j (dokumen pelatihan)
- � : query dokumen (dokumen test)
- ∑�= � , : jumlah bobot kata i pada dokumen j - ∑�= � , : jumlah bobot kata i pada dokumen q (test)
3. Urutkan nilai kesamaan dan tentukan tetangga terdekat berdasarkan jarak terkecil, banyak tetangga terdekat diambil dari parameter k. 4. Gunakan label mayoritas dari kategori dokumen tetangga sebagai
nilai prediksi dokumen test.
�, �, �
=
ඩ � , �
=
ඩ � , �
2.3.3.Perhitungan Akurasi
Perhitungan akurasi dilakukan dengan menggunakan metode
cross-validation. Pada metode cross-validation, data dibagi menjadi k
subset atau fold yang saling bebas secara acak, yaitu S1, S2, ...., Sk, dengan ukuran setiap subset sama. Pelatihan dan pengujian dilakukan sebanyak k kali. Pada iterasi ke-i, subse S1 diperlukan sebagai data pengujian, dan subset lainnya sebagai data pelatihan. Tingkat akurasi dihitung dengan membagi jumlah keseluruhan klasifikasi yang benar dengan jumlah semua instance pada data awal (Han & Kamber 2006). Jika menggunakan 3 fold, maka akan dibagi menjadi 3 tahap seperti dibawah ini:
Tahap I
1. fold 1 sebagai data uji. 2. fold 2 sebagai data pelatihan. 3. fold 3 sebagai data pelatihan. Tahap II
1. fold 2 sebagai data uji. 2. fold 1 sebagai data pelatihan. 3. fold 3 sebagai data pelatihan. Tahap III
1. fold 3 sebagai data uji. 2. fold 1 sebagai data pelatihan. 3. fold 2 sebagai data pelatihan.
Setelah dilakukan cross-validation maka dilanjutkan dengan
precision untuk menentukan akurasi.
Precision = �ℎ � � �� � �
21
BAB III
METODOLOGI PENELITIAN
3.1. Gambaran Umum Sistem
Dalam penelitian ini, sistem yang dibangun adalah sistem pemerolehan informasi yang menggunakan data dalam format .txt. Sistem ini memiliki fungsi dalam melakukan identifikasi terhadap makna kata sabar dalam sebuah karya sastra Indonesia. Dalam proses identifikasi ini, dilakukan proses klasifikasi menggunakan metode KNN. Data dalam sistem ini akan dibagi menjadi 2 yaitu data traning
dan data testing. Data training di masukan ke dalam folder sesuai dengan maknanya.
Alur dalam sistem ini diawali dengan tahap preprocessing yang akan dilakukan terhadap data training maupun data testing. Prosesnya diawali dengan melakukan tokenisasi. Dalam tokenisasi baik data
training maupun data testing yang awalnya adalah sebuah kalimat lengkap dengan tanda bacanya akan dilakukan penghapusan karakter tanda baca, pemenggalan kata serta mengubah semua huruf menjadi huruf kecil. Tahap selanjutnya dalam preprocessing adalah stopword. Pada tahap stopword, akan dilakukan penghapusan kata-kata yang tidak mempengaruhi makna kalimat tersebut seperti kata ganti orang dan kata penghubung. Tahap selanjutnya yaitu stemming. Pada tahap stemming
Gambar 3.1 Gambaran Umum Sistem
3.1.1. Input Data
Data yang akan digunakan adalah data berupa kumpulan kalimat
yang mengandung kata dasar “sabar” yang didapatkan dari situs
CORCI dan sudah diklasifikasikan sebelumnya kedalam 6 kategori, yaitu: kata sifat, komunikasi, keadaan, urutan tindakan, pekerjaan, urutan giliran. Jumlah data sebanyak 108. Rincian banyaknya dokumen dalam sebuah kelas dapat dilihat pada tabel 3.1.1 dibawah ini:
Tabel 3. 1. 1. Daftar Data
No Kelas Jumlah data
1 Keadaan 33
2 Urutan Giliran 22
3 Urutan Tindakan 20
4 Komunikasi 15
5 Sifat 12
6 Pekerjaan 6
Input data
Preprocessing
Klasifikasi KNN
Hasil
Klasifikasi
Menentukan k Menghitung Cosine Similarity Mengurutkan Vektor Mencari label mayoritas Preprocessing
Tokenizing Stopword Stemming Text Frequency
3.1.2.Prepocessing
Pada tahap preprocessing ada 4 tahap yang harus berurutan yaitu: 1. Tokenisasi
- Sekumpulan Kalimat akan dipecah menjadi token.
- Kata diubah menjadi huruf kecil.
- Kata yang sudah menjadi token dan di ubah menjadi huruf kecil akan di hapus karakter yang tidak penting seperti tanda baca.
- Contoh hasil Tokenisasi dapat dilihat pada lampiran 1.
2. Stopword
- Pada tahap ini akan dilakukan penghapusan pada kata yang tidak berpengaruh terhadap proses pemerolehan informasi.
- Contoh hasil Stopword dapat dilihat pada lampiran 2.
3. Stemming
- Pada tahap ini kata yang memiliki imbuhan pada awalan, akhiran maupun awalan dan akhiran akan dikembalikan menjadi kata dasar.
- Contoh hasil Stemming dapat dilihat pada lampiran 3.
4. Text Frequency / pembobotan kata
- Pada tahap ini akan dilakukan pembobotan nilai dengan menggunakan TF/IDF.
3.1.3.Klasifikasi KNN
Setelah melewati 4 tahap pada processing, selanjutnya adalah proses klasifikasi. Proses klasifikasi ini menggunakan metode KNN yang terbagi menjadi 4 tahap yaitu:
1. Menentukan k
- Nilai K adalah jumlah dokumen tetangga terdekat. Nilai K yang digunakan pada contoh ini adalah K= 8 dan K = 10.
2. Menghitung Cosine Similarity
- Cosine Similarity berfungsi untuk menghitung kemiripan antar dokumen.
- Hasil Cosine Similarity dapat dilihat padalampiran 5.
3. Mengurutkan Vektor.
- Data yang digunakan untuk mengurutkan vektor ini berasal dari hasil Cosine Similarity yang diurutkan dari nilai terkecil k terbesar.
- Hasil pengurutan dapat dilihat pada lampiran 6.
4. Mencari label mayoritas.
- Penentuan label mayoritas dilakukan dengan berdasarkan pada perolehan kelas terbanyak dalam urutan vektor sesuai dengan nilai K. Sebagai contoh jika nilai K = 8 dan kelas terbanyak yang muncul dalam 8 urutan vektor tersebut adalah kelas Keadaan, maka hasil klasifikasinya adalah kelas Keadaan.
- Hasil label mayoritas dapat dilihat pada lampiran 7.
- Jika k = 8 maka data test termasuk dalam kelas Sifat.
- Jika k = 10 maka data test termasuk dalam kelas komunikasi.
3.2. Analisa Kebutuhan Sistem 3.2.1.Definisi Aktor
Dalam sistem ini hanya ada 1 aktor yaitu user. User adalah aktor yang memiliki fasilitas untuk mengelola serta mengakses sistem seperti terlihat pada tabel 3.2.1 dibawah ini:
Tabel 3. 2. 1. Definisi Aktor
Aktor Fasilitas Akses
User - Input Dokumen
- Klasifikasi Dokumen
3.2.2.Diagram Use Case
Detail diagram use case dapat dilihat seperti pada gambar 3.2.2 dibawah ini:
[image:45.595.85.510.202.631.2]3.2.3.Skenario Use Case
3.2.3.1. Skenario Use Case Input Dokumen 3.2.3.1.1. Input Kamus Stopword
Nama Use Case : Input Kamus Stopword
Aktor : User
Kondisi Awal : User menjalankan sistem
[image:46.595.84.510.107.627.2]Kondisi Akhir : Dokumen kamus Stopword masuk kedalam sistem. Seperti pada tabel 3.2.3.1.1. berikut:
Tabel 3. 2. 3. 1. 1. Narasi Input Kamus Stopword
Aksi Aktor Reaksi sistem
1. User menekan tombol browse pada bagian kamus Stopword
2.Sistem menampilkan form load data
3. User memasukan
kamus Stopword
4. Sistem menampilkan
lokasi direktori kamus
3.2.3.1.2. Input Kamus Stemming
Nama Use Case : Input Kamus Stemming
Aktor : User
Kondisi Awal : User menjalankan sistem
[image:47.595.84.507.87.635.2]Kondisi Akhir : Dokumen kamus Stemming masuk kedalam sistem. Seperti pada tabel 3.2.3.1.2 berikut:
Tabel 3. 2. 3. 1. 2. Narasi Input Kamus Stemming
Aksi Aktor Reaksi sistem
1.User menekan tombol browse pada bagian kamus Stemming
2. Sistem menampilkan form load data
3.User memasukan
kamus Stemming
3.2.3.1.3. Input Data Training
Nama Use Case : Input Data Training
Aktor : User
Kondisi Awal : User menjalankan sistem.
[image:48.595.84.505.89.633.2]Kondisi Akhir : Dokumen Training masuk kedalam sistem. Seperti pada tabel 3.2.3.1.3 berikut:
Tabel 3. 2. 3. 1. 3. Narasi Input Data Training
Aksi Aktor Reaksi sistem
1.User menekan tombol browse pada bagian Data Training
2.Sistem menampilkan form load data
3.User memasukan Data
Training
3.2.3.1.4. Input Data Testing
Nama Use Case : Input Data Testing
Aktor : User
Kondisi awal : User menjalankan sistem.
[image:49.595.84.505.89.631.2]Kondisi Akhir : Dokumen Testing masuk kedalam sistem. Seperti pada tabel 3.2.3.1.4 berikut:
Tabel 3. 2. 3. 1. 4. Narasi Input Data Testing
Aksi Aktor Reaksi sistem
1.User menekan tombol browse pada bagian Data Testing
2.Sistem menampilkan form load data
3.User memasukan Data
Testing
3.2.3.2. Skenario Use Case Klasifikasi Dokumen 3.2.3.2.1. Input Nilai K
Nama Use Case : Input Nilai K
Aktor : User
Kondisi Awal : User menjalankan sistem.
[image:50.595.85.508.92.634.2]Kondisi Akhir : Nilai K tersimpan pada sistem. Seperti pada tabel 3.2.3.2.1 berikut:
Tabel 3. 2. 3. 2. 1. Narasi Input Nilai K
Aksi Aktor Reaksi sistem
1. User menekan dan
memilih Nilai k pada bagian Nilai K
3.2.3.2.2. Klasifikasi
Nama Use Case : Klasifikasi
Aktor : User
Kondisi Awal : User menjalankan sistem.
[image:51.595.86.506.83.641.2]Kondisi Akhir : Sistem menampilkan Hasil klasifikasi menggunakan knn. Seperti pada tabel 3.2.3.2.2 berikut:
Tabel 3. 2. 3. 2. 2. Narasi Klasifikasi
Aksi Aktor Reaksi sistem
1. User menekan button klasifikasi
2. Sistem melakukan proses
preprocessing dan
klasifikasi serta
menampilkan hasil
3.3. Perancangan Model Penyimpanan Data
Dalam sistem ini, terdapat penyimpanan data dalam bentuk .txt. Beberapa diantaranya adalah sebagai berikut:
1. Stopword.txt
Berisi daftar stopword yang akan digunakan untuk melakukan proses stopword / menghilangkan kata yang tidak mempengaruhi makna.
2. Stemming.txt
Berisi daftar kata dasar yang akan digunakan untuk mengembalikan daftar kata dalam dokumen yang telah melalui tahap stopword.
3.4. Diagram Konteks
Detail diagram konteks dapat dilihat pada gambar 3.4 berikut:
User
Sistem Identifikasi Makna Kata Sabar Menggunakan KNN Klasifikasi dokumen
[image:52.595.83.513.141.625.2]Hasil klasifikasi
3.5. Diagram Aktivitas
3.5.1.Diagram Aktivitas Proses Input Dokumen 3.5.1.1. Input Stopword
[image:53.595.85.510.157.719.2]Detail diagram aktivitas input Stopword dapat dilihat seperti pada gambar 3.5.1.1 dibawah ini:
Gambar 3. 5. 1. 1. Diagram Aktivitas Input Stopword
3.5.1.2. Input Stemming
Detail diagram aktivitas input Stemming dapat dilihat seperti pada gambar 3.5.1.2 dibawah ini:
3.5.1.3. Input Data Training
[image:54.595.85.508.133.665.2]Detail diagram aktivitas input Data Training dapat dilihat seperti pada gambar 3.5.1.3 dibawah ini:
Gambar 3. 5. 1. 3. Diagram Aktivitas Input Data Training 3.5.1.4. Input Data Testing
Detail diagram aktivitas input Data Testing dapat dilihat seperti pada gambar 3.5.1.4 dibawah ini:
3.5.2.Diagram Aktivitas Proses Klasifikasi 3.5.2.1. Input Nilai K
[image:55.595.88.508.154.633.2]Detail diagram aktivitas input Data Testing dapat dilihat seperti pada gambar 3.5.2.1 dibawah ini:
Gambar 3. 5. 2. 1. Diagram Aktivitas Input Nilai K 3.5.2.2. Klasifikasi
Detail diagram aktivitas input Data Testing dapat dilihat seperti pada gambar 3.5.2.2 dibawah ini:
36
BAB IV
IMPLEMENTASI
4.1. Spesifikasi Software dan Hardware yang dibutuhkan 4.1.1.Spesifikasi Software
Spesifikasi software yang digunakan adalah sebagai berikut: Sistem operasi : Windows 7 Ultimate
Aplikasi : Netbeans IDE 8.1
Bahasa Pemrograman : Java (jdk 1.7.0_13)
4.1.2.Spesifikasi Hardware
Spesifikasi hardware yang digunakan adalah sebagai berikut:
Processor : Intel core i3
Memory : 4 GB
4.2. Implementasi Antar Muka
[image:57.595.85.506.108.741.2]Tampilan antar muka sistem dapat dilihat pada gambar 4.2.1. dan 4.2.2 seperti berikut:
Gambar 4. 2. 1. Antar Muka Awal
4.3. Implementasi Sistem
4.3.1.Implementasi Preprocessing 4.3.1.1. Implementasi Tokenisasi
Pada langkah tokenisasi ini akan dilakukan penghapusan tanda baca, pemotongan kalimat menjadi token dan mengubah huruf menjadi lower case seperti pada list code 4.3.1.1 dibawah ini:
public void Tokenize() { if (tokenized) { return; } try {
FileInputStream fis = new FileInputStream(filename); Scanner s = new Scanner(fis);
if (daftarKata == null) {
daftarKata = new ArrayList<>(); } else {
daftarKata.clear(); }
while (s.hasNext()) { String text = s.next();
String kata = text.replaceAll("[^a-zA-Z0-9&&[^\\-]]", ""); daftarKata.add(kata);
}
tokenized = true;
} catch (FileNotFoundException ex) { tokenized = false;
Logger.getLogger(Dokumen.class.getName()).log(Level.SEVERE, null, ex);
} }
4.3.1.2. Implementasi Stopword
Pada langkah Stopword ini akan dilakukan penghapusan kata yang tidak mempengaruhi makna seperti kata penghubung dan lain sebagainya berdasarkan kamus Stopword seperti pada list code 4.3.1.2 dibawah ini:
public void bacakamusstopword(String filename) { try {
FileInputStream FIS = new FileInputStream(filename); Scanner sc = new Scanner(FIS);
kamusStopWord = new ArrayList<>(); while (sc.hasNext()) {
kamusStopWord.add(sc.next()); }
} catch (FileNotFoundException ex) {
Logger.getLogger(tampilstopword.class.getName()).log(Level.SEVERE, null, ex);
}}
public void hapusstopword() { if (removedStopWords) { return;
}
if (kamusStopWord == null) {
throw new IllegalStateException("Kamus stopword belum ada"); }
if (!tokenized) {
throw new IllegalStateException("Dokumen belum di-tokenize"); }
Iterator<String> i = daftarKata.iterator(); while (i.hasNext()) {
String token = i.next();
if (kamusStopWord.contains(token)) { i.remove();
}}
removedStopWords = true; }
4.3.1.3. Implementasi Stemming
Pada langkah Stemming ini akan dilakukan pengembalian kata ke bentuk kata dasarnya berdasarkan kamus kata dasar seperti pada list code 4.3.1.3 dibawah ini:
public void bacakamus(String path) { try {
FileInputStream fis = new FileInputStream(path); Scanner s = new Scanner(fis);
kamusKataDasar = new HashSet<>(); while (s.hasNext()) {
kamusKataDasar.add(s.next()); }
} catch (FileNotFoundException ex) {
Logger.getLogger(tampilstopword.class.getName()).log(Level.SEVERE, null, ex);
}}
public void stem() { if (stemmed) { return; }
if (kamusKataDasar == null || kamusKataDasar.isEmpty()) { throw new IllegalStateException("Kamus kata dasar belum ada"); }
if (!removedStopWords) {
throw new IllegalStateException("Stopwords belum dibuang"); }
Lemmatizer stemmer = new DefaultLemmatizer(kamusKataDasar); for (int i = 0; i < daftarKata.size(); i++) {
String kata = daftarKata.get(i);
daftarKata.set(i, stemmer.lemmatize(kata)); }
stemmed = true; }
4.3.1.4. Implementasi Tf
Pada langkah Tf ini akan dilakukan penghitungan frekuensi kemunculan kata dalam sebuah dokumen seperti pada list code 4.3.1.4 dibawah ini:
public int getTermFrequency(String term, Dokumen doc) { TermDocumentPair key = new TermDocumentPair(term, doc); if (tableTF.containsKey(key)) {
return tableTF.get(key); } else {
int count = 0;
for (String kata : doc.daftarKata) { if (kata.equals(term)) {
count++; }
}
tableTF.put(key, count); return count;
} }
4.3.1.5. Implementasi Idf
Pada langkah Idf ini akan dilakukan penghitungan inverse dari banyaknya dokumen dimana suatu term tersebut muncul seperti pada list code 4.3.1.5 dibawah ini:
public int getDocumentFrequency(String term) { if (tableDF.containsKey(term)) {
return tableDF.get(term); } else {
int c = 0;
for (Dokumen d : master.documents) { if (d.daftarKata.contains(term)) { c++;
} }
tableDF.put(term, c); return c;
} }
public double getInverseDocumentFrequency(String term) { return Math.log(master.documents.size() /
getDocumentFrequency(term)); }
4.3.1.6. Implementasi Pembobotan
public double getWeight(String term, Dokumen doc) { return getTermFrequency(term, doc) *
getInverseDocumentFrequency(term); }
public double getInnerProduct(String term, Dokumen doc) { return getWeight(term, doc) * getWeight(term, docTest); }
public Matrix getPanjangVektor() {
int r = allTerms.size(), c = master.documents.size(); Matrix m = new Matrix(r, c);
String[] terms = new String[r]; allTerms.toArray(terms); for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) {
double w = getWeight(terms[i], master.documents.get(j)); m.set(i, j, w * w);
} } return m; }
4.3.2.Implementasi Klasifikasi
4.3.2.1. Implementasi Hiitung Cosine Similarity
public Map<Dokumen, Double> cosineSimilarities() { int r = allTerms.size(), c = master.documents.size(); Matrix panjangVektor = getPanjangVektor(); Matrix innerProduct = new Matrix(r, c); String[] terms = new String[r];
allTerms.toArray(terms); for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) {
innerProduct.set(i, j, getInnerProduct(terms[i], master.documents.get(j)));
} }
Map<Dokumen, Double> res = new HashMap<>(c - 1); int docTestIdx = 0;
for (int i = 0; i < master.documents.size(); i++) { Dokumen d = master.documents.get(i); if (d == docTest) {
docTestIdx = i; continue; }
double atas = innerProduct.sumCol(i);
double bawah = Math.sqrt(panjangVektor.sumCol(i) * panjangVektor.sumCol(docTestIdx));
res.put(d, atas / bawah); }
return res; }
4.3.2.2. Implementasi Hitung Label Mayoritas
public Kelas classify(int k) {
Map<Dokumen, Double> matrix = cosineSimilarities();
TreeSet<Map.Entry<Dokumen, Double>> asd = new TreeSet(new Comparator<Map.Entry<Dokumen, Double>>() {
@Override
public int compare(Map.Entry<Dokumen, Double> o1, Map.Entry<Dokumen, Double> o2) {
return Double.compare(o1.getValue(), o2.getValue()); }
});
asd.addAll(matrix.entrySet());
List<Entry<Dokumen, Double>> neighbors = new ArrayList<>(asd).subList(0, k);
int numOfClass = master.classes.size(); int[] as = new int[numOfClass];
for (Entry<Dokumen, Double> neighbor : neighbors) { for (int i = 0; i < as.length; i++) {
Kelas kelas = master.classes.get(i);
if (kelas.getDaftarDokumen().contains(neighbor.getKey())) { as[i]++;
}}}
int max = max(as);
return master.classes.get(max); }
static int max(int[] arr) { int max = arr[0]; for (int i : arr) { if (i > max) { max = i; }
}
return max; }
46
BAB V
HASIL DAN PEMBAHASAN
5.1. Pengujian
5.1.1.K fold Cross Validation
5.1.1.1. 3 Fold
[image:67.595.87.505.135.732.2]Pada pengujian dengan menggunakan 3 fold, 108 data training akan dibagi menjadi 3 bagian seperti pada tabel 5.1.1.1 dibawah ini:
Tabel 5. 1. 1. 1. Pembagian Data 3 Fold
fold 1 fold 2 fold 3
keadaan1 keadaan12 keadaan23
keadaan2 keadaan13 keadaan24
keadaan3 keadaan14 keadaan25
keadaan4 keadaan15 keadaan26
keadaan5 keadaan16 keadaan27
keadaan6 keadaan17 keadaan28
keadaan7 keadaan18 keadaan29
keadaan8 keadaan19 keadaan30
keadaan9 keadaan20 keadaan31
keadaan10 keadaan21 keadaan32
keadaan11 keadaan22 keadaan33
Pekerjaan1 Pekerjaan3 Pekerjaan5
Pekerjaan2 Pekerjaan4 Pekerjaan6
sifat1 sifat5 sifat9
sifat2 sifat6 sifat10
sifat3 sifat7 sifat11
sifat4 sifat8 sifat12
komunikasi1 komunikasi6 komunikasi11
komunikasi2 komunikasi7 komunikasi12
komunikasi3 komunikasi8 komunikasi13
komunikasi4 komunikasi9 komunikasi14
komunikasi5 komunikasi10 komunikasi15
Dengan pembagian data untuk setiap tahap: Tahap I
fold 1 sebagai data uji.
fold 2 sebagai data pelatihan.
fold 3 sebagai data pelatihan. Tahap II
fold 2 sebagai data uji.
fold 1 sebagai data pelatihan.
fold 3 sebagai data pelatihan. Tahap III
fold 3 sebagai data uji.
fold 1 sebagai data pelatihan.
fold 2 sebagai data pelatihan.
5.2. Analisa Hasil
Berdasar pada pengujian yang telah dilakukan pada langkah sebelumnya maka diperoleh rincian nilai akurasi dengan menggunakan nilai k = 4 hingga nilai k = 7.
a. Pengujian dengan nilai K = 4 Tahap 1 (K = 4)
[image:69.595.84.505.174.728.2]Pada pengujian dengan 36 data uji pada tahap 1, diperoleh hasil 10 data yang relevan / terklasifikasi dengan benar, 26 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 1 diperoleh nilai akurasi 27,8%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.1.1 dibawah ini:
Tabel 5. 2. 1. 1 Tahap 1 (K = 4)
Jml data 36
Jml data relevan 10
Jml data tidak relevan 26
Akurasi 27,8
Tahap 2 (K = 4)
Pada pengujian dengan 36 data uji pada tahap 2, diperoleh hasil 10 data yang relevan / terklasifikasi dengan benar, 26 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 2 diperoleh nilai akurasi 27,8%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.1.2 dibawah ini:
Tabel 5. 2. 1. 2. Tahap 2 (K = 4)
Jml data 36
Jml data relevan 10
Jml data tidak relevan 26
Tahap 3 (K= 4)
[image:70.595.84.512.187.630.2]Pada pengujian dengan 36 data uji pada tahap 3, diperoleh hasil 8 data yang relevan / terklasifikasi dengan benar, 28 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 3 diperoleh nilai akurasi 22,2%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.1.3 dibawah ini:
Tabel 5. 2. 1. 3. Tahap 3 (K = 4)
Jml data 36
Jml data relevan 8
Jml data tidak relevan 28
Akurasi 22,2
Dari 3 tahap pengujian yang telah dilakukan dengan menggunakan nilai K = 4 diperoleh nilai rata – rata 25,9% dengan rincian seperti pada tabel 5.2.1.4 dibawah ini:
Tabel 5. 2. 1. 4. Rata - Rata Akurasi (K = 4)
K = 4 %
Akurasi Tahap 1 27,8
Akurasi Tahap 2 27,8
Akurasi Tahap 3 22,2
b. Pengujian dengan nilai K = 5 Tahap 1 (K = 5)
[image:71.595.84.510.165.631.2]Pada pengujian dengan 36 data uji pada tahap 1, diperoleh hasil 9 data yang relevan / terklasifikasi dengan benar, 27 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 1 diperoleh nilai akurasi 25%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.2.1 dibawah ini:
Tabel 5. 2. 2. 1. Tahap 1 (K = 5)
Jml data 36
Jml data relevan 9
Jml data tidak relevan 27
Akurasi 25
Tahap 2 (K = 5)
Pada pengujian dengan 36 data uji pada tahap 2, diperoleh hasil 9 data yang relevan / terklasifikasi dengan benar, 27 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 2 diperoleh nilai akurasi 25%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.2.2 dibawah ini:
Tabel 5. 2. 2. 2. Tahap 2 (K = 5)
Jml data 36
Jml data relevan 9
Jml data tidak relevan 27
Tahap 3 (K = 5)
[image:72.595.85.512.199.629.2]Pada pengujian dengan 36 data uji pada tahap 3, diperoleh hasil 11 data yang relevan / terklasifikasi dengan benar, 25 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 3 diperoleh nilai akurasi 30,6%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.2.3 dibawah ini:
Tabel 5. 2. 2. 3. Tahap 3 (K = 5)
Jml data 36
Jml data relevan 11
Jml data tidak relevan 25
Akurasi 30,6
Dari 3 tahap pengujian yang telah dilakukan dengan menggunakan nilai K = 5 diperoleh nilai rata – rata 26,9% dengan rincian seperti pada tabel 5.2.2.4 dibawah ini:
Tabel 5. 2. 2. 4. Rata - Rata Akurasi (K = 5)
K = 5 %
Akurasi Tahap 1 25
Akurasi Tahap 2 25
Akurasi Tahap 3 30,6
c. Pengujian dengan nilai K = 6 Tahap 1 (K = 6)
[image:73.595.84.511.164.633.2]Pada pengujian dengan 36 data uji pada tahap 1, diperoleh hasil 12 data yang relevan / terklasifikasi dengan benar, 24 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 1 diperoleh nilai akurasi 33,3%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.3.1 dibawah ini:
Tabel 5. 2. 3. 1. Tahap 1 (K = 6)
Jml data 36
Jml data relevan 12
Jml data tidak relevan 24
Akurasi 33,3
Tahap 2 (K = 6)
Pada pengujian dengan 36 data uji pada tahap 2, diperoleh hasil 12 data yang relevan / terklasifikasi dengan benar, 24 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 2 diperoleh nilai akurasi 33,3%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.3.2 dibawah ini:
Tabel 5. 2. 3. 2. Tahap 2 (K = 6)
Jml data 36
Jml data relevan 12
Jml data tidak relevan 24
Tahap 3 (K = 6)
[image:74.595.85.512.189.630.2]Pada pengujian dengan 36 data uji pada tahap 3, diperoleh hasil 10 data yang relevan / terklasifikasi dengan benar, 26 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 3 diperoleh nilai akurasi 27,8%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.3.3 dibawah ini:
Tabel 5. 2. 3. 3. Tahap 3 (K = 6)
Jml data 36
Jml data relevan 10
Jml data tidak relevan 26
Akurasi 27,8
Dari 3 tahap pengujian yang telah dilakukan dengan menggunakan nilai K = 6 diperoleh nilai rata – rata 31,5% dengan rincian seperti pada tabel 5.2.3.4 dibawah ini:
Tabel 5. 2. 3. 4. Rata - Rata Akurasi (K = 6)
K = 6 %
Akurasi Tahap 1 33,3
Akurasi Tahap 2 33,3
Akurasi Tahap 3 27,8
d. Pengujian dengan nilai K = 7. Tahap 1 (K = 7)
[image:75.595.85.511.204.634.2]Pada pengujian dengan 36 data uji pada tahap 1, diperoleh hasil 14 data yang relevan / terklasifikasi dengan benar, 22 data lainnya berhasil terklasifikasi namun tidak sesuai dengan kelas atau kategori yang sebenarnya. Pada pengujian tahap 1 diperoleh nilai akurasi 38,89%. Rincian lengkapnya dapat dilihat seperti pada tabel 5.2.4.1 dibawah ini:
Tabel 5. 2. 4. 1. Tahap 1 (K = 7)
Jml data 36
<