5.2.1 Pencarian frequent item FP-Tree Conditional FP-Tree Ekstraksi itemset Implementasi Cosine

Ukuran: px
Mulai penontonan dengan halaman:

Download "5.2.1 Pencarian frequent item FP-Tree Conditional FP-Tree Ekstraksi itemset Implementasi Cosine"

Transkripsi

1 5.2.1 Pencarian frequent item FP-Tree Conditional FP-Tree Ekstraksi itemset Implementasi Cosine Similarity Implementasi Penentuan Rekomendasi BAB VI HASIL DAN PEMBAHASAN Data Pengujian Dokumen pengujian Data transaksi Stopword Metode Pengumpulan Data Skenario Pengujian Hasil Pengujian Precision Recall F-Measure Mean average precision BAB VII KESIMPULAN DAN SARAN Kesimpulan Saran DAFTAR PUSTAKA LAMPIRAN LAMPIRAN LAMPIRAN LAMPIRAN LAMPIRAN ix

2 DAFTAR TABEL Tabel 2.1 Tinjauan pustaka Tabel 3.1 Data transaksi Tabel 3.2 Representasi keranjang Tabel 3.3 Frequent itemset Tabel 3.4 Daftar partikel Tabel 3.5 Daftar kata ganti kepunyaan Tabel 3.6 Daftar awalan pertama Tabel 3.7 Kombinasi ilegal Tabel 3.8 Daftar akhiran Tabel 3.9 Daftar awalan kedua Tabel 3.10 Awalan ganda Tabel 3.11 Pembagian kondisi hasil yang memungkinkan Tabel 4.1 Contoh data transaksi Tabel 4.2 Seleksi data transaksi Tabel 4.3 Jumlah kemunculan item Tabel 4.4 Urutan frequent item Tabel 4.5 Data transaksi terurut dan terseleksi Tabel 4.6 Hasil frequent itemset Tabel 4.7 Rancangan tabel administrator Tabel 4.8 Rancangan tabek transaksi Tabel 4.9 Rancangan tabel dokumen Tabel 4.10 Rancangan tabel ambang batas Tabel 4.11 Rancangan tabel stoplist Tabel 4.12 Rancangan tabel dokumen term Tabel 5.1 Penyimpanan jumlah item pada array Tabel 5.2 Urutan frequent itemset Tabel 6.1 Dokumen uji Tabel 6.2 Jumlah data transaksi masing-masing dokumen uji Tabel 6.3 Komposisi perhitungan item ID x

3 Tabel 6.4 Precision minimum similarity 40% dengan minimum support 20% Tabel 6.5 Nilai precision jumlah rekomendasi maksimal Tabel 6.6 Nilai precision jumlah rekomendasi terbatas Tabel 6.7 Recall minimum similarity 40% dengan minimum support 20% Tabel 6.8 Nilai recall jumlah rekomendasi maksimal Tabel 6.9 Nilai recall jumlah rekomendasi terbatas Tabel 6.10 F-measure minimum similarity 40% dengan minimum support 20%. 88 Tabel 6.11 Nilai F-measure jumlah rekomendasi maksimal Tabel 6.12 Nilai F-measure jumlah rekomendasi terbatas Tabel 6.13 AP ID 9 minimum similarity 40% dengan minimum support 20% Tabel 6.14 MAP minimum similarity 40% dengan minimum support 20% Tabel 6.15 Nilai mean average precision xi

4 DAFTAR GAMBAR Gambar 3.1 Penentuan frequent item Gambar 3.2 FP-Tree Gambar 3.3 Pembentukan conditional FP-Tree item e Gambar 3.4 Conditional FP-Tree item e Gambar 3.5 Pembentukan conditional FP-Tree item b e Gambar 3.6 Urutan hasil penggalian frequent itemset Gambar 3.7 Skema Tala stemmer Gambar 4.1 Gambaran umum hybrid recommendation system Gambar 4.2 Arsitektur hybrid recommendation system Gambar 4.3 Flowchart tokenisasi Gambar 4.4 Flowchart stopword removal Gambar 4.5 Flowchart Tala stemmer Gambar 4.6 Flowchart pembobotan Gambar 4.7 Flowchart pencarian frequent item Gambar 4.8 Flowchart pembentukan FP-Tree Gambar 4.9 FP-Tree dan Prefix Path Gambar 4.10 Flowchart penggalian frequent itemset Gambar 4.11 Flowchart cosine similarity Gambar 4.12 Flowchart penentuan rekomendasi Gambar 4.13 Rancangan halaman penampilan rekomendasi Gambar 4.14 Flowchart pembentukan data transaksi Gambar 5.1 Potongan kode tokenisasi Gambar 5.2 Potongan kode stopword removal Gambar 5.3 Potongan kode stemming Gambar 5.4 Potongan kode perhitungan term frequency Gambar 5.5 Potongan kode frequent item search Gambar 5.6 Pengurutan frequent item Gambar 5.7 Potongan kode struktur data Tree Gambar 5.8 Potongan kode pembentukan FP-Tree xii

5 Gambar 5.9 Pembentukan FP-Tree data transaksi 1, 2, 4, 5, dan Gambar 5.10 FP-Tree semua data transaksi Gambar 5.11 Implementasi FP-Tree akhir Gambar 5.12 Potongan kode pembentukan conditional FP-Tree Gambar 5.13 Conditional FP-Tree untuk item id Gambar 5.14 Conditional FP-Tree untuk item id Gambar 5.15 Conditional FP-Tree untuk item id Gambar 5.16 Conditional FP-Tree untuk item id Gambar 5.17 Potongan kode ekstraksi itemset Gambar 5.18 Urutan penggalian itemset Gambar 5.19 Potongan kode perhitungan cosine similarity Gambar 5.20 Potongan kode proses rekomendasi Gambar 5.21 Antar muka halaman rekomendasi Gambar 6.1 Grafik nilai precision jumlah rekomendasi maksimal Gambar 6.2 Grafik nilai precision jumlah rekomendasi terbatas Gambar 6.3 Grafik nilai recall jumlah rekomendasi maksimal Gambar 6.4 Grafik nilai recall rekomendasi terbatas Gambar 6.5 Grafik nilai F-measure jumlah rekomendasi maksimal Gambar 6.6 Grafik nilai F-measure jumlah rekomendasi terbatas Gambar 6.7 Grafik nilai mean average precision xiii

6 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. xiv

7 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. xv

8 1.1 Latar Belakang BAB I PENDAHULUAN 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 1

9 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.

10 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

11 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.

12 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.

13 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.

14 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

15 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.

16 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. 9

17 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

18 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

19 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

20 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 coldstart. 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 coldstart dan kasus non cold-start, namun akurasi turun pada jumlah cluster sebanyak

21 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 neigborhoodbased 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 contentbased 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

22 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 coldstart. 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.

23 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 3. Melamed, Shapira dan Elovici (2007) 4. Popa, Negru, Pop dan Muscalagiu (2008) 5. Liangxing dan Aihua (2010) 6. Djamal, Maharani dan Kurniati (2010) 7. Pham dan Thach (2011) 8. Chikhaoui, Chiazzaro dan Wang (2011) Dokumen Dokumen ilmiah Pakaian Film Dokumen Film 9. Hayati (2011) Daerah wisata Collaborative fitering pada pemeringkatan item dan content-based filtering pada konten beserta data transaksi item Collaborative filtering pada umpan balik pengguna dan pencarian dengan memperhatikan query yang dimasukkan pengguna Pendekatan klasifikasi dengan berbasis pada profil pengguna dan klasterisasi pada data dokumen Item-based collaborative filtering pada data transaksi pembelian, user-based collaborative filtering pada data pengguna, content-base filtering untuk pengklasifikasian produk Content-base filtering pada klasterisasi pada konten setiap item. Item-based collaborative filtering dalam perhitungan peringkat User-based collaborative filtering terhadap data pengguna, item-based collaborative filtering terhadap social tag, dan content-based filteringterhadap isi dokumen collaborative filtering pada data peringkat item, content-based pada data karakteristik film, dan demographic filtering pada data pengguna Collaborative filtering pada peringkat daerah wisata dan profil pengguna. Jika tidak 16 Mengatasi kelemahan cluster-based recommnedation system yaitu dapat memberikan rekomendasi kepada pengguna walaupun pengguna tidak masuk ke dalam salah satu kelas Menunjukkan adanya peningkatan umpan balik dan kualitas rekomendasi Menghasilkan recommendation system terdistribusi berbasis sudut pandang pengguna Dapat melaksanakan analisis selera pelanggan dan rekomendasi produk di toko pakaian ritel Dapat memprediksi item baru yang belum memiliki peringkat sama sekali Ketiga dimensi dokumen Memiliki kontribusi penting dalam perhitungan kemiripan dokumen Mengatasi kasus cold-start dengan memasukkan karakteristik demografis pengguna Mengatasi masalah cold-start dengan penerapan klasifikasi

24 10. Suzuki, Hasegawa, Hamamoto dan Aizawa (2011) Berita 11. Parwita (2014) Dokumen Ilmiah memungkinkan dilakukan klasifikasi atribut daerah wisata dan profil pengguna. Content-based filtering menggunakan kompresi data Item-based collaborative filtering pada penggalian frequent itemset dengan memanfaatkan data transaksi dan content-based filtering pada perbandingan keyword dokumen dengan perhitungan cosine similarity. Meningkatkan kinerja recommendation system yang menggunakan kantong kata 17 Menghasilkan rekomendasi tanpa menggunakan data identitas pengguna dan data peringkat. Serta mengatasi kelemahan dan menggabungkan keunggulan penggunaan metode collaborative filtering atau contentbased filtering yang berdiri sendiri.

25 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 18

26 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

27 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

28 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 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

29 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 d : 8 b : 7 b : 5 b : 2 c : 5 c : 1 c : 2 c : 2 a : 4 a : 2 a : 1 a : 1 e : 3 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 d : 8 b : 7 b : 5 b : 2 c : 5 c : 1 c : 2 c : 2 a : 4 a : 2 a : 1 a : 1 e : 3 e : 1 e : 1 e : 1 Gambar 3.3 Pembentukan conditional FP-Tree item e

30 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 d : 2 b : 2 b : 1 b : 1 c : 2 c : 1 c : 1 a : 1 a : 1 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 d : 2 b : 2 b : 1 b : 1 c : 2 c : 1 c : 1 a : 1 a : 1 Gambar 3.5 Pembentukan conditional FP-Tree item b e

31 24 e a e c a e b c a e d b c a e d c a e b a e d b a e d a e c e b c e... d c e... b e... d 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).

32 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 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) 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

33 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) Tala stemmer Kata Hilangkan Partikel Hilangkan Akhiran Kepunyaan Hilangkan Awalan Pertama Gagal Aturan terpenuhi Hilangkan Awalan Kedua Hilangkan Akhiran Hilangkan Akhiran Aturan terpenuhi Hilangkan Awalan Kedua Gagal Kata Dasar Gambar 3.7 Skema Tala stemmer

34 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 ku mu nya Pengganti NULL NULL NULL

35 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 meng meny men mem mem me peng peny pen pem di ter ke Pengganti NULL s NULL p NULL NULL NULL s NULL p NULL NULL 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.

36 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 ber bel be per pel pe Pengganti NULL NULL NULL NULL NULL 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.

37 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 termextraction. 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.

38 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 masingmasing 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). a = a 1, a 2, a 3,, a n (3.1) b = b 1, b 2, b 3,, b n (3.2) n a b = a i b i = a 1 b 1 + a 2 b a n b n i=1 (3.3) a n dan b n 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 b = a b cos θ (3.4) cos θ = a b a b (3.5)

39 32 Dari notasi (3.5) dapat dibentuk persamaan matematika yang ditunjukkan oleh persamaan (3.6) (Lops, dkk., 2011). Similarity x, y = Dimana: n i=1 a i b i n a 2 n 2 i=1 i i=1 b i (3.6) a i : term ke-i yang terdapat pada dokumen a. b i : term ke-i yang terdapat pada dokumen b. 3.5 Evaluasi Recommendation System 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). Precision = tp relevant item retrieved = tp + fp retrieved item (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)

40 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). Recall = tp relevant item retrieved = tp + fn relevant item (3.8) 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). F measure = 2 precision recall precision + recall (3.9) 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).

41 34 MAP Q = 1 Q Q 1 m j m j j =1 k=1 Precision R jk (3.10) Dimana: Q R m : jumlah query uji : item relevan yang dihasilkan oleh sistem : jumlah item relevan yang dihasilkan dari query pengujian. Dalam penelitian ini, query (Q) merupakan item uji yang digunakan dalam

42 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. Pemilihan Dokumen teks Data Transaksi ID Dokumen User Data Transaksi Terseleksi Penggalian Frequent Itemset Tokenisasi Stopword Removal Informasi Dokumen Basis Data Dokumen Frequent Stemming Keyword Dokumen Terseleksi Pembobotan Keyword Keyword Dokumen Acuan Cosine Similarity Rekomendasi 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 35

43 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 dokumendokumen 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.

44 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

45 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 Data Keyword Extraction Frequent Itemset Mining Cosine Similarity Tokenisasi Pembobotan Frequent Item Search Conditional FP- Tree Stemming Stopword Removal 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 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

46 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 dokumen PDF teks = convert(dokumen PDF) kata = pecah(teks) i = 0 hilangkan simbol(kata [i]) jumlah(kata [i]) < 2 ya Hapus(kata [i]) ya tidak inc i i < jumlah(kata) tidak kata End Gambar 4.3 Flowchart tokenisasi

47 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.

48 41 Start kata stopword i = 0 kata [i] adalah stopword ya Hapus(kata [i]) tidak ya inc i i < jumlah(kata) tidak kata End 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 dipenuhi.

49 42 Pemeriksaan ini dilakukan untuk menentukan apakah diperlukan penghilangan akhiran dan awalan kedua yang melekat pada kata. Start kata i = 0 hilangkan partikel (kata [i]) hilangkan kata ganti kepunyaan (kata [i]) ya awalan pertama kata [i] null ya hilangkan awalan pertama (kata [i]) tidak hilangkan awalan kedua (kata [i]) akhiran kata [i] null & kondisi terpenuhi hilangkan akhiran (kata [i]) tidak ya i < jumlah(kata) inc i hilangkan akhiran (kata [i]) tidak kata dasar hilangkan awalan kedua (kata [i]) End 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 Setelah melewati proses steamming maka akan diperoleh kata dasar.

50 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 kata dasar i = 0 kata [i] ada pada daftar term tidak tambah kata [i] ke daftar term ya ya inc term [kata [i]] [jumlah] inc i i < jumlah (kata dasar) tidak term End Gambar 4.6 Flowchart pembobotan

51 44 Daftar term yang didapatkan beserta jumlah kemunculannya akan diproses pada pencarian similaritas dokumen. Daftar term yang telah memiliki bobot juga disebut keyword 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 Misalkan id dokumen yang dipilih adalah 1 maka data transaksi yang terseleksi ditunjukkan oleh Tabel 4.2.

52 45 Tabel 4.2 Seleksi data transaksi No TID 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 Jumlah ID Item Kemunculan Kemunculan

53 46 Variabel id pada Gambar 4.7 merupakan variabel untuk menyimpan itemitem hasil pemecahan. Jika item berjumlah lebih dari atau sama dengan minimum support, maka item tersebut akan tetap berada pada daftar frequent item. Start data transaksi minimum support id = pecah (data transaksi [i]) i = 0 j = 0 item [id [j]] null ya item [id [j]] = 0 tidak ya inc item [id [j]] ya ya inc j k = 0 j < jumlah (item) jumlah (item [k]) < minimum support ya Hapus (item [k]) tidak ya tidak tidak inc i inc k i < jumlah (data transaksi) k < jumlah (item) urut item berdasarkan jumlah tidak frequent item End Gambar 4.7 Flowchart pencarian frequent item

54 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 minimum support Jumlah minimal kemunculan = 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 Jumlah ID Item Kemunculan 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 menggunakan id dokumen 1 sebagai id

55 48 dokumen pilihan sehingga, data transaksi yang telah diurutkan dan diseleksi ditunjukkan oleh Tabel 4.5. Start data transaksi frequent item id dokumen seleksi data transaksi urut data transaksi id transaksi = pecah(data transaksi [i]) i = 0 root = bentuk root (id dokumen) j = 0 id transaksi [j] = id dokumen tidak node child [id transaksi [k]] null tidak node child [id transaksi [k]] = bentuk child (id transaksi [k]) ya ya node = root node = child [id transaksi [k]] ya ya inc support node inc j j < jumlah (id transaksi) tidak inc i tidak prefix path = urut child (root) prefix path i < jumlah (data transaksi) End Gambar 4.8 Flowchart pembentukan FP-Tree Tabel 4.5 Data transaksi terurut dan terseleksi No TID

56 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 : 1 ID : 4 ID : 4 ID : 3 ID : 3 ID : 20 ID : 20 ID : 20 ID : 2 ID : 2 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 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-

57 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 prefix path i = jumlah (prefix path 1) node = prefix path [i] node [support] minimum support ya ya frequent itemset = conditional fp-tree [node] tidak frequent itemset = node [label] dec i i 0 tidak frequent itemset End Gambar 4.10 Flowchart penggalian frequent itemset Cosine similarity Untuk membandingkan similaritas antara dokumen dilakukan proses perhitungan dengan pendekatan cosine similarity. Proses cosine similarity

58 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 term A term B i = 0 term B [term A [i]] [TF] null jumlah A = sqrt(sum(term A [TF]) 2 ) ya jumlah B = sqrt(sum(term B [TF]) 2 ) ya dot = dot + (term A [i] [TF] * term B [term A [i]] [TF]) similarity = (dot / (jumlah A * jumlah B)) inc i tidak similarity i < jumlah (term A) End Gambar 4.11 Flowchart cosine similarity 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.

59 52 Dokumen acuan merupakan dokumen yang sedang dipilih oleh pengguna sistem. Proses ini ditunjukkan oleh Gambar Start frequent itemset (fi) terrm dokumen id dokumen minimum rekomendasi (mr) minimum similarity i = 0 ya fi null tidak jumlah (rekomendasi) < mr Dok B = pilih dokumen ya Dok B null tidak cosine = (term[id dokumen],term[dok B]) ya cosine = (term[id dokumen],term[dok B]) cosine > minimum similarity ya rekomendasi = fi[i] ya tidak cosine > minimal similarity ya rekomendasi = dok B ya inc i tidak tidak i < jumlah (fi) jumlah (rekomendasi) < mr tidak tidak rekomendasi End 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

60 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 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) 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)

61 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 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) 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)

62 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 Tabel 4.11 Rancangan tabel stoplist Field Tipe Keterangan stopword Varchar (20) 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 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

63 56 halaman ini jika pengguna ingin melakukan pengunduhan dokumen tersebut. Rancangan halaman ini ditunjukkan oleh Gambar < header > < menu > Rekomendasi Dokumen Judul Abstrak Download Rekomendasi 1 Rekomendasi 2 Rekomendasi 3 dst.. < footer > Gambar 4.13 Rancangan halaman penampilan rekomendasi 4.5 Pembentukan Data Transaksi Data transaksi dibentuk dengan cara seperti pada Gambar 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

64 57 adalah 30% karena rekomendasi relevan umpan balik dari pengguna umumnya memiliki similaritas diatas 30%. Start Dokumen Uji Dokumen ID Dokumen Keyword tidak i = 0 num!=doc_uji[i] and num not in tid ya Similaritas doc[num] > 30% ya tid[] = num; k++ j = 0 k = 0; tid = array() num = rand (1,100) tidak k < 20 tidak j++ Data Transaksi = tid ya tidak j < 100 ya i++ i < 11 ya End Gambar 4.14 Flowchart pembentukan data transaksi

65 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 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. 58

66 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 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

67 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 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

68 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 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){ $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.

69 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 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

70 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 FP-Tree $id_count [1] = 6 $id_count [1] = 6 $id_count [20] = 2 $id_count [4] = 4 $id_count [2] = 2 Sort $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 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.

71 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 $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

72 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.

73 66 Label : 1 Count : 1 Parent : root 2 Label : 1 Count : 2 Parent : root 4 Label : 1 Count : 3 Parent : root 1 Label : 20 Count : 1 Parent : 1 Label : 20 Count : 1 Parent : 1 Label : 4 Count : 1 Parent : 1 Label : 20 Count : 1 Parent : 1 Label : 4 Count : 1 Parent : 1 Label : 3 Count : 1 Parent : 4 Label : 3 Count : 1 Parent : 4 Label : 20 Count : 1 Parent : 3 Label : 20 Count : 1 Parent : 3 Label : 2 Count : 1 Parent : 20 Label : 2 Count : 1 Parent : 20 5 Label : 1 Count : 4 Parent : root Label : 1 Count : 4 Parent : root Label : 20 Count : 1 Parent : 1 Label : 4 Count : 3 Parent : 1 6 Label : 20 Count : 1 Parent : 1 Label : 4 Count : 2 Parent : 1 Label : 3 Count : 3 Parent : 4 Label : 3 Count : 2 Parent : 4 Label : 20 Count : 1 Parent : 3 Label : 2 Count : 1 Parent : 1 Label : 20 Count : 1 Parent : 3 Label : 2 Count : 1 Parent : 20 Label : 2 Count : 1 Parent : 20 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 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.

74 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 : 1 Label : 2 Count : 1 Parent : 20 Gambar 5.10 FP-Tree semua data transaksi Label : 1 Count : 6 Label : 1 Count : 6 Parent : root Label : 4 Count : 4 Label : 4 Count : 4 Parent : 1 Label : 3 Count : 3 Label : 3 Count : 3 Parent : 4 Label : 20 Count : 1 Parent : 1 Label : 20 Count : 2 Label : 20 Count : 1 Parent : 3 Label : 2 Count : 1 Parent : 1 Label : 2 Count : 2 Label : 2 Count : 1 Parent : 20 Gambar 5.11 Implementasi FP-Tree akhir

75 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 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

76 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 ditunjukkan oleh Gambar 5.13 hingga Gambar : 2 Label : 1 Count : 2 Parent : root 1 : 2 Label : 1 Count : 2 Parent : root 4 : 2 Label : 4 Count : 2 Parent : 1 4 : 2 Label : 4 Count : 2 Parent : 1 3 : 2 Label : 3 Count : 2 Parent : 4 3 : 2 Label : 3 Count : 2 Parent : 4 20 : 1 Label : 20 Count : 1 Parent : 3 Label : 2 Count : 2 Parent : 1 2 : 2 Label : 2 Count : 1 Parent : 20 1 : 2 Label : 1 Count : 2 Parent : root 4 : 2 Label : 4 Count : 2 Parent : 1 Gambar 5.13 Conditional FP-Tree untuk item id 2

77 70 1 : 2 Label : 1 Count : 2 Parent : root 1 : 2 Label : 1 Count : 2 Parent : root 4 : 1 Label : 4 Count : 1 Parent : 1 4 : 1 Label : 4 Count : 1 Parent : 1 3 : 1 Label : 3 Count : 1 Parent : 4 Label : 20 Count : 1 Parent : 1 3 : 1 Label : 3 Count : 1 Parent : 4 20 : 2 Label : 20 Count : 1 Parent : 3 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. 1 : 3 Label : 1 Count : 3 Parent : root 1 : 3 Label : 1 Count : 3 Parent : root 4 : 3 Label : 4 Count : 3 Parent : 1 4 : 3 Label : 4 Count : 3 Parent : 1 3 : 3 Label : 3 Count : 3 Parent : 4 Gambar 5.15 Conditional FP-Tree untuk item id 3

78 71 1 : 4 Label : 1 Count : 4 Parent : root 4 : 4 Label : 4 Count : 4 Parent : Ekstraksi itemset Gambar 5.16 Conditional FP-Tree untuk item id 4 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 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 Pada gambar kiri menunjukkan conditional FP-

79 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 Dari conditional FP-Tree akan didapatkan frequent itemset dengan urutan penggalian ditunjukkan oleh Gambar No Frequent Itemset Gambar 5.18 Urutan penggalian itemset 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

80 73 similarity dikalikan 100. Dot product ditunjukkan oleh baris ke-1 sampai ke-5 pada Gambar Perhitungan akhir ditunjukkan pada baris 6 hingga 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 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.

81 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 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.

82 75 Tabel 5.2 Urutan frequent itemset No Frequent Itemset Jumlah item 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 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 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 Hasil pencarian atribut dokumen rekomendasi akan disajikan dalam bentuk daftar dokumen. Antar muka rekomendasi ditunjukkan oleh Gambar 5.21.

83 Gambar 5.21 Antar muka halaman rekomendasi 76

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang 1.1 Latar Belakang BAB I PENDAHULUAN Peningkatan jumlah dokumen ilmiah yang ada menimbulkan kebutuhan akan suatu sistem yang dapat memberikan rekomendasi dokumen ilmiah yang baik. Recommendation system

Lebih terperinci

Hybrid Recommendation System Memanfaatkan Penggalian Frequent Itemset dan Perbandingan Keyword

Hybrid Recommendation System Memanfaatkan Penggalian Frequent Itemset dan Perbandingan Keyword IJCCS, Vol.9, No.2, July 2015, pp. 167~176 ISSN: 1978-1520 167 Hybrid Recommendation System Memanfaatkan Penggalian Frequent Itemset dan Perbandingan Keyword Wayan Gede Suka Parwita* 1, Edi Winarko 2 1

Lebih terperinci

PENDAHULUAN. 1.1 Latar Belakang

PENDAHULUAN. 1.1 Latar Belakang DAFTAR TABEL Tabel 3-1 Dokumen Term 1... 17 Tabel 3-2 Representasi... 18 Tabel 3-3 Centroid pada pengulangan ke-0... 19 Tabel 3-4 Hasil Perhitungan Jarak... 19 Tabel 3-5 Hasil Perhitungan Jarak dan Pengelompokkan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI II.1 Text Mining Text Mining merupakan penerapan konsep dan teknik data mining untuk mencari pola dalam teks, proses penganalisaan teks guna menemukan informasi yang bermanfaat untuk

Lebih terperinci

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang BAB 1 PENDAHULUAN 1.1. Latar Belakang Kebutuhan informasi dan perkembangan teknologi yang semakin tinggi meningkatkan jumlah artikel atau berita yang terpublikasikan, terutama pada media online. Untuk

Lebih terperinci

BAB III METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN BAB III METODOLOGI PENELITIAN Metodologi penelitian merupakan sistematika tahap-tahap yang dilaksanakan dalam pembuatan tugas akhir. Adapun tahapan yang dilalui dalam pelaksanaan penelitian ini adalah

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN BAB 1. PENDAHULUAN 1.1 Latar Belakang Transaksi perdagangan merupakan salah satu kegiatan yang sering kita jumpai pada kehidupan sehari-hari. Transaksi perdagangan tidak hanya menggunakan

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Buku merupakan media informasi yang memiliki peran penting dalam perkembangan ilmu pengetahuan, karena dengan buku kita dapat memperoleh banyak informasi, pengetahuan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan komputasi dan komunikasi telah menghasilkan masyarakat yang haus akan informasi (Witten, et al. 2011). Meningkatnya penggunaan teknologi komputer dalam

Lebih terperinci

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang BAB 1 PENDAHULUAN 1.1. Latar Belakang Sistem rekomendasi telah banyak digunakan oleh hampir sebagian besar bisnis area dimana konsumen perlu membuat suatu keputusan atau rekomendasi pilihan dari informasi

Lebih terperinci

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB I PENDAHULUAN 1.1. Latar Belakang BAB I PENDAHULUAN 1.1. Latar Belakang Kebutuhan akan informasi yang sangat luas dan tidak terbatas seiring dengan sumber informasi yang banyak merupakan suatu bukti konkret bahwa informasi sangat dibutuhkan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Sistem Rekomendasi 2.1.1 Pengantar Sistem Rekomendasi Proses memberitahukan kepada seseorang atau lebih bahwa sesuatu yang dapat dipercaya, dapat juga merekomendasikan diartikan

Lebih terperinci

UKDW. 1.1 Latar Belakang BAB 1 PENDAHULUAN

UKDW. 1.1 Latar Belakang BAB 1 PENDAHULUAN BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi komputer yang pesat pada masa kini menjadi perhatian utama bagi manusia. Kemajuan teknologi komputer yang pesat ini menimbulkan bermacam-macam

Lebih terperinci

1. Pendahuluan 1.1 Latar belakang 1.2 Perumusan masalah

1. Pendahuluan 1.1 Latar belakang 1.2 Perumusan masalah 1. Pendahuluan 1.1 Latar belakang Informasi telah menjadi kebutuhan primer pada kehidupan saat ini. Informasi seakan-akan menjadi mata uang baru yang membuat akurasi menjadi sangat penting ketika mencari

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang dan Permasalahan

BAB I PENDAHULUAN 1.1 Latar Belakang dan Permasalahan BAB I PENDAHULUAN 1.1 Latar Belakang dan Permasalahan Perkembangan volume dan keragaman informasi yang tersedia di internet saat ini sangat pesat sehingga mendorong tumbuhnya media pemberitaan online.

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA Pada bab ini menjelaskan topik taksonomi yang merupakan pengorganisasian informasi yang penting karena merupakan dasar dalam memahami suatu informasi. Taksonomi membantu memahami

Lebih terperinci

BAB I PENDAHULUAN. Pesatnya pertumbuhan internet saat ini berdampak pada melimpahnya

BAB I PENDAHULUAN. Pesatnya pertumbuhan internet saat ini berdampak pada melimpahnya BAB I PENDAHULUAN 1.1 Latar Belakang Pesatnya pertumbuhan internet saat ini berdampak pada melimpahnya informasi dengan sangat cepat dan jumlah yang sangat besar. Hal ini membuat suatu keadaan dimana kita

Lebih terperinci

BAB III METODELOGI PENELITIAN

BAB III METODELOGI PENELITIAN BAB III METODELOGI PENELITIAN 3.1 Metode Penelitian Metode penelitian yang digunakan yaitu metode eksperimental dimana metode ini bekerja dengan memanipulasi dan melakukan kontrol pada objek penelitian

Lebih terperinci

KONSEP MULTICRITERIA COLLABORATIVE FILTERING UNTUK PERBAIKAN REKOMENDASI

KONSEP MULTICRITERIA COLLABORATIVE FILTERING UNTUK PERBAIKAN REKOMENDASI KONSEP MULTICRITERIA COLLABORATIVE FILTERING UNTUK PERBAIKAN REKOMENDASI Wiranto 1), Edi Winarko 2) 1) Jurusan Teknik Informatika, Universitas Sebelas Maret E-mail : wir@uns.ac.id 2) Program Studi Ilmu

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Sistem Rekomendasi Sistem rekomendasi adalah sebuah sistem yang dibangun untuk mengusulkan informasi dan menyediakan fasilitas yang diinginkan pengguna dalam membuat suatu keputusan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Klasifikasi Klasifikasi merupakan suatu pekerjaan menilai objek data untuk memasukkannya ke dalam kelas tertentu dari sejumlah kelas yang tersedia. Dalam klasifikasi ada dua pekerjaan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Perusahaan ritel yang menyediakan berbagai kebutuhan berkembang pesat bukan hanya di kota besar saja tetapi juga di kota-kota kecil. Untuk memperoleh keuntungan yang

Lebih terperinci

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Di jaman modern sekarang ini, pilihan tempat makan yang ada sangat banyak, berbagai fasilitas dan jenis makanan, dan harga yang ditawarkan Melihat dari jumlah tempat

Lebih terperinci

BAB 2 LANDASAN TEORI Sistem Rekomendasi

BAB 2 LANDASAN TEORI Sistem Rekomendasi 6 BAB 2 LANDASAN TEORI 2.1. Sistem Rekomendasi Sistem rekomendasi merupakan sebuah perangkat lunak yang bertujuan untuk membantu pengguna dengan cara memberikan rekomendasi kepada pengguna ketika pengguna

Lebih terperinci

3.6 Data Mining Klasifikasi Algoritma k-nn (k-nearest Neighbor) Similaritas atribut numerik

3.6 Data Mining Klasifikasi Algoritma k-nn (k-nearest Neighbor) Similaritas atribut numerik DAFTAR ISI PERNYATAAN... iii PRAKATA... vi DAFTAR ISI... viii DAFTAR GAMBAR... xi DAFTAR TABEL... xiv DAFTAR PERSAMAAN... xv DAFTAR ALGORITMA... xvi DAFTAR LAMPIRAN... xvii INTISARI... xviii ABSTRACT...

Lebih terperinci

KONSEP MULTICRITERIA COLLABORATIVE FILTERING UNTUK PERBAIKAN REKOMENDASI

KONSEP MULTICRITERIA COLLABORATIVE FILTERING UNTUK PERBAIKAN REKOMENDASI KONSEP MULTICRITERIA COLLABORATIVE FILTERING UNTUK PERBAIKAN REKOMENDASI Wiranto 1, Edi Winarko 2 1 Jurusan Teknik Informatika, Universitas Sebelas Maret 2 Program Studi Ilmu Komputer, Universitas Gajah

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI Pada bab ini akan diterangkan teori-teori yang mendasari dari penelitian yang akan dilakukan oleh penulis yang diantaranya meliputi : UKM Wisata, Sistem Rekomendasi, Collaborative

Lebih terperinci

PEMANFAATAN ASSOCIATION RULE MINING DALAM MEMBANTU PENCARIAN DOKUMEN-DOKUMEN BERITA YANG SALING BERKAITAN

PEMANFAATAN ASSOCIATION RULE MINING DALAM MEMBANTU PENCARIAN DOKUMEN-DOKUMEN BERITA YANG SALING BERKAITAN PEMANFAATAN ASSOCIATION RULE MINING DALAM MEMBANTU PENCARIAN DOKUMEN-DOKUMEN BERITA YANG SALING BERKAITAN Hermawan Andika Institut Informatika Indonesia andika@iii.ac.id Suhatati Tjandra Sekolah Tinggi

Lebih terperinci

BAB I. Pendahuluan. 1. Latar Belakang Masalah

BAB I. Pendahuluan. 1. Latar Belakang Masalah BAB I Pendahuluan 1. Latar Belakang Masalah Semakin canggihnya teknologi di bidang komputasi dan telekomunikasi pada masa kini, membuat informasi dapat dengan mudah didapatkan oleh banyak orang. Kemudahan

Lebih terperinci

BAB 2 LANDASAN TEORI. Pada bab ini akan dibahas tentang konsep dasar dan teori-teori pendukung yang berhubungan dengan sistem yang akan dibangun.

BAB 2 LANDASAN TEORI. Pada bab ini akan dibahas tentang konsep dasar dan teori-teori pendukung yang berhubungan dengan sistem yang akan dibangun. BAB 2 LANDASAN TEORI Pada bab ini akan dibahas tentang konsep dasar dan teori-teori pendukung yang berhubungan dengan sistem yang akan dibangun. 2.1. Data Mining Data mining adalah suatu istilah yang digunakan

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Dalam periode enam tahun terakhir (tahun 2007 2012), jumlah gerai ritel modern di Indonesia mengalami pertumbuhan rata-rata 17,57% per tahun. Pada tahun 2007, jumlah

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi internet bagi organisasi penyedia berita mempunyai dampak positif, yaitu munculnya situs-situs microbloging yang dimanfaatkan secara optimal

Lebih terperinci

BAB III METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN BAB III METODOLOGI PENELITIAN Metodologi penelitian merupakan rangkaian dari langkah-langkah yang diterapkan dalam penelitian, secara umum dan khusus langkah-langkah tersebut tertera pada Gambar flowchart

Lebih terperinci

PERANCANGAN SISTEM REKOMENDASI DOKUMEN DENGAN PENDEKATAN CONTENT-BASED FILTERING

PERANCANGAN SISTEM REKOMENDASI DOKUMEN DENGAN PENDEKATAN CONTENT-BASED FILTERING PERANCANGAN SISTEM REKOMENDASI DOKUMEN DENGAN PENDEKATAN CONTENT-BASED FILTERING Page 65 Wayan Gede Suka Parwita 1, Made HanindiaPrami Swari 2, Welda 3 123 Program Studi Teknik Informatika, STMIK STIKOM

Lebih terperinci

BAB II KAJIAN PUSTAKA

BAB II KAJIAN PUSTAKA BAB II KAJIAN PUSTAKA 2.1 Sistem Rekomendasi Sistem rekomendasi adalah alat dan teknik perangkat lunak yang bisa memberikan saransaran untuk item yang sekiranya bermanfaat bagi pengguna (Ricci, et al.,

Lebih terperinci

BAB II LANDASAN TEORI. 2.1 Peringkasan Teks Otomatis (Automatic Text Summarization) Peringkasan Teks Otomatis (Automatic Text Summarization) merupakan

BAB II LANDASAN TEORI. 2.1 Peringkasan Teks Otomatis (Automatic Text Summarization) Peringkasan Teks Otomatis (Automatic Text Summarization) merupakan BAB II LANDASAN TEORI 2.1 Peringkasan Teks Otomatis (Automatic Text Summarization) Peringkasan Teks Otomatis (Automatic Text Summarization) merupakan pembuatan rangkuman dari sebuah sumber teks secara

Lebih terperinci

BAB 1 PENDAHULUAN UKDW

BAB 1 PENDAHULUAN UKDW BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Pada era ini perkembangan teknologi informasi sangat pesat. Hal ini ditandai dengan semakin populernya penggunaan internet dan perangkat lunak komputer sebagai

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang xi BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan ilmu pengetahuan dan teknologi informasi dewasa ini membuat perubahan perilaku dalam pencarian informasi yang berdampak bagi lembagalembaga yang bergerak

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Pekerjaan merupakan aktivitas utama yang dilakukan manusia dengan menyelesaikan suatu tugas atau kerja yang menghasilkan uang bagi seseorang. Pekerjaan biasa disebut

Lebih terperinci

Recommendation System

Recommendation System May 28, 2014 Introduction Recommenders vs Search Engines Kategori recommendation system Input recommendation system Collaborative Filtering Content-based Evaluasi recommendation system Masalah dalam recommendation

Lebih terperinci

BAB I PENDAHULUAN I - 1

BAB I PENDAHULUAN I - 1 BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Dunia pendidikan merupakan dunia yang memerlukan perhatian khusus karena pendidikan merupakan faktor yang sangat mempengaruhi kualitas para calon penerus bangsa

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Ketersediaan informasi yang semakin banyak menjadikan ringkasan sebagai kebutuhan yang sangat penting (Mulyana, 2010). Menurut (Hovy, 2001) Ringkasan merupakan teks

Lebih terperinci

BAB I PENDAHULUAN I.1. Latar Belakang Masalah

BAB I PENDAHULUAN I.1. Latar Belakang Masalah BAB I PENDAHULUAN I.1. Latar Belakang Masalah Dalam era teknologi seperti saat ini, informasi berupa teks sudah tidak lagi selalu tersimpan dalam media cetak seperti kertas. Orang sudah mulai cenderung

Lebih terperinci

PRESENTASI TUGAS AKHIR KI PERANCANGAN DAN PEMBANGUNAN MODUL REKOMENDASI SECTION PADA OPEN JOURNAL SYSTEM (OJS)

PRESENTASI TUGAS AKHIR KI PERANCANGAN DAN PEMBANGUNAN MODUL REKOMENDASI SECTION PADA OPEN JOURNAL SYSTEM (OJS) PRESENTASI TUGAS AKHIR KI091391 PERANCANGAN DAN PEMBANGUNAN MODUL REKOMENDASI SECTION PADA OPEN JOURNAL SYSTEM (OJS) (Kata kunci: Jurnal, K-Nearest Neighbor, Karya Ilmiah, Klasifikasi Penyusun Tugas Akhir

Lebih terperinci

INDEXING AND RETRIEVAL ENGINE UNTUK DOKUMEN BERBAHASA INDONESIA DENGAN MENGGUNAKAN INVERTED INDEX

INDEXING AND RETRIEVAL ENGINE UNTUK DOKUMEN BERBAHASA INDONESIA DENGAN MENGGUNAKAN INVERTED INDEX INDEXING AND RETRIEVAL ENGINE UNTUK DOKUMEN BERBAHASA INDONESIA DENGAN MENGGUNAKAN INVERTED INDEX Wahyu Hidayat 1 1 Departemen Teknologi Informasi, Fakultas Ilmu Terapan, Telkom University 1 wahyuhidayat@telkomuniversity.ac.id

Lebih terperinci

1. BAB I PENDAHULUAN 1.1. Latar Belakang

1. BAB I PENDAHULUAN 1.1. Latar Belakang 1. BAB I PENDAHULUAN 1.1. Latar Belakang Pertumbuhan data yang pesat dari akumulasi data telah menciptakan sebuah kondisi yang sering disebut rich of data but poor of information karena data yang terkumpul

Lebih terperinci

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Tinjauan atau review seseorang yang ditujukan kepada suatu objek atau produk sangat berpengaruh terhadap penilaian publik atas produk tersebut (Sahoo, 2013). Review

Lebih terperinci

ANALISIS DAN IMPLEMENTASI SISTEM REKOMENDASI MENGGUNAKAN MOST-FREQUENT ITEM DAN ASSOCIATION RULE TECHNIQUE

ANALISIS DAN IMPLEMENTASI SISTEM REKOMENDASI MENGGUNAKAN MOST-FREQUENT ITEM DAN ASSOCIATION RULE TECHNIQUE ISSN : 2355-9365 e-proceeding of Engineering : Vol.2, No.3 Desember 2015 Page 7757 ANALISIS DAN IMPLEMENTASI SISTEM REKOMENDASI MENGGUNAKAN MOST-FREQUENT ITEM DAN ASSOCIATION RULE TECHNIQUE ANALYSIS AND

Lebih terperinci

PENDAHULUAN TINJAUAN PUSTAKA

PENDAHULUAN TINJAUAN PUSTAKA Latar Belakang PENDAHULUAN Begitu banyaknya fungsionalitas dalam penggalian data terkadang membuat kita harus memilih secara seksama. Pemilihan fungsionalitas yang tepat dalam melakukan suatu penggalian

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Kata Pengertian kata secara sederhana adalah sekumpulan huruf yang mempunyai arti. Dalam kamus besar bahasa indonesia (KBBI) pengertian kata adalah unsur bahasa yang diucapkan

Lebih terperinci

BAB I PENDAHULUAN 1.1 Tujuan 1.2 Latar Belakang

BAB I PENDAHULUAN 1.1 Tujuan 1.2 Latar Belakang BAB I PENDAHULUAN 1.1 Tujuan Merancang sebuah sistem yang dapat meringkas teks dokumen secara otomatis menggunakan metode generalized vector space model (GVSM). 1.2 Latar Belakang Dunia informasi yang

Lebih terperinci

BAB IV ANALISA DAN PERANCANGAN

BAB IV ANALISA DAN PERANCANGAN BAB IV ANALISA DAN PERANCANGAN 4.1 Analisa Sistem Lama Pada sistem peringkasan dokumen sebelumnya sistem sudah bisa dijalankan namun masih adanya kekurangan pada sistem tersebut yaitu penginputan dokumen

Lebih terperinci

BAB I PENDAHULUAN. Pengguna Internet (31 Desember 2000) Afrika 1,037,524,058 4,514, ,609,620 2,527.4%

BAB I PENDAHULUAN. Pengguna Internet (31 Desember 2000) Afrika 1,037,524,058 4,514, ,609,620 2,527.4% BAB I PENDAHULUAN 1.1 Latar Belakang Pengguna internet di dunia mengalami peningkatan. Statistik pengguna internet berdasarkan hasil survey Nielsen Online, yaitu pada tanggal 31 Maret 2011 menunjukkan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI Di dalam landasan teori ini, akan dibahas tentang teori teori dan konsep dasar yang mendukung pembahasan dari sistem yang akan dibuat. 2.1 Basis Data (Database) Basis data diperlukan

Lebih terperinci

SISTEM REKOMENDASI DOSEN PEMBIMBING TUGAS AKHIR BERBASIS TEXT MINING MENGGUNAKAN VECTOR SPACE MODEL

SISTEM REKOMENDASI DOSEN PEMBIMBING TUGAS AKHIR BERBASIS TEXT MINING MENGGUNAKAN VECTOR SPACE MODEL SISTEM REKOMENDASI DOSEN PEMBIMBING TUGAS AKHIR BERBASIS TEXT MINING MENGGUNAKAN VECTOR SPACE MODEL SKRIPSI Disusun Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer pada Departemen Ilmu

Lebih terperinci

BAB I PENDAHULUAN I-1

BAB I PENDAHULUAN I-1 BAB I PENDAHULUAN 1.1 Latar Belakang Kebutuhan akan informasi yang sangat luas dan tidak terbatas merupakan sebuah bukti nyata bahwa informasi sangat diperlukan bagi pencari informasi [16]. Dengan munculnya

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Teknologi informasi yang semakin berkembang dari masa ke masa telah membuktikan akan kebutuhan manusia pada informasi itu sendiri. Berbagai situs, portal berita, website,

Lebih terperinci

1.5 Metode Penelitian

1.5 Metode Penelitian BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Dalam perkembangan teknologi internet yang semakin maju ini kita dapat mengakses dokumen, buku dan majalah mulai dari bahasa asing sampai bahasa daerah yang

Lebih terperinci

ANALISIS DAN IMPLEMENTASI METODE ITEM-BASED CLUSTERING HYBRID PADA RECOMMENDER SYSTEM

ANALISIS DAN IMPLEMENTASI METODE ITEM-BASED CLUSTERING HYBRID PADA RECOMMENDER SYSTEM ANALISIS DAN IMPLEMENTASI METODE ITEM-BASED CLUSTERING HYBRID PADA RECOMMENDER SYSTEM Ramadhanuz A Djamal, Warih Maharani, dan Angelina Prima Kurniati Fakultas Informatika Institut Teknologi Telkom, Bandung

Lebih terperinci

2.2 Data Mining. Universitas Sumatera Utara

2.2 Data Mining. Universitas Sumatera Utara Basis data adalah kumpulan terintegrasi dari occurences file/table yang merupakan representasi data dari suatu model enterprise. Sistem basisdata sebenarnya tidak lain adalah sistem penyimpanan-record

Lebih terperinci

1. Pendahuluan 1.1 Latar Belakang

1. Pendahuluan 1.1 Latar Belakang 1. Pendahuluan 1.1 Latar Belakang Saat ini, kebutuhan manusia akan teknologi semakin meningkat karena tidak bisa dipungkiri bahwa teknologi tersebut dapat meringankan pekerjaan manusia. Hal ini juga diimbangi

Lebih terperinci

BAB 3 LANDASAN TEORI

BAB 3 LANDASAN TEORI BAB 3 LANDASAN TEORI Pada bab ini akan dibahas mengenai beberapa landasan teori yang digunakan untuk perancangan dan pembuatan aplikasi rekomendasi informasi yang bisa dijadikan sebagai acuan. 3.1 Media

Lebih terperinci

BAB I PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN Latar Belakang BAB I PENDAHULUAN 1.1. Latar Belakang Semakin canggihnya teknologi di bidang komputasi dan telekomunikasi pada masa kini, membuat informasi dapat dengan mudah didapatkan oleh banyak orang. Kemudahan ini

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Data mining bertujuan untuk menemukan pola-pola yang valid, baru, mempunyai nilai guna, dan mudah dipahami dari data yang ada. Jenis pola yang dihasilkan ditentukan

Lebih terperinci

Penggunaan Struktur FP-Tree dan Algoritma FP- Growth dalam Rekomendasi Promosi Produk pada Situs Belanja Online

Penggunaan Struktur FP-Tree dan Algoritma FP- Growth dalam Rekomendasi Promosi Produk pada Situs Belanja Online Penggunaan Struktur FP-Tree dan Algoritma FP- Growth dalam Rekomendasi Promosi Produk pada Situs Belanja Online Irene Edria Devina / 13515038 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan

Lebih terperinci

APLIKASI MESIN PENCARI DOKUMEN CROSS LANGUAGE BAHASA INGGRIS BAHASA INDONESIA MENGGUNAKAN VECTOR SPACE MODEL

APLIKASI MESIN PENCARI DOKUMEN CROSS LANGUAGE BAHASA INGGRIS BAHASA INDONESIA MENGGUNAKAN VECTOR SPACE MODEL APLIKASI MESIN PENCARI DOKUMEN CROSS LANGUAGE BAHASA INGGRIS BAHASA INDONESIA MENGGUNAKAN VECTOR SPACE MODEL SKRIPSI Disusun Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer pada Jurusan

Lebih terperinci

1. BAB I PENDAHULUAN 1.1. Latar Belakang ,

1. BAB I PENDAHULUAN 1.1. Latar Belakang  , 1. BAB I PENDAHULUAN 1.1. Latar Belakang Hasil survey Badan Kesejahteraan Keluarga Pemberdayaan Perempuan dan Keluarga Berencana (BKKPPKB) tahun 2009 menunjukkan angka kemiskinan di Kabupaten Bantul sebanyak

Lebih terperinci

BAB 3 ANALISIS MASALAH DAN PERANCANGAN

BAB 3 ANALISIS MASALAH DAN PERANCANGAN BAB 3 ANALISIS MASALAH DAN PERANCANGAN 3.1 State of the Art Pada penelitian sebelumnya sudah ada yang menggunakan metode Stemming untuk preprocessing text dalam mengolah data pelatihan dan data uji untuk

Lebih terperinci

BAB III Landasan Teori

BAB III Landasan Teori BAB III Landasan Teori 3.1 Sistem Rekomendasi Sistem rekomendasi merupakan suatu aplikasi untuk menyediakan dan merekomendasikan suatu item dalam membuat suatu keputusan yang diinginkan oleh pengguna (Ungkawa,

Lebih terperinci

commit to user 5 BAB II TINJAUAN PUSTAKA 2.1 Dasar Teori Text mining

commit to user 5 BAB II TINJAUAN PUSTAKA 2.1 Dasar Teori Text mining BAB II TINJAUAN PUSTAKA 2.1 Dasar Teori 2.1.1 Text mining Text mining adalah proses menemukan hal baru, yang sebelumnya tidak diketahui, mengenai informasi yang berpotensi untuk diambil manfaatnya dari

Lebih terperinci

Pemanfaatan Metode Vector Space Model dan Metode Cosine Similarity pada Fitur Deteksi Hama dan Penyakit Tanaman Padi

Pemanfaatan Metode Vector Space Model dan Metode Cosine Similarity pada Fitur Deteksi Hama dan Penyakit Tanaman Padi Pemanfaatan Metode Vector Space Model dan Metode Cosine Similarity pada Fitur Deteksi Hama dan Penyakit Tanaman Padi Ana Triana Informatika, Fakultas MIPA, Universitas Sebelas Maret Surakarta Jl. Ir. Sutami

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1. Tinjauan Penelitian Terdahulu Penelitian sebelumnya dilakukan oleh Rahmatulloh (2016). Penelitian yang berjudul Rancang Bangun Sistem Informasi Pencarian Benda Hilang Lost &

Lebih terperinci

BAB II LANDASAN TEORI. Anindita Dwi Respita,2015. a. Penelitian ini menjelaskan tentang tujuan : menggunakan metode market basket analysis.

BAB II LANDASAN TEORI. Anindita Dwi Respita,2015. a. Penelitian ini menjelaskan tentang tujuan : menggunakan metode market basket analysis. BAB II LANDASAN TEORI 2.1 Tinjauan Pustaka 2.1.1 Penelitian Terkait 1) Penelitian terdahulu dengan judul Online Shop kecantikan dan kosmetik dengan pemberian saran pembelian produk menggunakan Market Basket

Lebih terperinci

BAB I PENDAHULUAN. penyimpanan dan cepat. Tuntutan dari gerakan anti global warming juga

BAB I PENDAHULUAN. penyimpanan dan cepat. Tuntutan dari gerakan anti global warming juga 1 BAB I PENDAHULUAN A. Latar Belakang Dalam era teknologi informasi seperti saat ini, informasi berupa teks sudah tidak lagi selalu tersimpan dalam media cetak seperti kertas. Orang sudah mulai cenderung

Lebih terperinci

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN. Universitas Sumatera Utara 1 BAB 1 PENDAHULUAN 1.1. Latar Belakang Kata kunci (keyword) merupakan kata-kata singkat yang dapat menggambarkan isi suatu artikel ataupun dokumen (Figueroa,et al. 2014). Kata kunci memberikan kemudahan

Lebih terperinci

BAB I PENDAHULUAN. Data mining memungkinkan penemuan pola-pola yang menarik, informasi yang

BAB I PENDAHULUAN. Data mining memungkinkan penemuan pola-pola yang menarik, informasi yang 1 BAB I PENDAHULUAN Bab pendahuluan ini membahas tentang latar belakang masalah yaitu fenomena perkembangan data yang terus bertambah tetapi informasi yang dihasilkan monoton, sehingga diperlukan data

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA Pada tinjauan pustaka ini membahas tentang landasan teori yang medukung pembahasan yang berhubungan dengan sistem yang akan dibuat. 2.1 Data Mining Data mining adalah kegiatan menemukan

Lebih terperinci

Latent Semantic Analysis dan. Similarity untuk Pencarian. oleh : Umi Sa adah

Latent Semantic Analysis dan. Similarity untuk Pencarian. oleh : Umi Sa adah Metode Latent Semantic Analysis dan Algoritma Weighted Tree Similarity untuk Pencarian berbasis b Semantik oleh : Umi Sa adah 5109201030 Pembimbing : Prof. Drs.Ec. Ir. Riyanarto Sarno, M.Sc, Ph.D Umi Laili

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Berdasarkan data dari Kementerian Komunikasi dan Informasi Indonesia yang diperoleh dari Lembaga Riset Pasar E-Marketer, populasi pengguna internet tanah air pada tahun

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA Pada tinjauan pustaka ini akan membahas tentang penelitian berita yang menggunakan Text Mining, metode TF-IDF, dan. Yang mana penelitian ini akan mengulas secara lengkap tentang

Lebih terperinci

BAB 1 PENDAHULUAN. 1 Universitas Kristen Maranatha

BAB 1 PENDAHULUAN. 1 Universitas Kristen Maranatha BAB 1 PENDAHULUAN 1.1 Latar Belakang Informasi dan data saat ini bisa diakses dengan lebih cepat dan mudah melalui internet. Orang-orang dapat dengan mudah mencari dan mendapatkan informasi apa pun yang

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Apriori merupakan salah satu algoritma yang terkenal dalam mencari frequent pattern dari database transaksi[8]. Prinsip dari algortima Apriori ini adalah jika sebuah

Lebih terperinci

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Musik memiliki peran yang penting bagi kehidupan manusia. Selain sebagai media hiburan, musik juga merupakan media bantu diri untuk menangani perasaan emosi

Lebih terperinci

RANCANG BANGUN APLIKASI DATA MINING ANALISIS TINGKAT KELULUSAN MENGGUNAKAN ALGORITMA FP-GROWTH (Studi Kasus Di Politeknik Negeri Malang)

RANCANG BANGUN APLIKASI DATA MINING ANALISIS TINGKAT KELULUSAN MENGGUNAKAN ALGORITMA FP-GROWTH (Studi Kasus Di Politeknik Negeri Malang) RANCANG BANGUN APLIKASI DATA MINING ANALISIS TINGKAT KELULUSAN MENGGUNAKAN ALGORITMA FP-GROWTH (Studi Kasus Di Politeknik Negeri Malang) Naufal Farras Hilmy 1, Banni Satria Andoko 2 Program Studi Teknik

Lebih terperinci

BAB 1 PENDAHULUAN UKDW

BAB 1 PENDAHULUAN UKDW BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Perkembangan ilmu pengetahuan yang pesat dewasa ini telah mendorong permintaan akan kebutuhan informasi ilmu pengetahuan itu sendiri. Cara pemenuhan kebutuhan

Lebih terperinci

PERANCANGAN DAN IMPLEMENTASI SISTEM REKOMENDASI PENCARIAN BUKU PERPUSTAKAAN MENGGUNAKAN METODE VECTOR SPACE MODEL

PERANCANGAN DAN IMPLEMENTASI SISTEM REKOMENDASI PENCARIAN BUKU PERPUSTAKAAN MENGGUNAKAN METODE VECTOR SPACE MODEL PERANCANGAN DAN IMPLEMENTASI SISTEM REKOMENDASI PENCARIAN BUKU PERPUSTAKAAN MENGGUNAKAN METODE VECTOR SPACE MODEL (Studi Kasus Perpustakaan Universitas Udayana) LEMBAR JUDUL KOMPETENSI RPL SKRIPSI NI MADE

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah BAB I PENDAHULUAN 1.1 Latar Belakang Masalah World Wide Web saat ini menjadi fasilitas yang sangat populer dan interaktif dalam melakukan pertukaran informasi. Ratusan juta data terus bertambah dengan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Saat ini, perkembangan teknologi telah memberikan pengaruh yang sangat besar di dalam kehidupan manusia. Salah satu pengaruh tersebut di bidang informasi yaitu dalam

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Media massa memiliki berbagai jenis media penyiaran seperti televisi dan radio dan media cetak seperti surat kabar, majalah dan tabloid. Namun, dengan kemajuan teknologi

Lebih terperinci

BAB 3 LANDASAN TEORI

BAB 3 LANDASAN TEORI BAB 3 LANDASAN TEORI 3.1 Text Mining Text mining merupakan suatu teknologi untuk menemukan suatu pengetahuan yang berguna dalam suatu koleksi dokumen teks sehingga diperoleh tren, pola, atau kemiripan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Data Mining Data Mining adalah proses yang mempekerjakan satu atau lebih teknik pembelajaran komputer (machine learning) untuk menganalisis dan mengekstraksi pengetahuan (knowledge)

Lebih terperinci

BAB IV HASIL DAN PEMBAHASAN. jenis dokumen, yaitu dokumen training dan dokumen uji. Kemudian dua

BAB IV HASIL DAN PEMBAHASAN. jenis dokumen, yaitu dokumen training dan dokumen uji. Kemudian dua BAB IV HASIL DAN PEMBAHASAN 4.1. Dokumen yang digunakan Pada penelitian yang dilakukan oleh penulis ini menggunakan dua jenis dokumen, yaitu dokumen training dan dokumen uji. Kemudian dua jenis dokumen

Lebih terperinci

BAB III METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN BAB III METODOLOGI PENELITIAN Metodologi penelitian merupakan sistematika tahapan yang dilaksanakan selama proses pembuatan tugas akhir. Secara garis besar metodologi penelitian tugas akhir ini dapat dilihat

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 6 BAB II TINJAUAN PUSTAKA Pada kajian literatur ini berisi studi pustaka terhadap buku, jurnal ilmiah, penelitian sebelumnya yang berkaitan dengan topik penelitian. Uraian tinjauan pustaka diarahkan untuk

Lebih terperinci

PERSYARATAN PRODUK. 1.1 Pendahuluan Latar Belakang Tujuan

PERSYARATAN PRODUK. 1.1 Pendahuluan Latar Belakang Tujuan BAB 1 PERSYARATAN PRODUK Bab ini membahas mengenai hal umum dari produk yang dibuat, meliputi tujuan, ruang lingkup proyek, perspektif produk, fungsi produk dan hal umum yang lainnya. 1.1 Pendahuluan Hal

Lebih terperinci

BAB II TINJAUAN PUSTAKA. pengetahuan di dalam database. Data mining adalah proses yang menggunakan

BAB II TINJAUAN PUSTAKA. pengetahuan di dalam database. Data mining adalah proses yang menggunakan 6 BAB II TINJAUAN PUSTAKA 2.1 Pengertian Data Mining Data mining adalah suatu istilah yang digunakan untuk menguraikan penemuan pengetahuan di dalam database. Data mining adalah proses yang menggunakan

Lebih terperinci

Gambar 1.1 Proses Text Mining [7]

Gambar 1.1 Proses Text Mining [7] 1. BAB II LANDASAN TEORI 2.1 Text Mining Text mining memiliki definisi menambang data yang berupa teks dimana sumber data biasanya didapatkan dari dokumen, dan tujuannya adalah mencari kata-kata yang dapat

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Data Mining Menurut Turban dalam bukunya yang berjudul Decision Support Systems and Intelligent Systems, data mining adalah suatu istilah yang digunakan untuk menguraikan penemuan

Lebih terperinci

BAB 3 PERANCANGAN 3.1 GAMBARAN UMUM PROSES SEGMENTASI DOKUMEN

BAB 3 PERANCANGAN 3.1 GAMBARAN UMUM PROSES SEGMENTASI DOKUMEN 28 BAB 3 PERANCANGAN Pada bab ini akan dijelaskan mengenai rancangan percobaan pada penelitian segmentasi dokumen ini. Pembahasan akan dimulai dengan penjelasan mengenai gambaran umum proses segmentasi

Lebih terperinci

SISTEM REKOMENDASI PAKET MAKANAN DENGAN ALGORITMA FP-GROWTH PADA RESTORAN SEAFOOD XYZ

SISTEM REKOMENDASI PAKET MAKANAN DENGAN ALGORITMA FP-GROWTH PADA RESTORAN SEAFOOD XYZ SISTEM REKOMENDASI PAKET MAKANAN DENGAN ALGORITMA FP-GROWTH PADA RESTORAN SEAFOOD XYZ Pahridila Lintang 1),Muhammad Iqbal 2), Ade Pujianto 3) 1), 2, 3) Teknik Informatika STMIK AMIKOM Yogyakarta Jl Ring

Lebih terperinci