Rancangan Bangun Music Recommender System Dengan Metode User-Based Collaborative Filtering
SKRIPSI
Diajukan Untuk Menempuh Ujian Akhir Sarjana
TEGUH BUDIANTO 10108530
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2015
(2)
Segala puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa,
karena berkat rahmat-Nyalah akhirnya Skripsi ini dapat diselesaikan. Skripsi
dengan judul “RANCANG BANGUN MUSIC RECOMMENDER SYSTEM
DENGAN METODE USER-BASED COLLABORATIVE FILTERING”,
yang diajukan untuk menempuh ujian akhir sarjana Program Strata I pada Jurusan
Teknik Informatika Universitas Komputer Indonesia.
Penulis menyadari bahwa segala usaha yang dilakukan dalam penulisan
ini tidak akan berhasil dengan baik tanpa bantuan dan saran dari berbagai pihak.
Maka dalam kesempatan ini perkenankanlah penulis mengucapkan terima kasih
kepada yang terhormat :
1. Keluarga tercinta yang selalu memberikan do’a, kasih sayang, semangat dan dorongan moril maupun materil.
2. Bapak Galih Hermawan, S.Kom., M.T. selaku pembimbing yang telah
mengarahkan dan membimbing penulis dalam menyelesaikan penulisan
skripsi ini.
3. Bapak Eko Budi Setiawan, S.Kom., M.T. selaku penguji.
4. Bu Ednawati Rainarli, S.Si., M.Si selaku penguji.
5. Seluruh staf pengajar dan sekretariat Teknik Informatika, yang telah
membantu proses akademik penulis.
6. Ricky, Albi, Ridzki, Derris, Ridha dan seluruh teman-teman IF-11 angkatan
(3)
iv
akhir ini yang tidak dapat disebutkan satu per satu.
Penulis menyadari bahwa penulisan laporan ini masih jauh dari sempurna
maka kritik dan saran dari semua pihak dibutuhkan untuk menambah wawasan
penulis.
Akhir kata semoga Tuhan membalas segala kebaikan yang telah penulis
terima dan harapan penulis semoga Laporan Skripsi ini dapat bermanfaat bagi
pihak yang membutuhkan.
Bandung, 28 Juli 2015
(4)
ABSTRACT ... II KATA PENGANTAR ... III DAFTAR ISI ... V DAFTAR GAMBAR ... IX DAFTAR TABEL ... XI DAFTAR SIMBOL ... XIII DAFTAR LAMPIRAN ... XXII
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 2
1.3 Maksud dan Tujuan ... 2
1.4 Batasan Masalah... 3
1.5 Metodologi Penelitian ... 3
1.5.1 Tahap pengumpulan data ... 3
1.5.2 Tahap pembuatan perangkat lunak ... 4
1.6 Sistematika Penulisan ... 5
BAB 2 LANDASAN TEORI ... 7
2.1 Informasi Retrieval dan information filtering ... 7
2.1.1 Informasi Retrieval ... 7
2.1.2 Information Filtering ... 8
2.2 Recommender System ... 8
2.2.1 Teknik Pengumpulan Data Recommender System ... 9
2.2.2 Metode – Metode Recommender System ... 10
2.3 Metode Collaborative Filtering ... 11
(5)
VI
2.4.2 Data Smoothing ... 15
2.4.3 Neighbour Pre-Selection, Menentukan Cluster untuk Active User ... 16
2.4.4 Neighbour Selection (Pencarian tetangga terdekat) ... 17
2.4.5 Perhitungan Nilai Prediksi ... 17
2.5 Mean Absolute Error (MAE) ... 18
2.6 Blackbox ... 18
2.7 Sistem... ... 19
2.7.1 Pengertian sistem.........19
2.7.2 Elemen Sistem ... 19
2.7.3 Karakrteristik Sistem ... 21
2.8 Artificial Intelliginice ... 23
2.8.1 Bidang-bidang kecerdasan buatan ... 23
2.9 Basis Data.... ... 25
2.9.1 Bahasa Basis Data ... 26
2.9.2 SQL (Structured Query Language) ... 26
2.9.3 ERD (Entity Relationship Diagram) ... 28
2.9.4 Diagram Skema Relasi ... 29
2.10 UML (Unified Modelling Language)... 30
2.10.1 Diagram UML ... 31
2.11 PHP (Personal Home Page) ... 33
2.12 Framework ... 34
2.12.1 Pengertian PHP Framework ... 34
2.12.3 Framework CodeIgniter ... 34
2.12.4 MVC (Model View Controller) ... 34
2.13 Pengertian jQuery... 35
(6)
3.1.2 Analisis Penelitian Sejenis ... 38
3.1.3 Analisis Sistem Yang Akan Dibangun ... 39
3.1.4 Analisis Metode User-Based Collaborative Filtering ... 40
3.1.4.1 Data Rating ... 41
3.1.4.2 Pembentukan Cluster... 41
3.1.4.3 Menentukan Cluster Untuk Active User ... 44
3.1.4.4 Data Smoothing ... 45
3.1.4.5 Pencarian Tetangga Terdekat Active User ... 47
3.1.4.6 Perhitungan Nilai Prediksi ... 48
3.1.5 Analisis Kebutuhan Fungsional ... 49
3.1.5.1 Analisis Kebutuhan Data ... 49
3.1.5.2 Pemodelan Sistem ... 50
3.1.6 Analisis Kebtutuhan Non Fungsional ... 75
3.1.6.1 Analisis Kebutuhan Perangkat Keras ... 75
3.1.6.2 Analisis Kebutuhan Perangkat Lunak ... 76
3.1.6.3 Arsitektur Perangkat Lunak ... 77
3.1.6.4 Analsisis Kebutuhan Pengguna ... 78
3.1.6.6 Skema Relasi ... 79
3.1.6.7 Struktur Tabel ... 79
3.2 Perancangan Sistem ... 80
3.2.1 Struktur menu ... 81
3.2.2 Perancangan Antar Muka ... 81
BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 87
(7)
VIII
4.2 Pengujian ... 90
4.2.1 Pengujian Menggunakan Blackbox ... 90
4.2.1.1 Rencana Pengujian Menggunakan Blacbox ... 90
4.2.1.2 Kasus Dan Hasil Pengujian ... 91
4.2.1.2.1 Pengujian Verifikasi ... 91
4.2.1.2.2 Pendaftaran Akun ... 92
4.2.1.2.3 Menu Musik ... 92
4.2.1.2.4 Penelusuran ... 93
4.2.1.2.5 Rating Anda ... 93
4.2.1.2.6 Rekomendasi ... 94
4.2.1.2.7 Ubah Password ... 94
4.2.1.2.8 Kelola Pengguna ... 95
4.2.1.2.9 Kelola Musik ... 95
4.2.1.2.10 Setting Mesin Rekomendasi ... 95
4.2.1.3 Kesimpulan Hasil Pengujian Sistem Menggunakan Blackbox .. 96
4.2.2 Pengujian Tingkat Akurasi Menggunakan MAE ... 96
4.2.2.1 Rencana Pengujian Tingkat Akurasi Menggunakan MAE... 96
4.2.2.2 Hasil Pengujian Tingkat Akurasi ... 97
4.2.2.3 Analisa Hasil Pengujian ... 100
BAB 5 KESIMPULAN DAN SARAN ... 101
5.1 Kesimpulan ... 101
5.2 Saran ... 101
(8)
collaborative filtering. (Skripsi). Universitas Sebelas Maret, Surakarta.
[2] Erlangga. (2011). Modul Kuliah Rekayasa Perangkat Lunak. Jurusan Teknik Informatika. UNIKOM, Bandung.
[3] J, Durkin. (1994). Expert System Design And Development. Prentice. Hall International Edition. New Jersey: Macmilan Publishing Company.
[4] Jogiyanto, HM. (2005). Analisis & Desain Sistem Informasi : Pendekatan Terstruktur Teory dan Praktek Aplikasi bisnis. Yogyakatra: ANDI.
[5] Kartadinata, Sunaryo. (2014). Pedoman Penulisan Karya Ilmiah UPI Tahun 2014. Bandung: Universitas Pendidikan Indonesia. [6] Kusumadewi, Sri. (2003). Artificial Intelligence (Teknik dan
Aplikasinya). Yogyakarta: Graha Ilmu.
[7] Leimstoll, U. & Stormer, H. (2007). Collaborative Recommender Systems for Online Shops. Journal: AMCIS 2007, Keystone, CO [8] McGinty, L. & B. Smyth. (2006). Adaptive selection: analysis of
critiquing and preference based feed back in conversation on recommender system. International J Electron Commerce.
[9] Mortensen, Magnus. (2007). Design and Evaluation of a Recommender System. University of Tromso.
[10] Myer, Thomas. (2008). Professional CodeIgniter. Wiley Publishing.
[11] Pazzani, Michael J. & Billsus, Daniel. (2007). Content-Based Recommendation Systems. Springer-Verlag Berlin Heidelberg. [12] Pressman, Roger S. (2001). Software Engineering : A
(9)
104
[14] Saptariani, Trini. (2014). Sistem Rekomendasi Musik Menggunakan Latent Semantic Analysis. (Skripsi). Teknik Informatika, Universitas Gunadarma, Depok.
[15] Sarwar, Badrul. (2001). Item-Based Collaborative Filtering Algorithms. Minneapolis : University of Minnesota.
[16] Septian, Gungun. (2011). Trik Pintar Menguasai CodeIgniter. Jakarta: Elex Media Komputindo.
[17] Shalahuddin, Muhammad & Rosa Ariani S. (2011). Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek). Bandung: Modula.
[18] Twoh & co, Sekilas tentang sistem rekomendasi. [Online] Diakses dari http://www.twoh.co/2013/05/sekilas-tentang-sistem-
rekomendasi-recommender-system/ (Diakses tanggal 19 Mei 2015)
[19] Wang, Jun. (2006) Unfiying User-Based and Item-Based Collaborative Filtering Approaches by Similarity Fusion.
Amsterdam: Delft University Of Technology.
[20] Wiranto & Winarko, Edi. (2010). Konsep Multicriteria Collaborative Filtering Untuk Perbaikan Rekomendasi. Seminar Nasional Aplikasi Teknologi Informasi. Yogyakarta
[21] Xue, Gui-Rong. (2005). Journal: Scalable Collaborative Filtering Using Cluster-based Smoothing, Brazil
(10)
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Berbagai penelitian tentang sistem rekomendasi sebenarnya telah diaplikasikan untuk merekomendasikan berbagai informasi, seperti musik, film, buku, berita, jurnal ilmiah dan barang yang tersedia di toko online. Beberapa diantaranya adalah yang bergerak dibidang musik, lalu yang bergerak di bidang e-commerce adalah situs Amazon.com, sementara di bidang film terdapat MovieLens yang dikembangkan oleh lembaga riset GroupLens dari University of Minnesota, untuk memprediksi rating
suatu film. Sistem rekomendasi merupakan model aplikasi dari hasil observasi terhadap keadaan dan keinginan pengguna. Oleh karena itu sistem perekomendasi memerlukan model rekomendasi yang tepat agar yang di rekomendasikan sesuai dengan keinginan pengguna, serta mempermudah pengguna mengambil keputusan yang tepat dalam menentukan item yang akan dipilih (Sarwar, Badrul. 2001).
Industri musik belakangan ini mengalami perubahan yang sangat signifikan. Konsumen kini cenderung mengakses dan membeli konten secara online dibandingkan pergi ke sebuah toko, hal ini jelas menimbulkan masalah pertumbuhan data yang sangat cepat di internet menyebabkan terlalu banyaknya informasi yang tersedia. Hal ini menyebabkan seseorang mengalami kesulitan dalam mendapatkan informasi mengenai musik yang cepat dan sesuai dengan kebutuhan. Untuk itu diperlukan sistem rekomendasi sehingga dapat membantu seseorang menemukan informasi musik yang sesuai dengan kebutuhannya (Saptariani, Trini. 2014).
Dalam penelitian ini sistem rekomendasi akan dianalisa dan dibangun dengan menggunakan metode user-based collaborative filtering karena dengan algoritma ini melibatkan subyektifitas pengguna dalam perhitungan sehingga rekomendasi yang dihasilkan mempunyai kualitas yang baik. Namun metode user-based collaborative filtering inimasih mempunyai kekurangan yaitu adanya :
(11)
1. Scalability, yaitu keadaan dimana tingginya jumlah peningkatan user
dan item di dalam database yang mempengaruhi menurunnya komputasi algoritma user-based collaborative filtering.
2. Sparsity, yaitu terjadinya kekosongan data matriks user-item, yang disebabkan karena user merating dalam jumlah kecil dari jumlah item yang tersedia di dalam database.
Oleh karena itu perlu digunakan algoritma tambahan yaiitu K-Means clustering dan proses smoothing yang bertujuan untuk menangani dua masalah utama tersebut.
Music recommender system ini dibangun diatas platform web, dengan pertimbangan perangkat lunak yang dibangun harus memiliki kemampuan untuk menangani banyak pengguna.
Berdasarkan uraian di atas dengan permasalahan yang terjadi, maka dengan harapan sistem rekomendasi ini nantinya dapat membantu dan memberikan informasi tentang musik yang tepat untuk pengguna.
1.2 Rumusan Masalah
Berdasarkan permasalahan yang terdapat di latar belakang yang telah dikemukakan maka permasalahan dalam penelitian ini adalah bagaimana membangun suatu sistem rekomendasi musik menggunakan metode user-based collaborative filtering guna untuk mempermudah pengguna memperoleh rekomendasi.
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penelitian ini adalah membangun suatu sistem rekomendasi musik berbasis website menggunakan metode user-based collaborative filtering.
Sedangkan tujuan yang ingin dicapai dalam penelitian ini adalah: 1. Mempermudah pengguna untuk menemukan musik yang diinginkan. 2. Untuk mengetahui sejauh mana tingkat akurasi dari metode ini.
(12)
1.4 Batasan Masalah
Batasan masalah dalam pembangunan sistem rekomendasi ini sebagai berikut: 1. Sistem rekomendasi ini dibangun dengan berbasis website.
2. Data rating yang digunakan didapatkan dari user yang mendaftar ke dalam sistem yang dibangun.
3. Skala penilaian yang digunakan adalah dimana rating 1 untuk musik yang sangat buruk, rating 2 untuk musik cukup buruk, rating 3 untuk musik yang biasa saja, rating 4 berarti musik baik, dan terakhir rating 5 berarti musik sangat baik.
4. Untuk mengatasi masalah scalability (Peningkatan user dan item dalam database) maka digunakan algoritma tambahan yaitu K- means clustering. 5. Untuk mengatasi masalah sparsity (Kekosongan data matriks user-item
dikarenakan user merating dalam jumlah kecil) maka digunakan proses
smoothing.
6. Untuk menghitung tingkat akurasi dan performansi recommender system ini menggunakan perhitungan Mean Absolute Error (MAE).
1.5 Metodelogi Penelitian
Metodelogi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :
1.5.1 Metode Penggumpulan Data
Metode pengumpulan data dalam penelitian ini menggunakan dua cara yaitu :
a) Secara eksplisit. Dilakukan dengan meminta pengguna yang terdaftar didalam sistem untuk merating sebuah item dari range tertentu, memberikan ranking berdasarkan dari item yang disukai oleh pengguna.
b) Secara Implisit. Dilakukan dengan mengamati pola kecenderungan pengguna yang terdaftar didalam sistem melalui mengamati item
(13)
-1.5.2 Metode Pembangunan Perangkat Lunak
Teknik analisis data dalam pembuatan aplikasi menggunakan metode sekuensial linier yang meliputi beberapa proses, diantaranya :
a) System/Information Engineering.
Menetapkan berbagai kebutuhan dari semua elemen yang diperlukan sistem dan mengalokasikannya kedalam pembentukan perangkat lunak.
b) Analysis
Pada proses ini analisis dilakukan dengan mengumpulkan data rating
terlebih dahulu yang diperoleh dari user yang merating beberapa musik, setelah data rating terbentuk kemudian adalah proses pembentukan cluster dalam pemebentukan cluster ini digunakan algoritma tambahan yaitu K-means clustering guna untuk mengatasi masalah scalability. Setelah proses pembentukan cluster selesai maka hal selanjutnya yaitu menentukan cluster untuk active user dimana untuk menentukan cluster active user diperoleh dari memilih beberapa
cluster yang memiliki nilai kemiripan yang besar kemudian dihitung nilai similaritynya setelah proses ini selesai maka proses selanjuntnya yaitu proses smoothing dimana hal ini merupakan pemberian nilai
rating bayangan guna untuk mengatasi masalah sparsity. Setelah proses smoothing selesai maka hal selanjutnya yaitu pencarian tetangga terdekat acive user dengan cara membuat nilai kemiripan
ua
dengan user-user didalam cluster. Proses terakhir dari analisis ini yaitu melakukan perhitungan nilai prediksi guna untuk mendapatkan hasil rekomendasi yang dibutuhkan.c) Design
Tahap penerjemahan dari data yang dianalisis kedalam bentuk yang mudah dimengerti oleh user dengan menggunakan diagram UML.
(14)
d) Code
Penerjemahan data atau pemecahan masalah yang telah dirancang keadalam bahasa pemrograman php.
e) Test
Penelitian ini menggunakan metode Mean Absolute Error (MAE) untuk pengujiannya. MAE digunakan untuk menghitung tingkat akurasi atau nilai kesalahan hasil prediksi rating dari sistem terhadap rating sebenarnya.
Gambar 1.1 Metode Sekuensial Linier. (Pressman, Roger S. 2001) 1.6 Sistematika Penulisan
Sistematika penulisan penelitian tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB 1 PENDAHULUAN
Pada bab pendahuluan ini, menguraikan tentang secara singkat tentang latar belakang masalah, rumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian serta sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini berisi teori-teori pendukung yang berhubungan dengan pembangunan
music recommender system.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi deskripsi sistem, analisis kebutuhan dalam pembangunan music recommender system serta perancangan yang dikembangkan.
(15)
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisi implementasi pembangunan music recommender system yang dibangun , ujicoba dan hasil pengujian sistem.
BAB 5 KESIMPULAN DAN SARAN
Bab ini menjelaskan tentang kesimpulan yang diperoleh dari hasil implementasi dan pengujian music recommender system serta saran-saran untuk pengembangan aplikasiini selanjutnya.
(16)
BAB II
LANDASAN TEORI
2.1 Information Retrieval dan Information Filtering
Perkembangan internet yang sangat pesat secara tidak langsung memberikan kemampuan kepada pengguna untuk memilih di antara banyak dari informasi yang ada di internet. Informasi ini bisa berkaitan dengan profesi mereka, kejadian yang ada di dunia, atau bahkan informasi yang berkaitan dengan gaya hidup. Informasi yang dibutuhkan oleh pengguna internet terus mengalami peningkatan dan ini bisa datangnya dari berbagai sumber yang berbeda-beda. Misalnya melalui halaman web, email, artikel, berita, jurnal, situs belanja, dan situs multimedia. Perkembangan ini memicu terjadinya information explosion di dunia maya yang menyulitkan pengguna dalam mencari suatu informasi dengan cepat dan relevan. Masalah ini menjadi alasan dikembangkannya beberapa teknik untuk information retrieval dan information filtering (Mortensen, Magnus. 2007).
2.1.1 Information Retrieval
Information Retrieval (IR) sering sekali dikaitkan dengan pencarian data, merupakan teknologi yang mencakup crawling, processing dan indexing konten, serta
querying untuk konten. Crawling adalah tindakan mengakses web server dan file system untuk mendapatkan informasi. Dengan mengikuti link yang ada, pengguna dapat melintasi hirarki konten web berdasarkan sebuah URL (Uniform Resource Locator). Pada tahapan processing memungkinkan pengguna untuk melakukan penambahan, menghapus, dan mengubah informasi menjadi sebuah dokumen, seperti menambah informasi meta baru untuk laguange processing atau menggali informasi tentang bahasa yang tertulis pada dokumen tersebut. Indexing sendiri merupakan proses untuk memeriksa konten yang telah diperiksa pada tahap processing dan membuat sebuah struktur data yang dicari, disebut dengan index, dimana index berisi
(17)
tentang referensi konten. Querying adalah tahapan untuk melakukan request
informasi. IR memperbolehkan pengguna untuk menulis query dalam bentuk keyword
yang menggambarkan informasi yang dibutuhkan oleh pengguna. Disini pengguna dapat berinteraksi dengan query interface, lalu sebuah query-processor akan menggunakan index untuk mencari referensi informasi berdasarkan keyword dan kemudian menampilkan referensi yang ada. Tujuannya adalah untuk menganalisa dan mengidentifikasi tujuan dari penggunaan query dan memberikan hasil yang paling relevan.
Penyaringan informasi pada sistem IR dilakukan dengan memberikan akses bagi pengguna untuk menentukan informasi apa yang dibutuhkan dengan menulis secara manual keyword yang menggambarkan informasi yang ingin dicari. IR cukup sukses untuk mendukung pengguna yang tahu bagaimana menjelaskan dengan tepat apa yang mereka cari dengan cara yang kompatibel dengan mendeskripsi konten yang diciptakan selama indexing (Mortensen, Magnus. 2007).
2.1.2 Information Filtering
Information Filtering (IF) berfokus pada penyaringan informasi berdasarkan profil dari user. Profil user dapat dibentuk dengan membiarkan pengguna menentukan dan menggabungkan minat secara eksplisit, atau dengan membiarkan sistem implisit memonitor prilaku pengguna. Keuntungan IF adalah kemampuannya beradaptasi dengan minat jangka panjang dari pengguna. Sistem ini dibangun atas gagasan untuk memiliki sistem yang mampu memberikan panduan kepada pengguna untuk memilih sesuatu informasi yang bersifat personal atau sesuai dengan selera pengguna. Sistem yang merealisasikan ide ini disebut dengan recommender system
Mortensen, Magnus. 2007).
2.2 Recommender System (Sistem Rekomendasi)
Recommender System merupakan sebuah aplikasi information filtering untuk mencari dan memberikan rekomendasi item berupa informasi, produk, atau layanan kepada user berdasarkan prediksi yang bersifat personal (Sarwar, Badrul. 2001). Pengembangan recommender system oleh berbagai online vendor merupakan langkah
(18)
untuk menarik lebih banyak perhatian pengguna dan meningkatkan kepuasan pengguna terhadap hasil pencarian informasi secara online. Pada e-commerce
misalnya, dimana sistem rekomendasi digunakan secara luas untuk menyarankan produk kepada pelanggan dan untuk menyediakan pelanggan dengan informasi sehingga membantu pelanggan memutuskan pilihan produk yang akan dibeli (Mortensen, Magnus. 2007). Hal ini menjadi sangat penting bagi keberhasilan industri di bidang teknologi informasi dan e-commerce saat ini yang secara bertahap mendatangkan keuntungan dari segi popularitas di berbagai aplikasi, misalnya proyek Netflix, Google news, dan Amazon.
Sistem rekomendasi dibangun dengan tujuan membantu user untuk memilih
item-item yang disukainya dari sekian banyak item yang tersedia. Teknik pencari item
yang akan direkomendasikan dapat dilakukan berdasarkan kemiripan, bisa berupa kemiripan suatu item dengan item lainnya, berdasarkan konten atau kemiripan selera suatu user dengan user lain berdasarkan rating yang diberikan pada item.
2.2.1 Teknik Pengumpulan Data Recommender System
Dalam pengumpulan data yang akan digunakan dalam sistem rekomendasi dapat dilakukan dengan dua cara (Sanjung, Ariyani. 2011) yaitu secara eksplisit dan implisit :
1. Secara eksplisit dapat dilakukan misalnya dengan meminta user untuk merating sebuah item dari range tertentu, memberikan ranking berdasarkan dari item yang disukai dan yang tidak disukai oleh user, ataupun dengan meminta user untuk melakukan list terhadap item-item yang disukai.
2. Implisit dilakukan dengan mengamati pola kecenderungan user (behavior user) melalui observasi social network atau dengan mengamati item-item yang sering dilihat atau didengar oleh user. Dengan kata lain, jika secara eksplisit
user memberikan penilaian preferensi terhadap item secara langsung, sedangkan implisit tidak secara langsung.
(19)
2.2.2 Metode – Metode Recommender System
Berdasarkan pendekatan yang digunakan untuk menghasilkan rekomendasi,
recommender system dapat diklasifikasikan dalam tiga kelompok utama (Leimstoll, U., Stormer, H. 2007) adalah sebagai berikut :
1. Content Based Recommender System.
Metode content based membuat rekomendasi dengan menganalisa deskripsi setiap item untuk mengidentifikasi item mana yang mempunyai hubungan ketertarikan khusus dari seorang user. Deskripsi ketertarikan user diperoleh dari profil user yang didasarkan atas penilaian menarik atau tidaknya suatu
item yang ada pada recommender system ini (Pazzani, Michael J. & Billsus, Daniel. 2007). Pada data item film misalnya, deskripsi konten bisa berupa
genre, aktor yang berpartisipasi, sutradara, dan sebagainya. 2. Collaborative Filtering Recommender System.
Pendekatan collaborative filtering merekomendasikan item kepada user
berdasarkan korelasi antara rating user yang berbeda terhadap item atau transaksi user di dalam sistem. Sementara user merating item, sistem akan menggunakan data rating user tertentu untuk melakukan perhitungan prediksi dan memberikan rekomendasi item yang belum pernah dirating oleh user
tersebut.
3. Hybrid Recommender System.
Secara umum pendekatan hybrid recommendations adalah dengan menggabungkan lebih dari satu metode yang ada pada recommender system, kombinasi yang ada pada teknik ini misalnya dengan menggabungkan metode
content based dengan collaborative filtering (Leimstoll, U., Stormer, H. 2007).
(20)
2.3 Metode Collaborative Filtering
Collaborative filtering (CF) adalah teknologi recommender system yang paling sukses dan populer saat ini, serta penggunaan CF sangat sukses untuk berbagai recommender system yang ada di internet. Teknik ini menggunakan teknik statistik untuk menemukan satu set user yang dikenal sebagai neighbors, dimana setiap user
memiliki kesamaan minat dan pendapat dengan target user (yaitu, mereka memiliki beberapa ratingitem yang sama atau kecenderungan user menyukai item yang sama). Setelah lingkungan neighbors terbentuk, sistem ini akan menggunakan beberapa algoritma untuk menghasilkan rekomendasi.
Gambar 2.1. Proses Collaborative Filtering (Sarwar, Badrul. 2001).
Dalam skenario CF terdapat daftar pengguna m user U = {u1, u2,…, um} dan daftar item I = {p1, p2,…, pn}. Setiap ui user mengekspresikan pendapatnya tentang daftar item miliknya. Kumpulan set dari pendapat itu disebut dengan rating dari user
ui dan dilambangkan dengan Iui. Setelah sistem ini menentukan ketetanggaan terdekat, maka sistem akan merepresentasikan item yang mungkin disukai user dalam dua bentuk, yaitu:
1. Prediksi, merupakan nilai numerik dimana Pa,j adalah nilai prediksi rating item j yang mungkin disukai oleh active user (Ua). Nilai prediksi ini digunakan dengan skala yang sama dengan nilai yang disediakan (misalnya, dari skala 1 sampai 5).
(21)
2. Rekomendasi adalah daftar N item yang mungkin akan disukai oleh user Ua. Daftar yang direkomendasikan biasanya terdiri dari item yang belum pernah dibeli atau dirating oleh active user. Output dari algoritma CF ini juga dikenal sebagai Top-N Recommendation.
Gambar 2.1 menunjukkan diagram skema dari proses collaborative filtering. Algoritma CF merepresentasikan seluruh m x n user-item sebagai matriks rating
dimana setiap entri merupakan nilai rating dari user untuk setiap item. Active user
(Ua) pada skema ini merupakan user yang akan dicari item yang mungkin disukainya dengan menggunakan algoritma CF (Sarwar, Badrul. 2001).
2.3.1 Pendekatan Berbasis Collaborative Filtering
Terdapat dua bentuk pendekatan berbasis collaborative filtering, yaitu user
-based CF dan item-based CF.
1. User-based CF mengasumsikan bahwa cara yang baik untuk menemukan item
yang menarik bagi user tertentu adalah dengan mencari user lain yang memiliki minat yang sama. Jadi, pada awalnya user-based CF mencoba untuk menemukan user neighbor berdasarkan pada user similarity dan kemudian setiap nilai rating dari userneighbor yang telah ditentukan sebelumnya. 2. Algoritma Item-based CF memiliki skema yang hampir sama dengan user
-based CF, jika sebelumnya user-based CF yang dicari adalah korelasi antara
user, maka pada item-based CF korelasi yang dicari adalah antar item yang disukai oleh user kemudian item yang berkorelasi tersebut direkomendasikan terhadap sejumlah user lainnya.
2.3.2 Konsep Dasar Collaborative Filtering
Collaborative filtering melakukan penyaringan data berdasarkan kemiripan karakteristik user sehingga mampu memberikan informasi yang baru kepada user
karena sistem memberikan informasi berdasarkan pola satu kelompok user yang hampir sama. Perbedaan minat pada beberapa anggota kelompok menjadikan sumber informasi baru yang mungkin bermanfaat bagi anggota kelompok lainnya.
(22)
Secara umum proses pemberian rekomendasi terdiri atas tiga langkah, yaitu: penemuan similar user, pembuatan ketetanggaan (neighbour), dan penghitungan prediksi berdasarkan tetangga yang dipilih. Collaborative filtering menghasilkan prediksi atau rekomendasi bagi pengguna atau pelanggan yang dituju terhadap satu
item atau lebih. Item dapat terdiri atas apa saja yang dapat disediakan manusia seperti misalnya buku, film, seni, artikel, atau tujuan wisata. Rating dalam collaborative filtering dapat berbentuk dari model-model sebagai berikut:
a) Model rating skalar yang terdiri atas rating numerik seperti 1 (satu) sampai 5 (Lima).
b) Model rating biner dengan memilih antara setuju atau tidak setuju, atau dapat pula baik atau buruk.
2.4 Metode User-Based Collacborative Filtering
User-based Collaborative Filtering menggunakan teknik statistika untuk menemukan sekumpulan pengguna, dikenal sebagai tetangga (neighbour), yang memiliki sejarah setuju dengan pengguna yang menjadi sasaran. Setelah sekumpulan tetangga terbentuk, sistem menggunakan algoritma yang berbeda untuk menggabungkan kesukaan neighbours untuk menghasilkan prediksi atau rekomendasi N-teratas untuk user aktif. (Sarwar, Badrul. 2001).
Pada pendekatan user based collaborative filtering sistem memberikan rekomendasi kepada user item-item yang disukai atau dirating oleh user-user lain yang memiliki banyak kemiripan dengannya. Misalnya, user a menyukai atau
merating item 1, 2 dan 3, kemudian user b menyukai item 1, 2 dan 4 maka sistem akan merekomedasikan item 3 kepada user b dan item 4 kepada user a.
Kelebihan dari pendekantan user based collaborative filtering adalah dapat menghasilkan rekomendasi yang berkualitas baik. Berikut merupakan skema user based collaborative filtering.
(23)
Gambar 2.2 Pola user based collaborative filtering (Sarwar, Badrul. 2001). 2.4.1 Algoritma K-MeansClustering
Algoritma yang digunakan pada proses pembentukan user cluster adalah algoritma K-means. Jumlah k merupakan input yang digunakan algoritma untuk menentukan seberapa banyak jumlah cluster yang ingin dibentuk. Adapun langkah-langkah pada K-means clustering adalah sebagai berikut (Xue, Gui-Rong. 2005) :
1. Tentukan beberapa k user yang dijadikan sebagai centroid.
2. Setiap user yang tidak menjadi centroid dibandingkan ke centroid terdekat berdasarkan nilai similarity.
3. Kalkulasi ulang nilai centroid berdasarkan rata-rata nilai kumpulan user di setiap cluster yang terbentuk.
4. Lakukan proses pembentukan ulang cluster dengan nilai centroid yang baru hingga nilai centroid stabil atau mendekati nilai centroid sebelumnya.
Nilai similarity antara centroid user dan user lainnya didefinisikan mengunakan Pearson correlation-coefficient, adalah sebagai berikut (Persamaan 2.1):
(24)
2.4.2 Data Smoothing
Sparsity adalah masalah fundamental yang ada pada collaborative filtering, dengan menerapkan data smoothing pada sistem CF maka masalah ini dapat diminimalisir. Smoothing dilakukan dengan mengisi missing value pada dataset
dengan rating bayangan. Berdasarkan hasil clustering, teknik smoothing data untuk
rating bayangan didefinisikan sebagai penilaian khusus berikut (Xue, Gui-Rong. 2005) :
(25)
2.4.3 Neighbor Pre-Selection, Menentukan Cluster untuk Active User
Tahapan terpenting dari algoritma collaborative filtering adalah mencari tetangga terdekat dari active user di dalam suatu cluster. Nilai similarity berperan dalam proses mencari user-user yang memiliki kesamaan dengan active user dan menentukan tetangga terdekat dari active user tersebut. Pada metode CF proses semacam ini akan dilakukan dengan mencari tetangga terdekat ke seluruh database. Hal ini berpengaruh pada proses komputasi ketika item dan user baru ditambahkan ke dalam database. Dengan penerapan konsep cluster, komputasi sistem dapat menjadi lebih baik. Kelompok user di dalam cluster direpresentasikan oleh centroid cluster.
Centroid sendiri direpresentasikan sebagai hasil rata-rata rating dari seluruh user
yang ada di cluster. Dalam menentukan beberapa cluster yang memiliki nilai kesamaan dengan active user dilakukan dengan mengkalkulasi nilai similarity antara
active user dengan kumpulan user-user di suatu cluster menggunakan persamaan berikut (Xue, Gui-Rong. 2005) :
Setelah melakukan kalkulasi terhadap nilai similarity antara setiap grup dan
active user, maka dapat ditentukan beberapa kumpulan cluster yang memiliki kemiripan besar dengan active user.
(26)
2.4.4 Neighbor Selection (Pencarian Tetangga Terdekat)
Jika cluster active user telah ditentukan, maka dilanjutkan dengan tahap pencarian tetangga terdekat. Hal ini berdampak pada proses perhitungan untuk mencari tetangga terdekat bagi active user sehingga terdapat nilai untuk variabel wut
yang merupakan confidential weight untuk user u terhadap item t, didefinisikan sebagai berikut (Xue, Gui-Rong. 2005) :
λ merupakan parameter yang digunakan untuk penyesuaian antara original rating
dan group rating. Nilai λ berkisar antara 0 hingga 1. Dalam pencarian tetangga terdekat digunakan persamaan berikut ini untuk menentukan nilai similarity :
merupakan nilai similarity antara active user dengan user-user dalam suatu
cluster.
2.4.5 Perhitungan Nilai Prediksi
Jumlah tetangga terdekat terhadap active user serta confidential weight yang menggabungkan rating-rating mempengaruhi proses perhitungan nilai prediksi. Perhitungan nilai prediksi tersebut menggunakan persamaan sebagai berikut (Xue, Gui-Rong. 2005) :
(27)
2.5 Mean Absolute Error (MAE)
Mean Absolute Error merupakan persamaan yang termasuk jenis statistical accuracy metrics, dimana MAE merupakan metrics yang paling sering digunakan untuk pengukuran akurasi dari recommender system. Sesuai dengan namanya, MAE menghitung nilai rata-rata selisih antara nilai prediksi dengan nilai sebenarnya (Xue, Gui-Rong. 2005). Nilai MAE sendiri, berkisar antara 0 hingga 1. Semakin kecil nilai MAE menandakan semakin akurat prediksi nilai rating dari sebuah recommender system (Xue, Gui-Rong. 2005).
2.6 Blackbox
Blackbox testing adalah pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi dianalogikan seperti kita melihat suatu kotak hitam, kita hanya bisa melihat penampilan luarnya saja, tanpa tau ada apa dibalik bungkus hitamnya. Sama seperti pengujian blackbox, mengevaluasi hanya dari tampilan luar fungsionalitasnya (Interfacenya saja). Tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detilnya (hanya mengetahui input dan output).
Menurut Myers (1979) :
Proses menjalankan program dengan maksud menemukan kesalahan. Menurut IEEE (1990) :
1. Pengujian yang mengabaikan mekanisme internal sistem atau komponen dan fokus semata-mata pada output yang dihasilkan yang merespon input yang dipilih dan kondisi eksekusi.
(28)
2. Pengujian yang dilakukan untuk mengevaluasi pemenuhan sistem atau komponen dengan kebutuhan fungsional tertentu.
2.7 Sistem
Suatu sistem pada dasarnya merupakan suatu susunan yang teratur dari kegiatan yang berhubungan satu sama lain dan prosedur-prosedur yang berkaitan yang melaksanakan dan mempermudah pelaksanaan kegiatan utama dari suatu organisasi.
2.7.1 Pengertian Sistem
Sistem adalah jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul, bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu (Jogiyanto. HM. 2005). Definisi sistem dapat dilihat dari dua kelompok pendekatan yaitu yang menekankan pada prosedur dan yang menekankan pada komponen atau elemennya.
1. Berdasarkan Penekanan Prosedur
Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama untuk melakukan sesuatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu.
2. Berdasarkan Penekanan Komponen
Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu.
2.7.2 Elemen Sistem
Adapun dalam suatu sistem, dikenal berbagai elemen-elemen yang menyusun suatu sistem, yaitu sebagai berikut :
a) Tujuan
Dalam suatu sistem pasti memiliki suatu tujuan, mungkin hanya satu atau mungkin juga banyak. Dalam suatu tujuan inilah yang menjadi pemotivasi yang mengarahkan akan suatu sistem. Tanpa adanya suatu tujuan, maka suatu sistem menjadi tak terarah dan tak terkendali. Hal ini dapat menyebabkan tujuan yang
(29)
b) Masukan
Masukan input sistem adalah segala sesuatu yang masuk ke dalam suatu sistem yang kemudian menjadi bahan yang nantinya menjadi bahan untuk diproses. Masukan sistem ini dapat berupa hal-hal yang berwujud (kenyataan) ataupun yang tidak tampak (khayalan). Adapun beberapa contoh, seperti masukan sistem yang berjalan yang berupa bahan mentah yang berwujud. Sedangkan masukan sistem yang tidak tampak atau tidak berwujud adalah sebuah informasi, dikarnakan sebuah informasi tidak berwujud atau tidak tampak dengan kasat mata.
c) Proses
Proses adalah suatu bagian yang melakukan perubahan atau transformasi dari masukan menjadi keluaran yang berguna dan lebih bernilai dalam mencapai suatu tujuan dapat berupa informasi dan produk, akan suatu proses bisa juga berupa hal-hal yang tidak berguna atau yang tidak diinginkan, misalnya seperti pembuangan limbah yang nantinya juga dapat menimbulkan suatu masalah dalam pencapaian suatu tujuan
d) Keluaran
Keluaran atau output disini adalah lanjutan tahapan dari tahapan proses. Dalam output yang dihasilkan dari tahapan-tahapan sebelumnya ialah dapat berupa informasi yang diinginkan, laporan dan lain-lain.
e) Batas atau boundary
Batasan atau boundary adalah pemisah antara suatu sistem dengan daerah di luar sistem atau yang bisa disebut juga lingkungan. Dalam batas suatu sistem akan menentukan konfigurasi, ruang lingkup dan kemampuan suatu sistem. Contohnya adalah suatu perusahaan yang memiliki peraturan akan tetapi perusahaan atau organisasi tersebut memilik keterbatasan kemampuan karyawan atau pegawainya. Tentu saja batas suatu sistem dapat dikurangi atau diperbaharui sehingga sistem tersebut akan mengubah perilaku sistem itu sendiri.
(30)
f) Mekanisme pengendalian dan umpan balik
Mekanisme pengendalian disini dapat diwujudkan dengan menggunakan umpan balik, yang mencuplik keluaran. Umpan balik ini digunakan dengan tujuan untuk mengendalikan suatu masukan maupun proses. Tujuannya utamanya adalah untuk mengatur agar sistem berjalan sesuai dengan tujuan.
g) Lingkungan
Lingkungan merupakan segala sesuatu yang berada diluar sistem. Lingkungan ini bisa berpengaruh terhadap suatu operasi sistem dalam arti bisa merugikan atau menguntungkan suatu sistem itu sendiri. Lingkungan yang merugikan tentu saja harus dihindari dan dikendalikan supaya tidak mengganggu akan kelangsungan operasi sistem, sedangkan yang menguntungkan tetap harus terus dijaga, dikarena akan memacu terhadap kelangsungan hidup sistem tersebut.
2.7.3 Karakteristik Sistem
Suatu sistem mempunyai karakteristik atau sifat-sifat yang tertentu, yaitu mempunyai komponen-komponen (component), batas sistem (boundary), lingkungan luar sistem (environments), penghubung (interface), masukan (input), pengolahan (process) keluaran (output) dan sasaran (objektif) atau tujuan (goals) .
a) Komponen Sistem
Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang artinya saling bekerjasama membentuk suatu kesatuan. Komponen-komponen sistem atau elemen-elemen sistem dapat berupa suatu sub sistem atau bagian-bagian dari sistem. Setiap sub-sub sistem mempunyai sifat-sifat dari sistem yang menjalankan suatu fungsi tertentu dan mempengaruhi proses sistem secara keseluruhan.
b) Batas Sistem
Batas sistem merupakan daerah yang membatasi antara suatu sistem dengan sistem dengan sistem lainnya atau dengan lingkungan lainnya. Batas sistem ini memungkinkan suatu sistem dipandang sebagai satu kesatuan. Batas suatu sistem
(31)
c) Lingkungan Luar Sistem
Lingkungan luar dari suatu sistem adalah apapun diluar batas dari sistem yang mempengaruhi operasi sistem. Lingkungan luar sistem dapat bersifat menguntungkan dan dapat juga bersifat merugikan. Lingkungan luar yang menguntungkan merupakan energi dari sistem dengan demikian harus dijaga dan dipelihara, sedangkan lingkungan luar yang merugiakan harus ditahan dan dikendalikan kalau tidak maka akan menggangu kelangsungan hidup dari sistem. d) Penghubung Sistem
Penghubung merupakan media penghubung antara sub sistem dengan subsistem lainnya. Melalui penghubung ini memungkinkan sumber-sumber daya mengalir dari satu subsistem ke subsistem lainnya. Keluaran (output) dari subsistem akan menjadi masukan (input) pada sistem lainnya dengan penghubung satu subsistem dapat berintegrasi dengan subsistem lainnya membentuk satu kesatuan.
e) Masukan Sistem
Masukan sistem adalah energi yang dimasukan ke dalam sistem. Masukan dapat berupa masukan perawatan (maintenance input) dan masukan (signal input). maintenance input adalah energi yang dimasukkan supaya sistem tersebut dapat beroperasi. Signal input adalah energi yang diproses untuk didapatkan keluarannya.
f) Keluaran Sistem
Keluaran adalah hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna dan sisa keluaran dapat merupakan masukan untuk subsistem yang lain atau kepada supra sistem.
g) Pengolahan Sistem
Suatu sistem dapat mempunyai suatu bagian pengolahan atau sistem itu sendiri sebagai pengolahnya. Pengolah yang akan merubah masukan menjadi keluaran.
(32)
Bentuk umun dari suatu sistem terdiri atas masukan (input), proses dan keluaran (output) seperti terlihat pada gambar 2.1 dalam bentuk umum sistem ini bisa melakukan satu atau lebih masukan yang akan diproses dan menghasilkan keluaran sesuai dengan rencana yang telah ditentukan sebelumnya .
INPUT PROSES OUTPUT
Gambar 2.3 Bentuk Umum Sistem (Jogiyanto. HM. 2005). 2.8 Artificial Intelligince
Dewasa ini Artificial Intelligince (AI) banyak menarik minat dan perhatian dari masyarakat luas. Menurut (Kusumadewi, Sri. 2003), AI adalah salah satu bagian ilmu komputer yang membuat agar komputer dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya dipakai sebagai alat hitung saja. Namun, seiring perkembangan jaman maka peran komputer semakin mendominasi kehidupan umat manusia.
Manusia bisa menjadi pandai dalam menyelesaikan suatu persoalan karena manusia mempunyai pengehtahuan dan disertai pengalaman. Pengetahuan diperoleh dari belajar. Semakin banyak bekal pengehtahuan yang dimiliki seseorang, maka orang tersebuat diharapkan dapat lebih mampu dalam menyelesaikan suatu persoalan. Agar komputer pun dapat bertindah seperti dan sebaik manusia, maka komputer juga harus diberi bekal pengehtahuan dan mempunyai kemampuan untuk berpikir. Pada AI, komputer dibekali beberapa metode yang diharapkan agar komputer dapat menjadi benda yang pintar.
2.8.1 Bidang – Bidang Kecerdasan Buatan a. Sistem Pakar (Expert System)
Sistem pakar adalah program komputer yang didesain untuk berlaku sebagai seorang ahli dalam suatu bidang khusus. Namun sekarang sistem
(33)
pakar biasanya hanya digunakan untuk membantu para ahli dalam memecahkan suatu masalah.
b. Natural Language Procesing (NLP)
Natural Language Processing adalah komputer yang dimaksudkan untuk mengenal makna dari bentuk kalimat berbeda-beda. Selain mampu mengerti bahasa sehari-hari, NLP juga mencakup kemampuan membentuk kalimat dalam bahasa sehari-hari.
c. Pengenalan Pola
Recognition adalah program komputer yang ditujukan untuk mengenali suatu objek. Contohnya dalam Speech Recognation, komputer dapat mengenali suara, dan sekaligus bias membedakan berbagai macam bentuk sinyal. Contoh lain dalam Character Recognation, komputer dapat mengenali karakter, sekaligus dapat membedakan berbagai macam bentuk karakter.
d. Computer Vision
Ilmu pengetahuan dan teknologi komputer yang berkaitan dengan pengolahan citra komputer seakan dapat melihat benda, terkait dengan teori untuk membangun suatu sistem yang terdiri dari gambar. Contoh yang sering digunakan adalah pendeteksian plat nomor kendaraan.
e. Robotic
Mesin yang diprogram untuk melakukan tugas-tugas mekanik, berintelegensi dan dapat member respon terhadap perubahan lingkungan. Contohnya adalah Asimo dan Aibo.
f. Automatic Programming
Komputer yang dapat membuat program sendiri dan menyesuaikan dengan spesifikasi yang dinginkan oleh pemrogram.
g. Planning and Decission Support
Komputer yang memiliki kemampuan khusus untuk membantu manajer dalam membuat perancanaan dan pengambilan keputusan.
(34)
h. Soft Computing
Soft Computing adalah koleksi dari beberapa metodologi yang bertujuan untuk mengeksploitasi adanya toleransi terhadap ketidaktepatan, ketidakpastian dan kebenaran parsial untuk dapat diselesaikan dengan mudah, kuat, dan biaya penyelesaiannya murah. Definisi ini pertama kali diungkapkan oleh Prof. Lofti Zadeh pada tahun 1992. Soft Computing
merupakan inovasi baru dalam membangun sistem cerdas. Sistem cerdas ini merupakan sistem yang memiliki keahlian seperti manusia pada domain tertentu, mampu beradaptasi dan belajar agar dapat bekerja lebih baik jika terjadi perubahan lingkungan.
2.9 Basis Data
Sistem basis data adalah sistem terkomputerisasi yang tujuan utamannya adalah memelihara data yang sudah diolah atau informasi dan membuat informasi tersedia saat dibutuhkan. Pada intinya basis data adalah media untuk menyimpan data agar dapat diakses dengan mudah dan cepat. Basis data relasional yang diimplementasikan dengan tabel-tabel yang saling memiliki relasi.
Gambar 2.4 Ilustrasi Basis Data (Shalahuddin, Muhammad & Rosa Ariani S. 2011) Sistem informasi tidak dapat dipisahkan dengan kebutuhan akan basis data apapun bentuknya, entah berupa file teks ataupun Database Management System (DBMS). Kebutuhan basis data dalam sistem informasi meliputi :
1. memasukkan, menyimpan , dan mengambil data
(35)
2.9.1 Bahasa Basis Data
DBMS merupakan perantara bagi pemakai dengan basis data dalam disk. Cara berkomunikasi/berinteraksi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa tersebut dapat disebut sebagai bahasa basis data yang terdiri atas sejumlah perintah yang diformulasikan oleh user dan diproses oleh DBMS untuk melakukan suatu aksi atau pekerjaan tertentu.
Ada 3 bahasa yang digunakan dalam basis data yaitu :
1. DDL (Data Definition Language )
Merupakan bahasa definisi data yang digunakan untuk membuat dan mengelola objek database seperti database, tabel dan view.
2. DML (Data Manipulation Language)
Merupakan bahasa manipulasi data yang digunakan untuk memanipulasi data pada objek database seperti tabel.
3. DCL (Data Control Language)
Merupakan bahasa yang digunakan untuk mengendalikan pengaksesan data.
2.9.2 SQL (Structured Query Language)
SQL(Structured Query Language) adalah bahasa yang digunakan untuk mengelola data pada RDBMS. SQL awalnya dikembangkan berdasarkan teori aljabar relasional dan kalkulus.
SQL mulai berkembang pada tahun 1970. SQL mulai digunakan sebagai standar yang resmi pada tahun 1986 oleh ANSI (American National Standarts Institute) dan pada tahun 1987 oleh ISO (International Organization for Standardization) dan disebut sebagai SQL-86.
(36)
Meskipun SQL diadopsi dan diacu sebagai bahasa standar oleh hampir sebagian besar RDBMS yang beredar saat ini, tetapi tidak semua standar yang tercantum dalam SQL diimplementasikan oleh seluruh DBMS tersebut, sehingga ada perbedaan perilaku (hasil yang ditampilkan) oleh DBMS yang berbeda padahal query yang dimasukkan sama. Berikut ini merupakan contoh pengaksesan data pada DBMS sengan SQL yang secara umum terdiri dari 4 hal sebagai berikut:
1. Memasukkan data (insert)
Gambar 2.5 Query Insert
Query di atas digunakan untuk memasukkan data mahasiswa dengan nim 10108530, nama Teguh Budianto, dan tanggal lahir 17 agustus 1990 ke tabel tabel_mahasiswa.
2. Mengubah data (update)
Gambar 2.6 Query Insert
Query pada gambar 2.4 digunakan untuk mengubah data lahir mahasiswa dengan nim = 10108530 menjadi 21 Maret 1990 dalam tabel_mahasiswa.
3. Menghapus data (delete)
INSERT INTO Tabel_Mahasiswa (nim, nama, tanggal_lahir) VALUES
(‘10108530’,’Teguh Budianto’,’17-08-1990’)
Update Tabel_mahasiswa SET
tanggal_lahir = ‘1990-03-21’ WHERE
nim = ‘10108530’
DELETE FROM Tabel_Mahasiswa WHERE
(37)
Query pada gambar 2.5 digunakan untuk menghapus data mahasiswa dengan NIM = 10108530 dari tabel_mahasiswa
4. Menampilkan data (select)
Gambar 2.6 Query Select
Gambar 2.8 Query Select
Query pada gambar 2.6 digunakan untuk menampilkan data mahasiswa yang tersimpan dalam tabel_mahasiswa dengan nim = 10108530.
2.9.3 ERD (Entity Relationship Diagram)
Pemodelan awal basis data yang paling banyak digunakan adalah Entity Relationship Diagram (ERD). ERD dikembangkan berdasarkan teori himpunan dalam bidang matematika. ERD digunakan untuk pemodelan basis data relasional, sehingga jika penyimpanan basis data menggunakan OODBMS maka perancangan basis data tidak perlu menggunakan ERD.
2.9.4 Diagram Skema Relasi
Skema basis data yang menyatakan kebergantungan kunci utama dan foreign key dapat digambarkan secara grafis dengan diagram skema relasi. Berikut adalah diagram relasi untuk relasi. Pekerja, relasi pekerjaan dan relasi proyek.
Gambar 2.9 Diagram Skema Relasi (Erlangga. 2011) SELECT nim, nama
FROM Tabel_mahasiswa WHERE nim=’10108530’
(38)
Masing masing relasi digambarkan sebagai kotak (persegi) dengan atribut – atribut didaftarkan didalamnya dan nama relasi muncul diatasnya. Jika tedapat atribut – atribut kunci utama direlasi, satu garis horizontal membelah persegi dimana atribut – atribut kunci utama didaftarkan diatas garis kebergantungan foreign key muncul sebagai anak panah dari atribut – atribut foreign key relasi yang mengacu ke kunci utama dari relasi yang diacu.
Kita tidak boleh menyamakan skema relasi dengan diagram ER. Perbedaan utama ialah diagram ER tidak menunjukkan secara eksplisit atribut – atribut foreign key sementara diagram skema relasi telah menunjukkan atribut – atribut foreign key
secara eksplisit.
Kebanyakan sistem basis data menyediakan perancangan dengan antarmuka pemakai secara grafis untuk menciptakan diagram skema relasi. Sekali lagi diagram yang langsung menyatakan foreign key dan kebergantungan terhadap kunci utama suatu relasi tidak disebut diagram ER melainkan skema relasi. Diagram skema relasi terdapat di Microsoft Access, PowerDesigner level fisik, serta dimasukkan dalam paket MS SQL Server.
2.10 UML (Unified Modelling Language)
Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an.
Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM. UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan,
(39)
sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.
2.10.1 Diagram UML
UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu:
1. Use Case Diagram untuk memodelkan proses bisnis.
2. Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
3. Sequence Diagram untuk memodelkan pengiriman pesan (message) antar objek.
4. Collaboration Diagram untuk memodelkan interaksi antar objek. 5. State Diagram untuk memodelkan perilaku objects di dalam sistem.
6. Activity Diagram untuk memodelkan perilaku Use Cases dan objek di dalam sistem.
7. Class Diagram untuk memodelkan struktur kelas. 8. Object Diagram untuk memodelkan struktur objek.
9. Component Diagram untuk memodelkan komponen object. 10.Deployment Diagram untuk memodelkan distribusi aplikasi.
Berikut akan dijelaskan empat macam diagram yang paling sering digunakan dalam pembangunan aplikasi berorientasi objek, yaitu use case diagram, sequence diagram, collaboration diagram, dan class diagram.
(40)
1. Use Case Diagram
Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan actor. Aktor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi. Use case merepresentasikan operasi-operasi yang dilakukan oleh aktor. Use case digambarkan berbentuk elips dengan nama operasi dituliskan didalamnnya. Aktor yang melakukan operasi dihubungkan dengan garis lurus ke use case.
Gambar 2.10 Contoh Use Case Diagram (Erlangga. 2011). 2. Sequence Diagram
Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi.
(41)
Gambar 2.11 Contoh SequenceDiagram (Erlangga. 2011). 3. Collaboration Diagram
Collaboration diagram dipakai untuk memodelkan interaksi antar objek di dalam sistem. Berbeda dengan sequence diagram yang lebih menonjolkan kronologis dari operasi-operasi yang dilakukan, collaboration diagram lebih focus pada pemahaman atas keseluruhan operasi yang dilakukan oleh objek.
(42)
4. Class Diagram
Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasi objek. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan.
Gambar 2.13 Contoh Class Diagram (Erlangga. 2011). 2.11 PHP (Personal Home Page)
PHP merupakan bahasa pemograman server side yang didesain untuk aplikasi web. PHP merupakan bahasa pemograman yang dapat disisipkan dalam html, pada awalanya php diperuntukan untuk pembuatan website pribadi yang bersifat dinamis. Sedangkan menurut Sutarman dalam bukunya yang berjudul Membangun Aplikasi Web dengan PHP & MySQL edisi 2 mengatakan bahwa :
PHP adalah salah satu bahasa server side yang di desain khusus untuk aplikasi web (Septian, Gungun. 2011).
(43)
2.12 Framework
Framework sebagaimana arti dalam bahasa indonesianya yaitu kerangka kerja dapat diartikan sebagai kumpulan dari library (class) yang dapat diturunkan, atau dapat langsung dipakai fungsinya oleh modul-modul atau fungsi yang akan kita kembangkan. (Septian, Gungun. 2011).
2.12.1 Pengertian PHP Framework
PHP Framework adalah sebuah lingkungan pengembangan aplikasi berbasis php yang berisi sejumlah class yang telah dibuat agar digunakan kembali untuk membuat aplikasi. Berbagai jenis class ini tergantung tujuan dari PHP framework
tersebut, dan php framework yang satu dengan framework yang lain kemungkinan berbeda. Sebagian besar php framework yang tersedia saat ini berbasis MVC (model view controller). Ini adalah model php framework yang modern. (Septian, Gungun. 2011).
2.12.2 Framework CodeIgniter
CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun website dinamis. Dengan menggunakan PHP CodeIgniter akan memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan dengan membuat dari awal. (Septian, Gungun. 2011).
2.12.3 MVC (Model View Controller)
MVC adalah sebuah pendekatan perangkat lunak yang memisahkan aplikasi logika dari presentasi. Ini meminimalkan script dari halaman-halaman web sejak
script presentasi (HTML, CSS, JavaScript, dsb) dipisahkan dari PHP scripting, istilah umum yang familiar adalah menghindari terjadinya spaghetti code. (Septian, Gungun. 2011).
A. Model
Model merepresentasikan struktur data yang dibangun. Umumnya kelas model berisi fungsi-fungsi yang membantu developer untuk mengelola, memasukkan, dan mengupdate informasi dalam database.
(44)
B. View
View adalah informasi yang disajikan untuk user, berupa tampilan atau user interface. View umumnya adalah tampilan sebuah halaman web itu sendiri, tetapi dalam CodeIgniter, view dapat juga menjadi bagian-bagian atau penggalan-penggalan halaman seperti header atau footer. View dapat juga sebagai halaman RSS, atau tipe-tipe halaman lainnya.
C. Controller
Controller bertugas sebagai penghubung antara Model, View, dan beberapa
resource lainnya yang dibutuhkan untuk memproses HTTP request untuk
meng-generate sebuah halaman web. 2.13 Pengertian jQuery
jQuery merupakan library Java Script yang banyak digunakan saat ini. jQuery
di buat oleh John Resig pada tahun 2006. Banyak website yang memanfaatkan library
ini untuk menyederhanakan fungsi-fungsi yang ada pada JavaScript atau Ajax. Sesuai dengan slogannya jQuery sendiri “Write less, do more”, menulis sedikit namun dapat mengerjakan banyak hal, sehingga Anda dapat menghemat coding program Anda. 2.14 Pengertian HTML (Hypertext markup Language)
HTML adalah Format Dokumen bahasa yang digunakan untuk merancang halaman web. HTML adalah sistem untuk membuat naik atau menandai, sebuah dokumen sehingga dapat dipublikasikan di web. HTML mendefinisikan apa yang umumnya ditularkan antara node dalam network. HTML telah dikembangkan dengan maksud agar berbagai macam jenis perangkat harus dapat memanfaatkan informasi di
web PC dengan tampilan grafis dari kedalaman resolusi dan warna yang bervariasi. 2.15 Jaringan Semantik
Jaringan semantik merupakan pengetahuan secara grafis yang menunjukkan hubungan antar berbagai objek. Suatu jaringan semantik sederhana bisa dilihat pada gambar berikut :
(45)
Gambar 2.13 Contoh jaringan semantik (J, Durkin. 1994)
Jaringan semantik disusun dari node dan arc (Lines). Node merupakan representasi dari objek, objek properti atau properti value. (digambarkan dengan lingkaran).
Arc merupakan representasi dari hubungan antar node. (digambarkan dengan garis). Baik node maupun arc memiliki label yang secara jelas menjelaskan representasi dari objek dan hubungan antar node.
Hampir semua objek, atribut, pemikiran atau apapun dapat dirumuskan dan dihubungkan antara satu dengan lainnya oleh garis-garis (arc). Arc umumnya menggunakan istilah seperti : “IS-A”, “HAS-A”, dll. Pada gambar contoh tadi: Link “IS-A” diantara node “Canary” dan “Bird” menjelaskan hubungan “ spesific-to-general” diantara keduanya.
(46)
5.1 Kesimpulan
Berdasarkan hasil penelitian yang telah dilakukan, dapat diambil kesimpulan sebagai berikut :
1. Untuk mempermudah pengguna dalam menemukan musik yang dicari, maka pengguna dapat menggunakan fitur pencarian yang ada atau dapat melihat dari hasil jumlah rating pengguna itu sendiri serta dapat juga dengan melihat daftar 10 musik terpopuler ataupun hasil rating musik tertinggi.
2. Hasil akurasi yang dicapai pada pengujian dengan metode ini tergolong kurang akurat karena dengan menerapkan jumlah hasil terkecil yaitu jumlah cluster = 3 dan jumlah k (jumlah user yang menjadi tetangga terdekat dari active user) = 50% dapat menghasilkan rata-rata MAE = 0,6713 artinya lebih dari 0.5 untuk mendekati nilai 0, karena MAE sendiri memiliki rentang nilai dari 0 – 1.
5.2 Saran
Beberapa hal yang disarankan untuk pengembangan penelitian ini adalah sebagai berikut:
1. Berdasarkan hasil penelitian ini maka disarankan untuk menggunakan metode lain guna menghasilkan prediksi musik yang lebih baik dengan nilai MAE mendekati 0 atau tidak lebih dari 0.5.
2. Prosedur pengujian dapat dilakukan dengan cara yang berbeda, misalnya menambahkan jumlah dataset, dan meningkatkan jumlah pengujian dari
(47)
pengujian pada penelitian ini. Hal ini akan mempengaruhi tingkat akurasi dari recommender system yang akan dibangun.
3. Metode ini dapat dicoba pada penelitian dengan item lain, seperti buku, berita pada koran digital, film, dan lainnya dengan pola pengumpulan
(48)
DATA DIRI
NAMA LENGKAP : TEGUH BUDIANTO
TEMPAT, TANGGAL LAHIR : Cilacap, 17 Agustus 1990
NO. TELEPON : 083820450571, 085227800807
EMAIL : [email protected]
ALAMAT : Jl.Geger Kalong Tengah No.68
PENDIDIKAN
SEKOLAH DASAR : SDN 02 Karang Benda, Kec. Adipala
SMP : SMP NEGERI 2 Karang Benda, Kec. Adipala
SMA : SMK TAMTAMA KROYA
PERGURUAN TINGGI : UNIVERSITAS KOMPUTER INDONESIA
(49)
(50)
DENGAN METODE USER-BASED COLLABORATIVE
FILTERING
Teguh Budianto 1, Galih Hermawan2 Program Studi Teknik Informatika. UNIKOM. Jl. Dipatiukur No. 114 – 116, Bandung 40132.
E-mail : [email protected] , [email protected]
ABSTRAK
Sistem rekomendasi merupakan model aplikasi dari hasil observasi terhadap keadaan dan keinginan pengguna, oleh karena itu sistem perekomendasi memerlukan model rekomendasi yang tepat agar yang di rekomendasikan sesuai dengan keinginan pengguna. Industri musik belakangan ini mengalami perubahan yang sangat signifikan. Konsumen kini cenderung mengakses dan membeli konten secara online dibandingkan pergi ke sebuah toko, hal ini jelas menimbulkan masalah pertumbuhan data yang sangat cepat di internet sehingga menyebabkan terlalu banyaknya informasi yang tersedia.
Dalam penelitian ini sistem rekomendasi dianalisa dan dibangun dengan menggunakan metode user-based collaborative filtering karena dengan algoritma ini melibatkan subyektifitas pengguna sehingga rekomendasi yang dihasilkan mempunyai kualitas yang baik. Namun metode user-based collaborative
filtering ini masih mempunyai kekurangan yaitu
adanya scalability (keadaan dimana tingginya jumlah peningkatan user dan item di dalam database) dan sparsity (terjadinya kekosongan data matriks user-item), oleh karena itu perlu digunakan algoritma tambahan yaitu K-Means clustering dan proses smoothing yang bertujuan untuk menangani dua masalah utama tersebut.
Berdasarkan implementasi dan hasil pengujian maka dapat ditarik kesimpulan sebagai berikut, berdasarkan penggunaan metode user-based collaborative filtering ini mampu mengatasi masalah kekosongan data dengan tingkat sparsity sebanyak 70% namun untuk hasil akhir dari pengujian metode ini menggunakan MAE (Mean Absolute Error) yang mempunyai rentang nilai 0 – 1 didapatkan data yaitu 0,6713 artinya penggunaan metode ini menghasilkan nilai lebih dari 0,5 maka dapat disimpulkan metode ini masih kurang akurat oleh karena itu perlu digunakan algoritma lain yang menghasilkan nilai yang lebih akurat, atau tidak lebih dari 0,5.
Kata kunci : Sistem Rekomendasi, user-based
1. PENDAHULUAN
Industri musik belakangan ini mengalami perubahan yang sangat signifikan. Konsumen kini cenderung mengakses dan membeli konten secara online dibandingkan pergi ke sebuah toko, hal ini jelas menimbulkan masalah pertumbuhan data yang sangat cepat di internet menyebabkan terlalu banyaknya informasi yang tersedia. Hal ini menyebabkan seseorang mengalami kesulitan dalam mendapatkan informasi mengenai musik yang cepat dan sesuai dengan kebutuhan. Untuk itu diperlukan sistem rekomendasi sehingga dapat membantu seseorang menemukan informasi musik yang sesuai dengan kebutuhannya (Saptariani, Trini. 2014).
Dalam penelitian ini sistem rekomendasi akan dianalisa dan dibangun dengan menggunakan metode user-based collaborative filtering karena dengan algoritma ini melibatkan subyektifitas pengguna dalam perhitungan sehingga rekomendasi yang dihasilkan mempunyai kualitas yang baik. Namun metode user-based collaborative filtering ini masih mempunyai kekurangan yaitu adanya :
1. Scalability, yaitu keadaan dimana tingginya jumlah peningkatan user dan item di dalam database yang mempengaruhi menurunnya komputasi algoritma user-based collaborative filtering.
2. Sparsity, yaitu terjadinya kekosongan data
matriks user-item, yang disebabkan karena user merating dalam jumlah kecil dari jumlah item yang tersedia di dalam database.
Oleh karena itu perlu digunakan algoritma tambahan yaiitu K-Means clustering dan proses smoothing yang bertujuan untuk menangani dua masalah utama tersebut. Music recommender system ini dibangun diatas platform web, dengan pertimbangan perangkat lunak yang dibangun harus memiliki kemampuan untuk menangani banyak pengguna.
Berdasarkan uraian di atas dengan permasalahan yang terjadi, maka dengan harapan sistem rekomendasi ini nantinya dapat membantu dan memberikan informasi tentang musik yang tepat untuk pengguna.
(1)
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
45Vol. 2, No. 02, Oktober 2013, ISSN : 2089-9033
6
Picture 3.7 Class Diagram D. Sequence Diagram
Picture 3.8 Sequence Diagram Recommendation 3.1.7.2 Relation Scheme
Picture 3.9 Relation Scheme 3.2 System Design
System design aims to specify the technical aspects of the solution in the planning. At this stage of the design will be defined in detail to address the problems more technical, relating to the implementation of activities such as database design and interface design.
3.2.1 Menu Structure
Music recommender system on this, there is a menu on the page after the user enters through the verification process, the following is the menu structure on a system that can be seen in Picture 3.10 below :
Picture 3.10 Menu Structure 3.2.2 Semantic Network
Semantic network is a network of data and information, which shows the relationship between the various objects. Here is a semantic network of music recommender system :
1. Semantic Network Admin
Picture 3.11 Semantic Network Admin 2. User Semantic Network
(2)
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
45Vol. 2, No. 02, Oktober 2013, ISSN : 2089-9033
7
4.1. Hardware Requirement
Needs hardware used to implement the application program that is built can be seen in Table 4.1 below :
Table 4.1 Hardware Requirement Hardware Specification 1 Processor Intel i3
2 Monitor Monitor 15 inch
3 Memory DDR3 1Gb
4 Keyboard Standart 5 Mouse Standart 6 Modem Standart 4.2.Software Requirement
The software used to implement this application can be explained in Table 4.2. below :
Table 4.2 Software Requirement
No Software In Use
1 Operating System Windows 7 2 Programming
language
PHP 3 Database Server MySQL
4 Web Browser Google Chrome and Mozila Firefox 5 Code Editor Adobe Dreamweaver
CS 6 dan Notepad ++ 4.3 Testing
4.3.1 Testing With Blackbox
Phase of system testing is performed to determine whether the results of the implementation of the software has been running as expected.
4.3.1.1 Conclusion Results of Testing System Using Blackbox
Based on the results of system testing that has been done can be concluded that the application is built has been run in accordance with the initial design and run quite optimal, but did not rule out errors may occur, when the application is used, whether it was a mistake on the devices used, user error, or other errors. Thus requiring the treatment process and checks (maintenance) to keep an application running as expected.
4.3.2 Testing Level Accuracy Using MAE
Testing the accuracy of the data is done by taking a sample as many as 1,063 examples of the rating total rating that has been collected which amounted to 1,403 examples. The data sample used in this study had to meet the criteria for rating the data that comes from users who have a minimum of 20
rate the music to a maximum rating of each user are 30 music.
4.3.2.1 Accuracy Level Test Plan Using MAE The first stage of testing the accuracy rate is to halve the existing dataset to 80% for training data and the remaining 20% as test data. Testing accuracy rate is calculated based on 3 parameters of the test is based on the number of clusters, k number of neighbors, and the level of sparsity. At each test parameters will be conducted the experiment as much as 5 times. The equation used to calculate the level of accuracy is the equation (2.9). Here's a testing procedure for each of the parameters used :
1.Based on the number of clusters
The testing process is done for every cluster that has been determined, the cluster numbered 2, 3 and 4 cluster cluster. Number of k-neighbors used for each test parameter cluster is as much as 50%.
2.Based on the number of K-neighbors
The testing phase is done by determining the percentage of the number of nearest neighbors of active users. Number of k-neighbors users who tested is taken from users who have a large degree of similarity to the active user that is as much as 30%, 50% and 70%. Number of clusters is used as much as 3 cluster.
3.Based on the sparsity
Tests on samples of data will be selected ratings data to be emptied at random with sparsity level as much as 30%, 50% and 70%. Sparsity problem is a problem that often occurs in collaborative filtering, for it was through this testing will be seen how much influence the emptying of scores on ratings data or the data sparse state to the value of the prediction accuracy of the system. Testing is set to cluster number 3 and number k as 50%. 4.3.2.2 Level Accuracy Test Results
After testing with some parameters, then the test results for each parameter value MAE level of accuracy is obtained as follows :
1) Based on the number of clusters Table 4.4 MAE based on the number of
clusters
Table 4.4 shows the test results in a database for a number of clusters that have been set at 2, 3 and 4 clusters. In this test it is known that the 4th iteration with the cluster number = 3 is a test with the lowest MAE value is 0.6429, while on the 4th iteration the
(3)
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
45Vol. 2, No. 02, Oktober 2013, ISSN : 2089-9033
8
number of clusters = 4 was recorded as the test with the highest MAE value.
Of the average calculation MAE third cluster number is found the number of clusters = 3 is the producer of the smallest MAE value is 0.6713 and the resulting MAE value of 5 times of testing tends to be stable. In testing the number of clusters = 4 that divides the dataset into 4 clusters, where each cluster contains less data than other clusters cause a degree of accuracy is not stable due to nearest neighbor selection too little active user. In this test, the total number of users who will look for its cluster is as many as 40 users. The number of members of each cluster tends always different, which causes sometimes an active user into a cluster with a small number of members. For example active user to become a member of the cluster-x with total members just as much as 5 users. The logic is, if a member of a cluster there are only 5 users then the process of selecting the number of nearest neighbors of active users only candidate among the user 5.
The conclusion of testing the number of clusters is selecting the number of clusters on the application of user-based collaborative filtering-based smoothing need to pay attention to the amount to be diclusterisasi the maximum number of clusters to be created. So that after starting the process of charging the shadow rating, the selection of the nearest neighbors of active users and processes music prediction accuracy gets better with MAE value close to 0.
2) Based on the K-Neighbours
Table 4.5 MAE Based on the K-Neighbours
Table 4.5 shows the results of testing the accuracy of the parameter number k is set as much as 30%, 50% and 70%. It appears that the average of these tests worth stable since the values of k> 30%. This can happen because there are many candidates for the nearest neighbors of active users. The cause of many of the candidate testing because it assumes if the similarity between the active user with the candidate nearest neighbor is 0 then the candidate nearest neighbor will be taken as the nearest neighbor on condition k maximum amount has not been fulfilled. Basically the similarity value <0 indicates that the user has little in common values of the active user.
The changes are not too drastic of the three test number k is also because the process generates predictions of this method using a dataset value rating that has been filled by rating shadows. So basically, since the training data is done, there is no music
rating value = 0 is entered into the calculation of prediction..
3) Based on the level of sparsity
Table 4.6 MAE Based on the level of sparsity
From Table 4.6 sparsity level testing showed an increase in the value of the data MAE when the vacancy rate increased. This occurs due to the increase in value when the condition data are sparse high, causing reduced ratings data that will be taken into consideration for granting the prediction. Application of smoothing technique in this situation also caused the data used to make the process more predictive filled by a recommendation engine than the sum of the actual rating dirating directly by the user. Nevertheless, the problem of data gaps on collaborative filtering can be resolved by applying a smoothing technique to the system built.
There are times when the value of similarity between the active user and other user-friendly in a cluster to meet the number 0, which affect the increase in the value of MAE. However, testing the accuracy of the sparsity of data can generate as much as 70% MAE value = 0.8361. It can be concluded that the system is able to handle data gaps up to 70% of the total existing ratings data.
4.3.2.3 Analysis of Test Results
Testing accuracy rate shows the music recommender system based on user-based collaborative filtering is built is able to overcome the problem of data gaps with the level of sparsity much as 70%, and testing the accuracy of the other can be concluded that the music recommender system will be built by setting the number of clusters = 3, and the number knearest neighbors as much as 50% due to testing done on both of these settings produce an average value MAE lower than others in the amount of 0.6713.
3. CLOSING
5.1 ConclusionBased on the research that has been done, it can be concluded as follows :
1. To facilitate the user in finding music that is sought, then the user can use the search feature that exists or can be seen from the number of user ratings itself and can also see the list of the 10 most popular music or music outcome highest rating.
2. The results achieved in the accuracy of testing with this method is relatively inaccurate because by applying the number
(4)
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
45Vol. 2, No. 02, Oktober 2013, ISSN : 2089-9033
9
of results smallest number of clusters k = 3 and number (the number of users which are the nearest neighbors of active user) = 50% can produce an average of MAE = 0 , 6713 means more than 0.5 to approach a value of 0, since MAE itself has a range of values from 0-1.
5.2 Suggestion
Some of the things suggested for the development of this study are as follows :
1. Based on these results it is advised to use other methods in order to produce better predictions music with MAE value close to 0 or not more than 0.5.
2. The testing procedure can be done in different ways, such as adding the number of datasets, and increase the amount of testing of testing in this study. This will affect the accuracy of recommender system to be built. 3. This method can be tried on research with other items, such as books, news on digital newspaper, movies, and more with a rating of collecting patterns similar to this test.
BIBLIOGRAPHY
[1] Agusta, Indika Satriyana. (2013). Perbandingan efektifitas metode user-based collaborative filtering dengan metode user-item based collaborative filtering. (Skripsi). Universitas Sebelas Maret, Surakarta. [2] Erlangga. (2011). Modul Kuliah Rekayasa
Perangkat Lunak. Jurusan Teknik Informatika. UNIKOM, Bandung.
[3] J, Durkin. (1994). Expert System Design And Development. Prentice. Hall International Edition. New Jersey: Macmilan Publishing Company.
[4] Jogiyanto, HM. (2005). Analisis & Desain Sistem Informasi : Pendekatan Terstruktur Teory dan Praktek Aplikasi bisnis. Yogyakatra: ANDI.
[5] Kartadinata, Sunaryo. (2014). Pedoman Penulisan Karya Ilmiah UPI Tahun 2014. Bandung: Universitas Pendidikan Indonesia. [6] Kusumadewi, Sri. (2003). Artificial
Intelligence (Teknik dan Aplikasinya). Yogyakarta: Graha Ilmu.
[7] Leimstoll, U. & Stormer, H. (2007). Collaborative Recommender Systems for Online Shops. Journal: AMCIS 2007, Keystone, CO
[8] McGinty, L. & B. Smyth. (2006). Adaptive selection: analysis of critiquing and preference based feed back in conversation on recommender system. International J Electron Commerce.
[9] Mortensen, Magnus. (2007). Design and Evaluation of a Recommender System. University of Tromso.
[10] Myer, Thomas. (2008). Professional CodeIgniter. Wiley Publishing.
[11] Pazzani, Michael J. & Billsus, Daniel. (2007). Content-Based Recommendation Systems. Springer-Verlag Berlin Heidelberg. [12] Pressman, Roger S. (2001). Software
Engineering : A Practitioner's Approach. McGraw- Hill Companies, Inc.
[13] Sanjung, Ariyani. (2011). Perbandingan Semantic Classification dan Cluster-based Smoothed pada Recommender System berbasis Collaborative Filtering. (Skripsi). Teknik Informatika, Universitas Telkom, Bandung.
[14] Saptariani, Trini. (2014). Sistem Rekomendasi Musik Menggunakan Latent Semantic Analysis. (Skripsi). Teknik Informatika, Universitas Gunadarma, Depok. [15] Sarwar, Badrul. (2001). Item-Based Collaborative Filtering Algorithms. Minneapolis : University of Minnesota. [16] Septian, Gungun. (2011). Trik Pintar
Menguasai CodeIgniter. Jakarta: Elex Media Komputindo.
[17] Shalahuddin, Muhammad & Rosa Ariani S. (2011). Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek). Bandung: Modula.
[18] Twoh & co, Sekilas tentang sistem rekomendasi. [Online] Diakses dari
http://www.twoh.co/2013/05/sekilas-tentang-sistem- rekomendasi-recommender-system/ (Diakses tanggal 19 Mei 2015)
[19] Wang, Jun. (2006) Unfiying User-Based and Item-Based Collaborative Filtering Approaches by Similarity Fusion. Amsterdam: Delft University Of Technology.
(5)
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
45Vol. 2, No. 02, Oktober 2013, ISSN : 2089-9033
10
[20] Wiranto & Winarko, Edi. (2010). Konsep Multicriteria Collaborative Filtering Untuk Perbaikan Rekomendasi. Seminar Nasional Aplikasi Teknologi Informasi. Yogyakarta [21] Xue, Gui-Rong. (2005). Journal: Scalable
Collaborative Filtering Using Cluster-based Smoothing, Brazil
(6)