Implementasi Hybrid (Content Based Dan Collaborative Filtering) Pada Sistem Rekomendasi Software Antivirus Dengan Multi-Criteria Rating

(1)

IMPLEMENTASI

HYBRID (CONTENT BASED

DAN

COLLABORATIVE

FILTERING)

PADA SISTEM REKOMENDASI

SOFTWARE ANTIVIRUS

DENGAN

MULTI-CRITERIA RATING

SKRIPSI

WILDAN AFIFI

091402043

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(2)

IMPLEMENTASI HYBRID (CONTENT BASED DAN COLLABORATIVE

FILTERING) PADA SISTEM REKOMENDASI SOFTWARE ANTIVIRUS

DENGAN MULTI-CRITERIA RATING

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

WILDAN AFIFI 091402043

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(3)

PERSETUJUAN

Judul : IMPLEMENTASI HYBRID (CONTENT BASED

DAN COLLABORATIVE FILTERING) PADA SISTEM REKOMENDASI SOFTWARE ANTIVIRUS DENGAN MULTI-CRITERIA RATING

Kategori : SKRIPSI

Nama : WILDAN AFIFI

Nomor Induk Mahasiswa : 091402043

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI (FASILKOMTI) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Januari 2014 Komisi Pembimbing :

Pembimbing 1 Pembimbing 2

Dr. Erna Budhiarti Nababan, M.IT. Mhd. Fadly Syahputra, B.Sc., M.Sc.IT.

NIP. - NIP 19830129 200912 1 003

Diketahui/Disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

Prof. Dr. Opim Salim Sitompul, M.Sc. NIP 19610817 198701 1 001


(4)

PERNYATAAN

IMPLEMENTASI HYBRID (CONTENT BASED DAN COLLABORATIVE FILTERING) PADA SISTEM REKOMENDASI SOFTWARE ANTIVIRUS

DENGAN MULTI-CRITERIA RATING SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Januari 2014

Wildan Afifi 091402043


(5)

UCAPAN TERIMA KASIH

Puji dan syukur penulis panjatkan kehadirat Allah SWT yang Maha Pengasih dan Maha Penyayang, yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.

Penyelesaian skripsi ini tidak terlepas dari bantuan dari berbagai pihak, untuk itu, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:

1. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

2. Bapak Ketua dan Sekretaris Program Studi Teknologi Informasi, Prof. Dr. Opim Salim Sitompul, M.Sc. dan Drs. Sawaluddin, M.IT.

3. Ibu Dr. Erna Budhiarti Nababan, M.IT selaku pembimbing satu dan Bapak Mohammad Fadly Syahputra, B.Sc., M.Sc.IT. selaku pembimbing dua yang telah banyak meluangkan waktu dan pemikirannya, motivasi, kritik dan saran kepada penulis.

4. Ucapan terima kasih juga ditujukan kepada Bapak Dedi Arisandy, S.T., M.Kom., dan Bapak Dani Gunawan, S.T., M.T. yang telah bersedia menjadi dosen pembanding, serta semua dosen serta pegawai di Program Studi S1 Teknologi Informasi.

5. Ucapan terimakasih yang sangat besar penulis ucapkan kepada keluarga penulis yang telah memberikan dukungan baik materil dan spiritual. Ayahanda Alm. Ir. H. Arif Wisaksono dan Ibunda Hj. Nur Hidayati yang telah membesarkan penulis dengan kasih sayang yang tak terhingga. Dan juga kepada adik penulis, Alfian Alim dan Affan Abdillah, yang selalu menjadi sumber semangat dan inspirasi di dalam penulisan skripsi ini.

6. Terima kasih juga penulis ucapkan kepada teman-teman, Satria, Aang, Mulki, Ari, Hasmi, Robert, Bagus, Rozy, Fithrah, Gilbert, Alvin, Ranap. Teman-teman badminton untuk melepaskan penat, Salman, Dhimas, Yogi, Santana, Iqbal, Bang Franheit, dan Bang Billy.

Akhir kata, penulis ucapkan terimakasih kepada semua pihak yang telah membantu menyelesaian skripsi ini yang tidak bisa penulis sebutkan satu persatu. Semoga Allah SWT membalas kebaikan kalian semua, dan semoga skripsi yang penulis buat dapat bermanfaat lebih banyak daripada biaya dan usaha yang penulis keluarkan di dalam pembuatan skripsi ini.


(6)

ABSTRAK

Berbagai sumber penyedia informasi mengenai software antivirus memiliki ratusan bahkan ribuan jumlah software antivirus yang mereka tawarkan. Sulit bagi pengguna untuk menemukan software antivirus sesuai dengan yang ia inginkan. Oleh karena itu, dibutuhkan sebuah alat bantu yang dapat memberikan alternatif dan rekomendasi kepada pengguna sesuai dengan preferensi pengguna. Sistem rekomendasi merupakan solusi dari permasalahan tersebut. Sistem rekomendasi diharapkan dapat membantu pengguna untuk menemukan software antivirus yang ia inginkan. Berdasarkan penelitian sebelumnya, sistem rekomendasi dengan metode hybrid (content based dan collaborative filtering) mampu menghasilkan rekomendasi yang bagus dan handal. Di sisi lain, berbagai teknologi sistem rekomendasi sedang gencar dikembangkan. Salah satu teknologi yang sedang gencar dikembangkan tersebut adalah sistem rekomendasi dengan multi-criteria rating. Sistem rekomendasi dengan multi-criteria rating menggunakan lebih dari satu kriteria rating sebagai basis dalam menentukan rekomendasi yang sesuai untuk pengguna. Di dalam penelitian ini, penulis akan membahas mengenai penggunaan hybrid (content based dan collaborative filtering) pada sistem rekomendasi software antivirus dengan multi-criteria rating. Hasil dari penelitian ini adalah sebuah sistem rekomendasi software antivirus yang mampu memberikan rekomendasi software antivirus yang sesuai kepada pengguna.

Kata kunci : sistem rekomendasi, multi-criteria rating, perangkat lunak antivirus, hybrid, content based, collaborative filtering.


(7)

THE IMPLEMENTATION OF HYBRID (CONTENT BASED AND COLLABRATIVE FILTERING) IN ANTIVIRUS SOFTWARE RECOMMENDATION SYSTEM USING MULTI-CRITERIA RATING

ABSTRACT

Various sources of information about antivirus software have hundreds or even thousands of number of antivirus software that they offer . It is difficult for users to find antivirus software in accordance with what they need . Therefore , a tool that can provide alternatives and recommendations to users is expected. Recommendation system is the solution to this problem. Recommendation system is expected to help users to find antivirus software matching with what he wants. According to the previous researchs, hybrid recommender system (content based and collaborative filtering) can provide good and reliable recommendation. At the same time, various technologies of this recommendation system are being intensively developed. One of that technologies that are being rapidly developed is multi-criteria rating recommendation system. Multi-criteria rating recommendation system use more than one rating criteria. In this study, the author will discuss the implementation of hybrid (content based and collaborative filtering) in antivirus software recommendation system using multi-criteria rating.The result of this research is an antivirus software recommender system that can provide appropriate recommendation to the user. Keywords: recommendation system, multi-criteria rating, antivirussoftware, hybrid, content based, collaborative filtering.


(8)

DAFTAR ISI

PERSETUJUAN ii

PERNYATAAN iii

UCAPAN TERIMA KASIH iv

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR TABEL ix

DAFTAR GAMBAR x

BAB 1 PENDAHULUAN 1

1.1. Latar Belakang 1

1.2. Rumusan Masalah 2

1.3. Batasan Masalah 2

1.4. Tujuan Penelitian 3

1.5. Manfaat Penelitian 3

1.6. Metodologi Penelitian 3

1.7. Sistematika Penulisan 4

BAB 2 LANDASAN TEORI 6

2.1. Sistem Rekomendasi 6

2.2. Sistem Rekomendasi Content Based 7

2.3. Sistem Rekomendasi Collaborative Filtering 9

2.4. Sistem Rekomendasi Hybrid 11

2.4.1. Penggabungan Linear (Linear Combination) 11

2.4.2. Penggabungan secara Sekuensial (Sequential Combination) 12 2.4.3. Penggabungan secara Item-based Clustering Hybrid Method (ICHM)12 2.5. Sistem Rekomendasi dengan Multi-Criteria Rating 13 2.6. Proses Pengambilan Keputusan pada Pemilihan Software Antivirus 15

2.7. Bahasa Pemrograman PHP 16

2.8. Database 17

2.9. Data Flow Diagram (DFD) 18

2.10. Unified Modelling Language (UML 18

2.11. Penelitian Terdahulu 19

2.12. Perbedaan dengan Penelitian Terdahulu 20

BAB 3 ANALISIS DAN PERANCANGAN 21

3.1. Data Yang Digunakan 21

3.2. Use Case Diagram 21

3.3. Activity Diagram 23

3.3.1. Activity Diagram Register 23

3.3.2. Activity Diagram Login 24

3.3.3. Activity Diagram Halaman Utama 25

3.3.4. Activity Diagram Halaman Rekomendasi 26


(9)

3.3.6. Activity Diagram Logout 27 3.3.7. Activity Diagram Tambah Produk Antivirus 28 3.3.8. Activity Diagram Edit Produk Antivirus 29 3.3.9. Activity Diagram Lihat Produk Antivirus 30

3.3.10 Activity Diagram Beri Rating 31

3.4. Flowchart 32

3.4.1. Flowchart Keseluruhan Rekomendasi 32

3.4.2. Flowchart Cosine Based Similiarity (Collaborative Filtering) 37 3.4.3. Flowchart Weighted Sum (Collaborative Filtering) 39 3.4.4. Flowchart Perhitungan Bobot Feature (Content Based) 40 3.4.5. Flowchart Perhitungan Prediksi Rating (Content Based) 42

3.4.6. Flowchart Hybrid (Linear Combination) 43

3.4.7. Flowchart Penggabungan Kriteria (Fungsi Agregasi) 43

3.5. Perancangan Sistem 45

3.5.1. Kebutuhan Perangkat Lunak 45

3.5.2. Perancangan Antar Muka Perangkat Lunak 45

3.6. Perancangan Database 51

3.6.1. Perancangan Database 51

3.6.2. Relasi Antar Tabel 58

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 59

4.1. Implementasi Sistem 59

4.2. Implementasi Perancangan Antarmuka 60

4.2.1. Halaman Login 60

4.2.2. Halaman Registrasi 60

4.2.3. Halaman Tutorial 61

4.2.4. Halaman Home 61

4.2.5. Halaman Rekomendasi 63

4.2.6. Halaman Spesifikasi Produk 65

4.2.7. Halaman Edit Produk 66

4.2.8. Halaman Tambah Produk 67

4.3. Pengujian Sistem 67

4.3.1. Rencana Pengujian Sistem 67

4.3.2. Hasil Pengujian Sistem 68

4.4 Pengujian Data 71

4.4.4. Persiapan Pengujian Data 72

4.4.2. Perhitungan Content Based 73

4.4.3. Perhitungan Collaborative Filtering 75

4.4.3. Perhitungan Secara Hybrid 77

4.4.5. Penggabungan Kriteria Rating 78

BAB 5 KESIMPULAN DAN SARAN 79

5.1. Kesimpulan 79

5.2. Saran 79

DAFTAR PUSTAKA 81


(10)

DAFTAR TABEL

Tabel 2.1 Tabel Item Feature 7

Tabel 2.2 Matrix User x Item pada Sistem Rekomendasi Collaborative Filtering 9

Tabel 2.3 Matrix User x Item pada Sistem Rekomendasi Multi-criteria Rating 14

Tabel 2.4 Pembagian Deteksi Virus 15

Tabel 2.5 Penelitian Terdahulu 20

Tabel 3.1 Matrix rating User x Item Sistem Rekomendasi Multi Criteria Rating 35

Tabel 3.2 Tabel Item Feature pada Sistem Rekomendasi Multi-criteria Rating 35

Tabel 3.3 Matrix User x Item Untuk Kriteria Rating Pertama 36

Tabel 3.4 Tabel Item Feature Pengguna 1 Untuk Kriteria Rating Pertama 36

Tabel 3.5 Matrix User x Item Untuk Kriteria Rating Pertama 38

Tabel 3.6 Tabel Item Feature Pengguna 1 untuk Kriteria Rating Pertama 41

Tabel 3.7 Bobot Masing-Masing Kriteria Software Antivirus 44

Tabel 4.1 Rencana Pengujian 68

Tabel 4.2 Hasil Pengujian 68

Tabel 4.3 Hasil Pengujian (Lanjutan) 69

Tabel 4.4 Hasil Pengujian (Lanjutan) 70

Tabel 4.5 Hasil Pengujian (Lanjutan) 71

Tabel 4.6 Antivirus yang Sudah Pernah Diberi Rating 72

Tabel 4.7 Antivirus yang akan Diprediksi Ratingnya 73

Tabel 4.8 yang Sudah Pernah Diberi Rating (sederhana) 73

Tabel 4.9 Antivirus yang akan Diprediksi Ratingnya (sederhana) 73

Tabel 4.10 Item Feature 114 utk kriteria rating pertama 74

Tabel 4.11 Hasil Perhitungan Bobot dengan Cara Manual 74


(11)

DAFTAR GAMBAR

Gambar 2.1 Linear Combination 12

Gambar 2.2 Sequential Combination 12

Gambar 2.3 Item-based Clustring Hybrid Method 13

Gambar 3.1 Use Case Diagram 22

Gambar 3.2 Activity Diagram Register 23

Gambar 3.3 Activity Diagram Login 24

Gambar 3.4 Activity Diagram Halaman Utama 25

Gambar 3.5 Activity Diagram Halaman Rekomendasi 26

Gambar 3.6 Activity Diagram Halaman Tutorial 27

Gambar 3.7 Activity Diagram Logout 27

Gambar 3.8 Activity Diagram Tambah Produk Antivirus 28

Gambar 3.9 Activity Diagram Edit Produk Antivirus 29

Gambar 3.10 Activity Diagram Lihat Produk Antivirus 30

Gambar 3.11 Activity Diagram Beri Rating 31

Gambar 3.12 Flowchart Rekomendasi Keseluruhan 32

Gambar 3.13 Flowchart Rekomendasi Keseluruhan (Lanjutan) 33

Gambar 3.14 Flowchart Cosine Based Similiarity 37

Gambar 3.15Flowchart Weighted Sum 39

Gambar 3.16 Flowchart Perhitungan Weight 40

Gambar 3.17 Flowchart Perhitungan Prediksi Rating (Content Based) 42

Gambar 3.18 Flowchart Hybrid Linear Combination 43

Gambar 3.19 Flowchart Fungsi Agregasi 44

Gambar 3.20 Rancangan Form Registrasi 45

Gambar 3.21 Rancangan Form Login 46

Gambar 3.22 Rancangan Halaman Utama 47

Gambar 3.23 Rancangan Halaman Tambah Produk 48

Gambar 3.24 Rancangan Halaman Lihat Produk 49

Gambar 3.25 Rancangan Halaman Penjelasan Rekomendasi 50

Gambar 3.26 Rancangan Tabel user 51

Gambar 3.27 Rancangan Tabel rating 52

Gambar 3.28 Rancangan Tabel product 53

Gambar 3.29 Rancangan Tabel brands 55

Gambar 3.30 Rancangan Tabel features 55

Gambar 3.31 Rancangan Tabel product_feature 56

Gambar 3.32 Rancangan Tabel os 56

Gambar 3.33 Rancangan Tabel osver 57

Gambar 3.34 Rancangan Tabel product_platform 57

Gambar 3.35 Rancangan Relasi Antar Tabel 58

Gambar 4.1 Halaman Login 60

Gambar 4.2 Halaman Registrasi 60

Gambar 4.3 Halaman Tutorial 61

Gambar 4.4 Halaman Home 62


(12)

Gambar 4.6 Halaman Rekomendasi 64

Gambar 4.7 Detail Rekomendasi 64

Gambar 4.8 Halaman Spesifikasi Produk 65

Gambar 4.9 Halaman Edit Produk 66

Gambar 4.10 Halaman Tambah Produk 67

Gambar 4.11 Perhitungan Bobot dengan Menggunakan Sistem 74

Gambar 4.12 Perhitungan Prediksi Content Based dengan Menggunakan Sistem 75

Gambar 4.13 Perhitungan Kemiripan Pengguna pada Sistem Rekomendasi 76

Gambar 4.14 Prediksi Rating Collaborative pada Sistem Rekomendasi Antivirus 76

Gambar 4.15 Hasil Perhitungan Hybrid oleh Sistem Rekomendasi Antivirus 77


(13)

ABSTRAK

Berbagai sumber penyedia informasi mengenai software antivirus memiliki ratusan bahkan ribuan jumlah software antivirus yang mereka tawarkan. Sulit bagi pengguna untuk menemukan software antivirus sesuai dengan yang ia inginkan. Oleh karena itu, dibutuhkan sebuah alat bantu yang dapat memberikan alternatif dan rekomendasi kepada pengguna sesuai dengan preferensi pengguna. Sistem rekomendasi merupakan solusi dari permasalahan tersebut. Sistem rekomendasi diharapkan dapat membantu pengguna untuk menemukan software antivirus yang ia inginkan. Berdasarkan penelitian sebelumnya, sistem rekomendasi dengan metode hybrid (content based dan collaborative filtering) mampu menghasilkan rekomendasi yang bagus dan handal. Di sisi lain, berbagai teknologi sistem rekomendasi sedang gencar dikembangkan. Salah satu teknologi yang sedang gencar dikembangkan tersebut adalah sistem rekomendasi dengan multi-criteria rating. Sistem rekomendasi dengan multi-criteria rating menggunakan lebih dari satu kriteria rating sebagai basis dalam menentukan rekomendasi yang sesuai untuk pengguna. Di dalam penelitian ini, penulis akan membahas mengenai penggunaan hybrid (content based dan collaborative filtering) pada sistem rekomendasi software antivirus dengan multi-criteria rating. Hasil dari penelitian ini adalah sebuah sistem rekomendasi software antivirus yang mampu memberikan rekomendasi software antivirus yang sesuai kepada pengguna.

Kata kunci : sistem rekomendasi, multi-criteria rating, perangkat lunak antivirus, hybrid, content based, collaborative filtering.


(14)

THE IMPLEMENTATION OF HYBRID (CONTENT BASED AND COLLABRATIVE FILTERING) IN ANTIVIRUS SOFTWARE RECOMMENDATION SYSTEM USING MULTI-CRITERIA RATING

ABSTRACT

Various sources of information about antivirus software have hundreds or even thousands of number of antivirus software that they offer . It is difficult for users to find antivirus software in accordance with what they need . Therefore , a tool that can provide alternatives and recommendations to users is expected. Recommendation system is the solution to this problem. Recommendation system is expected to help users to find antivirus software matching with what he wants. According to the previous researchs, hybrid recommender system (content based and collaborative filtering) can provide good and reliable recommendation. At the same time, various technologies of this recommendation system are being intensively developed. One of that technologies that are being rapidly developed is multi-criteria rating recommendation system. Multi-criteria rating recommendation system use more than one rating criteria. In this study, the author will discuss the implementation of hybrid (content based and collaborative filtering) in antivirus software recommendation system using multi-criteria rating.The result of this research is an antivirus software recommender system that can provide appropriate recommendation to the user. Keywords: recommendation system, multi-criteria rating, antivirussoftware, hybrid, content based, collaborative filtering.


(15)

BAB 1 PENDAHULUAN

1.1. Latar Belakang

Sebuah website penyedia informasi mengenai software antivirus memiliki ratusan bahkan ribuan jumlah antivirus yang mereka tawarkan. Sulit bagi pengunjung website untuk mencari antivirus yang tepat untuk mereka beli. Pengguna dihadapkan dengan banyaknya pilihan antivirus yang ada, sehingga pengguna kesulitan dalam menemukan antivirus yang ia butuhkan. Oleh karena itu, dibutuhkan sebuah sistem rekomendasi software antivirus yang mampu membantu mereka dengan memberikan rekomendasi yang tepat untuk menyelesaikan permasalahan tersebut.

Sistem rekomendasi merupakan sebuah perangkat lunak atau teknik yang menyediakan saran atau rekomendasi item yang akan berguna bagi pengguna (Ricci et al 2011). Rekomendasi yang diberikan berhubungan dengan proses pengambilan keputusan, seperti film apa yang akan ditonton, musik apa yang akan didengar, atau berita apa yang akan dibaca. Sebuah website terkenal, Amazon.com, menggunakan sistem rekomendasi untuk membangun toko online personal untuk setiap pengunjung.

Sistem Rekomendasi dapat diklasifikasikan menjadi tiga macam kategori berdasarkan pendekatan mereka terhadap perekomendasian: content-based, collaborative, dan hybrid approaches (Balabanovic dan Shoham, 1997) . Content based dan collaborative filtering memiliki kelebihan dan kekurangannya tersendiri, oleh karena itu dibangunlah sebuah metode baru, yaitu hybrid yang menggabungkan kedua metode tersebut sehingga diharapkan mampu menutupi kelemahan masing-masing metode.

Beberapa penelitian yang pernah dilakukan untuk menyelesaikan masalah sistem rekomendasi, diantaranya : Sistem Rekomendasi Content Based dengan


(16)

menggunakan Fitur Set Berbeda (Uluyagmur, 2012), Hybrid dengan metode Linear Combination (Claypool, 1999), Metode Hybrid Nearest Neighbour (Hayati, 2011), Sistem Rekomendasi dengan Multi-criteria Rating (Adomavicius, 2007).

Di dalam penelitian ini, penulis ingin mengimplementasikan metode hybrid (content based dan collaborative filtering) pada sistem rekomendasi software antivirus dengan multi-criteria rating. Metode hybrid yang diteliti adalah penggabungan linear antara metode content based dengan collaborative filtering. Rating adalah alat bagi pengguna untuk berinteraksi dengan sistem, sehingga sistem mampu mempelajari perilaku pengguna. Penggunaan multi-criteria rating diharapkan dapat memberikan hasil rekomendasi yang lebih akurat dibandingkan dengan single-criteria rating karena informasi mengenai sebuah item yang lebih lengkap (Adomavicious dan Kwon, 2007).

1.2. Rumusan Masalah

Berdasarkan penjelasan pada latar belakang, maka rumusan masalah dalam penulisan tugas akhir ini adalah bagaimana memberikan rekomendasi software antivirus kepada pengguna.

1.3. Batasan Masalah

Agar pembahasan dari penulisan ini terarah dan terhindar dari perluasan masalah, maka penulis membatasi masalah tersebut sebagai berikut:

1. Menggunakan metode hybrid (content based dan collaborative filtering) dengan kombinasi linear.

2. Menggunakan multi-criteria rating sebagai alat bagi pengguna untuk menunjukkan ketertarikan terhadap suatu software antivirus. Kriteria yang akan digunakan dalam pemberian rating adalah performance, detection, updates, dan technical support.

3. Pembangunan software fokus kepada bagaimana sistem memberikan rekomendasi. 4. Fitur Aplikasi dirancang dengan menggunakan bahasa pemrograman PHP dan


(17)

1.4. Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah mengaplikasikan metode hybrid (content based dan collaborative filtering) pada sistem rekomendasi dengan multi-criteria rating.

1.5. Manfaat Penelitian

Penelitian ini diharapkan dapat memberikan manfaat bagi penulis, pembaca dan para peneliti pemula, sebagai berikut:

1. Menambah pengetahuan baru tentang multi-criteria rating recommender system. 2. Menambah pengetahuan baru tentang metode hybrid linear combination (content

based dan collaborative filtering).

3. Dapat menjadi bahan rujukan untuk penelitian selanjutnya.

1.6. Metodologi Penelitian

Penulis akan merancang dengan tahapan-tahapan metodologi penelitian sebagai berikut:

1. Studi Literatur

Pada tahap studi literatur, penulis mengumpulkan referensi-referensi yang menyulur tentang permasalahan diatas. Tahapan ini ditujukan untuk mengetahui apa yang akan dikerjakan, apa yang sudah dikerjakan oleh peneliti lain, dan bagaimana mereka menyelesaikannya, kemudian seberapa jauh pengembangan terhadap penggunaan multi criteria rating dan hybrid serta seberapa jauh yang dapat dilakukan untuk memperbaiki penelitian para peneliti lain tersebut.

2. Pengumpulan Data

Pada tahap pengumpulan data, dilakukan pengumpulan data yang mendukung dalam penyelesaian masalah yang diteliti secara sistematis.


(18)

3. Analisa dan Perancangan Sistem

Pada tahapan ini, penulis akan melakukan analisa terhadap kumpulan data yang telah dilakukan pada tahapan sebelumnya, dalam penyelesaian suatu masalah sehingga dapat merancang sebuah sistem yang akan diimplementasikan nantinya. 4. Implementasi Sistem

Pada tahap pengimplementasian sistem, penulis melakukan pengimplementasian metode hybrid (content based dan collaborative filtering) pada Sistem Rekomendasi dengan Multi-criteria rating berdasarkan pada analisa dan rancangan sebelumnya. Implementasi meliputi pembuatan sistem dalam menyelesaikan masalah yang diteliti.

5. Pengujian Sistem

Pada tahapan ini, penulis melakukan pengujian terhadap sistem yang telah dirancang untuk mengetahui kehandalan sistem tersebut dan untuk mengetahui apakah telah sesuai dengan yang diharapkan dalam penelitian ini.

6. Dokumentasi Sistem

Pada tahap dokumentasi sistem ini, penulis menyusun laporan terhadap sistem yang telah dibuat.

1.7. Sistematika Penulisan

Penulisan skripsi ini terdiri dari lima bab dengan masing-masing bab secara singkat dijelaskan sebagai berikut:

Bab I Pendahuluan

Bab ini berisi berisikan latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.


(19)

Bab II Tinjauan Pustaka

Pada bab tinjauan pustaka menguraikan landasan teori, penelitian terdahulu, kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari dalam melakukan kegiatan penelitian pada tugas akhir ini. Bab III Analisis dan Perancangan Sistem

Pada bab ini berisikan paparan analisis terhadap permasalahan dan penyelesaian persoalan terhadap metode hybrid (content based dan collaborative filtering) pada sistem rekomendasi dengan multi-criteria rating serta identifikasi kebutuhan perancangan sistem.

Bab IV Hasil dan Pembahasan

Pada bab ini berisi implementasi perancangan sistem dari hasil analisis dan perancangan yang sudah dibuat, serta menguji sistem untuk menemukan kelebihan dan kekurangan pada sistem rekomendasi yang dibuat.

Bab V Kesimpulan dan Saran

Pada bab ini berisikan kesimpulan yang didapatkan terhadap hasil penelitian skripsi dan saran untuk pengembangan lebih lanjut tentang topik terkait yang dibahas pada skripsi.


(20)

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 dihadapkan dengan jumlah informasi yang besar. Rekomendasi yang diberikan diharapkan dapat membantu pengguna dalam proses pengambilan keputusan, seperti barang apa yang akan dibeli, buku apa yang akan dibaca, atau musik apa yang akan didengar, dan lainnya (Ricci et al, 2011).

Sistem rekomendasi pribadi (personalized recommender system) harus mengenal terlebih dahulu setiap pengguna yang ada. Setiap sistem rekomendasi harus membangun dan memelihara user model atau user profile yang berisi ketertarikan pengguna (Jannach et al, 2010). Sebagai contoh, sistem rekomendasi di website Amazon menyimpan setiap transaksi pembelian pelanggan, komentar pelanggan, dan review / rating yang diberikan oleh pelanggan terhadap suatu produk.

Terdapat dua buah pendekatan yang dapat dilakukan untuk membentuk user profile, yaitu pendekatan implicit dan explicit.

Pendekatan implicit, artinya, sistem menyimpan dan mempelajari perilaku pengguna di dalam sistem untuk membangun profil pengguna. Perilaku pengguna dapat berupa likes/dislikes, ratings, dan lain sebagainya terhadap beberapa item. Sementara pendekatan explicit, yaitu dengan menanyakan kepada pengguna secara langsung deskripsi item yang bagaimana yang ia sukai/minati.


(21)

Berbagai metode telah ditemukan untuk menyediakan rekomendasi yang handal. Berdasarkan metode rekomendasi yang sering digunakan, sistem rekomendasi dibagi dalam tiga klasifikasi yaitu: content-based recommendation, collaborative-filtering recommendation,dan hybrid recommendation.

2.2. Sistem Rekomendasi Content Based

Sistem rekomendasi berbasis konten (Content-based Recommendation System) menggunakan ketersediaan konten (sering juga disebut dengan fitur, atribut atau karakteristik) sebuah item sebagai basis dalam pemberian rekomendasi (Ricci et al, 2011). Sebagai contoh, sebuah film mempunyai konten seperti genre, author, tahun rilis, dan lain-lain, atau sebuah file dokumen memiliki konten berupa tulisan yang ada di dalamnya.

Sistem rekomendasi berbasis konten mencoba untuk melakukan pecocokan (matching) antara profil pengguna (user profile) dengan konten item (item content).

Misalnya, seorang pengguna telah memberi rating kepada 5 buah item

1, 2, 3, 4, 5 yang memiliki empat buah fitur 1, 2, 3, 4, 5. Angka 1 menandakan

bahwa item tersebut memiliki atribut yang bersangkutan, sedangkan angka 0 menunjukkan bahwa item tersebut tidak memiliki atribut tersebut.

Tabel 2.1 Tabel Item Feature

Fitur Fitur Fitur Fitur rating

Item 1 1 1 1 4

Item 1 0 1 1 3

Item 1 0 0 0 2

Item 1 0 1 1 3

Item 1 1 0 1 ?

Untuk menghitung bobot dari masing-masing atribut dapat dengan menggunakan rumus berikut (Uluyagmur et al, 2012).

, = 1

�� , ( , )


(22)

Dimana :

 , merupakan bobot yang dimiliki oleh pengguna u terhadap fitur .

merupakan satu set item yang telah dirating oleh pengguna u.

 ( , ) merupakan nilai kehadiran (angka 1 atau 0) sebuah fitur di dalam sebuah item.

 ( , ) merupakan rating yang diberikan pengguna u terhadap item i.

Sedangkan untuk menghitung prediksi rating yang akan diberikan seorang pengguna terhadap sebuah item dapat menggunakan formula berikut ini (Uluyagmur et al, 2012).

, = 1

� � ( , )

(2.2)

Dimana :

, merupakan prediksi rating pengguna u terhadap item i.

merupakan fitur yang muncul di dalam item i.

Sistem rekomendasi berbasis konten memiliki beberapa kelebihan, yaitu :

 Sistem rekomendasi berbasis konten dapat menjelaskan bagaimana hasil rekomendasi didapatkan.

 Sistem rekomendasi berbasis konten dapat merekomendasikan item-item yang bahkan belum pernah di-rate oleh siapapun.

Namun, sistem rekomendasi berbasis konten juga memiliki beberapa kelemahan, yaitu :

 Sistem rekomendasi berbasis konten tidak memiliki kemampuan untuk dapat memeberikan hasil rekomendasi yang tidak terduga (Serendipity Problem).

 Sistem rekomendasi berbasis konten memerlukan sebuah profil user yang berisikan ketertarikan dan minat pengguna. Bagi pengguna baru yang belum pernah melakukan aktivitas apapun dan tidak memiliki profil user yang cukup, sistem rekomendasi tidak dapat memberikan rekomendasi yang handal kepadanya (Cold Start Problem).


(23)

2.3. Sistem Rekomendasi Collaborative Filtering

Ide utama dalam sistem rekomendasi collaborative filtering adalah untuk memanfaatkan opini pengguna lain yang ada untuk memprediksi item yang mungkin akan disukai/diminati oleh seorang pengguna (Ricci et al, 2011).

Kualitas rekomendasi yang diberikan dengan menggunakan metode ini sangat bergantung dari opini pengguna lain (neighbor) terhadap suatu item. Belakangan diketahui bahwa melakukan reduksi neighbor (yaitu dengan memotong neighbor sehingga hanya beberapa pengguna yang memiliki kesamaan / similiarity tertinggi sajalah yang akan digunakan dalam perhitungan) mampu meningkatkan kualitas rekomendasi yang diberikan (Adomavicious dan Kwon, 2007).

Sistem rekomendasi collaborative filtering beroperasi di dalam sebuah ruang dua dimensi User x Item. Rating yang dapat diberikan oleh seorang pengguna terhadap sebuah item dapat direpresentasikan sebagai R (bilangan bulat tidak negatif atau bilangan real dengan jarak tertentu), dan sistem rekomendasi mencoba untuk memprediksi rating yang akan diberikan seorang user untuk sebuah item yang belum pernah ia beri rating sebelumnya.

Misalnya, terdapat lima pengguna 1, 2, 3, . . 5 dan lima item 1, 2, 3, . . 5.

Sebuah sistem rekomendasi ingin memprediksi berapa rating yang akan diberikan oleh 1 kepada 5.

Tabel 2.2 Matrix User x Item pada Sistem Rekomendasi Collaborative Filtering

Item Item Item Item Item

User 5 7 5 7 ?

User 5 7 5 7 9

User 5 7 5 7 9

User 6 6 6 6 5

User 6 6 6 6 5

Terdapat sebuah cara yang sering digunakan dalam menghitung / memprediksi rating pengguna u terhadap item i dengan mengkalkulasikan rata-rata rating pengguna lain (neighbor) (Adomavicious dan Kwon, 2007), yaitu rumus weighted sum:


(24)

, = 1

( , ′)

( ) ,

∗ �(, ) ′∈�( )

(2.3)

Dimana:

( , )adalah prediksi rating pengguna u terhadap item i.

( , )adalah rating penggunau’ (pengguna selain u) terhadap item i.

 ( , ′) adalah kemiripan antara pengguna dengan ′.

N(u) adalah satu set pengguna lain yang mirip dengan pengguna u.

Cosine-based Similiarity adalah cara terbaik untuk menghitung kemiripan dua pengguna (Adomavicious dan Kwon, 2007). Cosine-based similiarity dapat dikalkulasikan dengan formula sebagai berikut :

, ′ = � , �(

, ) ∈�( , ′)

�( , )2

∈�( , ′) ∈�( , ′)�( ′, )2

(2.4)

Dimana:

 , ′ adalah kemiripan antara pengguna dengan ′.

( , ′) adalah satu set item yang telah di-rating oleh kedua pengguna dengan

.

Sistem rekomendasi collaborative filtering memiliki beberapa kelebihan, diantaranya adalah :

 Dapat bekerja di dalam keadaan dimana konten sulit dianalisis sekalipun.

 Memiliki kemampuan untuk menghasilkan rekomendasi yang tak terduga.

Sistem rekomendasi collaborative filtering memiliki beberapa kekurangan, diantaranya adalah :

 Jika terdapat item baru di dalam sistem tersebut, maka sistem tidak dapat merekomendasikan item tersebut sampai pengguna lain berminat pada item tersebut. (First Rater Problem)

 Hasil rekomendasi tidak selamanya handal. Terdapat kemungkinan adanya sebuah pengguna yang hanya memiliki sedikit neighbor dengan tingkat kesamaan (similiarty) yang kecil. (Grey Sheep Problem)


(25)

 Hasil rekomendasi yang tidak handal yang dikarenakan matrix rating yang jarang. (Sparsity Problem)

2.4. Sistem Rekomendasi Hybrid

Masing-masing teknik sistem rekomendasi memiliki kelebihan dan kelemahannya tersendiri. Karenanya, sistem rekomendasi hybrid yang menggabungkan kekuatan dari model dan algoritma yang berbeda untuk mengatasi masalah-masalah yang telah disebutkan di atas menjadi target penelitian yang sedang marak dikembangkan (Jannach et al, 2011).

Terdapat beberapa cara penggabungan yang dapat dilakukan dalam metode hybrid yaitu :

2.4.1. Penggabungan Linear (Linear Combination)

Penggabungan ini menggabungkan hasil perhitungan beberapa teknik rekomendasi secara linear. Penggabungan ini menghitung prediksi rating secara terpisah terlebih dahulu, kemudian hasil dari masing-masing metode tersebut digabungkan menjadi satu. Claypool et al (1999) menggunakan rumus weighted average untuk menggabungkan hasil tersebut.

� = ( 1�1+ 2�2+ . . � )/( 1+ 2+. . n) (2.5)

Dimana :

merupakan prediksi rating hybrid

 merupakan bobot prediksi rating dengan teknik/metode ke-n .

merupakan prediksi rating dengan teknik / metode ke-n

Gambar 2.1 merupakan contoh penggambaran dari penggabungan secara linear antara teknik collaborative filtering dengan content based.


(26)

Gambar 2.1 Linear Combination

2.4.2. Penggabungan secara Sekuensial (Sequential Combination)

Penggabungan ini melakukan perhitungan pada salah satu metode terlebih dahulu (misalnya content based) , kemudian hasil dari perhitungan tersebut dihitung dengan metode berikutnya (misalnya collaborative filtering) (Hayati, 2011). Penggabungan ini digambarkan pada gambar 2.2 berikut.

Gambar 2.2 Sequential Combination

2.4.3. Penggabungan secara Item-based Clustering Hybrid Method (ICHM)

Penggabungan ini mengintegrasikan informasi item dan rating pengguna untuk menghitung kemiripan item-item (Hayati, 2011). Penggabungan ini digambarkan pada gambar 2.3.

User Profile Collaborative

Filtering Content Based

Filtering

Combination Filtering

Rating Matrix

User Profile

Collaborative Filtering

Content Based Filtering

Combination Filtering


(27)

Gambar 2.3 Item-based Clustring Hybrid Method

2.5. Sistem Rekomendasi dengan Multi-Criteria Rating

Sistem rekomendasi dengan multi-criteria rating memperluas single-criteria rating, dengan menunjukkan preferensi subjektif seorang pengguna terhadap beberapa kriteria dari sebuah item (Adomavicious dan Kwon, 2007). Sebagai contoh, sebuah sistem rekomendasi film mengizinkan seorang pengguna untuk menilai bukan hanya berdasarkan tingkat kepuasan keseluruhan sebuah film, tetapi juga tingkat kepuasan berdasarkan beberapa kriteria film, seperti visual effetcs, story, atau acting.

Beberapa contoh sistem rekomendasi multi-criteria rating yang sudah ada, yaitu : Zagat’s Guide yang menyediakan tiga kriteria untuk rating restoran (food, décor, dan service), Buy.com yang menyediakan beberapa kriteria untuk rating elektronik (display size, performance, battery life, dan cost), dan Yahoo! Movies yang menunjukkan rating setiap pengguna untuk keempat kriteria (story, action, direction, dan visual).

Untuk mempermudah pemahaman sistem rekomendasi multi-criteria rating tersebut, maka perhatikan contoh berikut :

+ Collaborative

Filtering Group

Rating

Item Rating

Item group vector

Item Content Clustering

Group Rater

Combination Filtering


(28)

Tabel 2.3 Matrix User x Item pada Sistem Rekomendasi Multi-criteria Rating

Item Item Item Item Item

User 52,2,8,8 75,5,9,9 52,2,8,8 75,5,9,9 ?

User 58,8,2,2 79,9,5,5 58,8,2,2 79,9,5,5 9

User 58,8,2,2 79,9,5,5 58,8,2,2 79,9,5,5 9

User 63,3,9,9 64,4,8,8 63,3,9,9 64,4,8,8 5

User 63,3,9,9 64,4,8,8 63,3,9,9 64,4,8,8 5

Sebuah sistem rekomendasi ingin memprediksi rating yang akan diberikan seorang pengguna 1 terhadap item 5. Pada tabel 2.3, secara sekilas, terlihat bahwa u2 dan u3 adalah yang terdekat dengan u1. Tetapi, sebenarnya u4 dan u5 lah yang

paling mirip dengan u1 (lihat multi-criteria rating-nya).

Terdapat dua penyelesaian permasalahan sistem rekomendasi dengan multi-criteria rating, yaitu similiarity based approach dan aggregation function based approach (Adomavicius dan Kwon, 2007). Jannach (2012) kemudian, dengan penelitiannya, menyatakan bahwa aggregation function based approach pada sistem rekomendasi multi-criteria rating dapat menghasilkan rekomendasi yang lebih unggul dibandingkan dengan metode lainnya.

Alasan dibalik munculnya pendekatan fungsi agregasi adalah asumsi bahwa multi-criteria rating adalah representasi dari ketertarikan pengguna untuk masing-masing kriteria pada sebuah item (Adomavicius dan Kwon, 2007). Oleh karena itu, rating keseluruhan (untuk sebuah item), bukanlah sebuah rating yang independent jika dibandingkan dengan rating kriteria lainnya, melainkan sebuah fungsi agregasi f dari masing-masing kriteria rating.

= ( 1 . . ) (2.6)

Dimana :

 adalah rating keseluruhan untuk satu item


(29)

Terdapat beberapa cara untuk membangun fungsi agregasi tersebut. Cara yang pertama adalah dengan mendefinisikan sendiri fungsi aggregasi f tersebut dengan mengandalkan ahli di dalam bidangnya (domain expertise), atau dengan cara yang lebih sederhana, yaitu fungsi rata-rata dari kriteria rating yang ada (Jannach et al, 2012).

� = ( 1�1+ 2�2+ . . � )/( 1+ 2+. . n) (2.7)

Dimana :

merupakan prediksi rating akhir (gabungan beberapa kriteria)

 merupakan bobot prediksi rating kriteria ke-n .

merupakan prediksi rating kriteria ke-n

Cara yang lebih canggih (dan lebih menjanjikan) adalah dengan menggunakan teknik statistik atau machine learning untuk mengetahui hubungan antara rating keseluruhan dengan rating untuk masing-masing kriteria.

2.6. Proses Pengambilan Keputusan pada Pemilihan Software Antivirus

Pengguna komputer pribadi maupun staf IT yang bertanggung jawab atas keamanan data di sebuah perusahaan harus mampu melakukan review dan perbandingan sebelum melakukan pengambilan keputusan untuk menggunakan sebuah produk software antivirus tertentu.

Pengguna harus mengetahui kriteria apa saja yang pokok yang harus dimiliki oleh sebuah software antivirus. Kriteria yang harus dimiliki oleh sebuah software antivirus (Castelli, 2001) antara lain adalah:

Detection, hal yang paling diinginkan oleh seorang pengguna terhadap sebuah antivirus adalah menangkap virus. Hal yang menjadi bahan perhatian adalah seberapa banyak virus yang mempu dikenali oleh sebuah antivirus, atau yang biasa disebut dengan detection rate.

Tabel 2.4 Pembagian Deteksi Virus

Virus terdeteksi Virus tidak terdeteksi Benar Virus True Positive False Negative Bukan Virus False Positive True Negative


(30)

Tabel 2.4 menjelaskan pembagian dari jenis deteksi virus. Sebagai contoh, ketika antivirus mengatakan bahwa sebuah file merupakan sebuah virus, dan file tersebut memang benar merupakan virus, berarti deteksi yang diberikan adalah True Positive. Ketika sebuah antivirus mengatakan sebuah file merupakan virus, padahal file tersebut bukan virus, maka deteksi tersebut adalah False Positive.

Technology, hal kedua yang paling penting adalah teknologi apa saja yang dipakai oleh antivirus tersebut. Beberapa teknologi yang popular dan sedang dikembangkan adalah : Real Time Protection, On-Demand Access, E-mail protection, Trojan Protection, Parental Control, Internet Security, dan lain-lain.

Maintenance, hal yang tidak kalah pentingnya adalah bagaimana vendor antivirus menjaga kualitas produk antivirus yang mereka keluarkan, dan seberapa sering update definisi virus yang mereka berikan.

Performance, banyak software antivirus yang memakan resource komputer terlalu tinggi sehingga memperlambat proses lain yang sedang berjalan. Bagi komputer di perusahaan besar, maupun komputer server, performance merupakan kriteria yang cukup penting untuk dipertimbangkan.

Technical Support, sebuah vendor antivirus yang baik menyediakan bantuan online bagi para pelanggan. Bantuan yang diberikan dapat dibagi menjadi beberapa level sesuai dengan kebutuhan dari pelanggan itu sendiri.

2.7. Bahasa Pemrograman PHP

Menurut Sibero (2011), PHP (Hypertext Preprocessor) adalah pemrograman interpreter yaitu proses penerjemahan dari kode sumber menjadi kode mesin yang dimengerti komputer pada saat baris kode dijalankan secara langsung. PHP pada awalnya ditulis menggunakan bahasa PERL (Perl Script), kemudian ditulis ulang dengan menggunakan bahasa C CGI-BIN (Common Gateway Interface-Binnary) yang bertujuan agar halaman website dapat mendukung formulir dan penyimpanan data. PHP adalah bahasa pemrograman Server Side Programming, memungkinkan sebuah website yang dibangun bersifat dinamis (Sibero, 2011).


(31)

2.8. Database

Database adalah koleksi data item yang saling terkait terkelola sebagai satu unit. Beberapa defenisi lain tentang database yaitu sebagai berikut:

 Suatu pengorganisasian sekumpulan data yang saling berhubungan sehingga memudahkan aktivitas untuk memperoleh informasi (Sutanta, 2004).

Database merupakan data yang saling terhubung dan deskripsi dari data yang dirancang untuk kebutuhan organisasi (McLeod dan Schell, 2004).

 Sedangkan menurut Date, database adalah record yang terkomputerisasi yang bertujuan menyediakan informasi ketika dibutuhkan (Kadir, 2003).

Penerapan database dalam sistem informasi disebut database system. Dari teori-teori tersebut dapat disimpulkan bahwa database adalah sekumpulan data yang terorganisasi dan saling terhubung untuk menyediakan informasi yang diperlukan.

Basis data (database), atau sering pula dieja basis data, adalah kumpulan informasi yang disimpan didalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (Database Management System, DBMS) (Sutanta, 2004).

Sistem basis data (database system) didefinisikan sebagai sekumpulan subsistem yang terdiri atas basis data dengan para pemakai yang menggunakan basis data secara bersama-sama, personal-personal yang merancang dan mengelola basis data, teknik- teknik untuk merancang dan mengelola basis data, serta sistem komputer untuk mendukungnya (Kadir, 2003). Database system adalah sistem penyimpanan informasi yang terorganisasi dengan suatu cara sehingga memudahkan untuk proses pengolahan data (McLeod dan Schell, 2004).

DBMS adalah sebuah sistem perangkat lunak yang mengizinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengatur akses ke database. Sedangkan menurut McLeod dan Schell (2004), DBMS adalah aplikasi perangkat


(32)

lunak yang menyimpan struktur database, hubungan antardata dalam database, serta berbagai formulir laporan yang berkaitan dengan database tersebut.

2.9. Data Flow Diagram (DFD)

Dengan adanya konsep pemrograman terstruktur di dalam pembangunan software, developer dimudahkan dalam membagi-bagi fungsi, prosedur, dan modul program yang dibangun. Dalam konsep pemrograman terstruktur dikenal metode DFD (Data Flow Diagram). DFD adalah sebuah metode yang digunakan untuk merepresentasikan sebuah sistem atau perangkat lunak pada beberapa level detail. DFD lebih sesuai untuk memodelkan fungsi-fungsi dan prosedur-prosedur pada pemrograman sistem yang terstruktur (Structural Programming) (Rosa et al, 2011).

2.10. Unified Modelling Language (UML)

Untuk membantu dalam pengembangan perangkat lunak dikenal istilah pemodelan. Salah satu pemodelan yang saat ini paling banyak digunakan oleh pengembang perangkat lunak adalah UML (Unified Modelling Language). UML adalah standar bahasa yang sering digunakan dalam bidang industri untuk mendefinisikan requirement (kebutuhan), membuat analisis dan desain, serta menggambarkan arsitektur dalam pemrograman berorientasi objek.

Ada beberapa hal yang dimaksud dalam kompleksitas pada perangkat lunak (Rosa et al, 2011):

1. Kompleksitas domain atau permasalahan perangkat lunak 2. Kesulitas mengelola proses pengembangan perangkat lunak 3. Kemungkinan fleksibilitas perubahan perangkat lunak

4. Permasalahan karakteristik bagian-bagian perangkat lunak secara diskrit

UML terbagi atas 3 (tiga) kategori, yaitu diagram struktur (structure diagram), diagram kelakuan sistem (behaviour diagram), dan diagram interaksi (interaction diagram)(Rosa, et al. 2011).


(33)

2.11. Penelitian Terdahulu

Sistem rekomendasi telah ada semenjak awal tahun 1990. Berbagai penelitian telah dilakukan untuk menyempurnakan, menggabungkan, dan bahkan menemukan teknik rekomendasi baru untuk mengatasi permasalahan di dalam sistem rekomendasi yang terus berkembang.

Penulis menggunakan penelitian yang telah dibuat sebelumnya sebagai rujukan maupun pertimbangan algoritma dan metode yang tepat untuk digunakan di dalam permasalahan penelitian ini. Penulis menggunakan beberapa metode baru yang sedang berkembang. Beberapa penelitian terdahulu di bidang sistem rekomendasi yang penulis gunakan, diantaranya :

Hayati (2012) menggunakan metode hybrid (content based dan collaborative filtering) dengan algoritma k-Nearest Neighbor pada sistem rekomendasi pariwisata. Hayati menggunakan kombinasi sekuensial untuk menggabungkan kedua metode tersebut.

Uluyagmur et al (2012) telah menggunakan metode content based dengan menggunakan fitur set yang berbeda (different feature set) di dalam sistem rekomendasi film. Uluyagmur et al membangun profil pengguna, yang berupa bobot terhadap masing-masing attribut yang ada, untuk mengukur ketertarikan pengguna terhadap masing-masing attribut di dalam item.

Claypool et al (1999) menggunakan teknik linear combination untuk menggabungkan teknik content based dengan collaborative filtering di dalam sistem rekomendasi berita online.

Adomavicius dan Kwon (2007) melakukan penelitian di bidang sistem rekomendasi dengan multi-criteria rating. Adomavicius mengatakan bahwa terdapat dua buah solusi permasalahan sistem rekomendasi dengan multi-criteria rating, yaitu similiarity based approach dan aggregation function based approach.

Jannach et al (2012) melakukan penelitian berupa perbandingan antara beberapa metode penyelesaian sistem rekomendasi dengan multi-criteria rating. Aggregation function based approach merupakan salah satu metode yang berhasil diimplementasikan dan mampu menghasilkan rekomendasi yang lebih akurat dibandingkan dengan metode lainnya.


(34)

Tabel 2.5 Penelitian Terdahulu

Peneliti Metode Kasus Tahun Penelitian

Hayati Hybrid (Content Based

dan Collaborative)

Sistem Rekomendasi Pariwisata

2012 Uluyagmur et al Content Based

(Different Feature Set)

Sistem Rekomendasi Film

2012 Claypool et al Hybrid (Content Based

dan Collaborative Filtering) dengan Linear Combination Sistem Rekomendasi Berita Online 1999 Adomavicius dan Kwon

Teknik agregasi dan similiarity

Sistem Rekomendasi dengan Multi-criteria Rating

2007

Jannach et al Berbagai teknik (untuk membandingkan beberapa teknik) Sistem Rekomendasi dengan Multi-criteria Rating 2012

2.12. Perbedaan dengan Penelitian Terdahulu

Hayati (2012) menggunakan metode hybrid (content based dan collaborative filtering) dengan menggunakan algoritma k-Nearest Neighbor. Hayati menggunakan kombinasi sekuensial untuk menggabungkan antara content based dengan collaborative filtering. Hayati (2012) menggunakan cara explicit untuk membangun profil pengguna (user profile), yaitu dengan menyediakan formulir preferensi agar pengguna dapat mendeskripsikan secara langsung tujuan wisata bagaimana yang ia inginkan.

Claypool et al (2012) menggunakan metode content based pada sistem rekomendasi dengan fitur set berbeda. Sistem rekomendasi yang dibangun olehnya mempelajari preferensi setiap pengguna yang ada (user profile) berdasarkan histori lihat (watch history) pengguna. Kemudian, dengan menggunakan user profile tersebut, sistem rekomendasi menghitung prediksi seberapa besar ketertarikan pengguna terhadap semua film yang belum pernah ia lihat sebelumnya.

Di dalam penelitian ini, peneliti menggunakan metode hybrid (content based dan collaborative filtering) pada sistem rekomendasi dengan multi-criteria rating. Berbeda dengan Hayati (2012), penulis menggunakan kombinasi linear untuk menggabungkan kedua metode tersebut. Selain itu, peneliti menggunakan cara implicit untuk membangun profil pengguna (user profile), yaitu dengan mempelajari rating yang diberikan pengguna terhadap beberapa produk software antivirus. Multi-criteria rating penulis terapkan untuk menghasilkan rekomendasi yang lebih handal.


(35)

BAB 3

ANALISIS DAN PERANCANGAN

Bab ini akan membahas tentang data yang digunakan, Use Case Diagram untuk melihat semua interaksi pengguna terhadap sistem, Data Flow Diagram (DFD) yang merupakan diagram yang menunjukkan aliran data di dalam sistem, flowchart algoritma yang digunakan di dalam sistem rekomendasi multi-criteria rating dengan menggunakan metode Hybrid (Content Based and Collaborative Filtering), perancangan database, dan perancangan antarmuka pemakai (user interface).

3.1. Data Yang Digunakan

Data yang digunakan untuk membangun Sistem Rekomendasi Software Antivirus berasal dari berbagai website (www.amazon.com, cnet, av-comparatives, pc-magazine dan berbagai datasheets) yang berjumlah lebih dari 100 buah produk.

Selain itu, sistem ini juga menggunakan data pengguna sebanyak 100 buah pengguna. Setiap produk memiliki empat buah kriteria untuk diberi rating. Jumlah rating yang terdapat di dalam sistem berjumlah 4000 buah rating.

3.2. Use Case Diagram

Use Case Diagram adalah representasi dari interaksi pengguna dengan sistem yang bertujuan untuk menunjukkan kepada pengguna aktivitas apa saja yang dapat dilakukan di dalam sebuah sistem. Gambar 3.1 berikut merupakan Use Case Diagram dari Sistem Rekomendasi Software Antivirus.


(36)

Anggota

Register

Login

Lihat Produk Tambah Produk

Halaman Utama

Halaman Rekomendasi

<<include>> <<extend>>

Beri Rating <<include>>

Administrator

Edit Produk <<extend>> Halaman Tutorial

<<extend>>

<<extend>>

<<extend>>

Logout <<include>>

Gambar 3.1 Use Case Diagram

Dari gambar 3.1, terdapat dua aktor yang dapat menggunakan sistem ini, yaitu anggota dan administrator. Gambar tersebut juga menjelaskan relasi beberapa use case yang ada. Berikut ini akan dijelaskan masing-masing use case tersebut :

 Register, yaitu mendaftarkan diri sebagai anggota.

 Login, yelakukan verifikasi pengguna sebelum menggunakan sistem.

 Halaman Utama, yaitu mengunjungi halaman utama sistem rekomendasi software antivirus. Halaman ini menampilkan list antivirus, rekomendasi, dan menu utama.

 Halaman Tutorial, yaitu mengunjungi halaman tutorial sistem rekomendasi software antivirus. Halaman ini berisi informasi mengenai tutorial penggunaan sistem tersebut.

 Halaman Rekomendasi, yaitu mengunjungi halaman rekomendasi yang menampilkan prediksi rating untuk seluruh item beserta metode dan penjabaran untuk perhitungannya.

 Tambah Produk, yaitu mendaftarkan produk software antivirus baru.

 Edit Produk, yaitu mengedit produk software antivirus baru.

 Lihat Produk, yaitu melihat spesifikasi sebuah produk software antivirus.  Beri Rating, yaitu memberi rating terhadap sebuah produk software antivirus.  Logout, yaitu melakukan log out atau keluar dari sistem.


(37)

3.3. Activity Diagram

3.3.1. Activity Diagram Register

Interface Sistem

Pengguna

Masukkan username, password,

dan retype password pengecekan username di dlm database

Menampilkan pesan gagal, username sudah ada

Username sudah ada

simpan username dan password ke dalam database pengecekan password dan retype password

Username belum ada

Menampilkan pesan gagal, password tidak sama

Password sama

Password tidak sama

Menampilkan pesan berhasil register Menampilkan form registrasi Klik tombol register

Gambar 3.2 Activity Diagram Register

Gambar 3.2 menggambarkan aktivitas-aktivitas apa saja yang berlangsung ketika pengguna melakukan registrasi di dalam Sistem Rekomendasi Software Antivirus. Terdapat pengecekan terlebih dahulu apakah username yang diinputkan sudah pernah ada di dalam database dan pengecekan apakah password dan retype password yang diinputkan sama.


(38)

3.3.2. Activity Diagram Login

Interface Sistem

Pengguna

Masukkan username dan password pengecekan username di dlm database Menampilkan pesan gagal,

username tidak ditemukan

Username tidak ada

beralih ke halaman utama pengecekan password dengan

password database Username ada

Menampilkan pesan gagal, password salah

Password salah

Password benar

Menampilkan halaman utama Menampilkan Form login

session dimulai

Gambar 3.3 Activity Diagram Login

Dari Gambar 3.3 dapat dijelaskan bahwasanya sistem ini memiliki tiga proses utama, yaitu : register, login, dan mengelola produk. Mengelola produk membutuhkan status login sebagai validasi pengguna, sehingga hanya pengguna yang sudah login terlebih dahulu lah yang bisa mengakses mengelola produk.


(39)

3.3.3. Activity Diagram Halaman Utama

Interface Sistem

Pengguna

Seleksi semua antivirus dari dalam database

Menampilkan menu utama, list antivirus, dan rekomendasi

bangkitkan 10 antivirus untuk direkomendasikan dengan menggunakan

metode hybrid

seleksi 10 antivirus dengan rating tertinggi cek session

Tampilkan Halaman Login

Session ada Session tdk ada

Gambar 3.4 Activity Diagram Halaman Utama

Berdasarkan gambar 3.4, Terdapat sebuah pengecekan apakah session sudah dibuat ketika pengguna mengunjungi halaman tersebut. Oleh karena itu, hanya pengguna yang sudah memiliki session sajalah yang dapat mengakses halaman ini. Tujuannya adalah mencegah masuknya pengguna yang belum login.

Halaman Utama menampilkan menu utama, list antivirus, serta beberapa rekomendasi software antivirus yang diberikan kepada pengguna.


(40)

3.3.4. Activity Diagram Halaman Rekomendasi

Interface

Pengguna Sistem

Menampilkan prediksi rating, metode, untuk seluruh item

hitung prediksi rating seluruh antivirus dengan menggunakan metode hybrid

Klik salah satu perhitungan prediksi rating thdp antivirus

Menampilkan pop up detail perhitungan prediksi rating

cek session

Tampilkan Halaman Login

Session ada Session tdk ada

Gambar 3.5 Activity Diagram Halaman Rekomendasi

Gambar 3.5 menjelaskan aktivitas apa saja yang terjadi ketika pengguna mengunjungi halaman rekomendasi. Halaman rekomendasi adalah halaman untuk menampilkan prediksi rating untuk seluruh produk antivirus yang ada beserta penjelasannya.


(41)

3.3.5. Activity Diagram Halaman Tutorial

Interface

Pengguna Sistem

Menampilkan tutorial

cek session Tampilkan Halaman Login

Session ada Session tdk ada

Gambar 3.6 Activity Diagram Halaman Tutorial

Gambar 3.6 menjelaskan aktivitas apa saja yang terjadi ketika pengguna mengunjungi halaman tutorial. Halaman rekomendasi adalah halaman untuk menampilkan tutorial penggunaan sistem.

3.3.6. Activity Diagram Logout

Sistem

Pengguna Interface

cek session

Tampilkan Halaman Login

Session ada Session tdk ada

Hapus session


(42)

Gambar 3.7 menjelaskan bahwa sistem akan menghapus session ketika proses logout. Kemudian, pengguna akan diarahkan ke halaman login.

3.3.7. Activity Diagram Tambah Produk Antivirus

Interface Sistem

Pengguna

Menampilkan formulir tambah antivirus

Mengisi informasi mengenai antivirus insert antivirus ke dalam database

Pesan sukses menambahkan antivirus

cek session

Session ada Session tdk ada

Menampilkan halaman login

cek apakah level admin

Menampilkan halaman utama

admin Tdk admin

Gambar 3.8 Activity Diagram Tambah Produk Antivirus

Gambar 3.8 menjelaskan tentang proses penambahan produk antivirus baru. Sistem mengecek apakah pengguna adalah admin atau tidak. Hanya pengguna yang levelnya admin sajalah yang bisa menggunakan proses ini.


(43)

3.3.8. Activity Diagram Edit Produk Antivirus

Interface Sistem

Pengguna

Seleksi antivirus yang dipilih ke dlm database

Menampilkan formulir edit antivirus Pilih salah satu produk antivirus

Mengubah informasi mengenai antivirus update antivirus ke dalam database

Pesan sukses mengedit antivirus

cek session

Session ada Session tdk ada

Menampilkan halaman login

cek apakah level admin

Menampilkan halaman utama

admin Tdk admin

Gambar 3.9 Activity Diagram Edit Produk Antivirus

Gambar 3.9 menjelaskan tentang proses pengeditan produk antivirus. Sistem mengecek apakah pengguna adalah admin atau tidak. Hanya pengguna yang levelnya admin sajalah yang bisa menggunakan proses ini.


(44)

3.3.9. Activity Diagram Lihat Produk Antivirus

Interface

Pengguna Sistem

Seleksi antivirus yang dipilih dari database Menampilkan informasi mengenai

antivirus dan ratingnya Pilih salah satu produk antivirus

cek session

Session ada Session tdk ada

Menampilkan halaman login

Gambar 3.10 Activity Diagram Lihat Produk Antivirus

Gambar 3.10 menjelaskan proses melihat produk software antivirus tertentu. Tidak terdapat pengecekan apakah pengguna merupakan administrator atau tidak,sehingga pengguna biasapun dapat melakukan proses ini.


(45)

3.3.10 Activity Diagram Beri Rating

Interface

Pengguna Sistem

Seleksi antivirus yang dipilih dari database Menampilkan informasi mengenai

antivirus dan ratingnya Beri rating terhadap produk

antivirus untuk keempat kriteria rating

pengecekan apakah ia sdh memberi rating thd antivirus tsb

insert rating ke dalam database

update rating ke dalam database Sudah pernah Belum pernah

Pesan sukses memberikan rating Pilih salah satu produk antivirus

cek session

Session ada Session tdk ada

Menampilkan halaman login

Gambar 3.11 Activity Diagram Beri Rating

Gambar 3.11 menjelaskan bahwa terdapat dua kemungkinan dalampemberian rating, yaitu ketika pengguna belum memberikan rating terhadap antivirus terpilih,atau pengguna sudah pernah memberikan rating terhadap antivirus tersebut. Ketika pengguna belum pernah memberikan rating, sistem akan melakukan penyisipan (insert) ke dalam database, sedangkan ketika pengguna sudah memberikan rating terhadap item tersebut,maka sistem akan melakukan perubahan (update).


(46)

3.4. Flowchart

Terdapat beberapa flowchart yang ada di dalam Sistem Rekomendasi Software Antivirus. Flowchart tersebut antara lain adalah :

3.4.1. Flowchart Keseluruhan Rekomendasi

start

count(R(u))>2

while(i=semua item yg blm dirating oleh user

login) sim1 = array() sim2 = array() sim3 = array() sim4 = array() r1 = array() r2 = array() r3 = array() r4 = array() while(u’=semua user selain user

login) M1 = array() M2 = array() M3 = array() M4 = array() If(!empty(R(u’,i)))

while(j=semua item yg sdh dirating oleh

user login)

M1[u][j] = R1(u,j) M1[u’][j] = R1(u’,j) M2[u][j] = R2(u,j) M2[u’][j] = R2(u’,j) M3[u][j] = R3(u,j) M3[u’][j] = R3(u’,j) M4[u][j] = R4(u,j) M4[u’][j] = R4(u’,j) no yes no yes no yes yes no

If(!empty(R(u’,j))) yes

no no

yes u = user yg login

R = rating R1 = rating kriteria pertama

R2 = rating kriteria kedua R3 = rating kriteria ketiga R4 = rating kriteria keempat

w = get_weight_cb() ovr_pred = array()

A

Menyimpan rating untuk keperluan perhitungan

similiarity

(metode collaborative filtering) Perhitungan bobot (metode

content based)


(47)

If(!empty(sim1))

ovr_pred[u][i] = (3*pred1[u][i] + 2*pred2[u][i] + 2*pred3[u][i] + pred4[u][i] ) /8

End

pred1[u][i] = (pred1[u][i] + get_prediction_cf(sim1, r1, i))/2 pred2[u][i] = (pred2[u][i] + get_prediction_cf(sim2, r2, i))/2 pred3[u][i] = (pred3[u][i] + get_prediction_cf(sim3, r3, i))/2 pred4[u][i] = (pred4[u][i] + get_prediction_cf(sim4, r4, i))/2

sim1[u][u’] = get_similiarity_cf(M1[u], M1[u’]) sim2[u][u’] = get_similiarity_cf(M2[u], M2[u’]) sim3[u][u’] = get_similiarity_cf(M3[u], M3[u’]) sim4[u][u’] = get_similiarity_cf(M4[u], M4[u’])

If(!empty(M1))

pred1[u][i] = get_prediction_cb(w[1], i) pred2[u][i] = get_prediction_cb(w[2], i) pred3[u][i] = get_prediction_cb(w[3], i) pred4[u][i] = get_prediction_cb(w[4], i)

yes no

yes no

return ovr_ped r1[i] = R1(u’,i) r2[i] = R2(u’,i) r3[i] = R3(u’,i) r4[i] = R4(u’,i)

A

Perhitungan similiarity antar pengguna (Collaborative

Filtering)

Perhitungan prediksi rating (Content Based)

Perhitungan prediksi rating (Collaborative Filtering) dan perhitungan prediksi rating Hybrid (Linear Combination) Perhitungan prediksi rating gabungan keempat kriteria

rating

sort(ovr_pred)

Gambar 3.13 Flowchart Rekomendasi Keseluruhan (Lanjutan)

Sistem rekomendasi membutuhkan user profile sebagai acuan bagi sistem rekomendasi dalam memberikan hasil rekomendasi. Salah satu cara membangun user profile adalah dengan menyimpan dan menganalisa histori pemberian rating seorang pengguna terhadap beberapa produk. Rating tersebut berfungsi sebagai alat untuk menunjukkan tingkat kepuasan pengguna terhadap beberapa produk.

Berikut merupakan penjelasan dari flowchart rekomendasi hybrid (content based dan collaborative filtering) dalam sistem rekomendasi multi-criteria rating. 1. Rekomendasi diberikan kepada pengguna target (pengguna yang login) yang


(48)

bermutu rating yang diberikan oleh pengguna, semakin bagus pula rekomendasi yang diberikan oleh sistem.

2. Kemudian, sistem akan membangun user profile (bobot masing-masing attribut di dalam produk) (2.1).

3. Proses rekomendasi dilanjutkan dengan menyeleksi semua produk yang belum pernah ia beri rating sebelumnya.

4. Untuk setiap produk tersebut, kumpulkan neighbor dengan cara menghitung kemiripan dengan seluruh pengguna lain yang ada dengan menggunakan rumus Cosine Based Similiarity (2.4).

5. Hitung prediksi rating pengguna target terhadap produk dengan menggunakan rumus (2.2) (content based).

6. Jika neighbor didapat, sistem akan menghitung prediksi rating pengguna target terhadap produk dengan menggunakan persamaan weighted sum (2.3).

7. Kemudian, hitung prediksi hybrid, yaitu kombinasi linear dari perhitungan content based dengan perhitungan collaborative filtering (2.5).

8. Kemudian, hitung prediksi keseluruhan, yaitu penggunaan fungsi agregasi (2.7) terhadap perhitungan prediksi masing-masing kriteria rating.

9. Kemudian ulangi lagi langkah tersebut (langkah 3) untuk meprediksi rating produk selanjutnya sampai prediksi rating untuk seluruh item didapatkan.

10.Setelah prediksi rating untuk seluruh item didapat, selanjutnya adalah mengurutkan nilai prediksi tersebut dari besar ke kecil.

11.Selesai.

Berbeda dengan sistem rekomendasi dengan satu rating (Single-criteria Rating Recommendation), pada sistem rekomendasi dengan banyak rating (Multi-criteria Rating Recommendation), pada saat proses perhitungan, perhitungan dihitung menjadi per-kriteria. Sehingga jika terdapat n buah kriteria, maka sistem harus menghitung sebanyak n kali lipat lebih banyak daripada sistem rekomendasi dengan single-criteria rating.

Sebagai contoh, seorang pengguna 1, setelah memberi rating terhadap 4 buah produk, 1, 2, 3, 4, memiliki matrix rating user x item dan sebuah item feature sebagaimana dijelaskan pada tabel 3.1 dan tabel 3.2.


(49)

Tabel 3.1 Matrix rating User x Item Pada Sistem Rekomendasi Multi Criteria Rating

1 2 3 4 5

1 4,3,3,4 3,3,4,4 2,3,3,2 3,3,4,4 ?,?,?,?

2 3,3,4,4 3,3,4,4 2,1,3,3 3,3,4,3 4,4,4,4

3 2,3,2,2 4,4,4,4 4,3,4,3 2,3,2,1 3,2,3,3

4 3,1,1,3 3,3,1,2 2,3,4,4 2,3,3,1 2,2,3,3

5 5,4,5,4 2,3,4,4 3,3,4,3 3,3,4,4 4,4,3,5

Tabel 3.1 merupakan contoh matrix rating user x item pada sistem rekomendasi Multi Criteria Rating. Pengguna 1 adalah pengguna target yang akan dihitung berapa prediksi ratingnya terhadap item 5. Matrix Rating tersebut akan digunakan untuk menghitung similiarity antar pengguna dan perhitungan prediksi di dalam metode collaborative filtering.

Tabel 3.2 Tabel Item Feature pada Sistem Rekomendasi Multi-criteria Rating

1 2 3 4 1, 2, 3, 4

1 1 1 1 1 4,3,3,4

2 1 0 1 1 3,3,4,4

3 1 0 0 0 2,3,3,2

4 1 0 1 1 3,3,4,4

5 1 1 0 1 ?,?,?,?

Tabel 3.2 merupakan contoh item feature yang dimiliki pengguna 1. Item feature tersebut mendeskripsikan fitur apa saja yang dimiliki oleh sebuah item yang sudah pernah dirating olehnya. Fitur 1, 2, . . mewakili fitur apa saja yang dimiliki

oleh sebuah produk. Item feature seorang pengguna digunakan untuk menghitung bobot masing masing fitur yang akan digunakan pada saat penghitungan prediksi dengan content based recommendation.

Untuk memudahkan penyelesaian persoalan sistem rekomendasi multi-criteria rating, matrix user x item dan item feature tersebut harus dipecah menjadi per-kriteria. Matrix rating user x item untuk kriteria rating pertama dan item feature untuk kriteria rating pertama digambarkan dalam tabel 3.3 dan tabel 3.4.


(50)

Tabel 3.3 Matrix User x Item Untuk Kriteria Rating Pertama

1 2 3 4 5

1 4 3 2 3 ?

2 3 3 2 3 4

3 2 4 4 2 3

4 3 3 2 2 2

5 5 2 3 3 4

Tabel 3.4 Tabel Item Feature Pengguna 1 Untuk Kriteria Rating Pertama

1 2 3 4 1

1 1 1 1 1 4

2 1 0 1 1 3

3 1 0 0 0 2

4 1 0 1 1 3

5 1 1 0 1 ?

Setelah berhasil menghitung prediksi rating masing-masing kriteria, gabungkan hasil prediksi untuk masing-masing kriteria tersebut dengan menggunakan fungsi agregasi (2.6) untuk mendapatkan prediksi keseluruhan untuk satu produk.


(1)

LAMPIRAN : Listing Program

1.

Fungsi Rekomendasi Keseluruhan

function hybrid() {

$overall_prediction = array(); $weight = array();

$string_id = array();

// cek apakah user target sudah pernah memberi rating sebelumnya $query_rating_user = mysql_query("SELECT * FROM rating WHERE user_id = '".$_SESSION["user_id"]."'") or die(mysql_error());

if(mysql_num_rows($query_rating_user)>=2) {

// hitung masing-masing weight untuk perhitungan di dlm content based recommendation

$weight = get_weight_cb();

$i = 0;

// seleksi semua item ( kecuali yang pernah dirate oleh user target (yang login))

$query_semua_item = mysql_query("SELECT * FROM product WHERE product_id NOT IN (SELECT product_id FROM rating WHERE user_id =

'".$_SESSION["user_id"]."') ORDER BY product_id DESC") or die(mysql_error()); while($hasil_semua_item = mysql_fetch_array($query_semua_item)) {

//echo

"<hr><b>".$hasil_semua_item["product_id"]."</b><br>"; $similiarity1 = array(); $similiarity2 = array(); $similiarity3 = array(); $similiarity4 = array();

$r1 = array(); $r2 = array(); $r3 = array(); $r4 = array();

// seleksi semua user di dalam database (kecuali user target (yang login))

$query_semua_user = mysql_query("SELECT * FROM user WHERE user_id != '".$_SESSION["user_id"]."'") or die(mysql_error());

while($hasil_semua_user = mysql_fetch_array($query_semua_user))

{

$m1 = array(); $m2 = array(); $m3 = array(); $m4 = array();

// cek apakah user lain sudah pernah merate item yang belum pernah dirate oleh user target (user yg login)

$query_rating_semua_user_item_target = mysql_query("SELECT * FROM rating WHERE user_id =

'".$hasil_semua_user["user_id"]."' AND product_id =

'".$hasil_semua_item["product_id"]."'") or die(mysql_error());

if(mysql_num_rows($query_rating_semua_user_item_target)) {

$hasil_rating_semua_user_item_target = mysql_fetch_array($query_rating_semua_user_item_target);

// cek apakah user lain sudah pernah merate item yang sudah pernah dirate oleh user target

$query_rating_user = mysql_query("SELECT * FROM rating WHERE user_id = '".$_SESSION["user_id"]."'") or

die(mysql_error());

while($rating_user = mysql_fetch_array($query_rating_user))


(2)

{

$query_rating_semua_user = mysql_query("SELECT * FROM rating WHERE user_id =

'".$hasil_semua_user["user_id"]."' AND product_id = '".$rating_user["product_id"]."'") or die(mysql_error());

if(mysql_num_rows($query_rating_semua_user)) {

$hasil_rating_semua_user = mysql_fetch_array($query_rating_semua_user);

// matrix M user x item (rating item yg sama-sama dirating oleh kedua user)

$m1[$_SESSION["user_id"]][$rating_user["product_id"]] = ($rating_user["1_rating"]);

$m2[$_SESSION["user_id"]][$rating_user["product_id"]] = ($rating_user["2_rating"]);

$m3[$_SESSION["user_id"]][$rating_user["product_id"]] = ($rating_user["3_rating"]);

$m4[$_SESSION["user_id"]][$rating_user["product_id"]] = ($rating_user["4_rating"]);

$m1[$hasil_semua_user["user_id"]][$rating_user["product_id"]] = ($hasil_rating_semua_user["1_rating"]);

$m2[$hasil_semua_user["user_id"]][$rating_user["product_id"]] = ($hasil_rating_semua_user["2_rating"]);

$m3[$hasil_semua_user["user_id"]][$rating_user["product_id"]] = ($hasil_rating_semua_user["3_rating"]);

$m4[$hasil_semua_user["user_id"]][$rating_user["product_id"]] = ($hasil_rating_semua_user["4_rating"]);

} }

// rating user lain terhadap item target

$r1[$hasil_semua_user["user_id"]][$hasil_semua_item["product_id"]] = $hasil_rating_semua_user_item_target["1_rating"];

$r2[$hasil_semua_user["user_id"]][$hasil_semua_item["product_id"]] = $hasil_rating_semua_user_item_target["2_rating"];

$r3[$hasil_semua_user["user_id"]][$hasil_semua_item["product_id"]] = $hasil_rating_semua_user_item_target["3_rating"];

$r4[$hasil_semua_user["user_id"]][$hasil_semua_item["product_id"]] = $hasil_rating_semua_user_item_target["4_rating"];

if(!empty($m1)) {

// hitung nilai similiarity antara user target, dengan user lain tersebut

$similiarity1[$_SESSION["user_id"]][$hasil_semua_user["user_id"]] = get_similiarity_cf($m1[$_SESSION["user_id"]],

$m1[$hasil_semua_user["user_id"]]);

$similiarity2[$_SESSION["user_id"]][$hasil_semua_user["user_id"]] = get_similiarity_cf($m2[$_SESSION["user_id"]],

$m2[$hasil_semua_user["user_id"]]);

$similiarity3[$_SESSION["user_id"]][$hasil_semua_user["user_id"]] = get_similiarity_cf($m3[$_SESSION["user_id"]],

$m3[$hasil_semua_user["user_id"]]);

$similiarity4[$_SESSION["user_id"]][$hasil_semua_user["user_id"]] = get_similiarity_cf($m4[$_SESSION["user_id"]],


(3)

} }

}

// content based

$prediction1_cb = get_prediction_cb($weight["1_rating"], $hasil_semua_item["product_id"]);

$prediction2_cb = get_prediction_cb($weight["2_rating"], $hasil_semua_item["product_id"]);

$prediction3_cb = get_prediction_cb($weight["3_rating"], $hasil_semua_item["product_id"]);

$prediction4_cb = get_prediction_cb($weight["4_rating"], $hasil_semua_item["product_id"]);

$overall_prediction[$i]["rec"] = "content based";

$prediction1 = $prediction1_cb; $prediction2 = $prediction2_cb; $prediction3 = $prediction3_cb; $prediction4 = $prediction4_cb;

// collaborative

if(!empty($similiarity1)) {

// hitung prediksi $prediction1_cf =

get_prediction_cf($similiarity1[$_SESSION["user_id"]], $r1, $hasil_semua_item["product_id"]);

$prediction2_cf =

get_prediction_cf($similiarity2[$_SESSION["user_id"]], $r2, $hasil_semua_item["product_id"]);

$prediction3_cf =

get_prediction_cf($similiarity3[$_SESSION["user_id"]], $r3, $hasil_semua_item["product_id"]);

$prediction4_cf =

get_prediction_cf($similiarity4[$_SESSION["user_id"]], $r4, $hasil_semua_item["product_id"]);

// hybrid

$prediction1 = ($prediction1_cf + $prediction1_cb)/2;

$prediction2 = ($prediction2_cf + $prediction2_cb)/2;

$prediction3 = ($prediction3_cf + $prediction3_cb)/2;

$prediction4 = ($prediction4_cf + $prediction4_cb)/2;

$overall_prediction[$i]["rec"] = "hybrid"; }

// aggregation function

// using simple linear : weighted sum $w1 = 3;

$w2 = 2; $w3 = 2; $w4 = 1;

$agr_pred = ($w1*$prediction1 + $w2*$prediction2 + $w3*$prediction3 + $w4*$prediction4) / ($w1+$w2+$w3+$w4);

// menyimpan sebagai keluaran

$overall_prediction[$i]["weight_ft"] = $weight; $overall_prediction[$i]["fb"]["pred1"] =

$prediction1_cb;

$overall_prediction[$i]["fb"]["pred2"] = $prediction2_cb;

$overall_prediction[$i]["fb"]["pred3"] = $prediction3_cb;

$overall_prediction[$i]["fb"]["pred4"] = $prediction4_cb;

$overall_prediction[$i]["sim"]["1"] = $similiarity1[$_SESSION["user_id"]];


(4)

$overall_prediction[$i]["sim"]["2"] = $similiarity2[$_SESSION["user_id"]];

$overall_prediction[$i]["sim"]["3"] = $similiarity3[$_SESSION["user_id"]];

$overall_prediction[$i]["sim"]["4"] = $similiarity4[$_SESSION["user_id"]];

$overall_prediction[$i]["cf"]["pred1"] = $prediction1_cf;

$overall_prediction[$i]["cf"]["pred2"] = $prediction2_cf;

$overall_prediction[$i]["cf"]["pred3"] = $prediction3_cf;

$overall_prediction[$i]["cf"]["pred4"] = $prediction4_cf;

$overall_prediction[$i]["ovr"]["pred1"] = $prediction1; $overall_prediction[$i]["ovr"]["pred2"] = $prediction2; $overall_prediction[$i]["ovr"]["pred3"] = $prediction3; $overall_prediction[$i]["ovr"]["pred4"] = $prediction4;

$overall_prediction[$i]["w1"] = $w1; $overall_prediction[$i]["w2"] = $w2; $overall_prediction[$i]["w3"] = $w3; $overall_prediction[$i]["w4"] = $w4;

$overall_prediction[$i]["rating"] = $agr_pred;

$overall_prediction[$i]["item_id"] = $hasil_semua_item["product_id"];

$i++; }

}

if(!empty($overall_prediction)) {

foreach($overall_prediction as $i => $a) {

$rating[$i] = $overall_prediction[$i]["rating"]; }

array_multisort($rating, SORT_DESC, $overall_prediction); return $overall_prediction;

}

return 0; }

2.

Fungsi Menghitung Prediksi Rating (Content Based)

// function get prediction for content based

function get_prediction_cb($weight, $product_id) {

$pred = 0; $jlh = 0;

$query_feature = mysql_query("SELECT * FROM features"); while($data_feature = mysql_fetch_array($query_feature)) {

$query_pengecekan = mysql_query("SELECT * FROM product_feature WHERE product_id = '".$product_id."' AND feature_id =

'".$data_feature["feature_id"]."'") or die(mysql_error()); if(mysql_num_rows($query_pengecekan)==1) {

$pred += $weight[$data_feature["feature_id"]]; $jlh++;

} }

$pred /= $jlh;

return $pred; }


(5)

// function get weight for content based function get_weight_cb()

{

$weight = array(); $jlh = array();

$query_feature = mysql_query("SELECT * FROM features"); while($data_feature = mysql_fetch_array($query_feature)) {

$ada = false;

$query = mysql_query("SELECT * FROM rating WHERE user_id = '".$_SESSION["user_id"]."'") or die(mysql_error());

while($data = mysql_fetch_array($query)) {

$query_pengecekan_feature = mysql_query("SELECT * FROM product_feature WHERE product_id = '".$data["product_id"]."' AND feature_id = '".$data_feature["feature_id"]."'") or die(mysql_error());

if(mysql_num_rows($query_pengecekan_feature)==1) {

$weight["1_rating"][$data_feature["feature_id"]] += $data["1_rating"];

$weight["2_rating"][$data_feature["feature_id"]] += $data["2_rating"];

$weight["3_rating"][$data_feature["feature_id"]] += $data["3_rating"];

$weight["4_rating"][$data_feature["feature_id"]] += $data["4_rating"];

$ada = true; }

$jlh[$data_feature["feature_id"]]++;

}

if(!$ada) {

$weight["1_rating"][$data_feature["feature_id"]] = 0; $weight["2_rating"][$data_feature["feature_id"]] = 0; $weight["3_rating"][$data_feature["feature_id"]] = 0; $weight["4_rating"][$data_feature["feature_id"]] = 0; $jlh[$data_feature["feature_id"]] = 0;

}

}

$query_feature = mysql_query("SELECT * FROM features") or die(mysql_error());

while($data_feature = mysql_fetch_array($query_feature)) {

if($jlh[$data_feature["feature_id"]]!=0) {

$weight["1_rating"][$data_feature["feature_id"]] /= $jlh[$data_feature["feature_id"]];

$weight["2_rating"][$data_feature["feature_id"]] /= $jlh[$data_feature["feature_id"]];

$weight["3_rating"][$data_feature["feature_id"]] /= $jlh[$data_feature["feature_id"]];

$weight["4_rating"][$data_feature["feature_id"]] /= $jlh[$data_feature["feature_id"]];

} }

return $weight; }

4.

Fungsi Menghitung Prediksi Rating (Collaborative Filtering)

// weighted sum to predict rating

function get_prediction_cf($sim, $r, $i) {

$prediction = 0; $var1 = 0; $var2 = 0;

// calculate prediction

foreach($sim as $user_id2 => $a) {


(6)

$var1 += $sim[$user_id2]*$r[$user_id2][$i]; $var2 += $sim[$user_id2];

}

$prediction = ($var1/$var2);

return $prediction; }

5.

Fungsi Menghitung Kemiripan (Collaborative Filtering)

// cosine based similiarity

function get_similiarity_cf($rating_user1, $rating_user2) {

$similiarity = 0; $var1 = 0;

$var2 = 0; $var3 = 0;

// calculate similiarity

foreach($rating_user1 as $item => $b) {

$var1 += $rating_user1[$item]*$rating_user2[$item]; $var2 += pow($rating_user1[$item], 2);

$var3 += pow($rating_user2[$item], 2); }

$similiarity = $var1 / (sqrt($var2*$var3));

return $similiarity; }