i
PERBANDINGAN ALGORITMA STEMMING NAZIEF DAN ANDRIANI SERTA ALGORITMA PORTER DALAM PEMEROLEHAN INFORMASI MATERI MATA KULIAH
PADA HALAMAN WEBSITE DENGAN PENDEKATAN VECTOR SPACE MODEL
SKRIPSI
Diajukan Untuk Memenui Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh:
Fabianus Asto Nugroho 145314050
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2018
ii
COMPARISON OF NAZIEF AND ANDRIANI STEMMING ALGORITHM AND PORTER ALGORITHM IN OVERVIEW
OF INFORMATION ON WEB SITE PAGE USING VECTOR SPACE MODEL APPROACH
Presented as Partial Fullfiillment of the Requirements To Obtain The Sarjana Komputer Degree In Information Engineering Study Program
Oleh:
Fabianus Asto Nugroho 145314050
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2018
iii
iv
HALAMAN MOTTO
v
Anak papat, Lingguh podo cendak e,
Ngadek podo duwur e.
(Bapak)
vi
PERNYATAAN KEASLIAN KARYA
Dengan ini, saya menyatakan bahwa proyek tugas akhir ini tidak memuat hasil karya milik orang lain kecuali telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, ……….
Penulis
Fabianus Asto Nugroho
vii
LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Fabianus Asto Nugroho
NIM : 145314050
Demi mengembangkan ilmu pengetahuan, saya memberikan kepada
Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
PERBANDINGAN ALGORITMA STEMMING NAZIEF DAN ANDRIANI SERTA ALGORITMA PORTER DALAM PEMEROLEHAN
INFORMASI MATERI MATA KULIAH PADA HALAMAN WEBSITE DENGAN PENDEKATAN VECTOR SPACE MODEL
Beserta perangkat yang diperlukan (bila ada). Dengan demikian, saya memberikan kepada Universitas Sanata Dharma hak untuk menyimpan, mengalihkan kedalam bentuk lain, mengelolanya dalam pangkalan data, mendistribusikan secara terbatas dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu ijin dari saya maupun memberi royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, ……….
Penulis
Fabianus Asto Nugroho
viii ABSTRAK
Proses pencarian dokumen saat menjadi perdebatan tersendiri bagi para pencari informasi. Recomendasi dokumen yang tepat berdasarkan kata kunci menjadi tolak ukur sebuah mesin pencarian dokumen. Alogoritma dan metode yang digunakan menjadi aspek penting dalam pembangunan sebuah sistem pencarian dokumen. Vector space model merupakan salah satu metode yang digunakan dalam beberapa proses pencarian dokumen dimana model ini akan merubah sebuah dokumen menjadi bentuk vector. Dalam penelitian ini akan membandingkan dua algoritma stemming dalam menentukan sebuah kata dasar dalam sebuah dokumen yaitu algoritma porter dan nazief and adriani. Kedua algoritma ini akan menentukan hasil pencarian sebuah kumpulan dokumen yang meripakan sebuah halaman refrensi mata kuliah berdasarkan kata kunci silabus.
Kata Kunci : Vector space model, Stemming, algoritma nazief and adriani, algoritma porter
ix ABSTRACT
The process of finding documents is currently a separate debate for information seekers. The right document recommendation based on keywords is the benchmark for a document search engine. The algorithm and method used are important aspects in the construction of a document search system. Vector space model is one of the methods used in several document search processes where this model will change a document into vector form. In this study will compare two stemming algorithms in determining a basic word in a document, namely the porter algorithm and Nazief and Adriani. Both of these algorithms will determine the search results for a collection of documents which is a reference page for a course based on syllabus keywords.
Keywords: Vector space model, Stemming, Nazief and Adriani algorithm, Porter algorithm
x
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa atas segala berkat dan karunia- Nya, sehingga penulis dapat menyelesaikan proyek tugas akhir yang berjudul
“PERBANDINGAN ALGORITMA STEMMING NAZIEF DAN ANDRIANI SERTA ALGORITMA PORTER DALAM PEMEROLEHAN INFORMASI MATERI MATA KULIAH PADA HALAMAN WEBSITE DENGAN PENDEKATAN VECTOR SPACE MODEL”. Proyek tugas akhir ini merupakan salah satu mata kuliah wajib dan sebagai syarat akademik untuk memperoleh gelar sarjana komputer program studi Teknik Informatika Universitas Sanata Dharma Yogyakarta.
Penulis menyadari bahwa selama proses penelitian dan penyusunan laporan proyek tugas akhir ini, banyak pihak yang telah membantu penulis, sehingga pada kesempatan ini penulis ingin mengucapkan terimakasih yang sebesar – besarnya, antara lain kepada :
1. Tuhan Yesus kristus, yang selalu memberikan kekuatan, berkat dan rahmatya dalam proses penyelesaian proyek tugas akhir.
2. Orangtua penulis, Antonius Kamijo dan C. Sugiarti yang selalu
memberikan semangat, motivasi, dukungan moral dan spiritual selama proses penyelesaian proyek tugas akhir ini serta Almateus Nanang R., M.
Dewi K. dan C. Lilin Natasari.
3. Robertus Adi Nugroho S.T., M.Eng selaku dosen pembimbing proyek tugas akhir, terimakasih atas nasehat dalam membimbing penulis, meluangkan waktunya, memberi dukungan, motivasi, serta saran yang sangat membantu penulis.
4. Bambang Soelistijanto, S.T., M.Sc., Ph.D. selaku dosen pembimbing akademik.
5. Keluarga besar UKM Band sexsen, Panitia insadha Siesen, Crew Rokstar Studio, Badn Korekayu, Astara Media. yang selalu memberikan semangat, motivasi, dukungan moral dan spiritual.
xi
6. Semua dosen program studi Teknik Informatika. Terimakasih telah memberikan ilmu yang sangat bermanfaat bagi saya selama perkuliahan dan semoga ilmu yang telah diberikan bermanfaat dikemudian hari.
7. Semua pihak yang terlibat yang tidak bisa disebutkan satu persatu yang telah membantu dalam proses penyelesaian proyek tugas akhir ini.
Penulis menyadari masih banyak kekurangan dalam penyusunan proyek tugas akhir ini. Saran dan Kritik sangat diharapkan untuk perbaikan yang akan datang.
Akhir kata, penulis berharap proyek tugas akhir ini dapat bermanfaat bagi kemajuan dan perkembangan ilmu pengetahuan.
Yogyakarta, ………..
Penulis
Fabianus Asto Nugroho
xii
DAFTAR ISI
PERBANDINGAN ALGORITMA STEMMING NAZIEF DAN ANDRIANI SERTA ALGORITMA PORTER DALAM PEMEROLEHAN INFORMASI MATERI MATA KULIAH PADA HALAMAN WEBSITE DENGAN
PENDEKATAN VECTOR SPACE MODEL ... i
COMPARISON OF NAZIEF AND ANDRIANI STEMMING ALGORITHM AND PORTER ALGORITHM IN OVERVIEW OF INFORMATION ON WEB SITE PAGE USING VECTOR SPACE MODEL APPROACH ... ii
HALAMAN PERSETUJUAN ... Error! Bookmark not defined. HALAMAN PENGESAHAN ... Error! Bookmark not defined. HALAMAN MOTTO ... iv
PERNYATAAN KEASLIAN KARYA ... vi
LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii
ABSTRAK ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xii
Daftar Table ... xv
Daftar Gambar ... xviii
BAB I ... 1
PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Perumusan Masalah ... 3
1.3 Maksud dan Tujuan Tugas Akhir ... 3
1.4 Pembatasan dan Ruang Lingkup Masalah ... 3
1.5 Sistematika penulisan ... 3
BAB II ... 5
TINJAUAN PUSTAKA ... 5
2.1 Information Retrieval (IR) ... 5
2.1.1 Model Boolean ( BIR / Boolean Infromation Retrieval ) ... 5
2.1.2 Model Vector Space Model (VSM / Vector Space Model) ... 5
2.2.2.1 Proses Vector Space Model (VSM / Vector Space Model ) ... 5
xiii
2.2.2.1.4 Term Weight ... 8
2.2.2.1.5 Invers Document Frequency (IDF) ... 9
2.2.2.1.6 Cosine Measure Similarity... 10
2.2.2.1.7 Precission Dan Recall ... 11
2.2 Crawling ... 12
2.3 PHP (Hyperytext Preprocessor) ... 12
2.4 MYSQL ... 12
2.5 JSON (JavaScript Object Notation) ... 13
BAB III ... 14
METODOLOGI PENELITIAN ... 14
3.1 Gambaran umum ... 14
3.2 Sumber Data ... 15
3.3 Data Kamus Kata ... 16
3.4 Data Stopwords ... 16
3.5 Spesifikasi Alat ... 16
3.6 Tahapan-Tapan Penelitian ... 17
3.6.1 Studi kasus ... 17
3.6.2 Studi pustaka ... 17
3.6.3 Pemeriksaan file atau dokumen ... 17
3.6.4 Metode Pengembangan Perangkat Lunak... 17
3.7 Evaluasi ... 18
BAB IV ... 20
ANALISIS DAN PERANCANGAN SISTEM ... 20
4.1 Analisa sistem ... 20
4.1.1 Analisis Kerja API Google dan Penyiapan Dataset ... 20
4.1.2 Gambaran Sistem. ... 22
4.2 Analisis Kebutuhan Pengguna ... 23
4.2.1 Use Case Diagram ... 23
4.2.2 Sekernario Use Case ... 23
4.2.3 Diagram Kelas ... 25
4.2.4 Perancangan Database ... 27
4.3 Rancangan Basis Data ... 28
xiv
4.4 Rancangan Desain Antarmuka ... 31
BAB V IMPLEMENTASI DAN ANALISIS HASIL ... 33
5.1 Spesifikasi software dan Hardware ... 33
5.1.1 Spesifikasi Software ( perangkat lunak ) ... 33
5.1.2 Spesifikasi hardware ( perangkat keras ) ... 33
5.2 Implementasi Halaman Antarmuka ... 33
5.2.1 Implementasi Halaman Utama... 33
5.2.2 Implementasi Halaman Mata Kuliah ... 34
5.2.2 Implementasi Halaman Menampilkan Referensi Materi Mata Kuliah . 34 5.3 Implementasi Stemming ... 35
5.3.1 Implementasi Algoritma Nazief And Adriani ... 35
5.3.2 Implementasi Algoritma Porter ... 36
5.4 Pengujian Dan Analisis Hasil ... 37
5.4.1 Hasil Pengujian Pemerolehan Informasi Algoritma Nazief And Adriani ... 38
5.4.2 Hasil Pengujian Pemerolehan Informasi Algoritma Porter ... 42
5.4.3 Uji Recall Dan Precission ... 45
5.4.4 Grafik Recall dan Precission ... 50
5.4.5 Rata-rata Hasil Uji recall dan precission ... 52
5.4.6 Hasil Pengujian Running Time ... 55
BAB VI ... 57
KESIMPULAN DAN ANALISIS ... 57
Daftar Pustaka ... 58
LAMPIRAN ... 60
xv
Daftar Table
Tabel 4. 1Table tbl_stopwords ... 28
Tabel 4. 2Table tbl_kata ... 28
Tabel 4. 3 Table tbl_makul ... 28
Tabel 4. 4 Table tbl_silabus ... 28
Tabel 4. 5 Table tbl_materi ... 29
Tabel 4. 6 Tabel tbl_striptags_materi ... 29
Tabel 4. 7 tabel tbl_result_porter ... 29
Tabel 4. 8Tabel tbl_result_nazief ... 30
Tabel 4. 9 Tabel tabel tbl_result_nazief ... 30
Tabel 4. 10 Tabel tabel tbl_result_porter ... 30
Tabel 4. 11 tabel generate_file ... 31
Tabel 5. 1 Hasil informasi retrieval dengan kata kunci “Basis data adalah kumplan data yang saling berkaitan dan terorganisasi dengan baik sehingga mudah untuk disimpan dan dimanipulasi. Sedangkan System basis data adalah gabungan antara basis data dan prangkat lunak DBMS termasuk di dalamnya program aplikasi yang dibuat dan bekerja dalam suatu system yg bertujuan untuk dapat memanipulasi data dari basis data sehingga diperoleh informasi yang di inginkan” dengan menggunakan algoritma nazief and adriani .…...38
Tabel 5. 2 Table hasil information retrival dari sistem dengan menggunakan kata kunci “Aplikasi berbasis web terdiri dari front-end atau bagian depan dan back- end atau bagian belakang. Pembuatan Front-End biasanya menggunakan script HTML, CSS dan JavaScript. Back-end dibuat menggunakan server-side script, seperti php, python dan java. Pada tutorial ini, kita akan membahas pembuatan front-end dengan menggunakan HTML dan CSS. Untuk JavaScript, pembaca dapat mendapatkan pada tutorial yang lain. Untuk Back-End, kita akan membahas bahasa pemrograman PHP. Kita juga perlu menggunakan database” dengan menggunakan algoritma nazief and adriani ……….…….40
Tabel 5. 3 table hasil information retrival dari sistem dengan menggunakan kata kunci “Yang dimaksud dengan objek pada java adalah sekumpulan software yang terdiri dari variable dan method-method yang terkait. Objek juga merupakan benda nyata yang di buat berdasarkan rancangan yang di definisikan di dalam class” dengan menggunakan algoritma nazief and adriani ……….…..41
Tabel 5. 4 Hasil informasi retrieval sistem dengan kata kunci “pengenalan basis data” dengan menggunakan algoritma porter …….……….…..…42
Tabel 5. 5 Hasil informasi retrieval sistem dengan kata kunci “Aplikasi berbasis web terdiri dari front-end atau bagian depan dan back-end atau bagian belakang.
Pembuatan Front-End biasanya menggunakan script HTML, CSS dan JavaScript.
xvi
Back-end dibuat menggunakan server-side script, seperti php, python dan java.
Pada tutorial ini, kita akan membahas pembuatan front-end dengan menggunakan HTML dan CSS. Untuk JavaScript, pembaca dapat mendapatkan pada tutorial yang lain. Untuk Back-End, kita akan membahas bahasa pemrograman PHP. Kita juga perlu menggunakan database” dengan menggunakan algoritma porter …....43 Tabel 5. 6 Hasil informasi retrieval sistem dengan kata kunci “Yang dimaksud dengan objek pada java adalah sekumpulan software yang terdiri dari variable dan method-method yang terkait. Objek juga merupakan benda nyata yang di buat berdasarkan rancangan yang di definisikan di dalam class” dengan menggunakan algoritma porter………..44 Tabel 5. 7 Hasil pengecekan ahli dokumen relevan dengan keyword “Basis data adalah kumplan data yang saling berkaitan dan terorganisasi dengan baik sehingga mudah untuk disimpan dan dimanipulasi. Sedangkan System basis data adalah gabungan antara basis data dan prangkat lunak DBMS termasuk di dalamnya program aplikasi yang dibuat dan bekerja dalam suatu system yg bertujuan untuk dapat memanipulasi data dari basis data sehingga diperoleh informasi yang di inginkan”………....45 Tabel 5. 8 Tabel uji recall dan precission kedua algoritma dengan kata kunci
“Basis data adalah kumplan data yang saling berkaitan dan terorganisasi dengan baik sehingga mudah untuk disimpan dan dimanipulasi. Sedangkan System basis data adalah gabungan antara basis data dan prangkat lunak DBMS termasuk di dalamnya program aplikasi yang dibuat dan bekerja dalam suatu system yg bertujuan untuk dapat memanipulasi data dari basis data sehingga diperoleh
informasi yang di inginkan”
…..……….………46
Tabel 5. 9 Hasil pengecekan ahli dokumen relevan dengan keyword “Aplikasi berbasis web terdiri dari front-end atau bagian depan dan back-end atau bagian belakang. Pembuatan Front-End biasanya menggunakan script HTML, CSS dan JavaScript. Back-end dibuat menggunakan server-side script, seperti php, python dan java. Pada tutorial ini, kita akan membahas pembuatan front-end dengan menggunakan HTML dan CSS. Untuk JavaScript, pembaca dapat mendapatkan pada tutorial yang lain. Untuk Back-End, kita akan membahas bahasa pemrograman PHP. Kita juga perlu menggunakan database”
………..……….……47
Tabel 5. 10 hasil uji recall dan precission dengan menggunakan keyword
“Aplikasi berbasis web terdiri dari front-end atau bagian depan dan back-end atau bagian belakang. Pembuatan Front-End biasanya menggunakan script HTML, CSS dan JavaScript. Back-end dibuat menggunakan server-side script, seperti php, python dan java. Pada tutorial ini, kita akan membahas pembuatan front-end dengan menggunakan HTML dan CSS. Untuk JavaScript, pembaca dapat mendapatkan pada tutorial yang lain. Untuk Back-End, kita akan membahas bahasa pemrograman PHP. Kita juga perlu menggunakan database”
………..……47
xvii
Tabel 5. 11 Hasil pengecekan ahli dokumen relevan dengan keyword “Yang dimaksud dengan objek pada java adalah sekumpulan software yang terdiri dari variable dan method-method yang terkait. Objek juga merupakan benda nyata yang di buat berdasarkan rancangan yang di definisikan di dalam
class”……….……… 48
Tabel 5. 12 Hasil uji recall dan precission dengan menggunakan keyword “Yang dimaksud dengan objek pada java adalah sekumpulan software yang terdiri dari variable dan method-method yang terkait. Objek juga merupakan benda nyata yang di buat berdasarkan rancangan yang di definisikan di dalam class” ……….……..49
Tabel 5. 13 Table Rata-rata precission percobaan pertama....………...53
Tabel 5. 14 Table Rata-rata precission percobaan kedua ………..53
Tabel 5. 15 Table Rata-rata precission percobaan ketiga ………...………..54
Tabel 5. 16 Table running time algoritma Nazief and Adriani ……….……55
Tabel 5. 17 Table running time algoritma porter ……….………….55
xviii Daftar Gambar
Gambar 2.1 Recall dan precission pada contoh hasil temu-kembali informasi
(Baeza-Yates dan Riveiro-Neto, 1999) ... 11
Gambar 3.1 Proses sistem dari information retrial dengan menggunakan vector space model ... 15
Gambar 3.2 metode pengembangan dengan menggunakan metode waterfall ... 17
Gambar 4. 1 penggunaan API Google ... 20
Gambar 4. 2 Hasil pencarian dengan API google ... 20
Gambar 4. 3 Pembersihan dari bahasa pemrogramman dan pembuatan data dokumen. ... 21
Gambar 4. 4 File yang belum dilakukan pembersihan ... 21
Gambar 4. 5 Link website yang telah dibersihkan dan dibuatkan file dokumen .. 22
Gambar 4. 6 Gambaran Keseluruhan system ... 22
Gambar 4. 7 Use Case Diagram ... 23
Gambar 4. 8 Diagram kelas dengan menggunakan algoritma nazief and adriani . 25 Gambar 4. 9 Diagram kelas dengan menggunakan algoritma porter ... 26
Gambar 4. 10 Hubungan antar tabel ... 27
Gambar 4. 11 Halaman Utama ... 31
Gambar 4. 12 tampilan data mata kuliah ... 32
Gambar 4. 13 Tampilan menampilkan referensi materi mata kuliah ... 32
Gambar 5. 1 implementasi halaman utama ... 34
Gambar 5. 2 Halaman menampilkan data mata kuliah ... 34
Gambar 5. 3 Menampilkan referensi mata kuliah ... 35
Gambar 5. 4 Pengimplementasian algoritma nazief and adriani... 36
Gambar 5. 5 Pengimplementasian algoritma porter ... 37
Gambar 5. 6 Grafik uji recall dan precission dari algoritma nazief and adriani dan porter dengan keyword “Basis data adalah kumplan data yang saling berkaitan dan terorganisasi dengan baik sehingga mudah untuk disimpan dan dimanipulasi. Sedangkan System basis data adalah gabungan antara basis data dan prangkat lunak DBMS termasuk di dalamnya program aplikasi yang dibuat dan bekerja dalam suatu system yg bertujuan untuk dapat memanipulasi data dari basis data sehingga diperoleh informasi yang di inginkan” ... 50 Gambar 5. 7 Grafik uji recall dan precission dari algoritma nazief and adriani dan porter dengan keyword “Aplikasi berbasis web terdiri dari front-end atau bagian depan dan back-end atau bagian belakang. Pembuatan Front-End biasanya menggunakan script HTML, CSS dan JavaScript. Back-end dibuat menggunakan
xix
server-side script, seperti php, python dan java. Pada tutorial ini, kita akan membahas pembuatan front-end dengan menggunakan HTML dan CSS. Untuk JavaScript, pembaca dapat mendapatkan pada tutorial yang lain. Untuk Back-End, kita akan membahas bahasa pemrograman PHP. Kita juga perlu menggunakan database” ... 51 Gambar 5. 8 Grafik uji recall dan precission dari algoritma nazief and adriani dan porter dengan keyword “Yang dimaksud dengan objek pada java adalah
sekumpulan software yang terdiri dari variable dan method-method yang terkait.
Objek juga merupakan benda nyata yang di buat berdasarkan rancangan yang di definisikan di dalam class”... 52 Gambar 5. 9 Grafik rata –rata precission algoritma porter dan nazief terhadap percobaan ... 54 Gambar 5. 10 Grafik running time Algoritma Nazief and Adriani serta Algoritma Porter. ... 56
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi saat ini membuat begitu banyak pengaruh baik dalam banyak hal. Tidak terkecuali dalam perkembangan dalam dunia informasi. Begitu banyak informasi yang dengan sangat mudah kita dapatkan baik dalam surat kabar, media online atau pun media sosial. Hal ini menjadikan internet sebagai kebutuhan pokok di era informasi saat ini.
Informasi yang sangat banyak di dunia internet menjadikan perdebatan tersendiri bagi seorang yang membutuhkan atau sedang mencari informasi.
Bgitu juga dalam pencarian informasi tentang materi mata kuliah, dalam beberapa kesempatan menjadi kesulitan tersendiri karena dokumen atau file yang direkomendasikan terkadang tidak sesuai dengan apa yang user inginkan. Oleh karena itu diperlukan sebuah search egine yang dapat mencari kumpulan dokumen dengan cepat namun juga dapat menenukan dokumen yang relevan. Banyak cara yang dapat diterapkan untuk menunjang kebutuhan dalam membangun atau mengembangkan search egine seperti halnya adalah information retrieval.
Information retrieval atau juga sering disebut dengan temu kembali informasi adalah bidang pengarsipan ilmu informasi dalam ilmu komputer.
Berkutat dengan pengindeksan dan pembambilan informasi heterogen dan sebagian besar textual. (Mooers, 1951). Menurut Janu Saptari dan Purwono (2006), menjelaskan bahawa information retrieval merupakan suatu system yang menyiapkan informasi dan menemukan kembali informasi (Janu Suptari;
Purwono 2006).
Salah satu metode pendekatan yang akan digunakan dalam penelitian ini adalah Vector Space Model. Ada beberapa tahap yang harus dilalui dalam pendekatan Vector Space Model antara lain dengan menyiapkan dokumen sebagai data, tokenisasi yaitu pemisahan setiap kata dengan delimiter spasi, penghapusan stopword yaitu proses panghapusan dari kata-kata yang tidak memiliki makna seperti di, ke dan dari serta tanda baca. Lalu langkah selajutnya adalah stemming yaitu pencarian proses pencarian kata dasar atau root word. Dengan menghapus imbuhan dan akhiran yang ada dalam suatu kata. Dan langkah selanjutanya adalah penghitungan term frequency, inverst document frequency dan cosine similarity.
Setiap proses dalam pencarian informasi memliki peranan tersendiri.
Begitu juga proses stemming. Pada dasarnya stemming merupakan proses yang cukup fundamental dalam pencarian informasi dimana tingkat ketepatan dan kecepatan dalam proses pencarian kata dasar cukup mempengarui hasil dari sebuah mesin pencari. Oleh karenanya begitu banyak algoritma yang sudah tercipta atau dikembangakan termasuk algoritma Porter yang
2
dikembangkan dari sejak tahun 1980 dan algoritma Nazief dan Adriani yang dikembangkan sejak tahun 1996.
Algoritma Nazief and Adriani serta algortima Porter merupakan algoritma yang saat ini cukup popular. Dimana algoritma Nazief dan Adriani adalah algoritma yang diciptakan oleh Bobby Nazief dan Mirna Adriani (1996) merupakan algoritma yang memang dikembangkan untuk stemming Bahasa Indonesia, dan algoritma Porter yang diciptakan oleh Martin Porter (1980) merupakan algoritma yang diperuntukan untuk Bahasa Ingris. Dalam hal ini menjadi tantangan tersendiri bagi algoritma porter yang akan diterapkan dalam teks ber-Bahasa Indonesia.
Bahasa yang digunakan dalam satu dokumen sangat mempengarui kinerja dari sebuah algoritma stemming. Oleh karenanya setiap bahasa memiliki algoritma stemming yang berbeda. Sebagai contoh algortima stemming untuk bahasa Indonesia berbeda dengan algoritma stemming dalam bahasa inggris, hal itu di karenakan perbedaan morfologi yang dimiliki oleh bahasa Indonesia dan bahasa Inggris berbeda. Secara kontekstual bahasa Indonesia lebih rumit dibandingkan dengan bahasa Inggris dikarenakan jumlah imbuhan yang lebih bervariasi sehingga mempengarui proses untuk mendapatkan kata dasarnya.
3 1.2 Perumusan Masalah
Berdasarkan latar belakang diatas maka dapat di rumuskan sebagai berikut:
1. Bagaimana menerapan algoritma Nazief and Adriani serta algoritma Porter dalam Information Retrieval menggunkan pendekatan Vector Space Model ?
2. Algoritma manakah yang terbaik dalam menemukan reverensi mata kuliah ?
1.3 Maksud dan Tujuan Tugas Akhir
Berikut ini merupakan tujuan dari tugas akhir dan penelitian :
1. Membandingkan performa algoritma Nazief and Adriani serta algoritma Porter dalam menemukan referensi materi mata kuliah.
1.4 Pembatasan dan Ruang Lingkup Masalah
Untuk membahas topik yang lebih terarah dan agar tercapainya tujuan, maka batasan masalahnya sebagai berikut:
1. Dataset yang akan digunakan adalah hasil crawling dengan menggunakan API dari google.com
1.5 Sistematika penulisan
Laporan penelitian ini akan ditulis dengan sistematika sebagai berikut:
BAB 1 : Pendahuluan
Bab ini membahas tentang latar belakang, rumusan masalah, tujuan, sitematika penulisan dan pembatasan masalah dalam laporan ini.
BAB 2 : Tinjauan pustaka
Bab ini berisi untuk menjelaskan landasan teori yang akan digunakan dalam penelitian ini.
BAB 3 : Metode Penelitian
Bab ini berikan tentang metode penelitian yang akan digunakan.
BAB 4 : Analisi dan Perancangan Sistem
Bab ini berisikan tentang penelitian yang dilakukan dan pembahasan yang telah di dapat dari penelitian.
BAB 5 : Implementasi Sistem dan Analisa
4
Bab ini berisikan tentang implementasi sistem yang dibuat dan pengujian beserta analisis yang diperoleh.
BAB 6 : Kesimpulan dan Saran
Bab ini berisikan tentang kesimpulan yang di dapat dari hasil penelitian dan saran yang diberikan untuk pengembang selanjutnya.
5
BAB II
TINJAUAN PUSTAKA
Seperti yang di jelaskan pada latar belakang penelitian ini membahas tentang perbandingan dua algoritma yaitu algoritma Nazief and Ardiani serta Algoritma porter dalam proses stemming pada Information Retrieval dengan pendekatan Vector Space Model yang di peruntukan untuk pencarian tentang refrensi mata kuliah dalam sebuah website. Menggunakan bahasa pemmrograman php, html, javasript, css dan menggunakan database MYSQL.
2.1 Information Retrieval (IR)
Temu balik informasi merupkan atau yang biasa disebut dengan Information Retrieval merupakan bidan pengarsipan ilmu informasi dan ilmu komputer. Berkutat dengan pengindeksan dan pembambilan informasi dari submber informasi heterogen dan sebagian besar textual (Mooers, 1951). Menurut Janu Saptari dan Purwono (2006), menjelaskan bahwa Information Retrieval merupakan suatu sistem yang meyiapkan informasi dan menemukan kembali informasi. Dalam Penelitian ini Infromation Retrieval digunakan pada hasil indeksing website yang berhahsil di crawling dalam mesin pencari yaitu google yang nantinya outputnya berupa link website. Ada beberapa metode dalam Infromation Retrieval.
2.1.1 Model Boolean ( BIR / Boolean Infromation Retrieval )
Model Boolean merupakan model sederhana yang berdasarkan atas teori himpunan dan aljabar boolean. Boolean sendiri yang pertama kali di kembangkan oleh (George boole, 1815-1864). Model boolean sendiri bertujuan untuk memberntuk query dalam format term-term, seperti AND, OR, dan NOT. Seperti namanya model boolean maka setiap term tersebut terdapat dalam setiap dokumen yang merupakan vektor 0 (nol) atau 1 (satu). Bernilai 1 ketika term tersebut terdapat dalam dokumen dan bernilai 0 ketika term tersebut tidak terdapat dalam dokumen (Manning, 2008).
2.1.2 Model Vector Space Model (VSM / Vector Space Model)
Model Vector Space Model merupakan salah satu pendekatan yang digunakan dalam Information Retrieval. Model ini merupakan metode yang digunakan untuk melihat tingkatan kedekatan atau kesamaan (similarity) term dengan cara pembobotan term.
2.2.2.1 Proses Vector Space Model (VSM / Vector Space Model )
Model vector space dalam Information Retrieval memiliki beberapa tahapan atau proses diantaranya :
6 2.2.2.1.1 Tokenisasi atau Tokenizing
Merupakan tahapan dimana pemotongan kata atau parameter yang diparsing dengan menggunakan delimiter spasi yang nantinya hasilnya merupakan kata. Pada proses ini yang harus dilalukan adalah proses lowercase mengubah huruf kapital menjadi huruf kecil dan penghapusan tanda baca.
Sebagai contoh:
Logika fuzzy adalah penigkatan dari logika boolean yang berhadapan dengan konsep kebenaran sebagian.
Hasil Tonkenisasi :
Logika, fuzzy, adalah, penigkatan, logika, dari, logika, boolean, berhadapan, dengan, konsep, kebenaran, sebagian.
2.2.2.1.2 Stopwords
Merupakan tahapan dimana proases penghilangan kata yang tidak memiliki makna. Proses ini bertujuan untuk mengurangi waktu eksekusi query, ukuran indek, menigkatkan efisiensi dan keefektifan dari pemerolehan informasi (Corft-metzeler-strohman, 2010).
Contoh kata yang termasuk kata stopwords adalah kata ganti orang (dia, mereka, beliau, kami) . Kata penghubung (lalu, kemudian, namun, padahal ) (Oktaviani, 2011).
2.2.2.1.3 Stemming
Stemming merupakan proses pengenalan kata. Hal ini memiliki hubungan dengan pemisahan kata dengan imbuhan dan tanda baca (Goker and Davies, 2009). Dimana bahasa mempengarui proses stemming. Proses stemming bahasa Indonesia berbeda dengan proses stemming bahasa Inggris. Terdapat beberapa algoritma jika berbicara tentang stemming seperti algoritma Nazief and Adriani, algoritma Arifin dan Setiono serta algoritma porter dan masih banyak yang lainnya. Akan tetapi pada penelitian ini untuk stemming akan membangdingkan dua algoritma yaitu algoritma nazief and ardiani serta algoritma porter.
Pada umunya sebuah kata dalam bahas Indonesia memiliki susunan atau kombinasi sebagai berikut:
Prefix 1 + prefix 2 + kata dasar + suffix 3 + suffix 2 + suffix 1 [17]
2.2.2.1.3.1 Algoritma Nazief and Ardiani
Algoritma Nazief and Ardiani merupakan algoritma stemming berbasis bahasa Indonesia yang cukup populer. Berikut adalah proses dimana algoritma nazif berjalan :
7
1. Pertama cari kata yang akan destemming di dalam kamus, jika di temukan maka diasumsikan kata tersebut adalah root word. Maka algoritma berhenti.
2. Inflection suffixes (“-lah”, “-kah”, “-mu”, “-nya”) dibuang. Jika berupa partikel (“-lah”, “-kah”, “-tah”
maka langkah ini diulang untuk menghapus possif pronouns (“-ku” , “-mu”, “-nya”) jika ada.
3. Hapus derivation suffixes (“i”, “-an”, atau “-kan”). Jika kata ditemukan dalam kamus maka algoritma berhenti jika tidak maka ke langgkah 3a.
a. Jika “-an” telah dihapus dan huruf terakhir adalah “-k” maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti dan jika tidak maka lakukan langkah 3b
b. Akhiran yang dihapus (“-i”, “-an”, “-kan”) dikembalikan lanjut ke langkag 4.
4. Hapus derivation preffix. jika langkah ke 3 ada suffixes yang di hapus maka pergi ke langkah 4a, jika tidak pergi kelangkah b.
a. Periksa table kombinasi awalan dan akhiran yang tidak di ijinkan. Jika tidak ditemukan maka algoritma berhenti dan jika tidak maka pergi ke langkah 4b.
b. For i = 1 to 3 tentukan tipe awalan kemudian hapus awalan jika root word belum juga ditemukan maka lanjutkan ke langkah 5 jika ditemukan maka algoritma berhenti.
5. Melakukan recording.
6. Jika semua langkah telah selsai maka kata awal diasumsikan sebagai root word. Proses selsai.
Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan dibawah:
1. Mengatasi aturan reduplikasi
a. Jika kedua kata yang dihubungkan oleh kata penghubung adalah bentuk tunggal nya adalah kata dasar “contoh jalan-jalan” maka root word- nya adalah jalan.
b. Kata lain, misalnya “bolak-balik” dan “seolah- olah” maka di ubah menjadi bentuk tunggal contoh kata “berlari-lari” menjadi berlari dan lari dan root word dari kata berlari dan lari
8
adalah lari maka root word dari kata “berlari- lari” adalah lari pada kata “bolak-balik”
memiliki root word yang berbeda maka root word-nya adalah “bolak-balik”
2. Tambahan bentuk walan dan akhiran serta aturannya a. Untuk awalan “mem-” kata yang diawali dengan
“memp-” maka memiliki awalan “mem-”.
b. Tipe awalan “meng-“ kata yang diawali dengan awalan “mengk-“ memiliki awalan “meng-“.
2.2.2.1.3.2 Algoritma Porter
Algoritma Porter merupakan algoritma stemming yang kebanyakan di peruntukan atau digunakan untuk setemming dalam bahasa inggris.
Berbeda dengan algoritma Nazief and Adriani ciri yang menggunakan kamus untuk setiap prosesnya jika algoritma porter tidak bergantung dengan kamu. Berikut adalah langkah-langkah dari algoritma porter :
1. Hapus Particle.
2. Hapus Posessif pronoun
3. Hapus awalan pertama. Jika tidak ada lanjutkan ke langkah 4a. jika tidak lanjutkan ke langkah 4b.
4. Proses ke 4:
a. Hapus awalan ke 2 jika lanjutkan ke langkah 5a b. Hapus akhiran, jika tidak ditemukan maka kata
tersebut diasumsikan sebagai root word. Jika ditemukan maka lanjutkan ke langkah 5a.
5. Proses ke 5
a. Hapus akhiran, kemudian kata akhir di asumsikan sebagai root word.
b. Hapus awalan ke dua, kemudian kata akhir diasumsikan sebagai root word.
2.2.2.1.4 Term Weight
Pembobotan kata sangatlah berpengaruh terhadap penentuan kemiripan dokumen dengan keyword atau parameter. Apabila bobot tiap kata dapata di tentukan dengan tepat, di harapkan hasil perhitungan kemiripan teks akan menghasilkan perangkaian dokumen yang baik. Keberhasilan dari vector space model ditentukan oleh skema pembobotan dan factor normalisasi [1]. Pembobotan frekuensi term dalam suatu dokumen dan tidak melihat kemunculan term pada dokumen yang lainnya. Ada empat cara untuk yang dapat digunakan untuk menentukan nilai TF:
9 1. Raw Tf
Nilai TF sebuah term dihitung berdasarkan kemunculan term tersebut dalam dokumen[1].
2. Trem Trequency
Dalam memperoleh nilai Tf, cara ini menggunakan fungsi logaritmik dalam matematika [1].
TF = 1 + log(TF)
Persamaan 2.1 Rumus Logarithmic TF
3. Binnary Tf
Cara ini menghasilkan nilai Boolean berdasarkan kemunculan term pada dokumen tersebut. Akan bernilai 0 apa bila term tidak ditemukan dalam dokumen dan jika term ditemukan dalam dokumen maka mernilai 1. Sehingga banyaknya term pada dokumen tidak berpengaruh[1].
4. Argumented TF
TF = 0.5 + 0.5 x TFmax(TF)
Persamaan 2.2 Rumus Logarithmic TF
Nilai TF adlah jumlah kemunculan term pada dokumen. Nilai max(TF) adalah jumlah kemunculan term terbanyak pada sebuah dokumen[1]. Dalam penelitian ini yang akan digunkan adalah Raw Tf.
2.2.2.1.5 Invers Document Frequency (IDF)
Metode TF-IDF (Term Frequency Inverse Document Frequency) meupakan suatu cara untuk memberikan bobot hubungan kata (term) terhadap dokumen, metode ini menggabungkan konsep Tf (Trem Frequency) dan inverse dokumen yang menggandung kata tersebut[2]. Pada konsep penghitungan TF terdapat nilai TF yang nilai jumlahnya berdasarkan jumlah dari kemunculan suatu kata pada sebuah dokumen, sedangkan IDF dapat dihitung dengan cara berikut:
Persamaan 2.3 Rumus Idf
Dimana:
IDF = Inverse Document Frequency D = Total Document
DF = Frequency Document dari Term
10
LOG = Untuk memperkecil pengaruh relative terhadap TF Bobot term di hitung dengan menggunakan rumus :
Persamaan 2.4 Rumus TF.IDF
Dimana:
W = Bobot dokumen Tf = Term Frequency
IDF = Inverse document frequency 2.2.2.1.6 Cosine Measure Similarity
Cosine Measure Similarity merupakan cara untuk menghitung kemiripan antara vector document dan vector query yang dilihat dari sudut yang paling kecil.
Sudut yang dibentuk oleh dua buah vektor dapat dihitung dengan melakukan inner product. Kemiripan antara vektor dokumen dan vektor query akan di hitung dengan pendekatan Cosine Measure Similarity[1]. Nilai relevansi (Similarity) antar query dengan dokumen ke-1 [2].
( ) ⃗⃗⃗
| ⃗⃗⃗ | ∑ ( )
√∑ ∑
Persamaan 2.5 Rumus Cosine Similarity
Dimana:
⃗⃗⃗ = Panjang bobot dokumen j = Panjang bobot query ⃗⃗⃗ = Panjang bobot document j = Panjang bobot query = bobot term i pada dokumen = bobot term i pada dokumen j = bobot term i pada query = Teks
11 2.2.2.1.7 Precission Dan Recall
Recall dan precission adalah dua perhitungan yang banyak digunakan dalam penghitungan untuk mengukur kinerja sistem [18]. Pengukuran efektifitas suatu sistem dapat dilakukan dengan menggunakan penghitungan nilai terhadap nilai yang di peroleh (recall), nilai ketepatan (precission) (Tague-Sutcliffe, 1992;
Conlon dan Conlon, 1996).
Gambar 2. 1 Recall dan precission pada contoh hasil temu-kembali informasi (Baeza-Yates dan Riveiro-Neto, 1999)
Recall adalah proporsi jumlah dokumen yang dapat ditemukan-kembali oleh sebuah proses recall [19], dengan rumus:
Persamaan 2.6 Rumus Recall
Precission adalah suatu proporsi jumlah dkumen yang ditemukan dan dianggap relevan untuk kebutuhan si pencari informasi[19]. Precission dapat di artikan sebagai suatu kecocokan antara permintaan informasi dan jawaban terhadap permintaan itu [19]. Dengan menggunakan rumus:
Persamaan 2.7 Rumus Precission
12 2.2 Crawling
Web Crawling adalah sistem yang digunakan untuk meng-crawl seluruh informasi setiap website. Web crawling ditugaskan untuk menggali seluruh data yang ada dalam komponen website yang seperti meta data, tittle, meta decription dan keyword [3]. Web crawling merupakan kebutuhan pokok dalam setiap search engine seperti google, yahoo, bing dan lainnya.
2.3 PHP (Hyperytext Preprocessor)
PHP adalah bahasa pemrograman script server-side yang didesain untuk pengembangan web. Selain itu, PHP juga bisa digunakan sebagai bahasa pemrograman umum (wikipedia). PHP di kembangkan pada tahun 1995 oleh Rasmus Lerdorf, dan sekarang dikelola oleh The PHP Group. Php disebut Bahasa pemrograman server side karena php di proses pada computer server hal ini berbeda dengan pemrograman server side seperti javascript atau pun HTML yang di proses pada web browser.
2.4 MYSQL
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis di bawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya.
Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non- transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.
13 2.5 JSON (JavaScript Object Notation)
JavaScript Object Notation atau di singkat JSON adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. JSON terbuat dari dua struktur yaitu :
1. Kumpulan pasangan nama atau nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array.
2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence).
Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini.
14
BAB III
METODOLOGI PENELITIAN
Pada bab ini pembahasan akan tertuju pada metodologi penelitian yang mencakup tentang bagaimana gambaran umum penelitian ini dilakukan, bagaimana tahapan-tahapannya, apa saja yang digunakan, sumber data, hingga bagaimana rencana implementasinya.
3.1 Gambaran umum
Penelitian ini berfokus pada Information retrieval dengan menggunakan metode Vector Space Model (VPM) yang di peruntukan untuk pencarian halaman website. Objek dari penelitian ini adalah mata kuliah mahasiswa yang telah melakukan pengambilan matakuliah. Sistem yang nantinya akan mencarikan link webite yang berhubungan dengan mata kuliah tersebut. Outputnya adalah link website. Harapan dari penelitian ini adalah mahasiswa mengetahui sumber- sumber yang berkaitan dengan mata kuliah yang sedang diampunya dan dapat belajar secara mandiri.
Pada gambar 2.1 adalah model dan perancangan dari sistem yang adakan dibuat. Dalam gambar diatas dijelaskan bahwa setelah data dari hasil search engine didapatkan berikut semua konten yang ada dalam website disimpan dalam bentuk file yang mana file tersebut adalah file yang menjadi koleksi sebagai kumpulan dokumen yang akan digunakan sebagai dataset. Sebelum dijadikan sebuah dokumen, link website yang didapat akan dihilangkan dari bahasa program meliputi html, css dan javascript yang terkandung dalam link website terkait hingga mendapatkan konten dari website tersebut. Setelah file sudah siap maka akan dilakukan lankah pertama adalah tokenisasi yaitu memisahkan kata dengan delimiter spasi, sehingga mendapatkan kata atau term yang terdapat dalam dokumen.
Hapus stopword merupakan proses dimana penghapus kata yang dianggap stopwords atau tanda baca. Kata yang akan dihapus merupakan kata-kata yang tidak memiliki makna sebagai contoh adalah yang, di, ke, dari. Stemming adalah proses dimana setiap kata akan dicari kata dasarnya atau juga disebut root word.
Term frequency adalah proses dimana penghitungan frequency term setiap dokumen. Invers Document Frequency merupakan penghitungan bobot hubungan term terhadap dokumen. TF-IDF merupakan penghitungan bobot term setiap dokumen. Cosine Measure Similarity merupakan kemiripan antara dokumen dan query. Langkah terkhir adalah recall dan precission paremeter uji yang digunakan untuk membuktikan tingkat akurasi.
15
Mulai
Data Hasil Crawling
Mata kuliah Doc 1 Doc 2 Doc 3 Doc ke-n
Tokenisasi
Hapus Stopword
Stemming
Daftar sopword
Daftar kata dasar
Term Frequency (TF)
Inverse Document Ferequency (IDF)
TF-IDF Proses text
Minning
Computing term weight
Daftar kata Berbobot :
Mata kuliah Doc 1 Doc 2 Doc 3 Doc ke-n
Cosine Measure Similarity
Urutkan nilai Evaluasi hasil dari output sistem Proses Interpretation And
Evaluation
Tampilkan hasil evaluasi
Selsai
Hasil Precision
Hitung Recall
Hitung waktu komputaisi dan skala perbedaan sebelum dan sesudah text mining Proses Testing pengujian
Gambar 3. 1Proses sistem dari information retrial dengan menggunakan vector space model
3.2 Sumber Data
Sumber data penelitian ini berasal dari hasil crawling dari google search engine dengan menggunkaan API (Aplication Program Interface) dari google.com. Dimana hasilnya adakah berupa link website dari hasil searching di google.com. Link yang diambil dari kata kunci menggunakan data silabus yang sudah disiapkan. Dari setiap silabus akan dijadikan kata kunci untuk seraching di google.com kemudian dari hasil tersebut akan diambil lima link website terkait.
16
Artinya dalam data yang ada terdapat 25 silabus dan masing-masing silabus memiliki 5 hasil searching. Data yang ada terdapat 125 link website. Yang nantinya setiap link website yang ada akan di crawling untuk diambil kontennya dan akan di jadikan dokumen. Dan dengan demikian akan terdapat 125 dokumen yang merupakan isi konten link website yang dihasilkan dari pencarian dengan google.com
3.3 Data Kamus Kata
Kamus kata adalah database kata yang berisikan tentang kata dasar dalam Bahasa Indoensia. Sementara ini terdapat 35.908 kata yang sudah terdapat dalam database. Yang didapat dari A Study of Stemming Effects on Information Retrieval in Bahasa Indonesia ( Fadillah Z Tala ).
3.4 Data Stopwords
Stopwords adalah kata-kata yang tidak memiliki makna. Sementara ini terdapat 758 stopwords yang sudah tersimpan dalam database. Data ini didapat dari dari A Study of Stemming Effects on Information Retrieval in Bahasa Indonesia ( Fadillah Z Tala ).
3.5 Spesifikasi Alat
Sistem ini dibuat dengan spesifikasi alat software dan hardware sebagai berikut:
1. Spesifikasi hardware:
a. Processor Intel(R) Core(TM) i3-4150 CPU @ 3.50 GHz (4 CPUs) b. RAM 8GB DDR3
c. Har Disk 500GB
d. VGA AMD Radeon Graphics Processor (0, 6613).
2. Spesifikasi software : a. Windows X
b. Editor code Sublime, Android studio, Atom c. WAMP server
d. SQLyog e. Postman
17 3.6 Tahapan-Tapan Penelitian
3.6.1 Studi kasus
Kasus yang akan dipelajari adalah pencarian link website yang memiliki sumber tentang mata kuliah mahasiswa yang diambil dalam semester yang sedang di jalaninya.
3.6.2 Studi pustaka
Studi pustaka yang dilakukan adalah mencari website, buku, video, atau pun artikel yang membahas tentang web crawling dan Infromation Retrieval.
Penelitian ini, penulis akan mempelajari tentang konsep yang berkaitan dengan Information retrieval dengan menggunakan model Vector Space. Konsep yang dipelajari akan membantu untuk membangun sebuah sistem yang digunakan untuk memberikan sumber-sumber website yang berkaitan dengan mata kuliah.
3.6.3 Pemeriksaan file atau dokumen
Pemriksaan file atau dokumen oleh ahli tentang dokumen hasil retrieved dan pemeriksaan dokumen koleksi demi memenui kebutuhan penghitungan kecocokan dokumen hasil retrieved dengan dokumen koleksi.
3.6.4 Metode Pengembangan Perangkat Lunak
Metode yang digunakan dalam penelitian ini adalah metode waterfall.
Metode waterfall atau sering juga disebut sebagai pengembangan model air terjun merupakan pengembangan perangkat lunak yang paling tua dan paling banyak dipakai. Model ini juga mengusulkan sebuah pendekatan perangkat lunak yang sistematik dan skuensial yang dimulai pada tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain, kode, pengujian dan pemeliharaan [6].
Analisis kebutuhan
Desain sistem
Pengujian kode program
Pengujian Program
Penerapan Program
Gambar 3. 2 metode pengembangan dengan menggunakan metode waterfall
18 a. Analisis sistem
Dalam langkah ini merupakan langkah dimana mengalisis terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa menggukan berbagai cara seperti wanwancara, studi literatur dan studi kasus.
b. Desain
Proses ini adalah proses dimana mengolah data hasil analisa menjadi sebuah representasi yang nantinya akan diakan diterapkan dalam sistem atau aplikasi. Proses ini terfokus pada struktur data, arsitektur perangkat lunak, desain interface, dan algoritma[6].
c. Pengkodean
Pengkodean adalah proses dimana penulisan dari hasil desain ke penejemahan bahasa yang dapat dimengeti oleh bahasa mesin[6]. Disinilah bahasa pemrograman mulai diketikan.
d. Pengujian
Pengujian adalah proses dimana sistem akan di uji untuk baik secara fungsional logika internal ataupun pengujian terhadap logika external[6].
e. Pemeliharaan
Pemeliharaan adalah proses dimana sistem akan mulai bekerja di lapangan dan para developer akan memantau bagaimana aplikasi mulai berjalan meningkatkan peforma, fitur – fitur yang berpotensi terajadi error akan terus dipantau di pase ini.
f. Analisa Hasil
Hasil pencarian dokumen yang ditemukan harus akurat.
Selanjutnya adalah membangdingkan nilai akurasi atau recall dan prcission bedasarkan hasil pencarian antar algoritma nazief and adriani serta algoritma porter.
3.7 Evaluasi
Dalam proses ini dilakukan perbandingan antara hasil pemelohan informasi dari algoritma Nazief and Ardiani dan algoritma Porter. Dengan menggunakan keyword “ ” . Kedua algoritma tersebut akan di bandingkan
19
berdasarkan nilai uji recall dan precission-nya dalam 125 dokumen yang berhasil di crawling.
20
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
4.1 Analisa sistem
4.1.1 Analisis Kerja API Google dan Penyiapan Dataset
Sistem akan memanfaatkan API ( aplication program interface ) yang disediakan oleh google dengan mengambil. Setelah mendapatkan link API dari google. Dengan parsing keyword yang telah di tentukan dalam hal ini adalah data silabus dari matakuliah. Berikut merupakan potongan koding untuk mengambil data link website dengan menggunakan API google akan diperlihatkan pada gambar 4.1:
Gambar 4. 1 penggunaan API Google
Dalam kasus ini hasil yang data yang berhasil return bertipe data json ada beberapa parameter yang diambil dari hasil pencarian dengan google.
Gambar 4. 2Hasil pencarian dengan API google
21
Jika di perhatikan pada gambar 4.2 adalah hasil pencarian dengan API google, terdapat bebera variable yang dihasilkan dalam pencarian google diantaranya tittle, kind, htmlTittle, cached, metatags dan lain sebagainya. Namun dalam hal ini yang terpakai adalah variable link yang berupa url dari website yang berhasil dicari oleh google dan metaTags adalah deskripsi dari website tersebut.
Kemudian kedua variable tersebut akan disimpan didalam database guna untuk menyiapkan dataset yang nantinya akan diolah oleh sistem.
Setelah semua data tersimpan, link hasil dari pencarian tadi akan di bersihkan dari bahasa pemrogramman seperti html, javascript dan css hingga mendapatkan text content website. Berikut potongan program pada gambar 4.3.
Gambar 4. 3pembersihan dari bahasa pemrogramman dan pembuatan dokumen.
Pada gambar 4.4 merupakan isi dari sebuah website yang belum di lakukan preprocessing.
Gambar 4. 4file yang belum dilakukan pembersihan
22
Gambar 4. 5 link website yang telah dibersihkan dan dibuatkan file dokumen Setelah dokumen terbentuk, maka data akan siap diproses menggunakan pemrolehan informasi. Potongan dokumen tersebut yang diperlihatkan pada gambar 4.5
4.1.2 Gambaran Sistem.
Sistem pemerolehan materi mata kuliah berdasarkan halaman website yang dipergunakan untuk membantu mahasiswa dalam menemukan referensi mata kuliah baru akan dikembangkan.
Gambar 4. 6 Gambaran Keseluruhan system
Dari gambar 4.6 diatas tersebut digambarkan sebuah proses berjalannya system yang akan dikembangkan. Langkah awal yang akan di lakkukan adalah pemngumpulan link website berdasarkan keyword silabus matakuliah tertentu dan kemudian di simpan kedalam database Mysql. Kemudian dari link yang
23
didapat akan dilakukan crawling untuk mendapatkan isi konten dari link tersebut, setelah mendapatkan konten website, kemudian dari hasil pencarian konten tersebut yang dilakukan adalam pengarsipan atau pembuatan dokumen, untuk membentuk koleksi dokumen. Lalu setelah koleksi dokumen terbentuk saatnya proses information retrieval dilakukan. Hasil dokumen relevan akan disajikan berdasarkan materi atau silabus terkait, seturut dengan hasil information retrieval dari hasil stemming algoritma nazief and Adriani serta algoritma porter.
4.2 Analisis Kebutuhan Pengguna 4.2.1 Use Case Diagram
Gambar 4. 7 Use Case Diagram
Sistem pemerolehan informasi halaman website akan diakses oleh satu actor user yaitu pengguna atau dalam kasus ini adalah mahasiswa. Gambar use case diatas akan dijelaskan pada table 4.1 berikut ini.
Table 4.1 Keterangan use case diagram gambar 4.7
Aktor Keterangan
Pengguna (Mahasiswa) Dapat melakukan pencarian informasi tentang referensi mata kuliah berdasarkan data mata kuliah yang
telah tersedia
4.2.2 Sekernario Use Case
a. Mencari Referensi Materi Mata Kuliah
Nama Use Case Mencari referensi materi mata kuliah ID Use Case 1
Prioritas Tinggi
Aktor Pengguna ( Mahasiswa )
Deskripsi Use Case ini merupakan proses untuk mencari referensi materi mata kuliah.
Pra kondisi Aktor akan berada pada halaman dashboard.
Prmicu Aktor akan melihat referensi yang diberikan berdasarkan materi mata kuliah
24
Lankah Utama Aksi Aktor Reaksi Sistem
Langkah 1 :
Aktor akan mengklik daftar mata mata kuliah
Langkah 3 :
User akan mengklik tombol reverensi satu pencarian dengan menggunakan algoritma nazief and adriani dan referensi 2
menggunakan algoritma porter
Langkah 2 :
Sistem akan menampilkan daftar mata kuliah
Langkah 4 :
Sistem akan menampilkan referensi materi mata kuliah.
Langkah alternative
-
Kesimpulan Use Case ini akan digunakan untuk mencari referensi mata kuliah berupa link website.
Pasca kondisi Aktor atau pengguna akan menemukan informasi materi mata kuliah berupa link website.
25 4.2.3 Diagram Kelas
Rancangan Diagram kelas untuk memodelkan pemerolehan informasi dengan menggunakan algoritma nazief and adriani.
Gambar 4. 8 diagram kelas dengan menggunakan algoritma nazief and adriani
26
Rancangan Diagram kelas untuk memodelkan pemerolehan informasi dengan menggunakan algoritma porter.
Gambar 4. 9 diagram kelas dengan menggunakan algoritma porter
27 4.2.4 Perancangan Database
Hubungan relasi antar table akan ditunjukan pada gambar 4.9 sebagai berikut:
Gambar 4. 10Hubungan antar tabel
28 4.3 Rancangan Basis Data
Tabel 4. 1Table tbl_stopwords
Nama kolom Tipe Data Ukuran Keterangan
id_stopwords Int 100 Merupakan id dari setiap
stopwords yang ada
stopwords Text - Nama stopwords
stopwords_date Date - Waktu penyimpanan
stopwords Tabel 4. 2Table tbl_kata
Nama kolom Tipe Data Ukuran Keterangan
kata_id Int 11 Primary key untuk table
tlb_kata
kata Varchar 100 Nama kata atau word
kata_stopword Enum Ya, bukan Status stopword dalam setiap kata
kata_categori Enum Kapabilitas, intergritas
Jenis kategori pada setiap kata
kata_sentiment Enum Positif, negatif
Jenis sentiment pada setiap kata
kata_idx int 11 Id untuk setiap kata
Tabel 4. 3 Table tbl_makul
Nama kolom Tipe Data Ukuran Keterangan
id_makul Int 100 Primary key untuk table
tbl_makul
makul_nama Varchar 1000 Daftar nama mata kuliah
makul_sks Int 10 Jumlah sks untuk setiap mata
kuliah
makul_deskripsi Text - Deskripsi untuk setiap mata kuliah
makul_date Date - Waktup penyimpanan mata
kuliah
makul_was_delete Enum Y, N Status penghapusan mata kuliah
Tabel 4. 4 Table tbl_silabus
Nama kolom Tipe Data Ukuran Keterangan
silabus_id Int 100 Primary key untuk table
tbl_silabus
makul_id Int 100 Foreign key dari table
29
tbl_makul
silabus Varchar 100 Daftar silabus
silabus_datetime Datetime - Waktup penyimpanan
silabus
silabus_was_deleted enum Y, N Status penghapusan silabus Tabel 4. 5 Table tbl_materi
Nama kolom Tipe Data Ukuran Keterangan
id_materi int 100 Primary key dari table
tbl_materi
id_silabus Int 100 Foreign key dari table
tbl_silabus
materi_link Text - Daftar link referensi mata
kuliah hasil searching di google
materi_meta_des Text - Meta deskripsi website
terkait
materi_tittle Text - Tittle website terkait
materi_date Text - Waktu penyimpanan link
website
materi_was_delete Enum Y, N Status penghapusan materi link website
Tabel 4. 6 Tabel tbl_striptags_materi
Nama kolom Tipe Data Ukuran Keterangan
id_strip Int 100 Primary key dari table
tbl_striptags_materi
id_materi Int 100 Foreign key dari table
tbl_materi
materi_link Text - Link website terkait
striptags text - Nama file dokumen yang
berisikan konten website terkait
Tabel 4. 7 tabel tbl_result_porter
Nama kolom Tipe Data Ukuran Keterangan
Id Int 11 Primary key pada table
tbl_result_porter
Kata varchar 100 Jenis kata hasil stemming
dengan algoritma porter
Doc Varchar 11 Nama file yang di stemming
30
dengan algoritma porter
Datetime Datetime - Waktu penyimpanan data
Kata_was_delete Enum Y, N Status penghapusan kata pada table tbl_result_porter Tabel 4. 8Tabel tbl_result_nazief
Nama kolom Tipe Data Ukuran Keterangan
id_nazief Int 11 Primary key pada table
tbl_result_nazief
Kata varchar 100 Jenis kata hasil stemming
dengan algoritma nazief and adriani
Doc Varchar 11 Nama file yang di stemming
dengan algoritma nazief and adriani
Datetime Datetime - Waktu penyimpanan data
Kata_was_delete Enum Y, N Status penghapusan kata pada table tbl_result_nazief Tabel 4. 9 Tabel tabel tbl_result_nazief
Nama kolom Tipe Data Ukuran Keterangan
id_term Int 11 Primry key pada table
tbl_result_nazief
Term Varchar 100 Daftar kata atau term
Frequency Int 11 Nilai frequency term pada
sebuah dokumen
doc varchar 100 Nama dokumen
Tabel 4. 10 Tabel tabel tbl_result_porter
Nama kolom Tipe Data Ukuran Keterangan
id_term Int 11 Primry key pada table
tbl_result_poter
Term Varchar 100 Daftar kata atau term
Frequency Int 11 Nilai frequency term pada
sebuah dokumen
doc varchar 100 Nama dokumen
31
Tabel 4. 11 tabel generate_file
Nama kolom Tipe Data Ukuran Keterangan
File_id Int 11 Primary key pada table
generate_file File_kode varchar 100 Hasil dari pemberian nama
setiap pembuatan dokumen baru yang di butuhkan 4.4 Rancangan Desain Antarmuka
Pada halaman ini menampilkan halaman utama yang akan digunakan oleh pengguna mengan mengklik menu mata kuliah maka pengguna akan di tampilkan halaman mata kuliah yang telah tersedia. Tampilan halaman dashboard akan di sajikan pada gambar 4.8 sebagai berikut:
Gambar 4. 11 Halaman Utama
Pada halaman mata kuliah akan di tampilkan mata kuliah yang sudah tersedia.
Tampilan halaman tersebut adalah sebagai berikut pada gambar 4.11:
32
Gambar 4. 12 tampilan data mata kuliah
Untuk melihat referensi yang akan disajikan oleh sistem pengguna dapat menekan tombol pada kolom option refrensi 1 untuk hasil dari algoritma nazief and adriani serta referensi 2 untuk hasil dari algoritma porter. Untuk tampilannya seperti gambar 4.12 sebagai berikut:
Gambar 4. 13 Tampilan menampilkan referensi materi mata kuliah
33
BAB V
IMPLEMENTASI DAN ANALISIS HASIL
5.1 Spesifikasi software dan Hardware
5.1.1 Spesifikasi Software ( perangkat lunak )
Sistem ini dibangun menggunakan perangkat lunak yang mendukung untuk implementasi pemerolehan informasi untuk mencari referensi mata kuliha halaman website adalah sebagai berikut:
a. Sistem operasi : windows 10 64 bit b. Sqlyog
c. Heidisql d. Sublime text 3 e. Mozilla
f. Wampserver 64 bit
5.1.2 Spesifikasi hardware ( perangkat keras )
Perangkat keras yang diperlukan untuk membuat sistem ini adalah sebagai berikut :
a. Processor Intel(R) Core(TM) i3-4150 CPU @ 3.50 GHz (4 CPUs) b. RAM 8GB DDR3
c. Har Disk 500GB
d. VGA AMD Radeon Graphics Processor (0, 6613).
5.2 Implementasi Halaman Antarmuka 5.2.1 Implementasi Halaman Utama
Gambar 5.1 Adalah gambar yang menunjukan tampilan awal ketika program dijalankan :
34
Gambar 5. 1 implementasi halaman utama
5.2.2 Implementasi Halaman Mata Kuliah
Gambar 5.2 Adalah gambar yang menunjukan tampilan ketika user atau pengguna menekan menu mata kuliah adalah sebagai berikut:
Gambar 5. 2Halaman menampilkan data mata kuliah
5.2.2 Implementasi Halaman Menampilkan Referensi Materi Mata Kuliah
Gambar 5.3 adalah gambar dimana pengguna dapat melihat hasil referensi materi matakuliah kedua algoritma secara satu persatu dengan