102
ix 5.2.1 Pencarian frequent item ................................................................... 62 5.2.2 FP-Tree ............................................................................................ 63 5.2.3 Conditional FP-Tree ........................................................................ 68 5.2.4 Ekstraksi itemset .............................................................................. 71 5.3 Implementasi Cosine Similarity .............................................................. 72 5.4 Implementasi Penentuan Rekomendasi .................................................. 73 BAB VI HASIL DAN PEMBAHASAN .............................................................. 77 6.1 Data Pengujian ........................................................................................ 77 6.1.1 Dokumen pengujian ......................................................................... 77 6.1.2 Data transaksi ................................................................................... 77 6.1.3 Stopword .......................................................................................... 79 6.2 Metode Pengumpulan Data ..................................................................... 79 6.3 Skenario Pengujian ................................................................................. 79 6.4 Hasil Pengujian ....................................................................................... 79 6.4.1 Precision .......................................................................................... 80 6.4.2 Recall ............................................................................................... 84 6.4.3 F-Measure ........................................................................................ 87 6.4.4 Mean average precision................................................................... 90 BAB VII KESIMPULAN DAN SARAN ............................................................. 94 7.1 Kesimpulan ............................................................................................. 94 7.2 Saran ....................................................................................................... 95 DAFTAR PUSTAKA ........................................................................................... 96 LAMPIRAN 1 ..................................................................................................... 101 LAMPIRAN 2 ..................................................................................................... 106 LAMPIRAN 3 ..................................................................................................... 117 LAMPIRAN 4 ..................................................................................................... 126 LAMPIRAN 5 ..................................................................................................... 130

5.2.1 Pencarian frequent item Conditionaletd.repository.ugm.ac.id/downloadfile/77200/potongan/S2-2015... · 6.3 Skenario Pengujian ... dalam mencari item yang diinginkan, recommendation

Embed Size (px)

Citation preview

ix

5.2.1 Pencarian frequent item ................................................................... 62

5.2.2 FP-Tree ............................................................................................ 63

5.2.3 Conditional FP-Tree ........................................................................ 68

5.2.4 Ekstraksi itemset .............................................................................. 71

5.3 Implementasi Cosine Similarity .............................................................. 72

5.4 Implementasi Penentuan Rekomendasi .................................................. 73

BAB VI HASIL DAN PEMBAHASAN .............................................................. 77

6.1 Data Pengujian ........................................................................................ 77

6.1.1 Dokumen pengujian ......................................................................... 77

6.1.2 Data transaksi ................................................................................... 77

6.1.3 Stopword .......................................................................................... 79

6.2 Metode Pengumpulan Data ..................................................................... 79

6.3 Skenario Pengujian ................................................................................. 79

6.4 Hasil Pengujian ....................................................................................... 79

6.4.1 Precision .......................................................................................... 80

6.4.2 Recall ............................................................................................... 84

6.4.3 F-Measure ........................................................................................ 87

6.4.4 Mean average precision ................................................................... 90

BAB VII KESIMPULAN DAN SARAN ............................................................. 94

7.1 Kesimpulan ............................................................................................. 94

7.2 Saran ....................................................................................................... 95

DAFTAR PUSTAKA ........................................................................................... 96

LAMPIRAN 1 ..................................................................................................... 101

LAMPIRAN 2 ..................................................................................................... 106

LAMPIRAN 3 ..................................................................................................... 117

LAMPIRAN 4 ..................................................................................................... 126

LAMPIRAN 5 ..................................................................................................... 130

x

DAFTAR TABEL

Tabel 2.1 Tinjauan pustaka ................................................................................... 16

Tabel 3.1 Data transaksi ........................................................................................ 20

Tabel 3.2 Representasi keranjang ......................................................................... 20

Tabel 3.3 Frequent itemset .................................................................................... 20

Tabel 3.4 Daftar partikel ....................................................................................... 27

Tabel 3.5 Daftar kata ganti kepunyaan ................................................................. 27

Tabel 3.6 Daftar awalan pertama .......................................................................... 28

Tabel 3.7 Kombinasi ilegal ................................................................................... 28

Tabel 3.8 Daftar akhiran ....................................................................................... 29

Tabel 3.9 Daftar awalan kedua.............................................................................. 29

Tabel 3.10 Awalan ganda ...................................................................................... 29

Tabel 3.11 Pembagian kondisi hasil yang memungkinkan ................................... 32

Tabel 4.1 Contoh data transaksi ............................................................................ 44

Tabel 4.2 Seleksi data transaksi ............................................................................ 45

Tabel 4.3 Jumlah kemunculan item ....................................................................... 45

Tabel 4.4 Urutan frequent item ............................................................................. 47

Tabel 4.5 Data transaksi terurut dan terseleksi ..................................................... 48

Tabel 4.6 Hasil frequent itemset............................................................................ 49

Tabel 4.7 Rancangan tabel administrator ............................................................. 53

Tabel 4.8 Rancangan tabek transaksi .................................................................... 53

Tabel 4.9 Rancangan tabel dokumen .................................................................... 54

Tabel 4.10 Rancangan tabel ambang batas ........................................................... 54

Tabel 4.11 Rancangan tabel stoplist...................................................................... 55

Tabel 4.12 Rancangan tabel dokumen term .......................................................... 55

Tabel 5.1 Penyimpanan jumlah item pada array .................................................. 63

Tabel 5.2 Urutan frequent itemset ......................................................................... 75

Tabel 6.1 Dokumen uji .......................................................................................... 78

Tabel 6.2 Jumlah data transaksi masing-masing dokumen uji .............................. 78

Tabel 6.3 Komposisi perhitungan item ID 91 ....................................................... 80

xi

Tabel 6.4 Precision minimum similarity 40% dengan minimum support 20% ..... 81

Tabel 6.5 Nilai precision jumlah rekomendasi maksimal ..................................... 81

Tabel 6.6 Nilai precision jumlah rekomendasi terbatas ........................................ 83

Tabel 6.7 Recall minimum similarity 40% dengan minimum support 20% .......... 84

Tabel 6.8 Nilai recall jumlah rekomendasi maksimal .......................................... 85

Tabel 6.9 Nilai recall jumlah rekomendasi terbatas ............................................. 86

Tabel 6.10 F-measure minimum similarity 40% dengan minimum support 20% . 88

Tabel 6.11 Nilai F-measure jumlah rekomendasi maksimal ................................. 88

Tabel 6.12 Nilai F-measure jumlah rekomendasi terbatas .................................... 89

Tabel 6.13 AP ID 9 minimum similarity 40% dengan minimum support 20% ..... 91

Tabel 6.14 MAP minimum similarity 40% dengan minimum support 20% ......... 92

Tabel 6.15 Nilai mean average precision ............................................................. 92

xii

DAFTAR GAMBAR

Gambar 3.1 Penentuan frequent item .................................................................... 21

Gambar 3.2 FP-Tree .............................................................................................. 22

Gambar 3.3 Pembentukan conditional FP-Tree item „e‟ ...................................... 22

Gambar 3.4 Conditional FP-Tree item „e‟ ............................................................ 23

Gambar 3.5 Pembentukan conditional FP-Tree item „b e‟ ................................... 23

Gambar 3.6 Urutan hasil penggalian frequent itemset .......................................... 24

Gambar 3.7 Skema Tala stemmer ......................................................................... 26

Gambar 4.1 Gambaran umum hybrid recommendation system ............................ 35

Gambar 4.2 Arsitektur hybrid recommendation system ........................................ 38

Gambar 4.3 Flowchart tokenisasi ......................................................................... 39

Gambar 4.4 Flowchart stopword removal ............................................................ 41

Gambar 4.5 Flowchart Tala stemmer.................................................................... 42

Gambar 4.6 Flowchart pembobotan ..................................................................... 43

Gambar 4.7 Flowchart pencarian frequent item ................................................... 46

Gambar 4.8 Flowchart pembentukan FP-Tree...................................................... 48

Gambar 4.9 FP-Tree dan Prefix Path .................................................................... 49

Gambar 4.10 Flowchart penggalian frequent itemset ........................................... 50

Gambar 4.11 Flowchart cosine similarity ............................................................. 51

Gambar 4.12 Flowchart penentuan rekomendasi ................................................. 52

Gambar 4.13 Rancangan halaman penampilan rekomendasi ............................... 56

Gambar 4.14 Flowchart pembentukan data transaksi ........................................... 57

Gambar 5.1 Potongan kode tokenisasi .................................................................. 59

Gambar 5.2 Potongan kode stopword removal ..................................................... 59

Gambar 5.3 Potongan kode stemming ................................................................... 60

Gambar 5.4 Potongan kode perhitungan term frequency ...................................... 61

Gambar 5.5 Potongan kode frequent item search ................................................. 62

Gambar 5.6 Pengurutan frequent item .................................................................. 63

Gambar 5.7 Potongan kode struktur data Tree...................................................... 64

Gambar 5.8 Potongan kode pembentukan FP-Tree .............................................. 64

xiii

Gambar 5.9 Pembentukan FP-Tree data transaksi 1, 2, 4, 5, dan 6 ...................... 66

Gambar 5.10 FP-Tree semua data transaksi .......................................................... 67

Gambar 5.11 Implementasi FP-Tree akhir ............................................................ 67

Gambar 5.12 Potongan kode pembentukan conditional FP-Tree ......................... 68

Gambar 5.13 Conditional FP-Tree untuk item id 2............................................... 69

Gambar 5.14 Conditional FP-Tree untuk item id 20............................................. 70

Gambar 5.15 Conditional FP-Tree untuk item id 3............................................... 70

Gambar 5.16 Conditional FP-Tree untuk item id 4............................................... 71

Gambar 5.17 Potongan kode ekstraksi itemset ..................................................... 71

Gambar 5.18 Urutan penggalian itemset ............................................................... 72

Gambar 5.19 Potongan kode perhitungan cosine similarity ................................. 73

Gambar 5.20 Potongan kode proses rekomendasi ................................................ 74

Gambar 5.21 Antar muka halaman rekomendasi .................................................. 76

Gambar 6.1 Grafik nilai precision jumlah rekomendasi maksimal ...................... 82

Gambar 6.2 Grafik nilai precision jumlah rekomendasi terbatas ......................... 84

Gambar 6.3 Grafik nilai recall jumlah rekomendasi maksimal ............................ 86

Gambar 6.4 Grafik nilai recall rekomendasi terbatas ........................................... 87

Gambar 6.5 Grafik nilai F-measure jumlah rekomendasi maksimal .................... 89

Gambar 6.6 Grafik nilai F-measure jumlah rekomendasi terbatas ....................... 90

Gambar 6.7 Grafik nilai mean average precision ................................................. 93

xiv

INTISARI

HYBRID RECOMMENDATION SYSTEM MEMANFAATKAN

PENGGALIAN FREQUENT ITEMSET DAN PERBANDINGAN

KEYWORD

Oleh

Wayan Gede Suka Parwita

11/322973/PPA/03599

Recommendation system sering dibangun dengan memanfaatkan data

peringkat item dan data identitas pengguna. Data peringkat item merupakan data

yang langka pada sistem yang baru dibangun. Sedangkan, pemberian data

identitas pada recommendation system dapat menimbulkan kekhawatiran

penyalahgunaan data identitas.

Hybrid recommendation system memanfaatkan algoritma penggalian

frequent itemset dan perbandingan keyword dapat memberikan daftar rekomendasi

tanpa menggunakan data identitas pengguna dan data peringkat item. Penggalian

frequent itemset dilakukan menggunakan algoritma FP-Growth. Sedangkan

perbandingan keyword dilakukan dengan menghitung similaritas antara dokumen

dengan pendekatan cosine similarity.

Hybrid recommendation system memanfaatkan kombinasi penggalian

frequent itemset dan perbandingan keyword dapat menghasilkan rekomendasi

tanpa menggunakan identitas pengguna dan data peringkat dengan penggunaan

ambang batas berupa minimum similarity, minimum support, dan jumlah

rekomendasi. Dengan data uji yang digunakan, nilai pengujian yaitu precision,

recall, F-measure, dan MAP dipengaruhi oleh besarnya nilai ambang batas yang

ditetapkan. Selain itu, kasus biasa pada kondisi terbaik dapat mencapai nilai yang

lebih tinggi dibandingkan dengan kasus coldstart baik untuk jumlah rekomendasi

terbatas maupun rekomendasi maksimal.

Kata kunci : Hybrid recommendation system, frequent itemset, cosine

similarity.

xv

ABSTRACT

HYBRID RECOMMENDATION SYSTEM USING FREQUENT ITEMSET

MINING AND KEYWORD COMPARISON

By

Wayan Gede Suka Parwita

11/322973/PPA/03599

Recommendation system was commonly built by manipulating item

ranking data and user identity data. Item ranking data was a rare data on newly

constructed system. Whereas, giving identity data to the recommendation system

can cause concern about identity data misuse.

Hybrid recommendation system used frequent itemset mining algorithm

and keyword comparison, it can provide recommendations without identity data

and item ranking data. Frequent itemset mining was done using FP-Gwowth

algorithm and keyword comparison with calculating document similarity value

using cosine similarity approach.

Hybrid recommendation system with a combination of frequent itemset

mining and keywords comparison can give recommendations without using user

identity and rating data. Hybrid recommendation system used 3 thresholds ie

minimum similarity, minimum support, and number of recommendations. With

the testing data used, precision, recall, F-measure, and MAP testing value are

influenced by the threshold value. In addition, the usual problem in the best

threshold can achieve a higher testing value than the coldstart problem both for

the limited number of recommendations and the maximum recommendations.

Keyword : Hybrid recommendation system, frequent itemset, cosine

similarity.

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Peningkatan jumlah dokumen ilmiah yang ada menimbulkan kebutuhan

akan suatu sistem yang dapat memberikan rekomendasi dokumen ilmiah yang

baik. Recommendation system merupakan model aplikasi yang dibangun dari hasil

pengamatan terhadap keadaan dan keinginan pengguna. Sistem ini memanfaatkan

opini pengguna terhadap suatu item dalam domain atau kategori tertentu. Karena

itu sistem ini memerlukan model rekomendasi yang tepat agar apa yang

direkomendasikan sesuai dengan keinginan pengguna, serta mempermudah

pengguna mengambil keputusan yang tepat (McGinty dan Smyth, 2006).

Recommendation system atau disebut pula recommender system mulai

diperhatikan sejak kemunculan penelitian tentang collaborative filtering pada

pertengahan 90‟an (Goldberg, dkk., 1992), (Resnick, dkk., 1994). Selama dekade

terakhir ini, recommendation system telah banyak diterapkan dengan berbagai

pendekatan baru, baik oleh dunia industri maupun akademis. Pada dunia industri,

recommendation system sangat diperlukan terutama pada e-commerce web sites.

Ini ditunjukkan dengan penggunaan recommendation system pada sebagian besar

e-commerce web sites yang dimiliki oleh industri. Selain membantu pengguna

dalam mencari item yang diinginkan, recommendation system juga dapat

meningkatkan penjualan, ketertarikan maupun loyalitas pengguna terhadap suatu

item dan juga perusahaan (Godfrey, 2007). Amazone.com merupakan contoh

industri yang menerapkan sistem rekomendasi dalam e-commerce web sites

mereka (Linden, dkk., 2003). Penerapan recommendation system berbasis

collaborative filtering juga diterapkan pada jejaring sosial seperti Facebook,

MySpace, dan LinkedIn (Ricci, dkk., 2011)

Berbagai metode pendekatan telah diterapkan dan dikembangkan dalam

implementasi recommendation system. Berdasarkan object filtering, metode

tersebut dapat dikelompokkan ke dalam 3 jenis umum, yaitu metode collaborative

2

filtering, content-based filtering, dan hybrid filtering (Hsieh, dkk., 2004). Metode

yang banyak digunakan adalah collaborative filtering dan content-based filtering.

Masing-masing metode tersebut memiliki sejumlah kelebihan. Umpan balik yang

digunakan pada metode collaborative filtering mengakibatkan sistem dapat

memprediksi keinginan pengguna. Sedangkan metode content-based filtering

menggunakan konten dari item sehingga dapat memberikan rekomendasi tanpa

adanya umpan balik dari pengguna.

Di samping memiliki kelebihan, kedua metode tersebut juga memiliki

sejumlah kelemahan. Metode collaborative filtering baik user-based maupun

item-based sangat tergantung dengan umpan balik yang diberikan oleh pengguna.

Umpan balik berupa peringkat, data transaksi, maupun data identitas yang

diberikan oleh pengguna. Tanpa umpan balik, metode collaborative filtering tidak

dapat melakukan rekomendasi. Penggunaan data identitas pada metode user-based

collaborative filtering juga mengakibatkan pengguna harus terdaftar pada sistem

untuk membedakan klasifikasi data yang dikumpulkan dari pengguna. Akan

tetapi, pengguna terkadang enggan untuk mendaftar pada sistem karena

kekhawatiran terhadap penyalahgunaan data identitas. Di sisi lain, metode

content-based memiliki ketergantungan terhadap perbandingan konten maupun

atribut antara item.

Recommendation system berbasis data mining dapat dikategorikan menjadi

collaborative filtering maupun content-based filtering. Namun recommendation

system yang memanfaatkan data mining berbasis data transaksi dapat

dikategorikan ke dalam item-based collaborative filtering. Item-based

collaborative filtering menggunakan kedekatan item untuk menentukan

rekomendasi. Kedekatan dapat dicari dengan melihat data transaksi yang

melibatkan item tersebut. Metode pada data mining dapat dimanfaatkan dalam

pencarian rekomendasi karena data mining juga memiliki fungsi untuk mencari

kedekatan atara item. Dalam penerapan item-based ini dapat digunakan berbagai

metode dalam data mining diantaranya klasifikasi, asosiasi, dan klaterisasi.

3

Kaidah asosiasi digunakan untuk mencari hubungan asosiatif antara

kombinasi item. Asosiasi telah sukses diterapkan dalam masalah market basket.

Pada pencarian kaidah asosiasi terdapat 2 tahap yang dilalui. Salah satu tahap

yang dilakukan untuk pencarian kaidah asosiasi adalah penggalian frequent

itemset dengan memanfaatkan minimum support. Tahap ini merupakan tahap yang

menggunakan sumber daya yang paling besar. Semakin besar data transaksi yang

digunakan maka semakin besar sumber daya yang digunakan. Data transaksi

menyimpan informasi penting yang dihasilkan selama interaksi manusia dan

komputer yang berguna untuk algoritma pembentukan rekomendasi. Data

transaksi juga mencakup umpan balik eksplisit pengguna (Ricci, dkk., 2011).

Untuk menghasilkan frequent itemset yang baik, maka minimum support pada

tahap ini harus disesuaikan dengan data transaksi yang dimiliki. Recommendation

system untuk dokumen ilmiah dapat memanfaatkan fungsi dari penggalian

frequent itemset ini. Hanya saja, hubungan antara item belum dapat dipastikan

secara jelas walaupun fungsi dari penggalian itu sendiri merupakan pencarian

hubungan antara item. Ini disebabkan karena tahap penggalian frequent itemset

tidak dilanjutkan dengan perhitungan confident antara item/itemset. Untuk

mendapatkan kepastian hubungan antar item dalam itemset, dapat digunakan

perbandingan keyword yang diekstraksi dari masing-masing dokumen ilmiah.

Ekstraksi keyword yang dilakukan secara manual membutuhkan waktu

yang tidak sedikit. Untuk itu, ekstraksi keyword pada dokumen ilmiah dapat

menggunakan keyword extraction system. Dalam penerapannya, umumnya sistem

ini digunakan untuk identifikasi topik dokumen. Pembandingan keyword

dokumen termasuk content-based recommendation system karena menggunakan

isi dari dokumen untuk membentuk rekomendasi. Keyword extraction system

merupakan sistem yang dapat menemukan keyword dari dokumen secara

otomatis. Metode cosine similarity merupakan salah satu metode untuk

menghitung similaritas dokumen. Kelebihan utama dari metode cosine similarity

adalah tidak terpengaruh pada panjang pendeknya suatu dokumen (Rozas dan

4

Sarno, 2011). Dengan melakukan perbandingan keyword yang dihasilkan, maka

kedekatan antara item-pun dapat dipastikan.

Penentuan rekomendasi tanpa penggunaan data peringkat dan data

identitas pengguna dapat dilakukan dengan menggunakan kombinasi metode

penggalian frequent itemset dan perbandingan keyword yang menjadi kontribusi

penelitian ini. Penggunaan penggalian frequent itemset yang dikombinasikan

dengan perbandingan keyword akan menghasilkan hybrid recommendation

system. Penggalian frequent itemset akan memperkecil jumlah pembandingan

keyword yang dilakukan sehingga jumlah perbandingan keyword dapat dikurangi.

Sedangkan perbandingan keyword akan memastikan item yang dihasilkan

algoritma penggalian frequent itemset saling terkait.

Berdasarkan latar belakang tersebut, maka pada penelitian ini akan

dilakukan kombinasi dari algorima penggalian frequent itemset dan perbandingan

hasil keyword extraction system untuk penentuan rekomendasi. Kombinasi ini

akan menghasilkan hybrid recommendation system untuk penentuan rekomendasi

dokumen ilmiah.

1.2 Rumusan Masalah

Berdasarkan latar belakang yang telah dipaparkan dapat dirumuskan

masalah yang akan dikaji dalam penelitian ini yaitu bagaimana menghasilkan

recommendation system untuk merekomendasikan dokumen ilmiah tanpa

menggunakan data identitas pengguna dan data peringkat yang diberikan oleh

pengguna dengan memanfaatkan kombinasi 2 metode. Metode pertama

melakukan penggalian frequent itemset pada data transaksi pemilihan dokumen

ilmiah. Kemudian metode kedua melakukan perbandingan antar item yang masuk

pada itemset dengan membandingkan keyword yang dihasilkan secara otomatis.

5

1.3 Batasan Masalah

Berikut merupakan batasan masalah yang digunakan agar penelitian ini

tetap mengacu pada topik penelitian:

a. Keyword extraction system akan didasarkan pada dokumen ilmiah

berbahasa Indonesia.

b. Keyword extraction system melakukan ekstraksi terhadap teks bukan

gambar ataupun bentuk lain selain teks.

c. Recommendation system yang dibangun tidak menekankan pada

proses seleksi dokumen saat pencarian dokumen.

d. Jumlah rekomendasi yang dihasilkan oleh sistem akan ditentukan

secara manual oleh administrator sistem.

e. Dokumen ilmiah yang digunakan untuk pengujian merupakan 100

dokumen ilmiah yang berupa jurnal bahasa Indonesia yang diambil

secara acak.

1.4 Tujuan Penelitian

Tujuan penelitian yaitu menghasilkan recommendation system dokumen

ilmiah bahasa Indonesia yang berfokus pada pemanfaatan algoritma penggalian

frequent itemset dan perbandingan keyword dengan memanfaatkan data transaksi

dan isi dari dokumen.

1.5 Manfaat Penelitian

Penelitian ini diharapkan menjadi referensi tentang pengembangan hybrid

recommendation system untuk dokumen berbahasa Indonesia tanpa

memperhitungkan peringkat yang diberikan pengguna dan juga dapat mengatasi

kelemahan dari item-based collaborative filtering dan content-based filtering yang

berdiri sendiri. Selain itu, penelitian ini juga diharapkan menjadi referensi dalam

pemanfaatan algoritma pada data mining dan text mining untuk pengembangan

recommendation system.

6

1.6 Metodologi Penelitian

Penelitian ini dilakukan dengan mengikuti langkah-langkah sebagai

berikut:

1. Mempelajari pustaka dan literatur acuan: tahap ini dilakukan dengan

membaca serta memahami buku teks, jurnal, dan karya ilmiah lainnya yang

terkait dengan penelitian.

2. Analisis: kegiatan analisa meliputi analisa metode, alternatif algoritma yang

diterapkan, sepesifikasi perangkat lunak, dan analisa fungsionalitas.

3. Perancangan: tahap ini meliputi perancangan algoritma dan pemodelan

arsitektur untuk metode keyword extraction system, penggalian frequent

itemset, dan perbandingan keyword yang diterapkan untuk penentuan

rekomendasi dokumen.

4. Implementasi: tahap implementasi merupakan pembangunan sistem

perangkat lunak berdasarkan perancangan yang telah dilakukan sebelumnya.

5. Evaluasi dan perbaikan: pada tahap ini dilakukan evaluasi dari sistem serta

memperbaikinya jika terdapat kesalahan yang terjadi.

6. Pengujian dan analisa akhir: tahap ini meliputi pengujian kualitas dan kinerja

dari recommendation system yang dibangun.

7. Penulisan laporan: pada tahap ini dilakukan penulisan laporan dari hasil

penelitian yang telah dilakukan.

7

1.7 Sistematika Penulisan

Penulisan tesis ini terdiri dari 7 bab, adapun sistematika dari tesis ini

adalah:

BAB I PENDAHULUAN

Pada bab ini diuraikan secara singkat mengenai latar belakang masalah,

perumusan masalah, batasan masalah, tujuan penelitian, manfaat

penelitian, metodologi penlitian, dan sistematika penulisan.

BAB II TINJAUAN PUSTAKA

Pada bab ini dibahas penelitian-penelitian yang sudah dilakukan sebagai

perbandingan dan acuan untuk penelitian ini.

BAB III LANDASAN TEORI

Pada bab ini diuraikan teori-teori dasar berkaitan dengan penelitian yang

dilakukan sebagai dasar dalam pemecahan masalah. Teori tersebut

meliputi recommendation system, keyword extraction system, penggalian

frequent itemset serta cosine similarity.

BAB IV ANALISIS DAN PERANCANGAN

Pada bab ini diuraikan perancangan metode-metode yang digunakan pada

penelitian.

BAB V IMPLEMENTASI

Pada bab ini dibahas tentang implementasi rancangan algoritma dan

antarmuka yang digunakan pada sistem meliputi potongan program serta

implementasi rancangan antarmuka sistem.

BAB VI HASIL DAN PEMBAHASAN

Pada bab ini dilakukan pengujian terhadap recommendation system yang

dibangun serta pembahasan hasil pengujian. Pengujian meliputi

8

perhitungan nilai precision, recall, F-measure, mean average precision

dari sistem yang dibangun.

BAB VII KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari hasil penelitian serta saran-saran untuk

penelitian lebih lanjut.

9

BAB II

TINJAUAN PUSTAKA

Recommendation system pertama kali muncul pada tahun 1997 (Resnick

dan Varian, 1997). Beberapa penelitian yang telah dilakukan sebelumnya

berkaitan dengan document recommendation system dan hybrid recommendation

system.

2.1 Document Recommendation System

Hsieh dkk. (2004) mengajukan recommendation system yang dapat

melakukan penyaringan berita online secara efektif pada world wide web.

Recommendation system ini menggunakan pendekatan content-based dan

collaborative filtering yang dimodifikasi. Untuk meminimalisasi waktu

komputasi, pendekatan ini mengatur minimum support dan confident untuk

pencarian hunbungan asosiatif antar item. Klasterisasi akan diterapkan dalam

pencarian kedekatan berita dengan berbasis isi dari berita. Setiap pengguna sistem

harus memasukkan peringkat untuk setiap berita yang dibaca, sehingga pengguna

harus terdaftar sebelumnya. Jika pengguna membaca berita dan merasa tertarik

pada isi berita, maka berita tersebut akan direkomendasikan ke tetangga terdekat.

Dimana kedekatan ini dihitung dengan algoritma lintasan terpendek. Dengan

penggunaan pendekatan yang diusulkan Hsieh dkk. (2004), sistem dapat

mengatasi kelemahan cluster-based recommnedation system yaitu dapat

memberikan rekomendasi kepada pengguna walaupun pengguna tidak masuk ke

dalam salah satu kelas.

Penelitian Hsieh dkk. (2004) memiliki perbedaan dengan penelian ini pada

penggunaan data input untuk menentukan rekomendasi. Penelitian ini hanya

melibatkan data transaksi pemilihan dokumen dan konten dokumen untuk

menentukan rekomendasi. Penelitian dkk. (2004) menggunakan kaidah asosiasi

sebagai algoritma untuk mencari hubungan asosiatif antara berita, sedangkan

penelitian ini hanya menggunakan penggalian itemset untuk pencarian hubungan

asosiatif antara dokumen.

10

Market-based collaborative information-filtering (MarCol) dibangun

untuk untuk pencarian dokumen yang relevan untuk pengguna. MarCol diusulkan

oleh Melamed dkk. (2007) dengan memanfaatkan pendekatan collaborative

filtering. Pencarian dokumen yang relevan dicari menggunakan kemiripan antara

query yang dimasukkan pengguna serta kemiripan antara pengguna. Dengan kata

lain, dokumen yang direkomendasikan dihasilkan dari pencocokan keyword yang

dimasukkan oleh pengguna yang dikombinasikan dengan data transaksi dan data

profil penggguna. Selain itu, recommendation system diaplikasikan dengan

penerapan biaya rekomendasi. Dalam penelitian Melamed dkk. (2007) terdapat 2

biaya yang diuji yaitu gratis dan berbayar. Berdasarkan hasil penelitian, penerapan

model MarCol menunjukkan adanya peningkatan umpan balik dan kualitas

rekomendasi. MarCol merupakan penelitian yang berfokus pada perbedaan

anatara sistem gratis dan berbayar. Selain dalam penggunaan algoritma, penelitian

ini berbeda dengan MarCol pada bagian penggunaan data identitas pengguna

dalam penentuan rekomendasi dokumen.

Penelitian recommendation system untuk dokumen juga dilakukan oleh

Popa dkk. (2008). Hanya saja, penelitian Popa dkk. (2008) difokuskan untuk

dokumen ilmiah dan menerapkan sistem yang terdistribusi. Sistem yang dibangun

akan menghasilkan 2 rekomendasi yaitu “pengguna yang mirip” dan “dokumen

yang mungkin disukai”. Untuk rekomendasi “pengguna yang mirip”, sistem akan

menghitung kemiripan menggunakan pendekatan klasifikasi dengan berbasis pada

identitas pengguna. Daftar rekomendasi pengguna tersebut akan digunakan untuk

membentuk identitas pengguna yang baru terdaftar. Sedangkan untuk “dokumen

yang mungkin disukai”, sistem akan melakukan klaterisasi terhadap dokumen.

Sebelum melakukan klasterisasi, sistem akan mencari dokumen yang sesuai

dengan pengguna berdasarkan data transaksi pengguna lain yang memiliki

karakteristik sama. Dalam implementasinya, pendekatan Popa dkk. (2008)

berhasil melakukan rekomendasi dokumen ilmiah berbasis sudut pandang

pengguna. Penelitian Popa dkk. (2008) juga memanfaatkan content-based filtering

dengan isi dokumen sebagai data untuk melakukan penyaringan dokumen

11

rekomendasi. Penelitian Popa dkk. (2008) dan penelitian ini memiliki perbedaan

pada bagian penggunaan data identitas untuk menghitung kemiripan antara

pengguna. Penelitian ini tidak memperhatikan latar belakang dari pengguna sistem

dalam penentuan dokumen terkait.

Pham dan Trach (2011) mengungkapkan bahwa menemukan dan

merekomendasikan dokumen yang relevan bagi pengguna yang membutuhkan

bukanlah tugas yang mudah. Mereka lalu mengusulkan pendekatan

recommendation system dengan memanfaatkan kemiripan dokumen. Pendekatan

Pham dan Trach (2011) menggunakan konten dari dokumen digabungkan dengan

social tags dan data pengguna yang terkait. Ketiga faktor tersebut lalu disebut

sebagai 3 dimensi dokumen. Dilihat dari faktor yang digunakan, pendekatan yang

diusulkan merupakan gabungan antara user-based, item-based collaborative

filtering, dan content-based filtering. Dengan demikian, pendekatan sistem yang

diusulkan merupakan sistem hybrid. Penelitian Pham dan Trach (2011) mendapati

hasil bahwa ketiga dimensi tersebut memiliki kontribusi penting dalam

perhitungan kemiripan dokumen. Akan tetapi, penggunaan tag yang diberikan

oleh komunitas dan profil pengguna untuk menghitung kemiripan mengakibatkan

pengguna harus terdaftar terlebih dahulu di dalam sistem.

Suzuki dkk. (2011) mengusulkan metode recommendation system baru

untuk dokumen dengan pendekatan content-based menggunakan kompresi data.

Berbeda dengan penelitian recommendation system dokumen sebelumnya yang

hanya menggunakan sejumlah kata pada dokumen untuk mencari kedekatan profil

pengguna serta dokumen, pendekatan Suzuki dkk. (2011) menggunakan

kombinasi kompresi data, kedekatan profil pengguna, dan dokumen berdasarkan

kata yang ada pada dokumen. Hasil eksperimen menggunakan surat kabar Jepang

menunjukkan bahwa metode kompresi data lebih baik daripada metode yang

hanya mengandalkan sejumlah kata pada dokumen, terutama ketika topik pada

surat kabar berjumlah besar. Selain itu metode kombinasi Suzuki dkk. (2011)

mengungguli metode kompresi data sebelumnya dan kombinasi kompresi data

serta pemanfaatan kata pada dokumen juga dapat meningkatkan kinerja. Maka

12

dari itu dapat disimpulkan bahwa metode Suzuki dkk. (2011) lebih baik dalam

menangkap profil pengguna dan dengan demikian memberikan kontribusi untuk

membuat recommendation system untuk dokumen yang lebih baik.

Perbedaan penelitian ini dengan penelitian Suzuki dkk. (2011) terletak

pada penggunaan algoritma dan data acuan untuk menentukan rekomendasi.

Penelitian ini menggunakan keyword sebagai penentu rekomendasi. Penentuan

keyword ini tidak menggunakan tahap kompresi data. Penelitian ini juga

mengabaikan data identitas pengguna dalam penentuan rekomendasi.

2.2 Hybrid Recommendation System

Item-based Clustering Hybrid Method (ICHM) diusulkan oleh Li dan Kim

(2003). Metode ini dirancang untuk mengatasi kasus cold-start yang terdapat pada

metode collaborative filtering. Bebeda dengan penelitian ini, ICHM

memanfaatkan atribut dari item dalam penemtuaan rekomendasi saat kasus

coldstart. Metode ini memanfaatkan klasterisasi untuk pengelompokan item

dengan memanfaatkan kemiripian setiap item yang dicari berdasarkan atribut dari

item tersebut. Lalu dengan collaborative filtering, data peringkat yang diberikan

pengguna akan digunakan untuk menentukan kemiripan selera pengguna satu

dengan pengguna lain terhadap item tertentu. Sistem ICHM diaplikasikan untuk

rekomendasi data film yang diambil dari MovieLens.org. Sistem ICHM diuji

dengan menggunakan perhitungan mean absolute error (MAE). Setelah diuji,

sistem ICHM dikatakan dapat mengatasi cold-start problem dengan

memanfaatkan teknik klasterisasi tersebut. Selain itu, sistem ICHM juga dapat

meningkatkan kualitas prediksi yang dihasilkan.

Liangxing dan Aihua (2010) mengusulkan sebuah hybrid recommendation

system yang berbasis content-base filtering dan collaborative filtering yang dapat

memberikan rekomendasi pembelian bagi pelanggan VIP dari toko pakaian ritel.

Sebelum menghasilkan rekomendasi akhir, sistem yang diusulkan Liangxing dan

Aihua (2010) membentuk daftar rekomendasi awal dengan menggunakan

gabungan hasil dari 2 proses collaborative filtering. Proses pertama adalah

13

pengolahan data transaksi pembelian menggunakan metode item-based

collaborative filtering. Proses kedua adalah pengolahan data pengguna

menggunakan metode user-based collaborative filtering. Daftar rekomendasi awal

tersebut diproses dengan content-based filtering yang berupa pengklasifikasian

produk untuk menghasilkan rekomendasi akhir. Penggunaan metode user-based

collaborative filtering mebuat penelitian Liangxing dan Aihua (2010) berbeda

dengan penelitian ini. Hasil pengujian menunjukkan bahwa hybrid

recommendation system dapat melaksanakan analisis selera pelanggan dan

rekomendasi produk di toko pakaian ritel.

Penelitian tentang Item-based Clustering Hybrid Method (ICHM) kembali

dilakukan oleh Djamal dkk. (2010). ICHM merupakan salah satu cara untuk

menggabungkan metode yang digunakan dalam pembangunan recommendation

system. Pembahasan pada penelitian difokuskan pada implementasi ICHM dalam

recommendation system untuk film dengan dataset yang bersumber dari

movielens.org. Pada sistem yang dibangun, content-based filtering dimanfaatkan

pada klasterisasi pada konten setiap item. Sedangkan item-based collaborative

filtering dimanfaatkan dalam perhitungan kedekatan antara item dengan

menggunakan peringkat yang telah diberikan oleh pengguna. Untuk perhitungan

prediksi yang dihasilkan, sistem ICHM menggunakan 2 pendekatan yang berbeda.

Yang pertama untuk masalah cold-start dan yang kedua untuk masalah non cold-

start. Walaupun dapat memberikan rekomendasi tanpa data peringkat,

penggunaan data peringkat sebagai salah satu penentu rekomendasi pada

penelitian Djamal dkk. (2010) berbeda dengan penelitian ini yang sama sekali

tidak memperhitungkan data peringkat item sebagai penentu rekomendasi. Hasil

implementasi menunjukkan bahwa recommender system dengan metode ICHM

dapat memprediksi item baru yang belum memiliki peringkat sama sekali dengan

cara memperhitungkan kedekatan berdasarkan genre item. Selain itu setelah

dihitung berdasarkan mean absolute error (MAE) penambahan jumlah cluster

hingga 70 buah cenderung meningkatkan akurasi prediksi baik untuk kasus cold-

start dan kasus non cold-start, namun akurasi turun pada jumlah cluster sebanyak

14

60 buah karena terdapat nilai membership yang saling bertolak belakang untuk

beberapa item di beberapa cluster.

Hybrid recommendation system yang menerapkan pendekatan berbeda

diajukan oleh Chikhaoui dkk. (2011) dengan melakukan penelitian tentang

recommendation system yang menggunakan 3 pendekatan, yaitu collaborative

filtering, content-based, dan demographic filtering untuk rekomendasi film. Pada

collaborative filtering digunakan pendekatan dengan menggunakan neigborhood-

based terhadap data peringkat. Dalam pendekatan neigborhood-based, kesukaan

dari pengguna u terhadap item i akan dihitung berdasarkan kesukaan pengguna

lain yang memiliki karakteristik mirip dengan pengguna u terhadap item i. Dengan

algoritma KNN, data karakteristik film seperti genre, negara pembuat, dan tanggal

perilisan digunakan sebagai pembanding untuk menentukan kemiripan suatu item

terhadap item i. Pengolahan data karakteristik film tersebut merupakan content-

based filtering. Pada sisi demographic filtering dicari pengguna yang memiliki

kesukaan yang mirip atau selera yang sama. Demographic filtering ini digunakan

untuk mengatasi kelemahan dari collaborative filtering dan juga content-based

filtering pada saat terjadinya kasus coldstart. Selain algoritma yang digunakan,

penggunaan data identitas pengguna dan penggunaan atribut item merupakan

perbedaan utama antara penelitian ini dan penelitian Chikhaoui dkk. (2011).

Dengan melalui eksperimen, hasil penelitian Chikhaoui dkk. (2011) menunjukkan

bahwa pendekatan tersebut mencapai akurasi yang baik dengan cakupan tinggi

melebihi algoritma penyaringan konvensional serta metode hybrid biasa. Selain

itu, hasil eksperimen menunjukkan bagaimana pendekatan Chikhaoui dkk. (2011)

berhasil mengatasi kasus cold-start dengan memasukkan karakteristik demografis

pengguna.

Di tahun yang sama, Hayati (2011) membangun hybrid recommendation

system untuk penentuan daerah wisata. Dalam penentuan rekomendasi, sistem

yang dibangun menggunakan peringkat daerah wisata dan profil pengguna sebagai

acuan. Sistem tersebut juga memiliki keunggulan dengan tidak diperlukannya data

masukan dan peringkat awal untuk mendapatkan rekomendasi karena penggunaan

15

algoritma klasifikasi terhadap data daerah wisata dan profil pengguna.

Pengklasifikasian dilakukan dengan menggunakan algoritma nearest neighbor

untuk mencari kedekatan antara daerah wisata dan juga pengguna, sehingga

hybrid recommendation system yang dibangun berhasil mengatasi masalah cold-

start.

Penentuan rekomendasi dokumen dilakukan dengan memperhatikan data

peringkat dan data identitas pengguna. Pendekatan tersebut memiliki kelemahan

pada kasus coldstart yaitu saat sistem tidak memiliki data umpan balik dari

pengguna. Selain itu, penelitian sebelumnya tidak memperhatikan data transaksi

yang didapat dari pemilihan dokumen. Secara umum, terdapat beberapa perbedaan

antara penelitian ini dengan penelitian-penelitian sebelumnya. Selain pada

algoritma penentuan rekomendasi, penelitian ini tidak memanfaatkan data

identitas pengguna dan data peringkat sebagai data acuan untuk penentuan

rekomendasi. Hal ini dapat mengurangi kekhawatiran penyalahgunaan data

identitas pengguna. Selain itu, untuk pengguna baru maupun saat sistem baru

dibangun tidak akan terkendala dengan kebutuhan data umpan balik dari

pengguna untuk penentuan rekomendasi dokumen. Hal ini dimungkinkan karena

penggunaan konten dokumen sebagai data penentuan rekomendasi.

Pada Tabel 2.1 akan ditunjukkan perbandingan dan ringkasan dari

beberapa penelitian yang telah disebutkan diatas.

16

Tabel 2.1 Tinjauan pustaka

No. Peneliti Domain Metode Hasil

1. Li dan Kim (2003) Film Collaborative filtering pada pemeringkatan item

dan klasifikasi terhadap atribut item

Mengatasi masalah cold-start pada

collaborative filtering

2. Hsieh, Huang, Hsu

dan Chang (2004)

Berita Collaborative fitering pada pemeringkatan item

dan content-based filtering pada konten beserta

data transaksi item

Mengatasi kelemahan cluster-based

recommnedation system yaitu dapat

memberikan rekomendasi kepada pengguna

walaupun pengguna tidak masuk ke dalam salah

satu kelas

3. Melamed, Shapira dan

Elovici (2007)

Dokumen Collaborative filtering pada umpan balik

pengguna dan pencarian dengan memperhatikan

query yang dimasukkan pengguna

Menunjukkan adanya peningkatan umpan balik

dan kualitas rekomendasi

4. Popa, Negru, Pop dan

Muscalagiu (2008)

Dokumen

ilmiah

Pendekatan klasifikasi dengan berbasis pada profil

pengguna dan klasterisasi pada data dokumen

Menghasilkan recommendation system

terdistribusi berbasis sudut pandang pengguna

5. Liangxing dan Aihua

(2010)

Pakaian Item-based collaborative filtering pada data

transaksi pembelian, user-based collaborative

filtering pada data pengguna, content-base

filtering untuk pengklasifikasian produk

Dapat melaksanakan analisis selera pelanggan

dan rekomendasi produk di toko pakaian ritel

6. Djamal, Maharani dan

Kurniati (2010)

Film Content-base filtering pada klasterisasi pada

konten setiap item. Item-based collaborative

filtering dalam perhitungan peringkat

Dapat memprediksi item baru yang belum

memiliki peringkat sama sekali

7. Pham dan Thach

(2011)

Dokumen User-based collaborative filtering terhadap data

pengguna, item-based collaborative filtering

terhadap social tag, dan content-based

filteringterhadap isi dokumen

Ketiga dimensi dokumen Memiliki kontribusi

penting dalam perhitungan kemiripan dokumen

8. Chikhaoui, Chiazzaro

dan Wang (2011)

Film collaborative filtering pada data peringkat item,

content-based pada data karakteristik film, dan

demographic filtering pada data pengguna

Mengatasi kasus cold-start dengan

memasukkan karakteristik demografis

pengguna

9. Hayati (2011) Daerah

wisata

Collaborative filtering pada peringkat daerah

wisata dan profil pengguna. Jika tidak

Mengatasi masalah cold-start dengan penerapan

klasifikasi

17

memungkinkan dilakukan klasifikasi atribut

daerah wisata dan profil pengguna.

10. Suzuki, Hasegawa,

Hamamoto dan

Aizawa (2011)

Berita Content-based filtering menggunakan kompresi

data

Meningkatkan kinerja recommendation system

yang menggunakan “kantong kata”

11. Parwita (2014) Dokumen

Ilmiah

Item-based collaborative filtering pada penggalian

frequent itemset dengan memanfaatkan data

transaksi dan content-based filtering pada

perbandingan keyword dokumen dengan

perhitungan cosine similarity.

Menghasilkan rekomendasi tanpa menggunakan

data identitas pengguna dan data peringkat.

Serta mengatasi kelemahan dan

menggabungkan keunggulan penggunaan

metode collaborative filtering atau content-

based filtering yang berdiri sendiri.

18

BAB III

LANDASAN TEORI

3.1 Recommendation System

Recommendation system merupakan teknik dan software untuk

menghasilkan usulan item yang akan dimanfaatkan oleh pengguna. “Item”

merupakan istilah yang digunakan untuk menyatakan apa yang direkomendasikan

oleh sistem kepada pengguna. Usulan tersebut dihasilkan berdasarkan berbagai

proses pengambilan keputusan seperti barang apa yang akan dibeli, lagu apa yang

ingin didengarkan dan berita apa yang akan dibaca. Dalam bentuknya,

recommendation system akan memberikan semacam daftar item. Item tersebut

dapat berupa produk maupun jasa. Dalam pembuatan daftar item tersebut,

recommendation system mencoba untuk menemukan produk atau jasa yang paling

sesuai berdasarkan kebutuhan dan keinginan pengguna. Untuk menemukannya,

recommendation system menggunakan data ketertarikan pengguna yang

dinyatakan secara eksplisit dalam data peringkat item atau disimpulkan dengan

menebak tindakan pengguna (Ricci, dkk., 2011).

Pembangunan recommendation system dimulai dari keinginan untuk

meniru kebiasaan sederhana yaitu pengguna sering mengandalkan rekomendasi

yang diberikan oleh pengguna lain dalam membuat rutinitas maupun keputusan.

Contohnya adalah saat penonton ingin menyaksikan sebuah film. Untuk

memutuskan apakah layak atau tidak menyaksikan film tersebut, maka penonton

akan menilai dari review maupun pendapat dari penonton yang telah menyaksikan

film tersebut. Dalam pembangunan recommendation system, dilakukan penerapan

algoritma dengan memanfaatkan rekomendasi yang dihasilkan oleh komunitas

pengguna untuk memberikan rekomendasi kepada pengguna lain. Item yang

direkomendasikan merupakan item yang disukai oleh pengguna-pengguna dengan

selera serupa. Pendekatan ini disebut collaborative filtering dengan dasar

pemikirannya adalah jika pengguna setuju dengan pendapat beberapa pengguna

lain terhadap suatu item, maka rekomendasi yang dihasilkan dari pengguna lain

dengan selera sama akan relevan dan menarik bagi pengguna tersebut. Pendapat

19

pengguna dapat berupa peringkat yang diberikan maupun pilihan yang dilakukan

oleh pengguna.

Collaborative filtering merupakan implementasi paling sederhana dan

merupakan versi awal dari pendekatan recommendation system. Kemiripan selera

dari dua pengguna dihitung berdasarkan kesamaan dalam pendapat pengguna

terhadap item. Dengan kata lain, collaborative filtering adalah proses penyaringan

atau evaluasi item menggunakan pendapat dari orang lain (Schafer, dkk., 2007).

Content-based filtering dan collaborative filtering telah lama dipandang

saling melengkapi. Content-based filtering dapat memprediksi relevansi untuk

item tanpa peringkat (misalnya, item baru, artikel berita, halaman website).

Content-based filtering memerlukan konten untuk melakukan analisis. Pada

beberapa hal, konten merupakan sesuatu yang langka (misalnya, rekomendasi

untuk restoran dan buku teks yang tersedia tanpa ulasan) atau sulit untuk

mendapatkan dan mewakili konten itu (misalnya, film dan musik). Di sisi lain,

collaborative filtering membutuhkan peringkat item untuk melakukan prediksi

tanpa memerlukan konten.

Content based filtering dan collaborative filtering dapat dikombinasikan

secara manual oleh pengguna untuk menentukan fitur tertentu. Dalam

implementasinya kedua metode tersebut dapat digabungkan secara otomatis yang

disebut dengan pendekatan hybrid. Ada banyak cara dalam menggabungkan

metode tersebut dan tidak ada kesepakatan di antara peneliti untuk cara

menggabungannya.

3.2 Penggalian Frequent Itemset

Kaidah asosiasi adalah teknik data mining untuk menemukan aturan

asosiatif antara suatu kombinasi item. Fungsi kaidah asosiasi seringkali disebut

dengan “market basket analysis”. Penting tidaknya suatu aturan asosiatif dapat

diketahui dengan menggunakan dua parameter, support yaitu persentase

kombinasi item tersebut dalam basis data dan confidence yaitu kuatnya hubungan

antar item dalam aturan asosiatif. Salah satu tahap dalam kaidah asosiasi adalah

20

menemukan semua kombinasi dari item, disebut dengan itemset, yang jumlah

kemunculannya lebih besar daripada minimum support (Rajaraman dan Ullman,

2010). Misalkan, ada sekumpulan data transaksi pembelian perangkat komputer

seperti yang ditunjukkan pada Tabel 3.1.

Tabel 3.1 Data transaksi

Transaction ID (TID) Item

1 processor, motherboard, memory

2 processor, motherboard, memory

3 processor

4 processor, motherboard

5 motherboard

6 processor, motherboard

7 processor, memory

8 motherboard, memory

9 motherboard

10 memory

Setiap data transaksi sering disebut dengan keranjang (basket). Setelah

disusun, setiap keranjang tersebut dapat direpresentasikan dengan Tabel 3.2.

Tabel 3.2 Representasi keranjang

Produk TID Jumlah

processor 1, 2, 3, 4, 6, 7 6

motherboard 1, 2, 4, 6, 8, 9 6

memory 1, 2, 7, 8, 10 5

processor, motherboard 1, 2, 4, 6 4

processor, memory 1, 2, 7 3

motherboard, memory 1, 2, 8 3

processor, motherboard, memory 1, 2 2

Tabel 3.3 Frequent itemset

Produk

processor

motherboard

memory

processor, motherboard

21

Data transaksi tersebut akan dikenakan minimum support sebesar 40% dari

jumlah data transaksi sehingga didapatkan beberapa itemset melebihi minimum

support disebut dengan frequent itemset yang ditunjukkan oleh Tabel 3.3.

3.2.1 FP-Growth

Salah satu algoritma penggalian frequent itemset yang cepat dan juga

populer adalah algoritma FP-Growth. FP-Growth berbasis pada tree disebut

dengan FP (Frequent Pattern)-Tree (Zaki dan Meira, 2014). FP-Tree dapat

menghemat penggunaan memori untuk penyimpanan data transaksi. Ide dasar dari

FP-Growth dapat digambarkan sebagai skema eliminasi secara rekursif. Dalam

langkah preprocessing, dilakukan penghapusan semua item yang kemunculannya

kurang dari minimum support yang diberikan. Kemudian dipilih semua transaksi

yang mengandung frequent item lalu dibentuk FP-Tree berdasarkan data transaksi

tersebut. Dalam penggalian frequent itemset, dibentuk conditional FP-Tree yang

berakhir pada salah satu frequent item. Pembentukan ini dilakukan secara rekursif

dengan mengeliminasi satu persatu frequent item akhir yang terdapat pada tree

tersebut. Penentuan frequent itemset dilakukan bersamaan saat pengeliminasian

dengan melihat support dari frequent item tersebut (Han, dkk., 2011).

a d f d a

a c d e d 8 d c a e

b d b 7 d b

b c d c 5 d b c

b c a 4 b c

a b d e 3 d b a

b d e f 2 d b e

b c e g g 1 b c e

c d f d c

a b d d b a

Gambar 3.1 Penentuan frequent item

Sebelum membentuk FP-Tree, semua item tunggal yang memenuhi

minimum support (frequent item) diidentifikasi dan diurutkan berdasarkan

banyaknya jumlah kemunculan (Han, dkk., 2011). Kemudian untuk item yang

tidak memenuhi minimum support akan diabaikan dari data transaksi, karena item

tersebut sudah pasti bukan bagian dari frequent itemset. Pengurutan item

22

dilakukan dari yang paling sering muncul ke yang paling jarang. Hal ini untuk

meningkatkan kinerja dari algoritma (Borgelt, 2005). Gambar 3.1 merupakan

contoh penentuan frequent item untuk minimum support 3 dan pengurutan itemset

berdasarkan jumlah kemunculan.

d : 8

b : 7

a : 4

e : 3

c : 5

d : 8

b : 5 b : 2

c : 1 c : 2 c : 2

a : 2 a : 1 a : 1

e : 1 e : 1 e : 1

Gambar 3.2 FP-Tree

FP-Tree mengandung data label, jumlah kemunculan, alamat parent, child,

dan prefix path (Han, dkk., 2011). Contoh FP-Tree ditunjukkan oleh Gambar 3.2.

Untuk kepentingan pembentukan prefix path, maka child sebuah node diurutkan

berdasarkan jumlah kemunculan keseluruhan.

d : 8

b : 7

a : 4

e : 3

c : 5

d : 8

b : 5 b : 2

c : 1 c : 2 c : 2

a : 2 a : 1 a : 1

e : 1 e : 1 e : 1

Gambar 3.3 Pembentukan conditional FP-Tree item „e‟

23

Conditional FP-Tree merupakan bagian FP-Tree yang berakhir pada node

tertentu. Conditional FP-Tree digunakan untuk penggalian frequent itemset (Han,

dkk., 2011). Misalnya, untuk penentuan item „e‟ akan diambil semua path node

yang berakhir di „e‟. Lalu, node „e‟ di masing path akan dihapus. Gambar 3.3 dan

Gambar 3.4 merupakan contoh pembentukan conditional FP-Tree yang berakhir

pada node „e‟.

d : 2

b : 1

c : 1 c : 1

a : 1

b : 1

d : 2

b : 2

a : 1

c : 2

Gambar 3.4 Conditional FP-Tree item „e‟

Untuk penentuan itemset lain yang mengandung „e‟, maka conditional FP-

Tree item tersebut akan dibentuk dari conditional FP-Tree „e‟. Gambar 3.5

merupakan contoh pembentukan conditional FP-Tree untuk itemset „b e‟.

Penggalian frequent itemset dilakukan secara rekursif. Jika node memenuhi

minimum support maka node tersebut merupakan frequent itemset. Gambar 3.6

merupakan urutan itemset hasil penggalian frequent itemset dalam FP-Growth.

d : 2

b : 1

c : 1 c : 1

a : 1

b : 1

d : 2

b : 2

a : 1

c : 2

Gambar 3.5 Pembentukan conditional FP-Tree item „b e‟

24

e a e

c e

b e

d e

c a e

b a e

d a e

b c a e

d c a e

d b c a e

d b a e

b c e

d c e

……...

……...

……...

……...

a ……...

….

Gambar 3.6 Urutan hasil penggalian frequent itemset

3.3 Keyword Extraction System

Dalam dokumen ilmiah, keyword adalah kata pokok yang

merepresentasikan masalah yang diteliti atau istilah-istilah yang merupakan dasar

pemikiran dan dapat berupa kata tunggal atau gabungan kata. Similaritas keyword

dokumen dapat digunakan untuk menentukan relevansi dokumen terhadap

dokumen lain (Weiss, dkk., 2005). Automatic keyword extraction system memiliki

tugas untuk mengidentifikasi kumpulan kata, frase kunci, keyword, atau segmen

kunci dari sebuah dokumen yang dapat menggambarkan arti dari dokumen (Hulth,

2003). Tujuan dari ekstraksi otomatis adalah menekan kelemahan pada ekstraksi

manual yang dilakukan manusia yaitu pada kecepatan, ketahanan, cakupan, dan

juga biaya yang dikeluarkan.

Salah satu pendekatan yang dapat digunakan dalam automatic keyword

extraction yaitu pendekatan tata bahasa. Pendekatan ini menggunakan fitur tata

bahasa dari kata-kata, kalimat, dan dokumen. Metode ini memperhatikan fitur tata

bahasa seperti bagian kalimat, struktur sintaksis, dan makna yang dapat

menambah bobot. Fitur tata bahasa tersebut dapat digunakan sebagai penyaring

untuk keyword yang buruk. Dalam ekstraksi keyword dengan pendekatan tata

bahasa berbasis struktur sintaksis, ada beberapa tahap yang dilakukan yaitu

tokenisasi, stopword removal, stemming, dan pembobotan kata (Oelze, 2009).

25

3.3.1 Tokenisasi

Teks elektronik adalah urutan linear simbol (karakter, kata-kata atau

frase). Sebelum dilakukan pengolahan, teks perlu disegmentasi ke dalam unit-unit

linguistik seperti kata-kata, tanda baca, angka, alpha-numeric, dan lain-lain Proses

ini disebut tokenisasi. Tokenisasi sederhana (white space tokenization) merupakan

tokenisasi yang memisahkan kata berdasarkan karakter spasi, tab, dan baris baru

(Weiss, dkk., 2005). Namun, tidak setiap bahasa melakukan hal ini (misalnya

bahasa Cina, Jepang, Thailand). Dalam bahasa Indonesia, selain tokenisasi

sederhana diperlukan juga tokenisasi yang memisahkan kata-kata berdasarkan

karakter lain seperti “/” dan “-“.

3.3.2 Stopword removal

Stopword removal adalah pendekatan mendasar dalam preprocessing yang

menghilangkan kata-kata yang sering muncul (stopword). Fungsi utamanya

adalah untuk mencegah hasil proses selanjutnya terpengaruh oleh stopword

tersebut. Banyak diantara stopword tersebut tidak berguna dalam Information

Retrival (IR) dan text mining karena kata-kata tersebut tidak membawa informasi

(seperti ke, dari, dan, atau). Cara biasa untuk menentukan apa yang dianggap

sebagai stopword adalah menggunakan stoplist. Stoplist merupakan kumpulan

kata atau kamus yang berisi daftar stopword. Langkah penghilangan stopword ini

adalah langkah yang sangat penting dan berguna (Srividhya dan Anitha, 2010).

3.3.3 Stemming

Algoritma stemming adalah proses yang melakukan pemetaan varian

morfologi yang berbeda dari kata-kata ke dalam kata dasar/kata umum (stem).

Stemming berguna pada banyak bidang komputasi linguistik dan information

retrieval (Lovins, 1968).

Dalam kasus bahasa Indonesia, sejauh ini hanya ada dua algoritma untuk

melakukan proses stemming yaitu algoritma yang dikembangkan oleh Nazief dan

Adriani serta algoritma yang dikembangkan oleh Tala. Algoritma Nazief dan

Adriani dikembangkan dengan menggunakan pendekatan confix stripping dengan

26

disertai pemindaian pada kamus. Sedangkan stemming yang dikembangkan Tala

menggunakan pendekatan yang berbasis aturan (rule-based).

Pengembangan Algoritma Tala didasarkan pada kenyataan bahwa sumber

daya seperti kamus besar digital untuk bahasa mahal karena kurangnya penelitian

komputasi di bidang linguistik. Maka, ada kebutuhan untuk algoritma stemming

tanpa keterlibatan kamus. Algoritma Tala sendiri dikembangkan dari algoritma

Porter stemmer yang dimodifikasi untuk bahasa Indonesia. Algoritma Tala

menghasilkan banyak kata yang tidak dipahami. Ini disebabkan oleh ambiguitas

dalam aturan morfologi Bahasa Indonesia. Dalam beberapa kasus kesalahan tidak

mempegaruhi kinerja, tetapi dalam kasus lain menurunkan kinerja (Tala, 2003).

3.3.4 Tala stemmer

Gambar 3.7 Skema Tala stemmer

Kata

Hilangkan Partikel

Hilangkan Akhiran Kepunyaan

Hilangkan Awalan Pertama

Hilangkan Awalan Kedua Hilangkan Akhiran

Hilangkan Awalan Kedua Hilangkan Akhiran

Kata Dasar

Gagal

Gagal Aturan terpenuhi

Aturan terpenuhi

27

Algoritma Tala memproses awalan, akhiran, dan kombinasi keduanya

dalam kata turunan. Walaupun dalam bahasa Indonesia terdapat sisipan, jumlah

kata yang diturunkan menggunakan sisipan sangat sedikit. Karena hal tersebut dan

juga demi penyederhanaan, sisipan akan diabaikan.

Algoritma Porter stemmer dibangun berdasarkan ide tentang akhiran pada

bahasa Inggris yaitu kebanyakan merupakan kombinasi dari akhiran yang lebih

sederhana dan lebih kecil. Beberapa perubahan dilakukan pada algoritma Porter

stemmer agar sesuai dengan Bahasa Indonesia. Perubahan dilakukan pada bagian

kumpulan aturan dan penilaian kondisi. Karena algoritma Porter stemmer hanya

dapat menangani akhiran, maka perlu penambahan agar dapat menangani awalan,

akhiran, dan juga penyesuaian penulisan dalam kasus dimana terjadi perubahan

karakter pertama kata dasar. Gambar 3.7 menunjukkan langkah-langkah proses

pada algoritma Tala.

Tabel 3.4 Daftar partikel

Akhiran Pengganti

kah NULL

lah NULL

pun NULL

Penurunan kata dasar diawali dengan penghilangan imbuhan yang melekat

pada kata. Imbuhan ini dapat berupa awalan, akhiran maupun kombinasi

keduanya. Akhiran yang berupa partikel dan akhiran ganti kepunyaan akan

dihapus lebih dulu dibandingkan awalan. Daftar partikel ditunjukkan pada Tabel

3.4 dan daftar akhiran ganti kepunyaan pada Tabel 3.5.

Tabel 3.5 Daftar kata ganti kepunyaan

Akhiran Pengganti

ku NULL

mu NULL

nya NULL

28

Setelah itu, proses akan dilanjutkan dengan penghilangan awalan pertama

yang ditunjukkan pada Tabel 3.6. Langkah selanjutnya dilakukan dengan

memperhatikan kombinasi awalan dan akhiran yang ilegal. Daftar kombinasi ini

dapat dilihat pada Tabel 3.7.

Tabel 3.6 Daftar awalan pertama

Awalan Pengganti

meng NULL

meny s

men NULL

mem p

mem NULL

me NULL

peng NULL

peny s

pen NULL

pem p

di NULL

ter NULL

ke NULL

Tabel 3.7 Kombinasi ilegal

Awalan Akhiran

ber i

di an

ke i|kan

meng an

peng i|kan

ter an

Jika kombinasi awalan dan akhiran merupakan kombinasi ilegal, maka

hanya awalan yang dihilangkan sedangkan akhiran tidak dihilangkan. Daftar

akhiran dapat dilihat pada Tabel 3.8 dan awalan kedua pada Tabel 3.9. Pada

penghapusan awalan juga diperhatikan karakter ganti yang disebabkan oleh

penggunaan awalan. Awalan juga dapat terdiri dari dua awalan (awalan ganda).

Daftar kombinasi awalan ganda dapat dilihat pada Tabel 3.10.

29

Tabel 3.8 Daftar akhiran

Akhiran Pengganti Kondisi

kan NULL awalan ∉ {ke, peng}

an NULL awalan ∉ {di, meng, ter}

i NULL V|K…c1c1, c1 ≠ s, c2 ≠ I, dan awalan

∉ {ber, ke, peng}

Tabel 3.9 Daftar awalan kedua

Awalan Pengganti

ber NULL

bel NULL

be NULL

per NULL

pel NULL

pe NULL

Tabel 3.10 Awalan ganda

Awalan 1 Awalan 2

meng per

di ber

ter

ke

Dalam Bahasa Indonesia, unit terkecil dari suatu kata adalah suku kata.

Suku kata paling sedikit terdiri dari satu huruf vokal. Desain implementasi

algoritma Tala belum dapat mengenali seluruh suku kata. Ini disebabkan karena

adanya dua huruf vokal yang dianggap satu suku kata yaitu ai, au, dan oi.

Kombinasi dua huruf vokal (terutama ai, oi) tersebut dapat menjadi masalah,

apalagi jika berada pada akhir sebuah kata. Ini disebabkan oleh sulitnya

membedakannya dengan kata yang mengandung akhiran –i. Hal ini menyebabkan

kombinasi huruf vokal ai/oi akan diperlakukan seperti kata turunan. Huruf terakhir

(-i) akan dihapus pada hasil proses stemming. Kebanyakan kata dasar terdiri dari

minimal dua suku kata. Inilah alasan kenapa kata yang akan diproses memiliki

minimal dua suku kata.

30

3.3.5 Pembobotan

Tahapan ini dilakukan dengan tujuan untuk memberikan suatu bobot pada

term yang terdapat pada suatu dokumen. Term adalah satu kata atau lebih yang

dipilih langsung dari corpus dokumen asli dengan menggunakan metode term-

extraction. Fitur tingkat term, hanya terdiri dari kata-kata tertentu dan ekspresi

yang ditemukan dalam dokumen asli (Feldman dan Sanger, 2007). Misalnya, jika

dokumen berisi kalimat:

“Presiden Indonesia mengalami perjalanan karir yang membawa beliau

dari rumah sederhana hingga Istana Merdeka”

Daftar term untuk mewakili dokumen dapat mencakup bentuk kata tunggal

seperti “Indonesia”, “perjalanan”, “karir”, dan “rumah” lalu untuk yang lebih dari

satu kata seperti “Presiden Indonesia”, “rumah sederhana”, and “Istana Merdeka”.

Dalam pengkategorian teks dan aplikasi lain di information retrieval

maupun machine learning, pembobotan term biasanya ditangani melalui metode

yang diambil dari metode pencarian teks, yaitu yang tidak melibatkan tahap

belajar (Debole dan Sebastiani, 2003). Ada tiga asumsi monoton yang muncul di

hampir semua metode pembobotan dapat dalam satu atau bentuk lain yaitu (Zobel

dan Moffat, 1998):

a. Term yang langka tidak kalah penting daripada term yang sering

muncul (asumsi IDF).

b. Kemunculan berkali-kali dari term pada dokumen tidak kalah penting

daripada kemunculan tunggal (asumsi TF).

c. Untuk pencocokan term dengan jumlah pencocokan yang sama,

dokumen panjang tidak lebih penting daripada dokumen pendek

(asumsi normalisasi).

Bobot diperlukan untuk menentukan apakah term tersebut penting atau

tidak. Bobot yang diberikan terhadap sebuah term bergantung kepada metode

yang digunakan untuk membobotinya.

31

3.4 Cosine Similarity

Pendekatan cosine similarity sering digunakan untuk mengetahui

kedekatan antara dokumen teks. Perhitungan cosine similarity dimulai dengan

menghitung dot product. Dot product merupakan perhitungan sederhana untuk

setiap komponen dari kedua vektor. Vektor merupakan representasi dari masing-

masing dokumen dengan jumlah term pada masing-masing dokumen sebagai

dimensi dari vektor (Manning, dkk., 2009). Vektor ditunjukkan oleh notasi (3.1)

dan (3.2). Hasil dot product bukan berupa vektor tetapi berupa skalar. Persamaan

(3.3) merupakan perhitungan dot product dimana n merupakan dimensi dari

vector (Axler, 1997).

𝑎 = 𝑎1,𝑎2, 𝑎3, … , 𝑎𝑛 (3.1)

𝑏 = 𝑏1,𝑏2, 𝑏3, … , 𝑏𝑛 (3.2)

𝑎 ∙ 𝑏 = 𝑎𝑖𝑏𝑖 = 𝑎1𝑏1 + 𝑎2𝑏2 + ⋯ + 𝑎𝑛𝑏𝑛

𝑛

𝑖=1

(3.3)

𝑎𝑛 dan 𝑏𝑛 merupakan komponen dari vektor (bobot term masing-masing

dokumen) dan n merupakan dimensi dari vektor. Cosine similarity merupakan

perhitungan yang mengukur nilai cosine dari sudut antara dua vektor (atau dua

dokumen dalam vector space). Cosine similarity dapat dilihat sebagai

perbandingan antara dokumen karena tidak hanya mempertimbangkan besarnya

masing-masing jumlah kata (bobot) dari setiap dokumen, tetapi sudut antara

dokumen. Persamaan (3.4) dan (3.5) adalah notasi dari metode cosine similarity

dimana a merupakan Euclidean norm dari vektor a dan b merupakan

Euclidean norm vektor b (Han, dkk., 2011).

a ∙ 𝑏 = a b cos θ (3.4)

cos 𝜃 =𝑎 ∙𝑏

𝑎 𝑏 (3.5)

32

Dari notasi (3.5) dapat dibentuk persamaan matematika yang ditunjukkan

oleh persamaan (3.6) (Lops, dkk., 2011).

𝑆𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 𝑥, 𝑦 = 𝑎𝑖𝑏𝑖

𝑛𝑖=1

𝑎𝑖2𝑛

𝑖=1 ∙ 𝑏𝑖2𝑛

𝑖=1

(3.6)

Dimana:

ai : term ke-i yang terdapat pada dokumen a.

bi : term ke-i yang terdapat pada dokumen b.

3.5 Evaluasi Recommendation System

3.5.1 Precision

Precision bersama recall merupakan salah satu pengujian dasar dan paling

sering digunakan dalam penentuan efektifitas information retrival system maupun

recommendation system. True positive (tp) pada information retrival merupakan

item relevan yang dihasilkan oleh sistem. Sedangkan false positive (fp) merupakan

semua item yang dihasilkan oleh sistem. Sehingga dalam information retrival,

precision dihitung dengan persamaan (3.7) (Manning, dkk., 2009).

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =𝑡𝑝

𝑡𝑝 + 𝑓𝑝=

𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑖𝑡𝑒𝑚 𝑟𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑

𝑟𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑 𝑖𝑡𝑒𝑚

(3.7)

Istilah positive dan negative mengacu pada prediksi yang dilakukan oleh

sistem. Sedangkan istilah true dan false mengacu pada prediksi yang dilakukan

oleh pihak luar atau pihak yang melakukan observasi. Pembagian kondisi tersebut

dapat dilihat pada Tabel 3.11 (Manning, dkk., 2009).

Tabel 3.11 Pembagian kondisi hasil yang memungkinkan

Relevant Nonrelevant

Retrieved True positive (tp) False positive (fp)

Not retrieved False negative (fn) True negative (tn)

33

3.5.2 Recall

Recall digunakan sebagai ukuran dokumen yang relevan yang dihasilkan

oleh sistem. False negative (fn) merupakan semua item relevan yang tidak

dihasilkan oleh sistem. Dalam evaluasi information retrival system, recall

dihitung dengan persamaan (3.8) (Manning, dkk., 2009).

𝑅𝑒𝑐𝑎𝑙𝑙 =𝑡𝑝

𝑡𝑝 + 𝑓𝑛=

𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑖𝑡𝑒𝑚 𝑟𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑

𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑖𝑡𝑒𝑚

(3.8)

3.5.3 F-Measure

F-measure merupakan nilai tunggal hasil kombinasi antara nilai precision

dan nilai recall. F-measure dapat digunakan untuk mengukur kinerja dari

recommendation system ataupun information retrival system. Karena merupakan

rata-rata harmonis dari precision dan recall, F-measure dapat memberikan

penilaian kinerja yang lebih seimbang. Persamaan (3.9) merupakan persamaan

untuk menghitung F-measure (Jannach, dkk., 2010).

𝐹𝑚𝑒𝑎𝑠𝑢𝑟𝑒 = 2 ∙𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∙ 𝑟𝑒𝑐𝑎𝑙𝑙

𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑟𝑒𝑐𝑎𝑙𝑙

(3.9)

3.5.4 Mean average precision

Nilai mean average precision (MAP) merupakan nilai rata-rata dari

average precision. Average precision merupakan nilai yang didapatkan dari setiap

nilai precision item relevan yang dihasilkan dan menggunakan nilai 0 untuk item

relevan yang tidak dihasilkan oleh sistem. Nilai precision untuk average precision

dihitung dengan memperhatikan urutan item yang diberikan oleh sistem, sehingga

nilai precision diberikan untuk setiap item yang dihasilkan oleh sistem. Persamaan

(3.10) merupakan persamaan untuk menghitung nilai mean average precision

dalam information retrival (Manning, dkk., 2009).

34

𝑀𝐴𝑃 𝑄 =1

𝑄

1

𝑚𝑗 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝑅𝑗𝑘

𝑚 𝑗

𝑘=1

𝑄

𝑗=1

(3.10)

Dimana:

Q : jumlah query uji

R : item relevan yang dihasilkan oleh sistem

m : jumlah item relevan yang dihasilkan dari query

Dalam penelitian ini, query (Q) merupakan item uji yang digunakan dalam

pengujian.

35

BAB IV

ANALISIS DAN RANCANGAN SISTEM

4.1 Gambaran Umum Sistem

Hybrid recommendation system yang dibangun menghasilkan rekomendasi

dokumen. Rekomendasi dokumen merupakan dokumen-dokumen yang saling

terkait atau terasosiasi dengan dokumen yang dibutuhkan oleh pengguna. Untuk

mencari dokumen terasosiasi dapat digunakan penggalian frequent itemset.

Keterkaitan dokumen dapat dicari dengan perhitungan kedekatan dokumen.

Perhitungan kedekatan dokumen dapat memanfaatkan perhitungan cosine

similarity. Proses yang digunakan pada keyword extraction system dan

perbandingan keyword menggunakan penndekatan berbasis aturan. Gambaran

umum proses pada hybrid recommendation system dideskripsikan pada Gambar

4.1.

Basis Data

Tokenisasi

Stopword Removal

Stemming

Pembobotan

teks

Keyword

Data Transaksi

Terseleksi

Keyword

Dokumen

Terseleksi

Penggalian

Frequent Itemset

Dokumen

Frequent

Cosine Similarity

Rekomendasi

User

Pemilihan

Dokumen

Data

Transaksi

Keyword

Dokumen

Acuan

ID

Dokumen

Informasi

Dokumen

Gambar 4.1 Gambaran umum hybrid recommendation system

Dengan penggunaan algoritma frequent itemset dan perhitungan cosine

similarity pada perbandingan keyword, sistem rekomendasi dibentuk dalam

beberapa proses. Proses pemilihan dokumen digunakan sebagai proses untuk

pengambilan data transaksi. Proses pemilihan dokumen adalah saat pengguna

melakukan pemilihan dokumen yang disajikan oleh sistem. Dokumen yang

36

disajikan oleh sistem dapat berupa dokumen hasil pencarian dan dokumen

rekomendasi. Dokumen teks diproses pada keyword extraction system untuk

memperoleh keyword dokumen. Dokumen pilihan pengguna digunakan sebagai

dokumen acuan dalam penggalian frequent itemset maupun perbandingan

keyword. Penggalian frequent itemset dilakukan untuk mendapatkan frequent

document. Keyword extraction system melakukan ekstraksi keyword untuk

dokumen yang dimasukkan pada sistem sehingga setiap dokumen akan memiliki

daftar keyword hasil ekstraksi.

Data transaksi dibentuk saat proses pemilihan dokumen yang dilakukan

oleh pengguna. Proses pemilihan adalah saat pengguna melakukan pemilihan

dokumen yang ada pada daftar dokumen hasil pencarian atau hasil rekomendasi.

Setiap sesi merupakan satu data transaksi. Dalam satu data transasi, terdapat deret

item yang merupakan id dari dokumen. Deret item ini merupakan dokumen-

dokumen yang dipilih pada sesi penggunaan sistem. Sesi yang digunakan

merupakan sesi default pada browser. Dengan demikian, walaupun pengguna

sama tetapi penggunaan sistem dilakukan pada sesi yang berbeda, maka data

pemilihan dokumen tersebut akan dipisahkan. Hal ini dilakukan untuk

mengantisipasi proses pemilihan dokumen dengan konten yang berbeda walaupun

penggunanya sama. Penggunaan asumsi tersebut mengakibatkan data identitas

pengguna dapat diabaikan. Selain menjadi data transaksi, dokumen pilihan

pengguna juga menjadi dokumen acuan untuk menentukan daftar data transaksi

terseleksi yang digunakan pada proses penggalian frequent itemset.

Keyword dokumen frequent lalu dibandingkan dengan keyword dokumen

acuan menggunakan metode cosine similarity. Nilai cosine similarity digunakan

untuk penentuan rekomendasi dokumen. Dokumen pembanding akan

direkomendasikan kepada pengguna apabila nilai similaritas memenuhi ambang

batas. Hasil rekomendasi berupa daftar dokumen yang memenuhi ambang batas

yang ditentukan oleh pengguna.

37

Untuk melakukan proses-proses tersebut, sistem memerlukan 3 ambang

batas yaitu minimum similarity, minimum support dan jumlah rekomendasi.

Minimum similarity digunakan untuk menentukan ambang batas similaritas

minimal antara dokumen yang akan direkomendasikan. Minimum support

diperlukan pada penggalian frequent itemset untuk menentukan minimal

kemunculan setiap itemset. Untuk penentuan jumlah rekomendasi yang dihasilkan

oleh sistem, diperlukan ambang batas jumlah rekomendasi. Pengaturan ambang

batas dilakukan oleh administrator sistem. Selain pengaturan ambang batas,

administrator juga melakukan manajemen data dokumen dan data stopword yang

ada pada sistem.

4.2 Arsitektur Sistem

Pembangunan recommendation system terbagi menjadi beberapa bagian

proses. Bagian-bagian proses tersebut ditunjukkan oleh Gambar 4.2. Proses terdiri

dari 3 bagian utama yaitu penggalian pencarian rekomendasi, tranformasi data,

dan ekstraksi keyword. Pencarian rekomendasi dilakukan dengan penggalian

itemset dan pembandingan keyword antara dokumen menggunakan metode cosine

similarity. Penggalian frequent itemset terbagi menjadi 3 bagian yaitu penggalian

frequent item, pembentukan FP-Tree, dan pembentukan conditional FP-Tree.

Penggalian frequent item merupakan pencarian item tunggal yang melebihi

minimum support. Proses ini juga disebut penggalian 1-itemset. Pembentukan

conditional FP-Tree merupakan proses dimana frequent itemset ditentukan. Proses

perbandingan menggunkan cosine similarity menghasilkan nilai similaritas antara

dokumen acuan dan dokumen pembanding.

Proses transformasi data merupakan proses dimana data umpan balik

pengguna yang berupa data pemilihan dokumen diubah menjadi data transaksi.

Keyword extraction terdiri dari tokenisasi, stopword removal, stemming, dan

pembobotan. Pada tokenisasi dilakukan proses pemecahan deret kata dan

penghilangan karakter selain huruf dan angka. Tokenisasi yang digunakan adalah

tokenisasi dengan pemisah kata berupa karakter spasi. Daftar kata yang dihasilkan

tokenisasi akan diseleksi pada stopword removal. Stopword removal merupakan

38

proses untuk menghilangkan kata yang dianggap tidak penting. Daftar kata yang

tidak mengandung stopword lalu diproses pada stemming. Proses stemming

merupakan proses untuk mengubah kata turunan menjadi kata dasar. Daftar kata

dasar yang didapatkan pada stemming akan diberikan bobot dengan skema term

frequency. Skema term frequency memberikan bobot dengan menghitung jumlah

kemunculan kata pada dokumen. Kata dasar beserta bobot yang didapatkan

disimpan pada basis data.

Hybrid Recommendation

System

Rekomendasi Transformasi DataKeyword

Extraction

Cosine SimilarityFrequent Itemset

MiningTokenisasi

StemmingStopword

Removal

Pembobotan

Frequent Item

Search

FP-Tree

Conditional FP-

Tree

Gambar 4.2 Arsitektur hybrid recommendation system

Penggalian frequent itemset menghasilkan daftar frequent dokumen.

Dokumen pilihan juga menjadi dokumen acuan yang akan dibandingkan dengan

dokumen terseleksi. Dokumen terseleksi untuk perbandingan merupakan frequent

dokument dan atau dokumen hasil pencarian. Keyword dokumen acuan dan

keyword dokumen terseleksi dibandingkan dengan menggunakan cosine

similarity. Dokumen hasil pencarian akan digunakan apabila penggalian frequent

itemset tidak menghasilkan dokumen frequent atau dokumen frequent yang

ditemukan tidak dapat memenuhi kebutuhan jumlah rekomendasi.

4.2.1 Keyword extraction system

Implementasi keyword extraction system menggunakan pendekatan tata

bahasa berbasis struktur sintaksis yaitu dengan melakukan tokenisasi, stopword

removal, stemming, dan pembobotan kata. Proses stemming menggunakan

algoritma yang dikembangkan oleh Tala. Hasil keyword extraction system

39

merupakan daftar term disertai dengan term frequency untuk masing-masing

dokumen pada sistem.

Tokenisasi

Untuk melakukan ekstraksi dokumen ke dalam bentuk daftar kata,

diperlukan proses tokenisasi. Alur proses tokenisasi ditunjukkan oleh Gambar 4.3.

Start

End

dokumen PDF

i < jumlah(kata)

kata

teks = convert(dokumen PDF)

i = 0

inc i

jumlah(kata [i]) < 2 Hapus(kata [i])ya

tidak

tidak

ya

hilangkan simbol(kata [i])

kata = pecah(teks)

Gambar 4.3 Flowchart tokenisasi

40

Sebelum melakukan tokenisasi, input yang berupa dokumen pdf terlebih

dahulu dikonversi menjadi dokumen txt. Proses konversi ini dibutuhkan karena

pembacaan setiap baris text menggunakan file operation PHP yang dapat

membaca file txt. Baris-baris teks yang didapatkan dari dokumen txt lalu dipecah

menjadi daftar kata berdasarkan karakter spasi dan disimpan pada variabel kata.

Proses selanjutnya adalah penghapusan simbol-simbol yang ada pada setiap kata.

Pada tahap ini juga dilakukan penghapusan kata yang terdiri dari satu karakter.

Proses ini dilakukan karena kata yang mengandung satu karakter tidak

mengandung informasi penting. Jumlah karakter kata ke-i dihitung pada fungsi

jumlah(kata[i]). Proses ini diulang sebanyak jumlah(kata). Jumlah(kata)

merupakan jumlah kata yang didapatkan pada proses pemecahan berdasarkan

karakter spasi. Output dari proses tokenisasi ini merupakan kumpulan kata yang

sudah bersih dari simbol-simbol tidak diperlukan.

Stopword removal

Daftar kata hasil tokenisasi tidak semua merupakan kata-kata yang

dianggap penting. Proses stopword removal melakukan penghapusan kata-kata

yang dianggap tidak penting tersebut. Kata dan stopword sebagai input proses

berbentuk daftar kata. Daftar kata tidak penting disimpan dalam variabel

stopword. Contoh dari kata yang dianggap tidak penting adalah kata penghubung.

Untuk melakukan stopword removal, diperlukan stoplist (daftar stopword) yang

tersimpan pada basis data. Stoplist merupakan daftar kata yang dibuat oleh

pengguna. Setiap kata yang terdapat pada stoplist akan dihapus dari daftar kata,

sehingga kata yang tidak mengandung informasi dapat diminimalkan. Kata output

dari proses stopword removal berbentuk daftar kata. Daftar kata yang telah

memasuki proses stopword removal selanjutnya akan masuk ke proses stemming.

Alur proses stopword removal dapat dilihat pada Gambar 4.4.

41

Start

End

kata

stopword

kata [i] adalah

stopwordHapus(kata [i])

tidak

ya

i = 0

i < jumlah(kata)

inc iya

tidak

kata

Gambar 4.4 Flowchart stopword removal

Tala stemming

Stemming dilakukan untuk mempermudah pemberian bobot dengan

mengurangi jumlah kata turunan. Gambar 4.5 memperlihatkan alur proses dari

Tala stemming. Untuk melakukan proses stemming diperlukan kata yang telah

melalui proses tokenisasi dan stopword removal. Proses stemming dilakukan

dalam beberapa tahap. Tahap pertama adalah menghilangkan partikel yang

melekat pada kata. Tahap kedua yaitu menghilangkan kata ganti kepunyaan.

Setelah melalui dua tahap tersebut, selanjutnya pada tahap ketiga akan diperiksa

apakah pada kata melekat awalan pertama. Jika terdapat awalan pertama, maka

awalan tersebut akan dihilangkan. Selanjutnya kata akan diperiksa apakah

mengandung akhiran dan apakah kondisi pada sub bab 3.3.4 dipenuhi.

42

Pemeriksaan ini dilakukan untuk menentukan apakah diperlukan penghilangan

akhiran dan awalan kedua yang melekat pada kata.

Start

End

kata

awalan pertama

kata [i] ≠ nullhilangkan awalan pertama (kata [i])

tidak

ya

i = 0

i < jumlah(kata) inc i

ya

tidak

kata dasar

hilangkan partikel (kata [i])

hilangkan kata ganti kepunyaan (kata [i])

hilangkan awalan kedua (kata [i])

hilangkan akhiran (kata [i])

akhiran kata [i] ≠ null

& kondisi terpenuhi

ya

hilangkan akhiran (kata [i])

hilangkan awalan kedua (kata [i])

tidak

Gambar 4.5 Flowchart Tala stemmer

Jika pada tahap ketiga tidak ditemukan awalan pertama, maka proses akan

dilanjutkan ke penghilangan awalan kedua dan selanjutnya penghilangan akhiran

kata. Untuk daftar partikel, kata ganti kepunyaan, awalan pertama, awalan kedua,

akhiran, dan juga kondisi yang mungkin terjadi dapat dilihat pada sub bab 3.3.4.

Setelah melewati proses steamming maka akan diperoleh kata dasar.

43

Term frequency

Pembobotan diberikan berdasarkan skema term frequency. Kata-kata dasar

yang didapatkan pada proses stemming diberikan bobot untuk menentukan apakah

kata tersebut penting atau tidak. Setiap kata dasar akan diberikan bobot

berdasarkan jumlah kemunculan kata tersebut dalam suatu dokumen. Term

merupakan kata yang telah melalui proses tokenisasi stopword, removal, dan

stemming.. Daftar term merupakan daftar kata dasar yang telah berisi bobot dari

kata tersebut. Daftar term akan berbentuk „kata [jumlah]‟. Saat pemindaian

seluruh daftar kata dasar, komponen jumlah akan ditambahkan jika kata dasar

tersebut kembali ditemukan. Apabila kata dasar tidak ditemukan, maka kata dasar

akan ditambahkan ke dalam daftar term. Alur proses pembobotan ditunjukkan

oleh Gambar 4.6.

Start

End

kata dasar

kata [i] ada pada

daftar termtambah kata [i] ke daftar term

ya

tidak

i = 0

i < jumlah (kata

dasar)

inc term [kata [i]] [jumlah]

ya

tidak term

inc i

Gambar 4.6 Flowchart pembobotan

44

Daftar term yang didapatkan beserta jumlah kemunculannya akan diproses

pada pencarian similaritas dokumen. Daftar term yang telah memiliki bobot juga

disebut keyword.

4.2.2 Penggalian frequent itemset

Fungsi penggalian frequent itemset adalah mencari dokumen-dokumen

yang terasosiasi dengan dokumen acuan. Penggalian frequent itemset mengolah

data transaksi yang dimiliki oleh sistem. Salah satu algoritma yang dapat

digunakan untuk melakukan penggalian frequent itemset adalah algoritma FP-

Growth. Algoritma FP-Growth dikenal cepat dan juga populer dalam penggalian

frequent itemset. Data transaksi pada sistem merupakan hasil perekaman data

pemilihan dokumen. Setiap sesi penggunaan sistem akan merekam data pemilihan

dokumen sebagai sebuah data transaksi. Dalam setiap data transaksi terdapat deret

item yang merupakan id dari dokumen yang dipilih oleh pengguna. Dalam

algoritma ini terdapat beberapa tahap yang dilakukan yaitu pencarian frequent

item, pembentukan FP-Tree, penggalian frequent itemset dengan menggunakan

conditional FP-Tree. Data transaksi yang digunakan adalah data transaksi yang

mengandung dokumen acuan. Sebagai contoh data transaksi ditunjukkan oleh

Tabel 4.1.

Tabel 4.1 Contoh data transaksi

No TID

1 1 13 14 20

2 1 2 3 4 5 19 20

3 2 3 6

4 1 7 8

5 1 3 4 9 10

6 1 2 3 4 11 17 18

7 2 4 12

8 2 4 15 16

9 4

10 1 4

Misalkan id dokumen yang dipilih adalah 1 maka data transaksi yang

terseleksi ditunjukkan oleh Tabel 4.2.

45

Tabel 4.2 Seleksi data transaksi

No TID

1 1 13 14 20

2 1 2 3 4 5 19 20

4 1 7 8

5 1 3 4 9 10

6 1 2 3 4 11 17 18

10 1 4

Pencarian frequent item

Data transaksi merupakan kebutuhan utama untuk dapat melakukan proses

penggalian frequent itemset. Data transaksi merupakan data yang diolah dari

proses pemilihan yang dilakukan pengguna sistem. Frequent item merupakan item

tunggal yang memiliki jumlah kemunculan lebih dari atau sama dengan minimum

support yang telah ditentukan. Pada tahap pencarian frequent item, semua itemset

dalam data transaksi terseleksi akan dipindai untuk menemukan frequent item.

Itemset berbentuk deretan item yang terlibat dalam suatu transaksi. Itemset akan

dipecah menjadi item-item lalu dihitung jumlah kemunculan item tersebut. Hasil

perhitungan jumlah kemunculan item dengan data transaksi pada Tabel 4.2

ditunjukkan oleh Tabel 4.3.

Tabel 4.3 Jumlah kemunculan item

ID Item Jumlah

Kemunculan ID Item

Jumlah

Kemunculan

1 6 19 1

13 1 7 1

14 1 8 1

20 2 9 1

2 2 10 1

3 3 11 1

4 4 17 1

5 1 18 1

46

Variabel id pada Gambar 4.7 merupakan variabel untuk menyimpan item-

item hasil pemecahan. Jika item berjumlah lebih dari atau sama dengan minimum

support, maka item tersebut akan tetap berada pada daftar frequent item.

Start

End

data transaksi

minimum support

item [id [j]]

≠ null

inc item [id [j]]

yatidak

i = 0

j < jumlah (item)

inc j

ya

tidak

frequent item

id = pecah (data transaksi [i])

j = 0

item [id [j]] = 0ya

inc i

tidak

ya

urut item berdasarkan jumlah

inc k

k = 0

k < jumlah (item)

jumlah (item [k]) <

minimum supportHapus (item [k])ya

tidak

ya

tidak

i < jumlah (data

transaksi)

Gambar 4.7 Flowchart pencarian frequent item

47

Sebaliknya, jika kurang dari minimum support, maka item akan dihapus

dari daftar frequent item. Sebagai contoh, dengan penggunaan minimum support

40% maka jumlah minimal kemunculan setiap item adalah sebagai berikut:

Jumlah minimal kemunculan = jumlah transaksi dipilih × 𝑚𝑖𝑛𝑖𝑚𝑢𝑚 𝑠𝑢𝑝𝑝𝑜𝑟𝑡

Jumlah minimal kemunculan = 6 × 40

100

Jumlah minimal kemunculan = 2,4

Jumlah minimal kemunculan akan dibulatkan kebawah sehingga, jumlah

minimal kemunculan menjadi 2. Selain menyimpan frequent item, daftar frequent

item juga menyimpan jumlah kemunculan item tersebut. Hal ini diperlukan karena

item pada daftar akan diurutkan berdasarkan jumlah kemunculan. Flowchart dari

proses ini ditunjukkan oleh Gambar 4.7. Hasil proses pencarian frequent item

Tabel 4.3 serta hasil pengurutannya ditunjukkan pada Tabel 4.4.

Tabel 4.4 Urutan frequent item

ID Item Jumlah

Kemunculan

1 6

4 4

3 3

20 2

2 2

FP-Tree

FP-Tree merupakan skema tree yang digunakan pada algoritma FP-

Growth. Proses pembentukan FP-Tree diawali dengan melakukan seleksi terhadap

data transaksi. Dari itemset pada masing-masing data transaksi, item yang tidak

terdapat pada frequent item akan diabaikan. Root pada tree merupakan id

dokumen yang menjadi acuan rekomendasi. Item acuan merupakan id dokumen

yang dipilih oleh pengguna. Flowchart pembentukan FP-Tree ditunjukkan pada

Gambar 4.8. Contoh pada sub bab 4.2.2 menggunakan id dokumen 1 sebagai id

48

dokumen pilihan sehingga, data transaksi yang telah diurutkan dan diseleksi

ditunjukkan oleh Tabel 4.5.

Start

End

data transaksi

frequent item

id dokumen

id transaksi [j]

= id dokumen

ya

tidak

i = 0

j < jumlah (id

transaksi)

inc support node

ya

ya

tidak

prefix path

seleksi data transaksi

urut data transaksi

root = bentuk root (id dokumen)

j = 0

node child [id

transaksi [k]] ≠ nulltidak

node = child [id transaksi [k]]node = root

node child [id transaksi [k]] =

bentuk child (id transaksi [k])

inc j

i < jumlah (data

transaksi)

ya

tidak

inc i

id transaksi =

pecah(data transaksi [i])

prefix path = urut child (root)

Gambar 4.8 Flowchart pembentukan FP-Tree

Tabel 4.5 Data transaksi terurut dan terseleksi

No TID

1 1 20

2 1 4 3 20 2

4 1

5 1 4 3

6 1 4 3 2

10 1 4

49

Selain membentuk FP-Tree, proses ini juga membentuk prefix path yaitu

penunjuk alamat node pertama setiap frequent item pada FP-Tree. FP-Tree beserta

prefix path yang dihasilkan oleh proses ini ditunjukkan pada Gambar 4.9.

ID : 1

ID : 4

ID : 3

ID : 20

ID : 2

ID : 2

ID : 20

ID : 1

ID : 4

ID : 3

ID : 20

ID : 2

Gambar 4.9 FP-Tree dan Prefix Path

Conditional FP-Tree

Algoritma FP-Growth diakhiri pada proses penggalian frequent itemset.

Dengan contoh pada subbab 4.2.2, maka frequent itemset yang dihasilkan

ditunjukkan oleh Tabel 4.6.

Tabel 4.6 Hasil frequent itemset

No Frequent Itemset

1 2 1

2 3 2 1

3 4 3 2 1

4 4 2 1

5 20 1

6 3 1

7 4 1

Gambar 4.10 menunjukkan alur proses penggalian frequent itemset.

Pembentukan conditional FP-Tree merupakan proses untuk melakukan

penggalian frequent itemset. Conditional FP-Tree merupakan pecahan dari FP-

50

Tree sesuai dengan item yang akan digali. Hasil proses yang berupa frequent

itemset akan diurutkan berdasarkan jumlah kemunculan dari yang paling sering

muncul ke yang paling jarang.

Start

End

prefix path

node [support] ≥

minimum support

i = jumlah (prefix path – 1)

i ≥ 0

dec i

tidakya

tidak

frequent itemset

node = prefix path [i]

ya

frequent itemset = node [label]

frequent itemset = conditional fp-tree [node]

Gambar 4.10 Flowchart penggalian frequent itemset

4.2.3 Cosine similarity

Untuk membandingkan similaritas antara dokumen dilakukan proses

perhitungan dengan pendekatan cosine similarity. Proses cosine similarity

51

melakukan perbandingan dua dokumen. Term dokumen yang dibandingkan

beserta bobotnya akan diambil untuk melakukan perhitungan similaritas.

Perhitungan cosine dapat dilihat pada sub bab 3.4. Gambar 4.11 merupakan

flowchart dari perhitungan cosine similarity. Input proses cosine similarity

merupakan daftar term dokumen A dan daftar term dokumen B.

Start

End

term A

term B

term B

[term A [i]] [TF] ≠

null

ya

i = 0

i < jumlah (term A)

dot = dot + (term A [i] [TF] *

term B [term A [i]] [TF])ya

tidak

similarity

inc i

similarity =

(dot / (jumlah A * jumlah B))

jumlah A = sqrt(sum(term A [TF])2)

jumlah B = sqrt(sum(term B [TF])2)

Gambar 4.11 Flowchart cosine similarity

4.2.4 Penentuan rekomendasi

Proses penentuan rekomendasi merupakan proses terakhir dapam

pencarian rekomendasi. Penentuan rekomendasi dilakukan dengan

membandingkan kemiripan keyword antara dokumen dengan menggunakan

perhitungan cosine similarity. Proses penentuan rekomendasi terbagi atas dua

tahap. Tahap pertama merupakan tahap perbandingan dokumen acuan terhadap

dokumen-dokumen yang ada pada daftar frequent itemset. Dokumen-dokumen

yang ada pada daftar frequent itemset disebut sebagai dokumen frequent.

52

Dokumen acuan merupakan dokumen yang sedang dipilih oleh pengguna sistem.

Proses ini ditunjukkan oleh Gambar 4.12.

Start

End

frequent itemset (fi)

terrm dokumen

id dokumen

minimum rekomendasi (mr)

minimum similarity

jumlah (rekomendasi)

< mr

i = 0

i < jumlah (fi)

inc i

ya

tidak

rekomendasi

fi ≠ nullya

ya

cosine >

minimum similarity

tidak

rekomendasi = fi[i]ya

jumlah

(rekomendasi) < mr

tidak

cosine > minimal

similarity

tidak

rekomendasi = dok Bya

Dok B ≠ null

ya

tidak

tidaktidak

ya

Dok B = pilih dokumen

cosine = (term[id dokumen],term[dok B])

cosine = (term[id dokumen],term[dok B])

Gambar 4.12 Flowchart penentuan rekomendasi

Tahap kedua merupakan tahap perbandingan dokumen acuan terhadap

dokumen-dokumen hasil pencarian. Perbandingan dokumen acuan dengan

dokumen lain (Dok B) tanpa memperhatikan frequent itemset akan dilakukan

apabila frequent itemset tidak ditemukan atau jumlah item pada frequent itemset

yang memiliki similarity lebih dari minimum similarity tidak dapat memenuhi

jumlah minimal rekomendasi yang ditentukan. Pemilihan daftar dokumen lain

tersebut dilakukan dengan mencocokkan kata kunci pencarian yang diberikan

pengguna terhadap judul atau abstrak dokumen. Dokumen akan direkomendasikan

53

apabila hasil cosine similarity melebihi ambang batas yang ditentukan. Apabila

jumlah rekomendasi telah memenuhi ketentuan atau rekomendasi tidak dapat

ditemukan, proses perbandingan dokumen akan dihentikan.

4.3 Basis Data

Data yang digunakan dalam sistem adalah data dokumen, data transaksi,

ambang batas rekomendasi dan juga daftar stopword. Selain itu dibutuhkan juga

administrator untuk melakukan manajemen data yang ada. Maka dari itu, basis

data yang dibutuhkan adalah administrator, traksaksi, dokumen, ambang batas,

stoplist, dan dokumen term.

4.3.1 Administrator

Administrator dibutuhkan untuk membatasi pengguna yang dapat

melakukan pengubahan stoplist beserta ambang batas yang digunakan oleh sistem.

Tabel administrator menyimpan username dan password sebagai autentifikasi

pengguna. Tabel 4.7 merupakan rancangan tabel administrator.

Tabel 4.7 Rancangan tabel administrator

Field Tipe Keterangan

id Integer (auto_increment) Primary Key

username Varchar (20) Primary Key

password Varchar (100)

4.3.2 Transaksi

Rancangan tabel transaksi ditunjukkan oleh Tabel 4.8. History pemilihan

dokumen yang dilakukan pengguna sistem akan diolah sebagai data transaksi

yang digunakan dalam penggalian frequent itemset.

Tabel 4.8 Rancangan tabek transaksi

Field Tipe Keterangan

id Integer (auto_increment) Primary Key

tid Varchar (200)

54

Tabel transaksi menyimpan data pemilihan dokumen pada field tid dengan

memisahkan setiap data pemilihan menggunakan spasi yaitu dalam bentuk „id_1

id_2 id_3 dst‟.

4.3.3 Dokumen

Tabel dokumen hanya menyimpan keterangan yang dibutuhkan oleh

sistem yaitu judul, abstrak, dan path dokumen. Path dokumen adalah nama

dokumen hasil hashing nama asli dokumen dengan algoritma MD5. Hashing

dilakukan untuk menghilangkan simbol-simbol selain angka dan huruf pada nama

dokumen. Simbol tersebut dihilangkan agar aplikasi pdftotxt yang melakukan

konversi dokumen pdf ke dokumen txt dapat mengidentifikasi dokumen pdf.

Rancangan tabel dokumen ditunjukkan oleh Tabel 4.9.

Tabel 4.9 Rancangan tabel dokumen

Field Tipe Keterangan

id Integer (auto_increment) Primary Key

nama Varchar (100)

judul Varchar (200)

abstrak Teks

path Varchar (100)

4.3.4 Ambang batas

Tabel ambang batas yang rancangannya ditunjukkan oleh Tabel 4.10,

merupakan tabel yang menyimpan ambang batas yang digunakan oleh sistem.

Ambang batas ini berupa minimum support yang digunakan dalam penggalian

frequent itemset, minimum similarity yang digunakan untuk perbandingan

kedekatan keyword antara dokumen serta jumlah rekomendasi untuk menentukan

jumlah rekomendasi yang dihasilkan oleh sistem.

Tabel 4.10 Rancangan tabel ambang batas

Field Tipe Keterangan

minimum_support Integer (11)

jumlah_rekomendasi Integer (11)

minimum_similarity Integer (11)

55

4.3.5 Stoplist

Tabel stoplist berisi daftar stopword yang digunakan oleh proses keyword

extraction system pada tahap stopword removal. Stopword menentukan jumlah

term yang dihasilkan oleh keyword extraction system karena stopword digunakan

pada proses stopword removal yaitu penghilangan kata yang tidak membawa

informasi. Rancangan tabel ini ditunjukkan oleh Tabel 4.11.

Tabel 4.11 Rancangan tabel stoplist

Field Tipe Keterangan

stopword Varchar (20)

4.3.6 Dokumen Term

Untuk efisiensi waktu pencarian rekomendasi, maka term beserta term

frequency akan disimpan dalam tabel dokumen term. Efisiensi dapat dilakukan

karena saat perbandingan similaritas keyword, tidak dibutuhkan lagi ekstraksi

term dari dokumen yang dicari similaritasnya. Sistem hanya akan mengambil term

serta term frequency tersebut dari tabel dokumen term. Term masing-masing

dokumen yang disimpan dalam tabel ini adalah kumpulan term-term yang

diekstraksi dari dokumen. Jadi satu record memuat kumpulan term dan term

frequency yang merepresentasikan satu dokumen. Rancagan tabel ini ditunjukkan

oleh Tabel 4.12.

Tabel 4.12 Rancangan tabel dokumen term

Field Tipe Keterangan

id_dokumen Integer (11) Primary Key

Foreign Key (dokumen.id)

term Text

4.4 Perancangan Antar Muka

Rekomendasi ditampilkan pada halaman rekomendasi dokumen berbentuk

daftar vertikal. Dalam halaman ini juga ditampilkan abstrak dan judul dokumen

yang dipilih sebelumnya oleh pengguna. Tombol download juga disediakan pada

56

halaman ini jika pengguna ingin melakukan pengunduhan dokumen tersebut.

Rancangan halaman ini ditunjukkan oleh Gambar 4.13.

4.5 Pembentukan Data Transaksi

Data transaksi dibentuk dengan cara seperti pada Gambar 4.14. Data

transaksi perlu dibentuk karena belum adanya data transaksi yang dibentuk dari

data pemilihan dokumen. Pembentukan data transaksi dilakukan dengan

mempertimbangkan similaritas dokumen. Similaritas dokumen yang ditetapkan

< header >

Download

< footer >

Rekomendasi Dokumen

Judul

Abstrak

< menu >

Rekomendasi 1

Rekomendasi 2

Rekomendasi 3

dst..

Gambar 4.13 Rancangan halaman penampilan rekomendasi

57

adalah 30% karena rekomendasi relevan umpan balik dari pengguna umumnya

memiliki similaritas diatas 30%.

Start

Dokumen Uji

Dokumen ID

Dokumen Keyword

i = 0

j < 100

i < 11

j = 0

k = 0;

tid = array()k < 20num = rand (1,100)

num!=doc_uji[i]

and num not in tid

Similaritas

doc[num] > 30%

tid[] = num;

k++

ya ya

tidak

tidak

tidak

tidak

yaj++

i++ya

ya

Data Transaksi = tid

End

Gambar 4.14 Flowchart pembentukan data transaksi

58

BAB V

IMPLEMENTASI

Recommendation system dibangun berbasis web menggunakan bahasa

pemrograman PHP dengan basis data MySQL. Berdasarkan perancangan sistem

yang telah dilakukan sebelumnya, proses implementasi ke dalam bahasa

pemrograman dibagi menjadi empat bagian yaitu implementasi text processing

untuk keyword extraction system, implementasi algoritma FP-Growth,

implementasi perbandingan keyword dengan pendekatan kemiripan keyword

menggunakan cosine similarity dan penentuan rekomendasi.

5.1 Implementasi Text Processing

Proses text processing digunakan untuk mengekstraksi dokumen ke dalam

bentuk term dan juga bobot masing-masing term. Proses text processing dimulai

dengan melakukan konversi terhadap dokumen dengan format pdf ke dalam

format txt menggunakan aplikasi pdftotxt. Selanjutnya berturut-turut dilakukan

proses tokenisasi, stopword removal, stemming, dan terakhir perhitungan term

frequency sebagai bobot term.

5.1.1 Tokenisasi

Bahasa Indonesia menggunakan karakter spasi sebagai pemisah kata

sehingga tokenisasi yang digunakan merupakan white space tokenization. Proses

tokenisasi diawali dengan pembacaan setiap baris pada dokumen txt. Baris-baris

itu lalu dipecah berdasarkan karakter spasi dan disimpan pada variabel $text.

Proses tersebut terdapat pada baris pertama hingga ke-4 pada Gambar 5.1.

Selanjutnya akan dilakukan penghapusan karakter yang terkandung pada variabel

$tanda agar kata tidak mengandung karakter-karakter yang tidak diperlukan. Pada

tokenisasi juga dilakukan penghapusan karakter yang memiliki jumlah karakter

kurang dari satu seperti yang ditunjukkan baris ke-7 hingga baris ke-9 pada

Gambar 5.1. Selain spasi, karakter lain yang menjadi pemisah antar kata adalah

“/” dan “-”. Khusus untuk pemisah karakter “-” akan dilakukan bersama proses

stemming karena jika kata tersebut sama, maka hanya akan dihitung satu kali saja.

59

Baris ke-10 pada Gambar 5.1 menggunakan fungsi strpos untuk melakukan

pemeriksaan karakter “/” yang digunakan sebagai pemisah antara kata. Jika

terdapat karakter “/” yang terkandung dalam kata maka kata akan dipecah dengan

karakter “/” sebagai pemisah.

1. while(!feof($file)){ 2. $text = array_merge((array)$text,(array)explode("

",fgets($file,filesize($document))));

3. } 4. fclose($file); 5. foreach ($text as $key => $val){ 6. $text[$key]= strtolower(trim((str_replace

($tanda,"",$val)));

7. if (strlen($text[$key]) < 2){

8. unset($text[$key]);

9. }

10. elseif (strpos($text[$key],"/")){

11. $temp_text = explode("/",$text[$key]);

12. $text[$key] = $temp_text[0];

13. for ($a=1;$a<count($temp_text);$a++){

14. $special_text[] = $temp_text[$a];

15. }

16. }

17. }

Gambar 5.1 Potongan kode tokenisasi

5.1.2 Stopword removal

Seleksi stopword dilakukan dengan membandingkan antara daftar kata

yang ada pada variabel $text hasil tokenisasi dan kata yang terdapat pada stoplist.

Stoplist disimpan dalam basis data. Jika kata tersebut terdaftar dalam stoplist

maka kata tersebut akan dihapus dari variabel $text dengan fungsi unset.

Pencarian kata pada stoplist dilakukan dengan perintah SQL pada baris ke-2

Gambar 5.2. Gambar 5.2 menunjukkan potongan kode dari fungsi stopword

removal.

1. foreach ($text as $key => $val){

2. $query = "select * from stoplist where stopword =

'$val'";

3. $count = mysql_num_rows

(mysql_query($query,$database));

4. if($count == 1){

5. unset($text[$key]);

6. }

7. }

Gambar 5.2 Potongan kode stopword removal

60

5.1.3 Stemming

Fungsi stemming digunakan untuk merubah daftar kata yang terdapat pada

variabel $text menjadi kata dasar. Fungsi ini memerlukan lima fungsi lain yaitu

fungsi untuk penghapusan partikel (particle), kata ganti kepunyaan (possessive

pronoun), awalan pertama (first prefix), awalan kedua (second prefix), dan juga

akhiran (suffix). Kata merupakan masukan yang diperlukan oleh fungsi stemming

dan disimpan dalam variabel $word. Proses pertama yang dilakukan adalah

penghapusan partikel pada kata. Penghapusan partikel akan dilakukan apabila

ditemukan partikel pada kata. Proses penghapusan partikel ditunjukkan oleh baris

ke-1 hingga ke-3 pada Gambar 5.3.

1. if (particle($word)){

2. $word = substr($word,0,-3);

3. }

4. $word = possesive_pronoun($word);

5. $s3_word = first_prefix($word);

6. if ($s3_word["word"] == $word){

7. $sp_word = second_prefix($word);

8. $word = $sp_word["word"];

9. $word = suffix($word,$sp_word["prefix"]);

10. }

11. elseif ($s3_word["word"] != $word){

12. $word = $s3_word["word"];

13. $suffix_word = suffix($word,$s3_word["prefix"]);

14. if ($suffix_word != $word){

15. $word = $suffix_word;

16. $sp_word = second_prefix($word);

17. $word = $sp_word["word"];

18. }

19. }

Gambar 5.3 Potongan kode stemming

Proses selanjutnya adalah penghapusan kata ganti kepunyaan. Proses ini

ditangani pada fungsi possessive_pronoun($word). Proses ketiga adalah

penghapusan awalan pertama. Jika awalan pertama ditemukan, maka fungsi

first_prefix() menghasilkan kata yang telah dihilangkan awalannya serta awalan

yang terkadung dalam kata. Awalan ini digunakan untuk membedakan kombinasi

imbuhan yang diijinkan (legal) dan yang tidak diijinkan (ilegal) saat penghapusan

akhiran. Fungsi second_prefix juga menghasilkan awalan yang terkandung dalam

kata. Proses selanjutnya yang dilakukan berturut-turut jika ditemukan awalan

61

pertama adalah penghapusan akhiran dan penghapusan awalan kedua. Apabila

awalan pertama tidak ditemukan, maka proses yang dilakukan berturut-turut

adalah penghapusan awalan kedua dan penghapusan akhiran. Proses penghapusan

akhiran dikerjakan pada fungsi suffix(). Fungsi suffix membutuhkan kata serta

awalan sebagai masukan dan menghasilkan kata yang telah dihilangkan

akhirannya. Pada fungsi suffix juga berisi aturan tentang imbuhan yang tidak

diijinkan. Fungsi terakhir yaitu fungsi second_prefix yang digunakan untuk

menhapus awalan kedua. Fungsi ini menghasilkan kata yang telah dihilangkan

awalan keduanya.

5.1.4 Term frequency

Pembobotan dengan skema term frequency dilakukan dengan cara

menghitung jumlah kemunculan term. Penghitungan term frequency dilakukan

bersama proses stopword dan juga stemming. Pembobotan dilakukan dengan

mengkalkulasi jumlah term yang muncul. Term frequency akan disimpan pada

variabel $term dalam bentuk $term[“nama term”] = jumlah kemunculan. Pada

saat kata selesai diproses oleh fungsi stemming, jumlah kata yang sama akan

ditambahkan ke dalam variabel. Gambar 5.4 merupakan potongan kode

pembobotan dengan term frequency.

1. foreach ($text as $key => $val){ 2. ............

3. $text[$key] = stem($text[$key]);

4. $term[$text[$key]] += 1;

5. }

Gambar 5.4 Potongan kode perhitungan term frequency

5.2 Implementasi Algoritma FP-Growth

Fungsi dari algoritma FP-Growth adalah mencari itemset yang melebihi

minimum support yang ditentukan pengguna. Pada sistem yang dibangun, itemset

adalah item tunggal maupun serangkaian item dimana item tersebut berupa id dari

dokumen. Algoritma FP-Growth terbagi menjadi empat bagian yaitu frequent item

search, pembentukan FP-Tree, pembangunan conditional FP-Tree, dan ekstraksi

frequent itemset berdasarkan conditional FP-Tree yang telah dibentuk.

62

Untuk efisisensi waktu akses basis data, sistem hanya melakukan proses

pengambilan data transaksi pada dua proses yaitu pencarian frequent item dan

pembentukan FP-Tree. Setelah data didapatkan, semua data dan hasil proses dari

data tersebut akan dimasukkan ke dalam sebuah variabel. Sedangkan proses lain

pada penggalian frequent itemset tidak akan melibatkan basis data.

5.2.1 Pencarian frequent item

Data transaksi disimpan pada basis data dengan spasi sebagai pemisah

antara item. Setiap data transaksi juga diawali dan diakhiri dengan karakter spasi

untuk memudahkan seleksi item tertentu pada data transaksi. Seleksi data

transaksi pada basis data menggunakan perintah SQL (Structured Query

Language) yang ditunjukkan oleh baris pertama pada Gambar 5.5. Penggalian

frequent item dilakukan dengan menghitung jumlah dari setiap item yang muncul

dimana data transaksi yang terlibat adalah data transaksi yang memiliki id

dokumen (item) sesuai dengan pilihan pengguna. Frequent item merupakan item

yang memiliki jumlah yang melebihi minimum support. Item disimpan pada

variabel $tid_array sebagai key dan jumlah sebagai value. Setelah seluruh data

transaksi diseleksi, maka item yang memiliki jumlah kemunculan kurang dari

minimum support akan dihapus. Gambar 5.5 merupakan potongan kode dari

fungsi pencarian frequent item.

1. $query = "select tid from transaction_id where tid like '%

$tid %'";

2. $tid_row = mysql_query($query,$database);

3. while ($tid_list = mysql_fetch_row($tid_row)){

4. $tid_array = explode(" ",trim($tid_list[0]));

5. for ($id = 0; $id < count($tid_array); $id++){

6. $id_count[$tid_array[$id]] =

$id_count[$tid_array[$id]]+1;

7. }

8. }

9. arsort($id_count);

10. foreach ($id_count as $key => $count){

11. if ($count < $minimum_support)

12. unset($id_count[$key]);

13. }

14. $frequent_item = array_keys($id_count);

Gambar 5.5 Potongan kode frequent item search

63

Selain seleksi item, pada fungsi ini juga dilakukan pengurutan item secara

ascending dengan memperhatikan jumlah kemunculan item. Dengan contoh data

transaksi pada sub bab 4.2.2, akan didapatkan jumlah data transaksi menjadi 6

data transaksi dengan jumlah kemunculan setiap item dan bentuk penyimpanan

dalam array ditunjukkan oleh Tabel 5.1.

Tabel 5.1 Penyimpanan jumlah item pada array

$id_count [1] = 6 $id_count [19] = 1

$id_count [13] = 1 $id_count [7] = 1

$id_count [14] = 1 $id_count [8] = 1

$id_count [20] = 2 $id_count [9] = 1

$id_count [2] = 2 $id_count [10] = 1

$id_count [3] = 3 $id_count [11] = 1

$id_count [4] = 4 $id_count [17] = 1

$id_count [5] = 1 $id_count [18] = 1

Proses penghitungan jumlah kemunculan ditunjukkan oleh baris 3 hinggan

8 pada Gambar 5.5. Dengan dikenakan minimum support 40% maka jumlah

minimal kemunculan setiap item adalah 2,4. Jumlah minimal kemunculan akan

dibulatkan dengan menggunakan fungsi round() sehingga jumlah minimal

kemunculan menjadi 2. Dengan melihat jumlah minimal dan pengurutan

berdasarkan jumlah kemunculan maka didapatkan frequent item yang ditunjukkan

Gambar 5.6.

$id_count [1] = 6 $id_count [1] = 6

$id_count [20] = 2 $id_count [4] = 4

$id_count [2] = 2 $id_count [3] = 3

$id_count [3] = 3 $id_count [20] = 2

$id_count [4] = 4 $id_count [2] = 2

Gambar 5.6 Pengurutan frequent item

5.2.2 FP-Tree

Struktur data yang digunakan untuk membentuk tree merupakan sebuah

class. Selain stuktur data, diperlukan variabel untuk menampung prefix path dari

FP-Tree dan conditional FP-Tree yang terbentuk. Gambar 5.7 merupakan

potongan kode class tree.

Sort

64

1. class Tree { 2. public $count; //jumlah kemunculan

3. public $child; //daftar node child

4. public $label; //label node

5. public $parent; // node parent

6. public $path; //node selanjutnya

7. public $parent_label; //label node parent

8. function __construct($id,$node_parent){...}

9. function IncCount() {...}

10. function ReadCount() {...}

11. function ReadLabel() {...}

12. function AddChild($addr,$id) {...}

13. function PathUpdate($path_point) {...}

14. function ChildSort($order) {...}

15. }

Gambar 5.7 Potongan kode struktur data Tree

Penyimpanan child pada tree menggunakan array dengan bentuk

$parent[id item] = “alamat”. Pembangunan FP-Tree dimulai dari penentuan root

yaitu item yang dipilih oleh pengguna. Setelah root terbentuk, setiap data

transaksi akan dibaca dan dimasukkan ke dalam tree. Potongan kode

pembentukan data transaksi ditunjukkan oleh Gambar 5.8.

1. $query = "select tid from transaction_id where tid like '% $tid %'";

2. $tid_row = mysql_query($query,$database);

3. $fp_tree = new Tree($tid,"root");

4. while ($tid_list = mysql_fetch_row($tid_row)){

5. $tid_array = explode(" ",trim($tid_list[0]));

6. $tid_array = tid_sort($tid_array,$frequent_item);

7. $fp_current = $fp_tree;

8. foreach ($tid_array as $id){

9. if ($id == $fp_current->label){

10. $fp_current->IncCount();

11. }

12. else if ($fp_current->child[$id] == null){

13. $fp_current->child[$id] = new

Tree($id,$fp_current);

14. $fp_current = $fp_current->child[$id];

15. $fp_current->IncCount();

16. }

17. else{

18. $fp_current = $fp_current->child[$id];

19. $fp_current->IncCount();

20. }

21. }

22. }

23. $prefix_path =

reorder_child($fp_tree,$frequent_item,$prefix_path);

Gambar 5.8 Potongan kode pembentukan FP-Tree

65

Untuk memasukkan data transaksi, diperlukan pemecahan data transaksi

ke dalam bentuk kumpulan item. Setiap item dimasukkan ke dalam node yang

menyimpan jumlah kemunculan, parent, child, dan path. Path merupakan

penunjuk ke node terdekat berikutnya yang memiliki item sama. Node baru akan

dibentuk bila node item yang dibaca belum belum terdapat pada tree. Jika node

item sudah ada, maka akan dilakukan penambahan jumlah yang dari node

tersebut. Penambahan jumlah node dilakukan pada fungsi IncCount().

Pembentukan FP-Tree berakhir pada pembuatan tabel prefix path.

Pengisian tabel prefix path serta pengurutan child setiap node akan dilakukan pada

fungsi reorder_child(). Hal tersebut dilakukan karena prefix path setiap node

adalah node paling kiri pada tree sehingga pembentukan prefix path baru

dimungkinkan pada saat item telah diurutkan. Pemindaian data transaksi untuk

kedua kalinya ditunjukkan oleh baris 2 pada Gambar 5.8.

Data transaksi yang dipilih merupakan data transaksi yang memiliki id

dokumen yang dipilih oleh pengguna. Dengan menggunakan frequent item yang

didapatkan pada sub bab 4.2.2, data transaksi akan dimasukkan perbaris ke dalam

FP-Tree setelah diurutkan dan diseleksi sesuai dengan urutan dan daftar frequent

item. Item yang tidak terdapat pada frequent item akan dibuang dari data transaksi

yang akan dimasukkan ke dalam FP-Tree. Proses pengurutan dan seleksi

dilakukan dalam fungsi tid_sort() baris 6 pada Gambar 5.8.

Proses penambahan jumlah kemunculan node (count) dibagi menjadi 3

kondisi yaitu kondisi dimana item tersebut merupakan root (baris 9 Gambar 5.8),

item merupakan child baru (baris 12 Gambar 5.8) dan item merupakan child (baris

17 Gambar 5.8). Proses pembentukan FP-Tree dengan memasukkan data transaksi

1, 2, 4, 5, dan 6 dapat dilihat pada Gambar 5.9.

66

Label : 1

Count : 1

Parent : root

Label : 20

Count : 1

Parent : 1

Label : 1

Count : 2

Parent : root

Label : 20

Count : 1

Parent : 1

Label : 4

Count : 1

Parent : 1

Label : 3

Count : 1

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 2

Count : 1

Parent : 20

Label : 1

Count : 4

Parent : root

Label : 20

Count : 1

Parent : 1

Label : 4

Count : 2

Parent : 1

Label : 3

Count : 2

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 2

Count : 1

Parent : 20

Label : 1

Count : 3

Parent : root

Label : 20

Count : 1

Parent : 1

Label : 4

Count : 1

Parent : 1

Label : 3

Count : 1

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 2

Count : 1

Parent : 20

Label : 1

Count : 4

Parent : root

Label : 20

Count : 1

Parent : 1

Label : 4

Count : 3

Parent : 1

Label : 3

Count : 3

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 2

Count : 1

Parent : 20

Label : 2

Count : 1

Parent : 1

1

2

56

4

Gambar 5.9 Pembentukan FP-Tree data transaksi 1, 2, 4, 5, dan 6

Sedangkan bentuk FP-Tree saat seluruh data transaksi telah dimasukkan

pada Gambar 5.10. Setelah pembentukan FP-Tree, proses selanjutnya merupakan

proses pengurutan child berdasarkan urutan frequent itemset dan pembentukan

prefix path. Gambar 5.11 merupakan FP-Tree akhir disertai dengan prefix path

dari FP-Tree tersebut.

67

Label : 1

Count : 6

Parent : root

Label : 20

Count : 1

Parent : 1

Label : 4

Count : 4

Parent : 1

Label : 3

Count : 3

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 2

Count : 1

Parent : 20

Label : 2

Count : 1

Parent : 1

Gambar 5.10 FP-Tree semua data transaksi

Label : 1

Count : 6

Parent : root

Label : 4

Count : 4

Parent : 1

Label : 3

Count : 3

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 2

Count : 1

Parent : 20

Label : 2

Count : 1

Parent : 1

Label : 20

Count : 1

Parent : 1

Label : 1

Count : 6

Label : 4

Count : 4

Label : 3

Count : 3

Label : 20

Count : 2

Label : 2

Count : 2

Gambar 5.11 Implementasi FP-Tree akhir

68

5.2.3 Conditional FP-Tree

Berbeda dengan pembentukan FP-Tree yang dibentuk menggunakan data

transaksi, pembentukan conditional FP-Tree dilakukan dengan memecah FP-Tree

ke bagian yang lebih kecil sesuai dengan item yang ada pada tabel prefix path.

Potogan kode pembentukan conditional FP-Tree dapat dilihat pada Gambar 5.12.

1. while ($prefix_path_temp != null){

2. $parent_node = explode(" ",$prefix_path_temp->parent_label);

3. foreach ($parent_node as $label){

4. if ($conditional_fp_tree == null){

5. $conditional_fp_tree = new Tree($label,"root");

6. $conditional_fp_tree->count = $prefix_path_temp->count;

7. $conditional_temp = $conditional_fp_tree;

8. $conditional_prefix[$label]["id"] = $conditional_fp_tree;

9. $conditional_prefix[$label]["path"] = $conditional_fp_tree;

10. $conditional_prefix[$label]["count"] = $prefix_path_temp-

>count;

11. }

12. else if ($conditional_fp_tree->label == $label){

13. $conditional_fp_tree->count += $prefix_path_temp->count;

14. $conditional_prefix[$label]["count"] += $prefix_path_temp-

>count;

15. $conditional_temp = $conditional_fp_tree;

16. }

17. else{

18. if ($conditional_temp->child[$label] != null){

19. $conditional_temp->count += $prefix_path_temp ->count;

20. $conditional_prefix[$label]["count"] +=

$prefix_path_temp->count;

21. $conditional_temp = $conditional_temp->child[$label];

22. }

23. else{

24. $conditional_temp->child[$label] =

new Tree($label,$conditional_temp);

25. $conditional_temp = $conditional_temp ->child[$label];

26. $conditional_temp->count += $prefix_path_temp->count;

27. if ($conditional_prefix[$label] == null){

28. $conditional_prefix[$label]["id"] = $conditional_temp;

29. $conditional_prefix[$label]["path"] =

$conditional_temp;

30. }

31. else{

32. $conditional_prefix[$label]["path"]->path =

$conditional_temp;

33. $conditional_prefix[$label]["path"] =

$conditional_temp;

34. }

35. $conditional_prefix[$label]["count"] = $prefix_path_temp-

>count;

36. }

37. }

38. }

39. $prefix_path_temp = $prefix_path_temp->path;

40. }

41. $keypp = array_keys($conditional_prefix);

Gambar 5.12 Potongan kode pembentukan conditional FP-Tree

69

Pembentukan conditional FP-Tree dimulai dengan penentuan item yang

digunakan sebagai acuan. Item tersebut adalah item yang kemunculannya paling

sedikit atau dapat pula dikatakan item yang berada pada posisi paling bawah

dalam tabel prefix path. Cabang yang dipertahankan adalah yang berakhir pada

node yang ditentukan dan selain cabang tersebut akan dihapus dari conditional

FP-Tree. Prefix path untuk conditional FP-Tree disebut conditional prefix path.

Variabel $conditional_prefix merupakan variabel yang digunakan untuk

menyimpan conditional prefix path. Variabel ini meyimpan jumlah dari item, path

node pertama, dan juga label dari item tersebut. Penggunaan FP-Tree untuk

pembentukan conditional FP-Tree hanya dilakukan apabila item acuan merupakan

pecahan langsung dari FP-Tree atau dengan kata lain item acuan terdapat pada

prefix path. Pembentukan conditional FP-Tree dari FP-Tree yang terdapat pada

sub bab 5.2.2 ditunjukkan oleh Gambar 5.13 hingga Gambar 5.16.

Label : 1

Count : 2

Parent : root

Label : 4

Count : 2

Parent : 1

Label : 3

Count : 2

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 2

Count : 1

Parent : 20

Label : 2

Count : 2

Parent : 1

1 : 2

4 : 2

3 : 2

20 : 1

2 : 2

Label : 1

Count : 2

Parent : root

Label : 4

Count : 2

Parent : 1

Label : 3

Count : 2

Parent : 4

1 : 2

4 : 2

3 : 2

Label : 1

Count : 2

Parent : root

Label : 4

Count : 2

Parent : 1

1 : 2

4 : 2

Gambar 5.13 Conditional FP-Tree untuk item id 2

70

Label : 1

Count : 2

Parent : root

Label : 4

Count : 1

Parent : 1

Label : 3

Count : 1

Parent : 4

Label : 20

Count : 1

Parent : 3

Label : 20

Count : 1

Parent : 1

1 : 2

4 : 1

3 : 1

20 : 2

Label : 1

Count : 2

Parent : root

Label : 4

Count : 1

Parent : 1

Label : 3

Count : 1

Parent : 4

1 : 2

4 : 1

3 : 1

Gambar 5.14 Conditional FP-Tree untuk item id 20

Jika item acuan merupakan pecahan conditional FP-Tree atau dengan kata

lain merupakan item yang diambil dari conditional prefix path, maka Tree yang

digunakan untuk pembentukan conditional FP-Tree adalah conditional FP-Tree

item sebelumnya. Pembentukan conditional FP-Tree didasarkan pada FP-Tree

dimana node yang tidak terkait dan tidak memenuhi minimum support akan

dihapus.

Label : 1

Count : 3

Parent : root

Label : 4

Count : 3

Parent : 1

Label : 3

Count : 3

Parent : 4

1 : 3

4 : 3

3 : 3

Label : 1

Count : 3

Parent : root

Label : 4

Count : 3

Parent : 1

1 : 3

4 : 3

Gambar 5.15 Conditional FP-Tree untuk item id 3

71

Label : 1

Count : 4

Parent : root

Label : 4

Count : 4

Parent : 1

1 : 4

4 : 4

Gambar 5.16 Conditional FP-Tree untuk item id 4

5.2.4 Ekstraksi itemset

Ektraksi itemset juga merupakan bagian dari proses pembentukan

conditional FP-Tree. Proses ini dilakukan dengan memeriksa semua item pada

tabel conditional prefix path yang terbentuk pada saat pembentukan conditional

FP-Tree. Jika jumlah item yang membentuk conditional FP-Tree melebihi jumlah

minimum support, maka item tersebut merupakan bagian dari frequent itemset.

Ekstraksi itemset dimasukkan ke dalam proses pembentukan conditional FP-Tree

karena untuk meneruskan proses rekursif pembentukan conditional FP-Tree

diperlukan jumlah item yang melebihi minimum support sehingga pembentukan

conditional FP-Tree tidak sia-sia. Jika item tersebut merupakan bagian dari

frequent itemset, maka conditional FP-Tree akan dibentuk kembali berdasarkan

condtional FP-Tree yang telah digunakan sebelumnya. Gambar 5.17 merupakan

potongan kode proses ekstraksi itemset.

1. for ($i = count($conditional_prefix)-1;$i >= 1;$i--){ 2. if ($conditional_prefix[$keypp[$i]]["count"] >=

$minimum_support){

3. $fi_temp = $keypp[$i]." ".$fi;

4. $fi_list[count($fi_list)] = $fi_temp;

5. $fi_list = create_conditional_fp_tree

($conditional_prefix[$keypp[$i]]

["id"],$fi_temp,$fi_list);

6. }

7. } 8. return $fi_list;

Gambar 5.17 Potongan kode ekstraksi itemset

Dengan contoh pada sub bab 5.2.1 hingga sub bab 5.2.3, frequent itemset

yang diproses pertama adalah item dengan id 2. Conditional FP-Tree item id 2

ditunjukkan oleh Gambar 5.13. Pada gambar kiri menunjukkan conditional FP-

72

Tree awal item 2. Lalu item 2 akan dihilangkan pada pembentukan conditional

FP-Tree untuk itemset “2, 20”. Dengan count yang lebih kecil dari minimum

support, maka itemset “2, 20” bukan bagian dari frequent itemset. Oleh karena itu,

proses pembentukan conditional FP-Tree yang mengandung item 2 dan 20 tidak

dilakukan. Gambar 5.13 kanan atas merupakan conditional FP-Tree untuk itemset

“2, 3” dan Gambar 5.13 kanan bawah untuk itemset “2, 3, 4”. Penggalian tidak

dilanjutkan hingga root (item id 1) karena root merupakan item yang digunakan

sebagai acuan penggalian. Proses yang ditunjukkan dengan Gambar 5.14, Gambar

5.15, dan Gambar 5.16 merupakan penggalian itemset yang secara garis besar

sama dengan proses yang dilakukan pada Gambar 5.13. Dari conditional FP-Tree

akan didapatkan frequent itemset dengan urutan penggalian ditunjukkan oleh

Gambar 5.18.

5.3 Implementasi Cosine Similarity

Perhitungan kemiripan antar dokumen dimulai dengan perhitungan dot

product. Dot product dihitung dengan menambahkan semua hasil perkalian antara

term dokumen A dan term dokumen B yang bersesuaian. Setelah dot product

didapatkan, dot product lalu dibagi dengan hasil perkalian dari jumlah

kemunculan semua term pada dokumen A dan dokumen B. Nilai similaritas

disajikan dalam bentuk persentase untuk memudahkan pengguna. Untuk

menyajikan hasil dalam bentuk persentase, maka hasil perhitungan cosine

No Frequent Itemset

1 2 1

2 3 2 1

3 4 3 2 1

4 4 2 1

5 20 1

6 3 1

7 4 1

1 2 1

20 1

3 1

4 1

3 2 1

4 2 1

4 3 2 1

Gambar 5.18 Urutan penggalian itemset

73

similarity dikalikan 100. Dot product ditunjukkan oleh baris ke-1 sampai ke-5

pada Gambar 5.19. Perhitungan akhir ditunjukkan pada baris 6 hingga 15.

1. foreach ($term1 as $key => $val){ 2. if ($term2[$key] != null){

3. $dot += $term1[$key]*$term2[$key];

4. }

5. } 6. foreach ($term1 as $key => $val){ 7. $count_term1 += $term1[$key]*$term1[$key];

8. } 9. $count_term1 = sqrt($count_term1); 10. foreach ($term2 as $key => $val){

11. $count_term2 += $term2[$key]*$term2[$key];

12. }

13. $count_term2 = sqrt($count_term2);

14. $count_term = $count_term1 * $count_term2;

15. $similarity = ($dot/$count_term)*100;

16. return $similarity;

Gambar 5.19 Potongan kode perhitungan cosine similarity

5.4 Implementasi Penentuan Rekomendasi

Penentuan rekomendasi dilakukan dengan membandingkan dokumen

acuan dengan dokumen pembanding berdasarkan keyword. Perbandingan ini

mencari nilai similaritas dengan metode cosine similarity. Dokumen acuan ($id)

akan dibandingkan dengan dokumen yang terdapat pada frequent itemset.

Frequent itemset berbentuk daftar itemset. Frequent itemset didapatkan dari data

transaksi yang diolah pada algoritma penggalian frequent itemset. Penentuan

urutan item pada frequent itemset dilakukan berdasarkan jumlah item terbanyak

tanpa memperhatikan jumlah kemunculan item. Untuk melakukan pengurutan,

diperlukan pemecahan masing-masing frequent itemset ke dalam bentuk array

sehingga jumlah item dapat dihitung. Proses pemecahan ini dapat dilihat pada

baris 2 hingga 4 pada Gambar 5.20.

Setelah jumlah item yang disimpan pada variabel $count_id didapatkan,

selanjutnya frequent itemset akan diurutkan berdasarkan variabel $count_id

dengan menggunakan fungsi array_multisort(). Setelah pengurutan, proses akan

dilanjutkan dengan perhitungan similaritas dokumen acuan terhadap setiap item

yang ada pada frequent itemset.

74

1. If (count($fi_list)>0){ 2. foreach ($fi_list as $key => $f_id){ 3. $count_id[] = count(explode(" ",trim($f_id))); 4. } 5. array_multisort($count_id, SORT_DESC, $fi_list); 6. foreach ($fi_id as $key => $f_id){ 7. $cosine[$f_id] = calculate_term($id,$f_id,$database); 8. if ($cosine[$f_id] >= $minimum_similarity){ 9. $rekomendasi[] = $f_id; 10. if (count($rekomendasi)>=$jumlah_rekomendasi){

11. break;

12. }

13. }

14. }

15. }

16. if (count($rekomendasi)<$jumlah_rekomendasi){

17. $query = "select id from document where judul like

'%$keyword%' or abstrak like '%$keyword%'";

18. $doc_search = mysql_query($query,$database);

19. while($doc_row = mysql_fetch_row($doc_search)){

20. if ((!in_array($doc_row[0],$rekomendasi)) &&

($doc_row[0]!=$id)){

21. $cosine_doc =

calculate_term($id,$doc_row[0],$database);

22. if ($cosine_doc >= $minimum_similarity){

23. $rekomendasi[] = $doc_row[0];

24. if (count($rekomendasi)>=$jumlah_rekomendasi){

25. break;

26. }

27. }

28. }

29. }

30. }

31. $query = "select * from document where id='$id'";

32. $doc_row = mysql_query($query,$database);

33. if (mysql_num_rows($doc_row) > 0){

34. while ($doc_list = mysql_fetch_row($doc_row)){

35. $doc_id = $doc_list[0];

36. $doc_nama = $doc_list[1];

37. $doc_judul = $doc_list[2];

38. $doc_abstrak = $doc_list[3];

39. $doc_path = $doc_list[4];

40. }

41. }

Gambar 5.20 Potongan kode proses rekomendasi

Dengan menggunakan frequent itemset yang didapat pada sub bab 5.2.4

maka urutan frequent itemset yang didapatkan ditunjukkan oleh Tabel 5.2.

Frequent itemset diurutkan dengan menempatkan jumlah item yang lebih banyak

pada posisi lebih tinggi agar kumpulan item rekomendasi dapat saling terasosiasi

dengan item rekomendasi selanjutnya. Hal ini akan menguntungkan dalam

pencarian rekomendasi dengan jumlah terbatas.

75

Tabel 5.2 Urutan frequent itemset

No Frequent Itemset Jumlah item

1 4 3 2 1 4

2 3 2 1 3

3 4 2 1 3

4 20 1 3

5 2 1 2

6 3 1 2

7 4 1 2

Frequent itemset yang didapatkan lalu diseleksi agar sistem tidak

mengulangi perbandingan yang sama. Sehingga, dokumen acuan akan

dibandingkan dengan dokumen yang memiliki id 4, 3, 2, 1, dan 20 secara

berturut-turut. Daftar dokumen ini dimasukkan pada variabel $fi_id dan proses

perbandingan ditunjukkan oleh baris 6 hingga baris 14 pada Gambar 5.20.

Apabila dokumen dengan similaritas melebihi ambang batas kurang dari

jumlah rekomendasi yang diharapkan, maka proses rekomendasi dilakukan

dengan melakukan perhitungan similaritas dokumen acuan dengan dokumen hasil

pencarian yang memanfaatkan keyword yang dimasukkan pengguna. Perhitungan

similaritas dilakukan pada fungsi calculate_term(). Proses perbandingan dengan

dokumen hasil pencarian ditunjukkan oleh baris 16 hingga 30 pada Gambar 5.20.

Id dokumen-dokumen melebihi ambang batas yang ditentukan disimpan dalam

variabel $rekomendasi. Id pada variabel rekomendasi selanjutnya digunakan

untuk pencarian atribut dokumen pada basis data. Proses pencarian ditunjukkan

pada baris 31 hingga 41 pada Gambar 5.20. Hasil pencarian atribut dokumen

rekomendasi akan disajikan dalam bentuk daftar dokumen. Antar muka

rekomendasi ditunjukkan oleh Gambar 5.21.

76

Gambar 5.21 Antar muka halaman rekomendasi

77

BAB VI

HASIL DAN PEMBAHASAN

6.1 Data Pengujian

Pengujian hybrid recommendation system memanfaatkan penggalian

frequent itemset dan perbandingan keyword memerlukan 3 set data yang berupa

100 dokumen ilmiah berbahasa Indonesia, stopword bahasa Indonesia, dan data

transaksi untuk melakukan penggalian frequent itemset.

6.1.1 Dokumen pengujian

Dokumen untuk set data merupakan 95 dokumen ilmiah pada bidang ilmu

komputer Prosiding Semantik 2012 dan 5 dokumen ilmiah bidang ilmu komputer

Prosiding Senaputro 2012. Untuk rincian dokumen yang digunakan dapat dilihat

pada Lampiran 1. Pemilihan dokumen dilakukan agar ektraksi keyword memiliki

output dengan kriteria dan bentuk yang sama. Untuk dokumen yang diuji

berjumlah 9 dokumen yang dapat dilihat pada Tabel 6.1. Dokumen dipilih karena

similaritas dengan dokumen lain yang melebihi 50% berjumlah lebih dari atau

sama dengan 4. Perhitungan similaritas antara dokumen dapat dilihat pada

Lampiran 2.

6.1.2 Data transaksi

Pembentukan data transaksi dilakukan dengan cara seperti yang

ditunjukkan pada sub bab 4.5. Jumlah panjang deret item maksimal yang

ditentukan adalah 20 dan minimal 1. Item akan dimasukkan apabila similaritas

antara item melebih 30 %. Similarias antar dokumen dapat dilihat pada Lampiran

2. Data transaksi hanya dibentuk untuk 9 item yang akan dilibatkan dalam

pengujian dan 2 item acak. Data transaksi yang dibentuk untuk masing-masing

item tersebut berjumlah 100 data transaksi sehingga total data transaksi yang

terlibat berjumlah 1100 data transaksi. Akan tetapi, dalam hasil pembentukan data

transaksi tidak terdapat deret item berjumlah 20 dan jumlah data transaksi yang

terlibat pada masing-masing item uji melebihi 100 data transaksi. Jumlah data

78

transaksi yang mengandung masing-masing data uji dapat dilihat pada Tabel 6.2.

Data transaksi dapat dilihat pada Lampiran 3.

Tabel 6.1 Dokumen uji

No ID

Dokumen Judul Dokumen

1. 21 Membangun Sistem Informasi Pembelian Tunai Pada

Apotik Cipta Dengan Object Oriented Methodology

2. 29 Penerapan Enterprise Application Integration Sebagai

Model Integrasi Sistem Informasi di Universitas Katolik

Parahyangan

3. 33 Rancang Bangun Sistem Informasi Pelayanan Kesehatan

Dengan Metodologi Berorientasi Obyek : Studi Kasus

SMK Telkom Sandhy Putra Jakarta

4. 37 Sistem Informasi Geografis Industri di Kabupaten Kudus

5. 59 Rancang Bangun Sistem Informasi Administrasi

Pemeriksaan Jentik Pusat Kesehatan Masyarakat

(Puskesmas) Studi Kasus Puskesmas Ciledug

6. 63 Analisa dan Perancangan Sistem Informasi Administrasi

Rawat Jalan Pada Klinik dengan Metodologi Object

Oriented Studi Kasus : Klinik Maharani Tangerang

7. 68 Implementasi Web-Service pada Sistem Pelayanan

Perijinan Terpadu Satu Atap di Pemerintah Kota Palu

8. 77 Pengembangan Aplikasi Audit Sistem Informasi

Berdasarkan Cobit Framework di Rumah Sakit XXX

9. 91 Rancang Bangun Sistem Informasi Industri Kreatif

Bidang Penyewaan Sarana Olahraga

Tabel 6.2 Jumlah data transaksi masing-masing dokumen uji

ID Dokumen Jumlah Data Transaksi

21 245

29 239

33 233

37 231

59 240

63 248

68 233

77 253

91 227

79

6.1.3 Stopword

Daftar stopword dapat dilihat pada Lampiran 4. Stopword yang digunakan

merupakan stopword yang diusulkan oleh Tala dalam penelitian pengembangan

stemmer untuk bahasa Indonesia.

6.2 Metode Pengumpulan Data

Pengumpulan data dokumen relevan terhadap dokumen acuan dilakukan

dengan menggunakan umpan balik dari pengguna. Pengguna akan diberikan

seluruh dokumen uji dan beberapa set dokumen. Pengguna mencari dokumen

relevan terhadap dokumen uji yang ada pada Tabel 6.1 pada set dokumen. Hasil

umpan balik pengguna dapat dilihat pada Lampiran 5.

6.3 Skenario Pengujian

Pengujian dilakukan menggunakan minimum similarity 20% hingga 70%

dan minimum support 5% hingga 25% dengan peningkatan setiap 5%. Jumlah

rekomendasi maksimal akan digunakan untuk pengujian precision, recall, F-

measure, dan mean average precision. Perhitungan nilai precision juga

menggunakan jumlah rekomendasi terbatas. Sistem akan diuji dalam kasus biasa

dan juga kasus coldstart. Kasus biasa merupakan pengujian dengan menggunakan

data transaksi untuk penggalian frequent itemset. Sedangkan untuk kasus

coldstart, data transaksi akan dikosongkan. Dokumen yang sepatutnya

direkomendasikan (dokumen relevan) ditentukan secara manual oleh pengguna

sistem.

6.4 Hasil Pengujian

Pengujian dilakukan dengan menghitung precision, recall, F-measure, dan

mean average precission untuk kasus biasa dan kasus coldstart. Pengujian ini

dipilih karena dapat dilakukan tanpa melibatkan data peringkat sebagai variabel

uji. Nilai precision, recall, dan F-measure dihitung dengan hanya melihat

keseluruhan rekomendasi untuk masing-masing item tanpa memperhatikan urutan

item rekomendasi yang diberikan oleh sistem (macro precision). Sedangkan pada

80

mean average precision akan dihitung nilai precision masing-masing item yang

direkomendasikan dengan memperhatikan urutan item rekomendasi yang

diberikan oleh sisitem (micro precision). Jumlah rekomendasi sebanyak 5

dokumen digunakan untuk perhitungan nilai precision jumlah rekomendasi

terbatas.

6.4.1 Precision

Nilai precision digunakan untuk menunjukkan ketepatan rekomendasi

yang dihasilkan oleh recommendation system. Perhitungan nilai precision dapat

dilihat pada sub bab 3.5.1. Komposisi perhitungan precision untuk item ID 91

dengan mimimum similarity 40%, minimum support 20% dan jumlah rekomendasi

maksimal dapat dilihat pada Tabel 6.3.

Tabel 6.3 Komposisi perhitungan item ID 91

ID Relevan

Item

ID Retrived

Item

ID Hit

Item

8 8 8

11 21 21

21 29 33

33 33 37

37 37 41

41 45 45

45 46 59

54 59 63

59 63 77

63 67

77 68

80 72

77

1

3

20

41

50

57

Rekomendasi yang dihasilkan oleh sistem merupakan semua rekomendasi

(all recommendation). Hit adalah item rekomendasi benar yang direkomendasikan

oleh sistem (good recommendation). Dengan demikian, perhitungan untuk nilai

81

precision item 91 dengan minimum similarity 40% persamaan (6.1). Tabel 6.4

menunjukkan nilai precision recommendation system yang dibangun untuk semua

data uji pada Tabel 6.1.

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =9

19= 0.474 (6.1)

Tabel 6.4 Precision minimum similarity 40% dengan minimum support 20%

ID Item Hit Retrived Precision

21 7 15 0.467

29 3 14 0.214

33 8 11 0.727

37 1 14 0.071

59 9 18 0.5

63 6 13 0.462

68 5 15 0.333

77 6 15 0.4

91 9 19 0.474

Rata-rata 0.405

Nilai precision untuk jumlah rekomendasi maksimal dengan minimum

similarity dan minimum support yang berbeda-beda ditunjukkan oleh Tabel 6.5

serta Gambar 6.1. Tabel 6.5 menunjukkan adanya peningkatan nilai precision saat

nilai minimum support dan minimum similarity ditingkatkan.

Tabel 6.5 Nilai precision jumlah rekomendasi maksimal

Minimum support (%)

Coldstart

5 10 15 20 25

Min

imu

m s

imil

ari

ty (

%)

20 0.147 0.172 0.207 0.289 0.289 0.289

25 0.152 0.176 0.212 0.302 0.303 0.303

30 0.17 0.181 0.217 0.315 0.317 0.317

35 0.247 0.25 0.269 0.339 0.334 0.334

40 0.329 0.33 0.351 0.405 0.394 0.394

45 0.433 0.433 0.437 0.453 0.449 0.449

50 0.705 0.705 0.716 0.703 0.711 0.711

55 0.892 0.892 0.892 0.836 0.836 0.836

60 0.667 0.667 0.667 0.667 0.667 0.667

65 0.667 0.667 0.667 0.667 0.667 0.667

70 0.333 0.333 0.333 0.333 0.333 0.333

82

Peningkatan ini terjadi karena berkurangnya jumlah rekomendasi yang

dihasilkan saat nilai ambang batas tersebut ditingkatkan. Nilai precision tertinggi

dicapai pada saat minimum support 5% hingga 15% untuk minimum similarity

55%.

Gambar 6.1 Grafik nilai precision jumlah rekomendasi maksimal

Pada kasus coldstart, minimum support tidak mempengaruhi peningkatan

atau penurunan nilai precison. Ini disebakan karena penggalian frequent itemset

tidak dapat digunakan saat terjadinya kasus coldstart. Perbedaan nilai precision

hanya disebabkan oleh peningkatan minimum similarity. Nilai precision pada

kasus coldstart dengan minimum similarity 50% sama dengan nilai precision

kasus biasa dengan minimum support 25% dan minimum similarity 50%. Untuk

minimum similarity kurang dari 50%, nilai precision pada kasus biasa relatif lebih

tinggi dari kasus coldstart saat minimum support kasus biasa sebesar 20%. Hal ini

disebabkan oleh adanya peningkatan jumlah item hit yang direkomendasikan

karena penggalian frequent itemset.

Hasil berbeda terlihat pada pengujian dengan jumlah rekomendasi terbatas.

Dengan minimum support 5% dan 20%, nilai precision kasus biasa relatif lebih

83

tinggi untuk semua minimum similarity yang digunakan. Hal ini disebabkan

karena adanya perbedaan urutan rekomendasi yang didapatkan antara penggalian

frequent itemset dan perbandingan dokumen biasa. Selain itu, penggunaan

frequent itemset juga mampu menemukan item hit lebih banyak saat dikenakan

minimum similarity rendah. Tabel 6.6 menunjukkan nilai precision jumlah

rekomendasi terbatas. Gambar 6.2 menunjukkan bahwa nilai precision relatif

meningkat untuk minimum similarity yang lebih besar.

Tabel 6.6 Nilai precision jumlah rekomendasi terbatas

Minimum support (%)

Coldstart

5 10 15 20 25

Min

imu

m s

imil

ari

ty (

%)

20 0.311 0.178 0.244 0.422 0.289 0.178

25 0.311 0.178 0.244 0.422 0.289 0.178

30 0.311 0.178 0.244 0.422 0.289 0.2

35 0.444 0.222 0.244 0.444 0.311 0.222

40 0.444 0.311 0.333 0.467 0.356 0.356

45 0.467 0.333 0.333 0.467 0.4 0.422

50 0.728 0.683 0.683 0.731 0.687 0.687

55 0.885 0.907 0.907 0.852 0.852 0.852

60 0.667 0.667 0.667 0.667 0.667 0.667

65 0.667 0.667 0.667 0.667 0.667 0.667

70 0.333 0.333 0.333 0.333 0.333 0.333

Seperti yang terjadi pada jumlah rekomendasi maksimal, nilai precision

tertinggi pada jumlah rekomendasi terbatas dicapai pada saat minimum support

10% dan 15%. Nilai precision kasus biasa pada jumlah rekomendasi terbatas

kadang kala lebih tinggi dibandingkan pada rekomendasi maksimal. Akan tetapi,

nilai precision kasus coldstart pada rekomendasi terbatas selalu lebih rendah

dibandingkan nilai precision kasus coldstart dengan jumlah rekomendasi

maksimal.

84

Gambar 6.2 Grafik nilai precision jumlah rekomendasi terbatas

6.4.2 Recall

Recall merupakan nilai yang digunakan sebagai ukuran jumlah item

relevan yang dihasilkan recommendation system. Perhitungan nilai recall

ditunjukkan pada sub bab 3.5.2. Perhitungan recall melibatkan hit dan

rekomendasi yang benar (all good recommendation). Perhitungan recall untuk

item 91 dengan komposisi perhitungan pada Tabel 6.3 ditunjukkan pada

persamaan (6.2).

Tabel 6.7 Recall minimum similarity 40% dengan minimum support 20%

ID Item Hit Relevan Recall

21 7 11 0.636

29 3 4 0.75

33 8 12 0.667

37 1 3 0.333

59 9 11 0.818

63 6 12 0.5

68 5 8 0.625

77 6 10 0.6

91 9 12 0.75

Rata-rata 0.668

𝑅𝑒𝑐𝑎𝑙𝑙 =9

12= 0.75 (6.2)

85

Perhitungan recall untuk semua dokumen uji dengan minimum similarity

40% dan minimum support 20% ditunjukkan oleh Tabel 6.7. Tabel 6.8 dan

Gambar 6.3 menunjukkan nilai recall untuk penggunaan minimum similarity dan

minimum support yang berbeda-beda untuk semua dokumen uji. Nilai recall

untuk minimum similarity yang meningkat cenderung menurun pada kasus biasa

dan kasus coldstart jumlah rekomendasi maksimal. Hal yang sama terjadi saat

minimum support ditingkatkan. Penurunan nilai recall terjadi karena

berkurangnya item retrieve yang disertai dengan berkurangnya item hit yang

dihasilkan oleh sistem. Dari Tabel 6.8 dapat dilihat bahwa nilai recall kasus

coldstart selalu lebih rendah dari nilai recall kasus biasa untuk penggunaan

minimum similarity yang berbeda-beda. Ini menunjukkan bahwa penggalian

frequent itemset dapat menemukan item hit yang tidak dapat ditemukan pada saat

sistem menggunakan perbandingan keyword saja.

Tabel 6.8 Nilai recall jumlah rekomendasi maksimal

Minimum support (%)

Coldstart

5 10 15 20 25

Min

imu

m s

imil

ari

ty (

%)

20 0.896 0.896 0.828 0.661 0.608 0.608

25 0.896 0.896 0.828 0.661 0.608 0.608

30 0.896 0.896 0.828 0.661 0.608 0.608

35 0.887 0.887 0.819 0.651 0.599 0.599

40 0.772 0.772 0.751 0.631 0.578 0.579

45 0.598 0.598 0.578 0.518 0.498 0.498

50 0.458 0.458 0.458 0.421 0.421 0.421

55 0.342 0.342 0.342 0.305 0.305 0.305

60 0.147 0.147 0.147 0.147 0.147 0.147

65 0.071 0.071 0.071 0.071 0.071 0.071

70 0.033 0.033 0.033 0.033 0.033 0.033

86

Gambar 6.3 Grafik nilai recall jumlah rekomendasi maksimal

Tabel 6.9 menunjukkan nilai recall jumlah rekomendasi terbatas. Hal

sebaliknya terjadi pada nilai recall jumlah rekomendasi terbatas. Peningkatan

minimum similarity dan minimum support cenderung meningkatkan nilai recall

hingga minimum similarity 50%. Akan tetapi, terlihat dari Gambar 6.4 bahwa nilai

recall pada minimum support 5% cenderung lebih tinggi dibandingkan minimum

support 10% dan 15%. Hal ini disebabkan oleh perbedaan hasil frequent itemset

yang didapatkan.

Tabel 6.9 Nilai recall jumlah rekomendasi terbatas

Minimum support (%)

Coldstart

5 10 15 20 25

Min

imu

m s

imil

ari

ty (

%)

20 0.155 0.101 0.129 0.209 0.153 0.101

25 0.155 0.101 0.129 0.209 0.153 0.101

30 0.155 0.101 0.129 0.209 0.153 0.11

35 0.217 0.12 0.129 0.218 0.163 0.119

40 0.218 0.16 0.17 0.246 0.183 0.183

45 0.229 0.172 0.171 0.245 0.223 0.255

50 0.392 0.391 0.391 0.383 0.363 0.363

55 0.323 0.333 0.333 0.296 0.296 0.296

60 0.147 0.147 0.147 0.147 0.147 0.147

65 0.071 0.071 0.071 0.071 0.071 0.071

70 0.033 0.033 0.033 0.033 0.033 0.033

87

Di sisi lain, seperti halnya pada jumlah rekomendasi maksimal, nilai recall

kasus biasa cenderung lebih tinggi dibandingkan dengan kasus coldstart. Berbeda

dengan nilai recall pada jumlah rekomendasi maksimal, nilai recall tertinggi pada

jumlah rekomendasi terbatas didapatkan pada saat nilai minimum similarity 50%.

Hal tersebut berlaku untuk kasus biasa maupun kasus coldstart.

Gambar 6.4 Grafik nilai recall rekomendasi terbatas

6.4.3 F-Measure

Nilai F-measure ditunjukkan pada sub bab 3.5.3. F-measure merupakan

nilai yang menunjukkan rata-rata harmonis antara precision dan recall.

Perhitungan nilai F-measure untuk item 91 dengan minimum similarity 40% dan

minimum support 20% ditunjukkan pada persamaan (6.3).

𝐹𝑚𝑒𝑎𝑠𝑢𝑟𝑒 = 2 ∙ 0.474 ∙0.75

0.474+0.75 = 0.581 (6.3)

Tabel 6.10 Merupakan hasil perhitungan nilai F-measure untuk item 91

dengan minimum similarity 40% dan minimum support 20%. Perhitungan F-

measure masing-masing dokumen uji pada kasus biasa ditunjukkan oleh Tabel

6.11 dan Gambar 6.5. Hasil perhitungan menunjukkan bahwa untuk minimum

similarity dan minimum support yang semakin meningkat, nilai F-measure yang

88

didapatkan juga cenderung meningkat. Peninglkatan terjadi hingga minimum

similarity hingga 50%. Peningkatan ini disebabkan oleh meningkatnya nilai

precision pada saat dilakukan peningkatan minimum similarity dan minimum

support tanpa disertai penurunan nilai recall yang dapat menurunkan nilai F-

measure.

Tabel 6.10 F-measure minimum similarity 40% dengan minimum support 20%

ID Item Precision Recall F-measure

21 0.467 0.636 0.539

29 0.214 0.75 0.333

33 0.727 0.667 0.696

37 0.071 0.333 0.117

59 0.5 0.818 0.621

63 0.462 0.5 0.48

68 0.333 0.625 0.434

77 0.4 0.6 0.48

91 0.474 0.75 0.581

Rata-rata 0.476

Tabel 6.11 Nilai F-measure jumlah rekomendasi maksimal

Minimum support (%)

Coldstart

5 10 15 20 25

Min

imu

m s

imil

ari

ty (

%)

20 0.249 0.284 0.325 0.391 0.381 0.381

25 0.255 0.289 0.331 0.403 0.393 0.393

30 0.28 0.295 0.337 0.414 0.405 0.405

35 0.376 0.38 0.394 0.433 0.416 0.416

40 0.444 0.446 0.46 0.476 0.45 0.45

45 0.47 0.47 0.467 0.463 0.452 0.452

50 0.521 0.521 0.528 0.504 0.507 0.507

55 0.479 0.479 0.479 0.434 0.434 0.435

60 0.236 0.236 0.236 0.236 0.236 0.236

65 0.128 0.128 0.128 0.128 0.128 0.128

70 0.06 0.06 0.06 0.06 0.06 0.06

Dari Tabel 6.11 dan Gambar 6.5 juga dapat dilihat nilai F-measure pada

kasus coldstart yang didapatkan oleh sistem yang dibangun. Peningkatan nilai F-

measure pada kasus coldstart terjadi saat minimum similarity yang digunakan

89

semakin besar. Seperti pada kasus biasa, peningkatan juga terjadi hingga minimum

similarity 50%.

Gambar 6.5 Grafik nilai F-measure jumlah rekomendasi maksimal

Nilai F-measure pada kasus biasa saat penggunaan minimum support 20%

cenderung lebih tinggi dibandingkan pada kasus coldstart. Hal ini disebabkan

karena nilai precision dan recall kasus biasa jumlah rekomendasi terbatas

cenderung lebh tinggi dibandingkan pada kasus coldstart. Untuk jumlah

rekomendasi terbatas ditunjukkan oleh Tabel 6.12 dan Gambar 6.6.

Tabel 6.12 Nilai F-measure jumlah rekomendasi terbatas

Minimum support (%)

Coldstart

5 10 15 20 25

Min

imu

m s

imil

ari

ty (

%)

20 0.201 0.124 0.164 0.273 0.195 0.124

25 0.201 0.124 0.164 0.273 0.195 0.124

30 0.201 0.124 0.164 0.273 0.195 0.137

35 0.285 0.151 0.164 0.286 0.208 0.15

40 0.286 0.205 0.219 0.311 0.236 0.236

45 0.301 0.221 0.22 0.31 0.276 0.299

50 0.482 0.467 0.467 0.48 0.453 0.453

55 0.461 0.474 0.474 0.43 0.43 0.43

60 0.236 0.236 0.236 0.236 0.236 0.236

65 0.128 0.128 0.128 0.128 0.128 0.128

70 0.06 0.06 0.06 0.06 0.06 0.06

90

Pada jumlah rekomendasi terbatas untuk kedua kasus uji, nilai F-measure

yang didapatkan lebih rendah dari jumlah rekomendasi maksimal. Seperti halnya

pada jumlah rekomendasi maksimal, nilai F-measure untuk kasus coldstart relatif

lebih rendah dari kasus biasa dengan minimum support 20%. Nilai F-measure

tertinggi untuk jumlah rekomendasi maksimal dan jumlah rekomendasi terbatas

didapatkan saat penggunaan minimum similarity 50%.

Gambar 6.6 Grafik nilai F-measure jumlah rekomendasi terbatas

6.4.4 Mean average precision

Average precision (AP) digunakan untuk menghitung rata-rata ketelitian

prediksi item yang direkomendasikan. Average precision dihitung dengan

memperhatikan precision setiap item hit yang direkomendasikan. Precision setiap

rekomendasi dihitung dengan memperhatikan jumlah rekomendasi (TP+FP) dan

jumlah hit (TP) saat item tersebut direkomendasikan. Komposisi perhitungan

average precision untuk item 91 dengan minimum similarity 40% dapat dilihat

pada Tabel 6.15. Perhitungan average precision item 91 ditunjukkan pada

persamaan (6.4).

𝐴𝑣𝑒𝑟𝑎𝑔𝑒 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =7.055907491

19= 0.587992291 (6.4)

91

Tabel 6.13 AP ID 9 minimum similarity 40% dengan minimum support 20%

ID

Rekomendasi

Jumlah

Hit

Urutan

Retrived

Micro

Precision

Hit

Precision

8 1 1 1 1

21 2 2 1 1

29 2 3 0.667

33 3 4 0.75 0.75

37 4 5 0.8 0.8

45 5 6 0.833 0.833

46 5 7 0.714

59 6 8 0.75 0.75

63 7 9 0.778 0.778

67 7 10 0.7

68 7 11 0.636

72 7 12 0.583

77 8 13 0.615 0.615

1 8 14 0.571

3 8 15 0.533

20 8 16 0.5

41 9 17 0.529 0.529

50 9 18 0.5

57 9 19 0.473

Total 7.056

Mean average precision (MAP) merupakan nilai rata-rata dari nilai

average precision untuk semua kasus uji. Perhitungan nilai MAP ada pada sub

bab 3.5.4. Untuk perhitungan nilai mean average precision item 91 dengan

minimum similarity 40% dan minimum support 20% ditunjukkan oleh Tabel 6.14.

Perhitungan mean average precision setiap item uji ditunjukkan oleh Tabel 6.15.

Pengujian dengan penggunaan minimum similarity dan minimum support yang

berbeda menunjukkan nilai mean average precision tidak selalu meningkat. Nilai

mean average precision maksimal diperoleh saat minimum similarity yang

digunakan sebesar 50% dan minimum support sebesar 5%. Nilai mean average

precision dengan minimum support 5% selalu lebih tinggi saat penggunaan

minimum similarity lebih besar dari 30%.

92

Tabel 6.14 MAP minimum similarity 40% dengan minimum support 20%

ID Item Total Hit Precision Relevan Average Precision

21 5.143 11 0.468

29 0.983 4 0.246

33 6.918 12 0.576

37 0.083 3 0.028

59 5.079 11 0.462

63 2.917 12 0.243

68 1.607 8 0.201

77 4.007 10 0.401

91 7.056 12 0.588

MAP 0.357

Tabel 6.15 Nilai mean average precision

Minimum support (%)

Coldstart

5 10 15 20 25

Min

imu

m s

imil

ari

ty (

%)

20 0.29 0.19 0.218 0.326 0.232 0.188

25 0.291 0.19 0.218 0.329 0.237 0.194

30 0.296 0.19 0.218 0.332 0.244 0.202

35 0.362 0.236 0.265 0.347 0.247 0.207

40 0.368 0.294 0.337 0.357 0.281 0.258

45 0.32 0.297 0.298 0.292 0.269 0.274

50 0.395 0.358 0.367 0.33 0.341 0.336

55 0.339 0.341 0.341 0.299 0.304 0.304

60 0.147 0.147 0.147 0.147 0.147 0.147

65 0.071 0.071 0.071 0.071 0.071 0.071

70 0.033 0.033 0.033 0.033 0.033 0.033

Nilai mean average precision cenderung selalu meningkat pada saat

penggunaan minimum similarity 10% dan pada kasus coldstart. Selain

penggunaan minimum similarity 10% dan kasus coldstart, nilai mean average

precision menurun saat minimum similarity 45%. Penurunan nilai mean average

precision saat minimum similarity 45% lebih disebabkan oleh berkurangnya item

hit yang didapatkan oleh sistem.

93

Pada kasus coldstart, nilai mean average precision cenderung lebih rendah

dari kasus biasa untuk semua minimum similarity. Pada pengunaan minimum

similarity 50%, kasus coldstart hanya unggul dari penggunaan minimum support

20%. Sedangkan pada saat penggunaan minimum support 10%, kasus coldstart

hanya unggul pada penggunaan minimum similarity 25% dan 30%. Grafik nilai

mean average precision dapat dilihat pda Gambar 6.7.

Gambar 6.7 Grafik nilai mean average precision

94

BAB VII

KESIMPULAN DAN SARAN

7.1 Kesimpulan

Setelah melakukan pengujian terhadap hybrid recommendation system

yang dibangun, maka dapat diperoleh kesimpulan sebagai berikut:

1. Hybrid recommendation system dapat dibangun dengan kombinasi

penggalian frequent itemset dan perbandingan similaritas keyword antara

dokumen.

2. Pada pengujian untuk kasus biasa untuk jumlah rekomendasi maksimal,

peningkatan nilai precision terjadi saat minimum similarity dan minimum

support ditingkatkkan. Hasil terbaik didapatkan saat minimum support

yang digunakan sebesar 20% dan minimum similarity 55%. Sedangkan

nilai recall cenderung menurun saat minimum similarity dan minimum

support ditingkatkkan. Hasil terbaik didapatkan pada saat minimum

similarity kurang dari 40% dan minimum support kurang dari 15%. Nilai

F-measure terbaik didapatkan saat penggunaan minimum similarity 50%.

Untuk nilai mean average precision, nilai terbaik didapatkan pada saat

minimum support 20% dan minimum similarity 50%.

3. Untuk rekomendasi terbatas, nilai precision tertinggi didapatkan pada

penggunaan minimum support 10% dan 15%. Penetapan minimum support

yang lebih tinggi hingga mencapai 55%, dapat meningkatkan nilai

precision. Sedangkan pada nilai recall dan F-measure, nilai tertinggi

didapatkan pada penggunaan minimum support 5%. Hal ini menunjukkan

bahwa kemunculan kombinasi item yang lebih sering belum tentu

mengakibatkan hasil rekomendasi yang lebih baik. Nilai tertinggi pada

precision didapatkan pada minimum similarity 55%. Sedangkan nilai

recall, dan F-measure terbaik didapatkan pada saat penggunaan minimum

similarity 50%.

95

4. Berdasarkan hasil pengujian, nilai precision, recall, F-measure, dan mean

average precision untuk kasus biasa pada kondisi terbaik dapat mencapai

nilai yang lebih tinggi dibandingkan dengan kasus coldstart baik untuk

jumlah rekomendasi terbatas maupun rekomendasi maksimal.

7.2 Saran

Dari penelitian yang telah dilakukan, adapun saran yang dapat diberikan

adalah sebagai berikut:

1. Diterapkan skema baru untuk mengatasi perubahan stopword. Ini

diperlukan karena penambahan dan pengurangan stopword dapat

mengakibatkan keyword yang diekstraksi dari dokumen menjadi tidak

valid.

2. Penggunaan stopword yang khusus untuk dokumen ilmiah agar stopword

yang terdaftar tepat guna sehingga dapat meningkatkan kinerja sistem.

3. Penerapan algoritma lain saat penggalian frequent itemset tidak dapat

memenuhi jumlah rekomendasi yang diinginkan untuk meningkatkan

jumlah item relevan yang dihasilkan oleh sistem.

4. Penerapan algoritma algoritma incremental untuk penggalian frequent

itemset yang dapat mengurangi pengulangan proses penggalian frequent

itemset.

5. Penggunaan dokumen uji yang lebih banyak dan bervariasi untuk menguji

sistem pada kumpulan dokumen ilmiah selain bidang ilmu komputer.