• Tidak ada hasil yang ditemukan

Penerapan Sparse Matrix pada Rekomendasi Berita Personal untuk Pengguna Anonim

N/A
N/A
Protected

Academic year: 2016

Membagikan "Penerapan Sparse Matrix pada Rekomendasi Berita Personal untuk Pengguna Anonim"

Copied!
99
0
0

Teks penuh

(1)

SKRIPSI

RIZQI MULKI

091402001

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah

Sarjana Teknologi Informasi

RIZQI MULKI

091402001

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(3)

PERSETUJUAN

Judul : PENERAPAN SPARSE MATRIX PADA

REKOMENDASI BERITA PERSONAL UNTUK PENGGUNA ANONIM

Kategori : SKRIPSI

Nama : RIZQI MULKI

Nomor Induk Mahasiswa : 091402001

Program Studi : SARJANA (S-1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Diluluskan di

Medan, Agustus 2014

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dr. Mardiningsih, M.Si Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc NIP. 19630405 198811 2 001 NIP. 19860303 201012 1 004

Diketahui/Disetujui Oleh

Program Studi Teknologi Informasi Ketua,

(4)

PERNYATAAN

PENERAPAN SPARSE MATRIX PADA REKOMENDASI BERITA PERSONAL UNTUK PENGGUNA ANONIM

SKRIPSI

Saya mengakui bahwa skripsi adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringakasan yang masing – masing telah disebutkan sumbernya.

Medan, Agustus 2014

(5)

PENGHARGAAN

Puji dan syukur dihadiahkan kehadirat Allah SWT, serta selawat kepada Nabi

Muhammad SAW, karena atas anugerah dari-Nya lah penulis dapat menyelesaikan skripsi ini. Rasa syukur yang sangat besar kepada Allah SWT, karena kemudahan yang Allah anugerahkan sehingga skripsi ini bisa diselesaikan.

Dalam menyelesaikan skripsi ini penulis banyak mendapatkan bantuan dan motivasi dari luar diri. Pada kesempatan ini dengan kerendahan hati, penulis mengucapkan terima kasih banyak kepada :

1. Kedua orang tua penulis, yaitu Bunda, Nuraini.S.Pd dan Ayahanda, Abdullah.S.Pd, karena berkat dukungan baik secara moril maupun materil secara terus menerus sehingga penulis dapat menyelesaikan skripsi ini. Kepada saudara penulis Khairurrijal, Linil Masthura, Muhibuddin, Nurkhalidah, dan seluruh keluarga besar kami.

2. Kepada Bapak Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc dan Ibu Dr. Mardiningsih, M.Si yang terus mendukung dalam penyelesaian skripsi ini.

3. Ketua Jurusan sekaligus penasehat akademik M. Anggia Muchtar, ST. MM.IT dan Sekretaris Jurusan M. Fadly Syahputra, B.Sc, M.Sc.IT.

4. Seluruh Dosen yang mengajar pada Program Studi Teknologi Informasi Universitas Sumatera Utara.

5. Teman – teman Teknologi Informasi Stambuk 2009, ranap, satria, ari, zizi, yogi, wildan, fithra, gilberth, aang dan kawan – kawan SRC yang telah banyak membantu selama masa studi dan penyelesaian skripsi ini.

6. Rekan – rekan kerja saya Kak Adri Arianti, Buk Tapi Rondang, Pak Yassin, Vero, Kak Feby, Kak Nita, Kak Ica dan Pak Naqosya Asrori yang selalu mendukung untuk menyelesaikan skripsi.

(6)

ABSTRAK

Tautan berita online disebar melalui social media oleh pihak portal berita supaya masyarakat tertarik untuk membaca berita ke portal berita mereka. Supaya user yang sudah masuk ke dalam sebuah portal berita, terus membaca berita lain karena menemukan ada berita yang berkaitan dan disukai pada daftar rekomendasi berita personal. Namun, saat ini rekomendasi secara personal bisa diberikan jika sudah memiliki banyak riwayat penjelajahan dan harus dipastikan user sudah login ke portal berita tersebut. Hal ini akan menjadi masalah jika yang membaca berita adalah pengguna anonim dan tidak memiliki riwayat penjelajahan yang banyak, sehingga akan menyulitkan bagi pemilik portal berita untuk menambah jumlah pembaca baru di portal berita mereka, jika pelayanan yang ingin diberikan adalah berupa rekomendasi berita secara personal. Maka dari itu, dibutuhkan sistem rekomendasi secara personal untuk pengguna anonimyang baru sekali atau beberapa kali mengakses berita dan bisa diberikan rekomendasi secara personal dengan menerapkan metode yang memanfaatkan sparse matrix yaitu CSR Sparse Matrix Vector Multiplication dan proximity processing. Bayesian framework for user interest yang merupakan metode untuk sistem rekomendasi personal akan digunakan juga, namun dengan memodifikasi penerapannya yaitu pada term. Penelitian ini menunjukkan bahwa walaupun riwayat penjelajahan sedikit, rekomendasi berita secara personal tetap bisa diberikan kepada pembaca berita.

(7)

SPARSE MATRIX APPLICATION IN PERSONAL NEWS RECOMMENDATION FOR ANONYMOUS USER

ABSTRACT

Online news links are being spread through the social media by news agencies in order to encourage people to read news from their site. After users have logged in to their site, users will keep on reading news that is relevant to their personalized news recommendation. But, nowadays personalized recommendation could be provided to users only if the site has recorded much of users browsing history and it‟s mandatory that users have to log in to the site. This could be problematic if the news readers are

anonymous users and the site hasn‟t record enough browsing history from those users.

It would be difficult for news agencies to increase their daily readers to their site if

they‟re going to compete with other agencies in the aspect of providing good personalized recommendation. Therefore, personalized recommender system is necessary for anonymous users who „ve only visited the news site occasionally, so that the site could recommend the news they‟re likely to read by implementing CSR Sparse Matrix Vector Multiplication and proximity processing as sparse matrix applied method. Bayesian framework for user interest will also be implemented with

the modification in its term. This research will prove that even though news site hasn‟t

recorded enough browsing history, personalized news recommendation could still be provided to the readers.

(8)

DAFTAR ISI

Halaman

PERSETUJUAN ... i

PERNYATAAN ... ii

PENGHARGAAN ... iii

ABSTRAK ... iv

ABSTRACT ...v

DAFTAR ISI ... vi

DAFTAR TABEL ... ix

DAFTAR GAMBAR ... xi

BAB 1 PENDAHULUAN ...1

1.1. Latar Belakang ...1

1.2. Rumusan Masalah ...2

1.3. Tujuan Penelitian ...2

1.4. Batasan Masalah...3

1.5. Manfaat Penelitian ...3

1.6. Metodelogi Penelitian ...3

1.7. Sistematika Penulisan ...4

BAB 2 LANDASAN TEORI ...6

2.1. Rekomendasi Berita ...6

2.2. Pengguna Anonim ...6

2.3. Content Based Recommendation ...7

2.4. Sparse Matrix ...7

2.5. Information Filtering ...8

2.6. Information Retrieval ...8

2.7. CSR SpMV(Sparse Matrix Vector Multiplication) ...9

2.8. Proximity Processing... 10

2.9. Rekomendasi Berita Personal ... 11

2.10. Stopword Removal ... 11

2.11. Stemming ... 12

(9)

BAB 3 ANALISIS DAN PERANCANGAN ... 16

3.1. Analisis Data ... 16

3.2. Tahapan Eliminasi ... 17

3.3. CSR SpMV ... 19

3.4. Proximity Processing... 23

3.5. Bayesian Framework for User Interest ... 25

3.6. Perancangan General Architecture ... 28

3.7. Perancangan Use Case ... 29

3.7.1. Definisi Aktor... 29

3.7.2. Definisi Use Case ... 29

3.7.3. Skenario Use Case ... 30

3.7.4. Diagram Use Case ... 33

1.8 Diagram Kelas... 33

1.9 Diagram Objek ... 35

1.10 Diagram Sekuen ... 35

1.10.1. Konversi berita ... 35

1.10.2. Catat akses berita ... 36

3.10.3. Rekomendasi akses berita... 36

3.11. Diagram Aktivitas ... 37

3.12. Diagram Komponen ... 38

3.13. Diagram Deployment ... 39

3.14. Perancangan Database ... 40

3.15. Perancangan Antarmuka ... 41

BAB 4 HASIL DAN PEMBAHASAN ... 42

4.1 Implementasi Sistem ... 42

4.1. 1 Spesifikasi Perangkat Keras dan Perangkat Lunak yang Digunakan .. 42

4.2. Tampilan Implementasi Sistem ... 43

3.2.1. Pada daftar item plugin ... 43

3.2.2. Menu untuk pengaturan... 43

3.2.3. Halaman pengaturan batas pengambilan berita rekomendasi ... 44

3.2.4. Halaman pengaturan lama sesi aktif ... 44

4.3. Uji Sistem dan Analisis dengan Satu Pengguna Anonim ... 45

4.3.1. Uji coba akses berita ... 46

4.4 Analisis Penerapan Sparse Matrix ... 50

4.5 Uji Coba dan Analisis dengan Banyak Pengguna Anonim ... 51

(10)

BAB 5 KESIMPULAN DAN SARAN ... 55

5.1 Kesimpulan ... 55

5.2 Saran ... 55

DAFTAR PUSTAKA ... 56

LAMPIRAN I ... 58

LAMPIRAN II ... 65

(11)

DAFTAR TABEL

Tabel 2.1 Aturan untuk inflectional particle 13

Tabel 2.2 Aturan untuk inflectional possesive pronoun 13 Tabel 2.3 Aturan untuk first order derivational prefix 13 Tabel 2.4 Aturan untuk second order derivational prefix 13 Tabel 2.5 Aturan untuk second order derivational prefix (lanjutan) 14

Tabel 2.6 Aturan untuk derivational suffix 14

Tabel 2.7 Penelitian sebelumnya 14

Tabel 3.1 Contoh kumpulan dokumen serta keterangan 18 Tabel 3.2 Hasil dokumen setelah melalui tahapan eliminasi 19

Tabel 3.3 Tf (term frequency) 20

Tabel 3.4df dan idf 20

Tabel 3.5 Sparse matrix yang ditampilkan dalam bentuk tabel 21 Tabel 3.6 Hasil relevansi dokumen menggunakan algoritma csr spmv 22 Tabel 3.7 Hasil pengurutan nilai akhir secara descending. 22 Tabel 3.8 Term frequency untuk proximy processing 23 Tabel 3.9Hasil dari menjalankan algoritma proximty processing 25 Tabel 3.10 Nilai untuk rekomendasi setelah diterapkan proximity processing 25

Tabel 3.11 Frekuensi akses term terhadap waktu 27

Tabel 3.12 Penambahan nilai dari penerapan bayesian framework for user interest 28

Tabel 3.13 Hasil rekomendasi 28

Tabel 3.14 Mendeskripsikan secara singkat aktor dalam sistem 29

Tabel 3.15 Mendeskripsikan setiap use case 29

Tabel 3.16 Skenario konversi berita 30

Tabel 3.17 Skenario stemming 31

Tabel 3.18 Skenario stopword removal 31

Tabel 3.19 Skenario ambil kata dan angka 31

Tabel 3.20 Skenario catat akses berita 32

Tabel 3.21 Skenario rekomendasi akses berita 32

(12)

Tabel 4.2 Nilai yang didapatkan masing – masing dokumen 48

Tabel 4.3 Nilai masing – masing dokumen setelah 49

(13)

DAFTAR GAMBAR

Gambar 2.1 contoh sparse matrix 8

Gambar 2.2 Contoh hasil format kompresi csrdari sparse matrix gambar 2.1 8 Gambar 2.3 Algoritma CSR SpMV (goharian, et al. 2001). 9

Gambar 2.4 Algoritma untuk proximity processing 10

Gambar 2.5 Flowchart algoritma porter (Budhi, 2006) 12

Gambar 3.1 Alur tahapan eliminasi 17

Gambar 3.2 Alur tahapan csr spmv 19

Gambar 3.3 Format csr dari sparse matrix tabel 3.5 21

Gambar 3.4 Format vektor query 21

Gambar 3.5 Alur tahapan proximity processing 23

Gambar 3.6 CSR untuk proximity processing 24

Gambar 3.7 Modifikasi query untuk proximity processing 24 Gambar 3.8 Alur tahapan bayesian framework for user interest 26

Gambar 3.9 Diagram arsitektur 29

Gambar 3.10 Diagram use case 33

Gambar 3.11 Diagram kelas 34

Gambar 3.12 Diagram objek 35

Gambar 3.13 Diagram sequence untuk konversi berita 36 Gambar 3.14 Diagram sequence catat akses berita oleh user 36 Gambar 3.15 Diagram sequence memberikan rekomendasi pada saat akses berita 37 Gambar 3.22 Diagram aktivitas yang menggambarkan kerja sistem 38

Gambar 3.23 Diagram komponen 39

Gambar 3.24 Diagram deployment 39

Gambar 3.25 Perancangan database untuk sistem rekomendasi 40 Gambar 3.26 Prancangan database untuk sistem rekomendasi (lanjutan) 41

Gambar 3.30 Rancangan halaman untuk rekomendasi 41

Gambar 4.1 Plugin setelah dilakukan instalasi 43

(14)

Gambar 4.4 Halaman bagian pengaturan lama sesi aktif untuk pengguna anonim 44 Gambar 4.5 Bagian pengaturan untuk menajemen stopword 45

Gambar 4.6 Halaman untuk pengaturan widget 45

Gambar 4.7 Hasil rekomendasi pada halaman web untuk akses berita 50

(15)

ABSTRAK

Tautan berita online disebar melalui social media oleh pihak portal berita supaya masyarakat tertarik untuk membaca berita ke portal berita mereka. Supaya user yang sudah masuk ke dalam sebuah portal berita, terus membaca berita lain karena menemukan ada berita yang berkaitan dan disukai pada daftar rekomendasi berita personal. Namun, saat ini rekomendasi secara personal bisa diberikan jika sudah memiliki banyak riwayat penjelajahan dan harus dipastikan user sudah login ke portal berita tersebut. Hal ini akan menjadi masalah jika yang membaca berita adalah pengguna anonim dan tidak memiliki riwayat penjelajahan yang banyak, sehingga akan menyulitkan bagi pemilik portal berita untuk menambah jumlah pembaca baru di portal berita mereka, jika pelayanan yang ingin diberikan adalah berupa rekomendasi berita secara personal. Maka dari itu, dibutuhkan sistem rekomendasi secara personal untuk pengguna anonimyang baru sekali atau beberapa kali mengakses berita dan bisa diberikan rekomendasi secara personal dengan menerapkan metode yang memanfaatkan sparse matrix yaitu CSR Sparse Matrix Vector Multiplication dan proximity processing. Bayesian framework for user interest yang merupakan metode untuk sistem rekomendasi personal akan digunakan juga, namun dengan memodifikasi penerapannya yaitu pada term. Penelitian ini menunjukkan bahwa walaupun riwayat penjelajahan sedikit, rekomendasi berita secara personal tetap bisa diberikan kepada pembaca berita.

(16)

SPARSE MATRIX APPLICATION IN PERSONAL NEWS RECOMMENDATION FOR ANONYMOUS USER

ABSTRACT

Online news links are being spread through the social media by news agencies in order to encourage people to read news from their site. After users have logged in to their site, users will keep on reading news that is relevant to their personalized news recommendation. But, nowadays personalized recommendation could be provided to users only if the site has recorded much of users browsing history and it‟s mandatory that users have to log in to the site. This could be problematic if the news readers are

anonymous users and the site hasn‟t record enough browsing history from those users.

It would be difficult for news agencies to increase their daily readers to their site if

they‟re going to compete with other agencies in the aspect of providing good personalized recommendation. Therefore, personalized recommender system is necessary for anonymous users who „ve only visited the news site occasionally, so that the site could recommend the news they‟re likely to read by implementing CSR Sparse Matrix Vector Multiplication and proximity processing as sparse matrix applied method. Bayesian framework for user interest will also be implemented with

the modification in its term. This research will prove that even though news site hasn‟t

recorded enough browsing history, personalized news recommendation could still be provided to the readers.

(17)

1.1. Latar Belakang

Perkembangan internet mendorong tumbuhnya media pemberitaan online, sehingga menjadikan media online (portal berita) tidak lagi hanya menjadi media sekunder tetapi juga media utama untuk menyampaikan informasi atau berita dari kebanyakan instansi, karena berita sudah menjadi kebutuhan bagi pengguna internet untuk mengetahui kabar terkini dan teraktual (Wardhana, 2012). Tantangan penggunaan media online adalah memberikan layanan yang terbaik, salah satunya yaitu membantu pengguna internet yang selanjutnya disebut user menemukan berita yang mereka sukai. Untuk menyelesaikan masalah tersebut sudah ada penelitian sebelumnya dengan cara user diberikan rekomendasi untuk membantu menemukan berita yang disukai dengan mengakses riwayat penjelajahan dan user profile lalu menggunakan

information filtering serta information collaboration untuk diimplementasikan pada

google news (Liu, et al. 2010). Dalam penelitian tersebut rekomendasi berita secara personal hanya bisa diberikan kepada member user dan memiliki riwayat penjelajahan yang (lebih dari 1 bulan) di google news. Sedangkan untuk user yang baru pertama kali atau beberapa kali mengakses berita di portal tersebut tidak bisa diberikan rekomendasi secara personal dan hanya diberikan rekomendasi dari

information collaboration yang artinya rekomendasi berita diberikan berdasarkan berita – berita yang disukai oleh member user lain. Hal ini menjadi masalah bagi pemilik portal berita yang ingin menambah jumlah pembaca baru di portal berita

(18)

selanjutnya disebut pengguna anonim (pengguna anonim) lebih cenderung membuka

link berita dari yang didapatkan dari orang lain atau dari media lain, hal ini disebabkan karena portal berita online sudah banyak menggunakan social media seperti Twitter,

Facebook dan lainnya untuk menyampaikan berita singkat dan link untuk menuju ke halaman portal berita online (Rafita, 2013).

Supaya pengguna anonim yang sudah mengakses link tersebut tertarik untuk tetap membaca berita lainnya yang mungkin akan dia sukai pada suatu portal berita, maka dari itu penulis mengambil judul “PENERAPAN SPARSE MATRIX PADA

REKOMENDASI BERITA PERSONAL UNTUK PENGGUNA ANONIM”. Tujuan

utama dari sistem rekomendasi adalah untuk memberikan rekomendasi terhadap apa yang tersedia pada sistem dan apa yang diinginkan oleh user, karena dalam penelitian ini fokusnya pada pengguna anonim yang notabene tidak memiliki user profile dan riwayat akses berita yang banyak maka akan mengalami masalah data, menerapkan

sistem rekomendasi content based yang akan mencari kesamaan secara detail pada setiap dokumen bisa dijadikan solusi untuk memberikan rekomendasi secara personal (Lops, 2011). Sparse matrix vector multiplication merupakan metode yang mampu mencari relevansi atau kesamaan dokumen terhadap query (Goharian, et al. 2001). Dalam penelitian tersebut dapat dibuktikan bahwa sparse matrix vector multiplication

mampu digunakan untuk mendapatkan hasil relevansi yang diberikan secara ranking

dengan konsep content based, hal ini yang menyebabkan penulis memilih sparse matrix vector multiplication supaya hasil penelitian penulis dapat dimanfaatkan dengan baik oleh pemilik portal berita online.

1.2. Rumusan Masalah

Bagaimana memberikan rekomendasi berita secara personal untuk pengguna anonim.

1.3. Tujuan Penelitian

(19)

1.4. Batasan Masalah

Batasan masalah dalam penelitian ini adalah :

1. Menggunakan berita Berbahasa Indonesia

2. Menggunakan PHP dan penerapannya pada plugin WordPress 3. Database menggunakan MySQL

1.5. Manfaat Penelitian

Manfaat penelitian yang bisa didapatkan dari penelitian ini yaitu :

1. Bisa mengundang ketertarikan pembaca baru pada portal berita online, untuk membaca berita lainnya.

2. Dari sudut pandang pemilik portal berita online bisa meningkatkan kunjungan pembaca berita pada portal berita online mereka.

1.6. Metodelogi Penelitian

Untuk penelitian ini, penulis melakukan beberapa metode untuk mendapatkan data untuk mendukung dalam penyelesaian penelitian. Metode yang dilakukan tersebut antara lain :

1. Studi Literatur

Studi literatur atau juga disebut dengan studi pustaka yaitu mengumpulkan bahan

– bahan referensi baik dari artikel, makalah, paper, jurnal maupun dari media internet.

2. Analisis

Analisis yang dilakukan adalah sebagai berikut :

- Menganalisis tahapan untuk memberikan rekomendasi secara personal beserta komponen – komponen penyusunnya.

- Menganalisis penerapan sparse matrix vector multiplication dalam

(20)

- Menganalisis sistem rekomendasi personal yang menggunakan bayesian

framework for user interest supaya bisa dikombinasikan dengan content based recommendation system.

3. Perancangan

Perancangan yang dilakukan untuk menghasilkan rancangan arsitektur, alur data dan perancangan antarmuka pemakai untuk menerapkan sistem rekomendasi. 4. Pengkodean

Tahap penkodean yaitu menerapkan hasil rancangan ke dalam bahasa pemrograman PHP dan dikombinasikan dengan framework pada WordPress untuk membuat plugin.

5. Pengujian

Pada pengujian akan dilakukan pengujian program untuk menyesuaikan dengan rancangan yang telah dibuat, sehingga bisa mencapai solusi yang didapatkan.

6. Penyusuan Laporan

Pada tahap ini akan dilakukan penyusunan laporan hasil analisis dan implementasi.

1.7. Sistematika Penulisan

Sistematika penulisan skripsi ini akan dibagi menjadi 5 bab yaitu : Bab 1 Pendahuluan

Bab 1 mencakup konsep dasar untuk penyusuan skripsi. Bab 2 Landasan Teori

Pada bab 2 akan dibahas beberapa teori supaya mendukung pembahasan pada bab selanjutnya.

Bab 3 Analisis dan Perancangan

Pada bab 3 akan dibahas tentang analisis dan perancangan perangkat lunak yang akan dibuat, sehingga bisa tergambar secara keseluruhan tentang apa saja yang akan dilakukan oleh sistem nantinya.

Bab 4 Hasil dan Pembahasan

(21)

WordPress lalu dilakukan uji coba untuk menguji kesesuaian program dengan desain yang telah dibuat pada bab sebelumnya.

Bab 5 Kesimpulan dan Saran

(22)

2.1. Rekomendasi Berita

Portal berita online saat ini menjadi popular yang bisa menyediakan berita yang dapat diakses melalui internet, tantagannya adalah membantu user menemukan berita yang disukai secara personal (Liu, et al. 2010). Rekomendasi berita menjadi solusi dari tatangan tersebut, karena bisa memberikan bantuan kepada user untuk menemukan lebih banyak berita yang mereka inginkan.

Salah satu rekomendasi berita telah dilakukan oleh peneliti Google untuk diterapkan pada google news yang memberikan rekomendasi berita secara personal kepada user yang sudah login ke dalam sistem google news. Sehingga google news

bisa mengambil jejak penjelajahan yang lebih banyak untuk bisa memberikan rekomendasi yang lebih tepat kepada user.

2.2. Pengguna Anonim

Pengguna anonim merupakan pengakses suatu situs atau service yang tidak membutuhkan untuk mengisi username dan password dalam mengakses dan tidak tervalidasi (Janssen, 2014). Tipe user ini belum menetap untuk akses disuatu situs. Karena pengguna anonim tidak memiliki identitas yang spesifik dan bersifat unik yang bisa dicatat secara permanen, sehingga mengalami kesulitas dari sistem untuk mencatat setiap jejak penjelajahan berita dari pengguna anonim. Yang bisa dicatat

nantinya hanya selama cookie pada browsernya tidak terhapus dan belum expired.

(23)

2.3. Content Based Recommendation

Content based recommendation merupakan sistem rekomendasi yang diberikan kepada user dengan cara menganalisa sekumpulan dokumen dan dibandingkan dengan apa yang telah diakses sebelumnya atau user profile dari masing – masing user. Salah satu metode yang bisa digunakan untuk content based recommendation adalah model relevansi yang menggunakan vector space model dengan basis nilai TF-IDF (Lops, 2011). Metode vector space model yang penulis gunakan adalah sparse matrix vector

multiplication yang akan penulis bahas pada bagian 2.7.

2.4. Sparse Matrix

Sparse matrix adalah sebuah matriks yang didalamnya didominasi oleh nilai 0. Secara lebih jelas, jika jumlah nilai non-zero lebih sedikit dari jumlah nilai 0, maka itu disebut sparse matrix, akan tetapi jika nilai 0 lebih sedikit dari jumlah nilai non-zero, maka itu disebut dense martix (Stoer, et al. 2002).

Menurut Bank (2001) penyimpanan data pada sparse matrix sama seperti penyimpanan data matriks pada umumnya. Setiap item di dalam sparse matrix akan diakses melalui Ai,j, I = menyatakan baris dan j = menyatakan kolom. Unutk efisiensi dalam penyimpanan, ada 5 jenis format kompresi dalam sparse matrix yaitu COO (coordinate storage), CSR (Compressed Sparse Row), CCS (Compressed Column Storage ), JDS (Jagged Diagonal Storage) dan TJDS (Transposed Jagged Diagonal

Storage) (Shahnaz, et al. 2006).

Dalam penelitian ini, penulis menggunakan format kompresi CSR yang akan menempatkan nilai non-zero dalam 1 baris vector. Pada CSRterdapat 3 vektor yaitu

val, col_ind, row_ptr. Val merupakan vektor untuk menyimpan nilai non-zero dari

sparse matrix dengan proses pengambilannya dimulai dari kiri atas lalu kekanan sampai ke baris paling bawah dan akan disimpan dalam 1 baris. Col_ind merupakah vektor yang menyimpan kolom pada sparse matrix dari setiap item val dan disimpan dalam 1 baris. Row_ptr merupakan vektor yang menyimpan indeks baris dengan cara

(24)

al. 2001). Diberikan contoh matriks pada gambar 2.1 yang selanjutnya akan dibentuk dalam format CSR yang ditunjukkan pada gambar 2.2.

1 0 2 0

0 0 0 1

1 0 1 0

Gambar 2.1 Contoh sparse matrix

Gambar 2.2 Contoh hasil format kompresi CSRdari sparse matrix gambar 2.1

2.5. Information Filtering

Information filtering (IF) adalah penyaringan informasi berdasarkan user profile yang dibentuk dengan menanyakan kepada user atau dengan memonitor perilaku user

terhapat sistem (Smirnov, et al. 2008). Dalam penelitian penulis metode untuk

Information filtering yang akan digunakan adalah bayesian framework for user

interest prediction dan lebih spesifik pada rekomendas berita personal yang merupakan pengembangan dari rumus Naïve Bayes yang akan penulis bahas pada bagian 2.9.

2.6. Information Retrieval

Information retrieval dalam arti sederhana mencari informasi, sedangkan dalam pengertian teknis adalah mendapatkan informasi yang relevan dengan informasi yang

dibutuhkan dari sekumpulan dokumen dengan menggunakan algoritma yang mampu mengetahui ukuran kesamaan antara query dan dokumen (Goker, 2009).

Saat ini, user menginginkan hasil relevansi dalam bentuk ranking, maka dari itu penggunaan information retrieval dengan model vektor dan probabilitas menjadi

pilihan utama (Kneepkens, 2009). Algoritma information retrieval yang akan penulis gunakan dalam penelitian ini adalah CSR SpMV (Sparse Matrix Vector

(25)

Multiplication) dan proximity processing. CSR SpMV penulis jelaskan pada bagian 2.7 dan proximity processing penulis jelaskan pada 2.8.

2.7. CSR SpMV(Sparse Matrix Vector Multiplication)

CSR SpMV merupakan perkalian antara sparse matrix dengan vector pengali dengan melakukan perhitungan y = y + A * x, dimana A menyatakan sparse matrix, y menyatakan baris dan x vector pengali yang sudah banyak diaplikasikan pada bidang ilmu science dan engineering untuk melakukan efisiensi pemrosesan (Liu, et al. 2013). Salah satu penerapan sparse matrix untuk information retrieval, dengan membentuk format kompresi CSR lalu melakukan perkalian dengan query yang dibentuk dalam vector, sehingga untuk setiap baris memiliki nilai penjumlahan dari setiap perkalian (Goharian, et al. 2001).

Gambar 2.3 Algoritma CSR SpMV (Goharian, et al. 2001).

Sebelum dilakukan proses CSR SpMV ada beberapa tahapan proses yang akan dilakukan (Goharian, et al. 2001) yaitu :

1. Mengubah dokumen yang berisi term menjadi term frequency (tf)

2. Mengindefikasi setiap jumlah term yang unik pada masing – masing dokumen untuk mendapatkan document frequency (df)

3. Menghitung nilai inverse document frequency (idf) untuk setiap term dengan rumus log(d/df),d menyatakan jumlah dokumen.

4. Membuat dokumen vektor dan query dengan panjang kolom n, dengan n

menyatakan jumlah term yang unik yang tersedia secara kesuluruhan.

for(count = 0; count < D; count++) temp = 0;

for(row_ind=row_vector[count]; row_ind <= (row_vector[count+1] - 1); row_ind++) col_ind = col_vector[row_ind];

temp = temp + non_zero_vector[row_ind] * Q[col_ind]; end for

(26)

5. Membentuk sparse matrix dengan cara memasukkan term sesuai kolom setiap baris matrix dengan masing – masing dokumen

6. Membuat vector untuk query dengan mengikuti kolom dari 7. Lakukan kompresi sparse matrix ke dalam format CSR.

8. Lakukan algoritma CSR SpMV sesuai algoritma pada gambar 2.3.

2.8. Proximity Processing

Proximity processing yang merupakan pengembangan dari CSR SpMV. Metode

proximity processing dikembangkan oleh Goharian dkk pada tahun 2001 dalam

jurnalnya “On the Enhancements of a Sparse Matrix Information Retrieval Approach”. Tujuan utama dari proximity processing dalam penelitian ini untuk memberikan hasil rekomendasi yang akurat dan term yang sesuai urutan antara query

dan dokumen (Goharian, et al. 2001).

Gambar 2.4 Algoritma untuk proximity processing

Untuk melakukan proximity processing yang merupakan lanjutan setelah melakukan CSR SpMV yang telah penulis jelaskan pada bagian 2.7 diharuskan untuk memodifikasi format CSR dengan menambahkan vektor yang kelima dan keenam, yaitu offset_vector dan offset_marker. Tujuan dari penambahan tersebut adalah untuk mencatat posisi setiap dari setiap term pada masing – masing dokumen (Goharian, et al 2001).

FOR each document ranked with the highest similary score in the query processing using sparse matrix vector multiplication DO

Find from row_vector the element (term id) and the number of elements in col_vector belonging to that document and the start position in col_vector IF the element (term id) mathes to any query term id Then DO

FOR each found position in col_vector DO

Find the corresponding element in offset_marker Find the corresponding elements in offset_vector END

Build pairs (in the order of query terms) between the elements found in offset_vector across each col_vector

FOR each pair DO

Compute the difference between the elements of the pair IF the difference >= 1 and <= query window size

Then mark the pair for selection END

(27)

2.9. Rekomendasi Berita Personal

Rekomendasi berita personal merupakan bagian dari sistem rekomendasi yang memberikan rekomendasi berita yang berbeda untuk setiap pembaca berita, sesuai dengan kesukaan berita yang pernah dibaca (Liu, et al. 2010).

Rekomendasi berita personal dikembangkan dari Naïve Bayes untuk memprediksi

news interest dari setiap pembaca berita. Dalam penelitian ini penulis menggunakan

bayesian framework for user interest yang telah dikembangkan dalam penelitian Liu dkk pada tahun 2010.

� = � ) =

0 =

� � �( = �= � ) �)

� (2.1)

Keterangan

0 � =

� = probabilitas akses kategori pada waktu terakhir terhadap total click di semua kategori

� = � ) = probabilitas akses kategori i dalam pada waktu t.

sebelum dihitung akan dijabarkan lebih dahulu,

maka = � � = �) ( � = �)

( � )

� = = probabilitas akses kategori padat waktu t terhadap total click disemua kategori pada waktu t

� = total click pada waktu t

2.10. Stopword Removal

Stopword adalah kata – kata yang tidak memberikan pengertian yang signifikan terhadap kalimat atau pernyataan yang disampaikan (Dragut, et al 2009). Kata – kata

(28)

2.11. Stemming

Stemming merupakan proses transformasi dari kata ke kata dasarnya (root word)

menggunakan aturan – aturan tertentu. Contohnya seperti kata bersama, kebersamaan, menyamai memiliki satu kata dasar (root word) yaitu “sama”. Proses stemming dalam Bahasa Indonesia memiliki perbedaan dengan stemming yang ada dalam Bahasa Inggris. Dalam Bahasa Inggris, proses stemming yang diperlukan hanya proses menghilangkan sufiks, sedangkan untuk Bahasa Indonesia selain sufiks, prefiks dan konfiks juga dihilangkan (Agusta, 2009). Dalam penelitian penulis menggunakan algoritma porter. Langkah – langkah algoritma porter (Agusta, 2009) adalah sebagai berikut :

1. Hapus Particle,

2. Hapus prosessive Pronoun

3. Hapus awalan pertama. Jika tidak ditemukan lanjutkan ke langkah 4a, jika ada cari maka lanjutkan ke langkah 4b

4. a. Hapus awalan kedua, lanjutkan ke langkah 5a.

b. Hapus akhiran, jika tidak ditemukan amaka kata tersebut diasumsikan sebagai

root word. Jika ditemukan maka lanjutkan ke langkah 5b

5. a. Hapus akhiran. Kemudian akata akhir diasumsikan sebagai root word

b. Hapus awalan kedua. Kemudian kata akhir diasumsikan sebagai root word

kataç Kata yang akan di-stem

kataçRemove partikel(kata)

kataç Remove kata ganti milik/ possesive pronouns(kata)

If kata=temp_kata kataçRemove 2nd_order_prefix(kata)

kataçRemove suffix(kata) kataçRemove suffix(kata)

If kata<>temp_kata kataçRemove 2nd_order_prefix(kata)

(29)

Ada 5 aturan yang akan penulis jabarkan dalam bentuk tabel, dimulai dari tabel 2.13 sampai tabel 2.17 (Agusta, 2009).

Tabel 2.1 Aturan untuk inflectional particle

Akhiran Replacement Measure

Condition

Tabel 2.2 Aturan untuk inflectional possesive pronoun

Akhiran Replacement Measure

Condition

Tabel 2.3 Aturan untuk first order derivational prefix

Awalan Replacement Measure

Condition

Tabel 2.4 Aturan untuk second order derivational prefix

Awalan Replacement Measure

(30)

Tabel 2.5 Aturan untuk second order derivational prefix (lanjutan)

Awalan Replacement Measure

Condition

Tabel 2.6 Aturan untuk derivational suffix

Akhi-2.12. Penelitian Sebelumnya

Penelitian yang pernah dilakukan terkait dengan sistem rekomendasi personal adalah dengan memanfaat collaborative filtering (Das, et al. 2007) merekomendasikan secara personal dengan parameter lokasi sebagai panduan utama, berita akan

direkomendasikan kepada user berdasarkan berita yang disukai oleh user lain dilokasi yang sama. Selain penelitian tersebut, ada juga menggunakan News Interest dari Click Behavior (Liu, et al. 2010) memberikan rekomendasi berita berdasarkan kategori yang pernah dikunjungi oleh user.

Tabel 2.7Penelitian sebelumnya

Penulis Judul Penelitian Teknik Kelemahan

(31)

Tabel 2.7Penelitian sebelumnya (lanjutan)

Penulis Judul Penelitian Teknik Kelemahan

Liu et al. 2010

Personalized News Recommendation

Based On Click Behavior

Menggunakan bayesian framework for user

interest untuk memberikan prediksi

rekomendasi berita berdasarkan riwayat penjelajahan dalam 1

kategori

Membutuhkan banyak riwayat

penjelajahan berita, karena

memberikan rekomendasi berdasarkan kategori, yang

(32)

Dalam bab ini penulis akan membahas tentang analisis data, tahapan eliminasi, CSR SpMV, proximity processing, bayesian framework for user interest dan perancangan sistem untuk memudahkan pembaca dalam memahami cara kerja sistem rekomendasi secara bertahap.

3.1.Analisis Data

Dalam penelitian ini ada sekumpulan data yang digunakan untuk mencapai tujuan dari penelitian. Hasil analisis dan keterangan data adalah sebagai berikut :

- Menggunakan 265 judul serta isi berita yang diambil dari kompas.com, liputan6.com, merdeka.com, beritateknologi.com dan okezone.com mengandung karakter ASCII (American Standard Code for Information Interchange).

- Judul berita diambil yang terbit pada bulan april, mei dan agustus. - Dokumen (bagian dari proses dalam rekomendasi) adalah judul berita.

- Karakter huruf dalam ASCII (65 – 90 dan 97 - 122), angka dalam ASCII (48 -

57) dan spasi dalam ASCII (32) hanya yang akan diambil dari dokumen, selain ketiga jenis karakter tersebut akan dieliminasi dari proses rekomendasi.

- Riwayat click dari user yang mengakses url berita supaya bisa diberikan rekomendasi secara tepat pada user.

- Stopword yang merupakan daftar kata yang akan dihilangkan dari berita, karena jika kata – kata yang ada di dalam stopword tidak dihilangkan, maka akan memberikan hasil yang kurang efektif untuk rekomendasi (Tala, 2003).

(33)

3.2. Tahapan Eliminasi

Untuk menghapus kata dan karakter yang tidak dibutuhkan akan dilakukan beberapa tahapan berikut ini :

1. Melakukan eliminasi dengan mengganti karakter selain dari karakter a-z, A – Z, 0 – 9 dan spasi akan diganti dengan karakter spasi menggunakan regular

expression, yaitu :

- [^a-zA-Z0-9\s] = yang karakter a-z, A-Z, 0-9 dan spasi digantikan jadi spasi - [/\s+/] = melakukan penghapusan jika ada spasi yang lebih banyak dari 1

diantara kedua kata

2. Menjadikan semua karakter huruf menjadi huruf kecil.

3. Melakukan stopword removal berdasarkan daftar kata yang tersedia pada lampiran 2 akan dihapus dari data yang akan diproses untuk rekomendasi.

4. Melakukan stemming, untuk mendapatkan setiap kata dasar dari setiap masing – masing kata.

5. Melakukan stopword removal sekali lagi setelah proses stemming dilakukan, hal ini dilakukan supaya jika ada kata yang belum berhasil dihapus dikarenakan kata tersebut tidak tersedia dalam daftar stopword, maka setelah dilakukan stemming

dan mendapatkan kata dasarnya. Jika kata dasar tersebut tersedia dalam daftar

stopword maka akan dihapus.

Dokumen

Ambil hanya karakter a-z A-Z 0-9 dan spasi Menjadikan huruf kecil

Hapus stopword

Lakukan stemming

Hapus stopword

Kumpulan term setiap dokumen

(34)

Untuk memperjelas penjelasan penulis tentang tahapan – tahapan dalam penelitian serta manfaat dari setiap tahapan, maka penulis menjelaskan melalui contoh.

Ada 6 dokumen yang merupakan judul berita dengan diberikan identias D0, D1, D2, D3, Q untuk query dan N berita pernah akses. Karena contoh ini akan berlanjut sampai kepada sistem rekomendasi personal maka contoh ini penulis buat secara lengkap, walaupun pada bagian 3.2 tidak diperlukan semuanya namun pada bagian 3.3 sampai 3.5 akan dibutuhkan.

Tabel 3.1 Contoh kumpulan dokumen serta keterangan

Urutan Isi Ket

D0 Seberapa bagus system yang menggunakan System Recommendation dengan tujuan Recommendation

akan dinilai

D1 System untuk recommendation saat ini adalah system recommendation

akan dinilai

D2 News system recommendation merupakan news system untuk tujuan recommendation

akan dinilai

D3 news retrieval merupakan hal sederhana akan dinilai Q

N1

system recommendation yang lebih baik tidak dinilai, karena sedang diakses N2 news recommendation saat ini ! tidak dinilai,

karena pernah akses

Dari tabel 3.1 ada dokumen yang akan dinilai (D0,D1,D2,D3) untuk proses rekomendasi dan ada yang tidak diproses, hal ini karena untuk yang sedang diakses (Q) akan dijadikan query dan yang pernah diakses (N1,N2) akan dijadikan pertimbangan dalam memberikan nilai pada bagian 3.5 (bayesian framework for user

interest). Penggunaan query akan digunakan pada Algoritma CSR SpMV dan juga Algoritma proximty processing dan berita yang pernah diakses akan menggunakan

(35)

Tabel 3.2 Hasil dokumen setelah melalui tahapan eliminasi

Urutan Isi

D0 system system recommendation recommendation D1 system recommendation system recommendation D2 news system recommendation news system

recommendation D3 news retrieval

Q N1

system recommendation

N2 news recommendation

3.3. CSR SpMV

CSR SpMV digunakan untuk mencari tingkat relevansi dokumen. Sesuai algoritma CSR SpMV yang telah dibahas pada bagian 2.7 tahapan – tahapan yang akan dilalui ditunjukkan pada gambar 3.2.

Kumpulan term setiap dokumen

Membuat tabel Tf (Term Frequency)

Membuat tabel Df (Document Frequency) dan Idf

(Inverse document Frequency)

Membuat Sparse Matrix

Membentuk Format CSR

Melakukan CSR Sparse Matrix Vector Multiplication

Hasil Relevansi Dari CSR SpMV

Membuat query

Gambar 3.2 Alur tahapan CSR SpMV

(36)

dibuat tabel df untuk menampilkan frekuensi dokumen yang memiliki term tertentu. Untuk lebih lengkapnya akan penulis jabarkan berikut ini :

tf = frekuensi term pada masing – masing dalam sebuah dokumen

df = frekuensi dukumen yang memiliki suatu term

d = Jumlah dokumen yang yang dijadikan pembanding, dalam hal ini = 4

idf = log( )

Tabel 3.3 Tf (term frequency)

Tabel 3.4 df dan idf

Term_id Term Df Idf

0 system 3 0.12

1 recommendation 3 0.12

2 news 2 0.30

3 retrieval 1 0.60

Setelah tabel tf, df dan idf dibentuk selanjutnya akan diimplementasi ke dalam

sparse matrix, kolom merupakan term dan baris merupakan nomor dokumen yang dimulai dengan angka 0. Nilai yang ada di dalam sparse matrix merupakah nilai dari hasil tf*idf untuk setiap term pada masing – masing dokumen.

DOCS Tf

D0

system 2

recommendation 2 D1

system 2

recommendation 2 D2

news 2

system 2

recommendation 2 D3

news 1

(37)

Tabel 3.5 Sparse matrix yang ditampilkan dalam bentuk tabel

term

doc

System Recommendation News Retrieval

0 0.24 0.24 0 0

1 0.24 0.24 0 0

2 0.24 0.24 0.60 0

3 0 0 0.30 0.60

Dari tabel 3.5 yang merupakan sparse matrix akan dibentuk dalam format kompresi CSR yang akan ditampilkan pada gambar 3.3 .

Gambar 3.3 Format CSR dari sparse matrix tabel 3.5

Untuk query, dibentuk berdasarkan kolom term yang tersedia pada tabel 3.5.

Query yang dimasukkan dalam kasus ini adalah “system recommendation”. Untuk

term “system” berada pada kolom ke- 0 dan untuk term “recommendation” berada pada kolom ke-1. Sedangkan untuk nilai diambil dari idf dari masing – masing term. Term “system” bernilai 0.12 dan term“recommendation” bernilai 0.30. Jika dibentuk dalam bentuk vector, maka hasilnya seperti pada gambar 2.2.

Gambar 3.4 Formatvektorquery

Vektor query yang terdapat pada gambar 3.4 akan menjadi vektor pengali terhadap nilai sparse matrix dengan kolom yang sama, kolom disini yang berarti term

yang sama antara pada sparse matrix dan pada vektor query, hal ini yang menjadi kunci dari hubungan CSR SpMV dengan information retrieval. Yang artinya hasil dari masing – masing dokumen akan memberikan hasil relevansi berupa nilai jika pada

suatu kolom antara sparse matrix dan vektor query keduanya tidak bernilai 0. val_vector = < 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.6, 0.3, 0.6 > col_vector = < 0, 1, 0, 1, 0, 1, 2, 2, 3 >

row_ptr_vector = < 0, 2, 4, 7, 9 >

(38)

Berdasarkan algoritma pada gambar 2.3, akan dijabarkan hasil perhitungan untuk masing – masing dokumen (D0 – D3) pada tabel 3.6 untuk memaparkan secara jelas tentang jalannya algoritma.

Tabel 3.6 Hasil relevansi dokumen menggunakan algoritma CSR SpMV

Dokumen Iterasi Nilai Nilai Akhir

D0 0 0 + (0.24 * 0.12) = 0.0288 0.0576

1 0.0288 + (0.24 * 0.12) = 0.0576

D1 0 0 + (0.24 * 0.12) = 0.0288 0.0576

1 0.0288 + (0.24 * 0.12) = 0.0576

D2 0 0+(0.24 * 0.12) = 0.0288 0.0576

1 0.0288 + (0.24 * 0.12) = 0.0576

D3 0 0 + (0.30 * 0.00) = 0.00 0.00

1 0.00 + (0.60 * 0.00) = 0.00

Nilai relevansi dokumen dari tabel 3.6 diurutkan secara descending berdasarkan nilai akhir yang didapatkan masing – masing dokumen, untuk mengetahui dokumen yang paling relevan diantara keempat dokumen. Tingkat relevansi ditunjukkan dari nilai akhir masing – masing dokumen setelah dijalankan algoritma dari Gambar 2.3.

Tabel 3.7 Hasil pengurutan nilai akhir secara descending.

Dokumen Nilai Akhir

D0 0.0576

D1 0.0576

D2 0.0576

D3 0.00

Dari hasil relevansi yang ditunjukkan pada Tabel 3.7, menunjukkan bahwa dokumen D0, D1 dan D2 menunjukkan nilai relevansi yang sama, padahal jika kita lihat pada Tabel 3.2 yang memaparkan daftar dokumen, seharusnya dokumen D1 dan D2 memberikan nilai relevansi yang lebih tinggi dari pada D0, karena query yang

dimasukkan adalah “system recommendation” dan yang paling relevan jika kita

melihat secara manual pada dokumen D1 dan D2 yang memiliki kalimat “system

(39)

3.4.Proximity Processing

Seperti yang telah dijelaskan pada bagian 2.8 tentang proses dalam menjalankan

proximity processing yaitu dengan menambahkan 2 vektor tambahan yaitu

offset_vector dan offset_marker pada CSR. Tahapan dari proximity processing

ditunjukkan pada gambar 3.5.

Membuat tabel Tf (Term Frequency) + kolom Offset

Membuat tabel Df (Document Frequency) dan Idf (Inverse document Frequency)

Membuat Sparse Matrix

Membentuk Format CSR + Offset_vector + Offset_marker

Membentuk query , v1 dan v2

Proximity Processing

Hasil Relvenasi dari Proximity Processing + hasil dari CSR SpMV untuk setiap dokumen

Kumpulan term setiap dokumen

Gambar 3.5 Alur tahapan proximity processing

Untuk memperjelas penjelasan tentang metode proximity processing, penulis akan menjabarkan dalam bentuk contoh yang merupakan sambungan dari contoh pada bagian 3.3 yang memiliki masalah dalam keakuratan menampilkan hasil. Kumpulan dokumen yang ada pada tabel 3.8 akan dibuat kembali tabel frekuensi dengan dilengkapi offset.Tujuan utama melampirkan offset, untuk mengetahui posisi dari term

pada setiap dokumen.

Tabel 3.8Term frequency untuk proximy processing

Dokumen Term Tf Offset

D0 system 2 0,1

recommendation 2 2,3

D1 system 2 0,2

recommendation 2 1,3

D2

news 2 0,3

system 2 1,2

(40)

Tabel 3.8 Term frequency untuk proximity processing (lanjutan)

Dokumen Term Tf Offset

D3 news 1 0

retrieval 1 1

Dari tabel 3.8 akan dibentuk sparse matrix yang sama seperti pada tabel 3.5, khusus unutk proximity processing yang akan berbeda hanya pada saat dibentuk format CSR (Compressed Sparse Row). Pada gambar 3.6 ditunjukkan format CSR

yang dilengkapi dengan offset (posisi term dalam dokumen).

Gambar 3.6 CSR untuk proximity processing

Query untuk proximity processing yang berbeda dengan query pada gambar 3.4 yang ditambahkan 1 baris query lagi untuk menyimpan posisi dari term query pada kolom sparse matrix.

Gambar 3.7 Modifikasi query untuk proximity processing

Berdasarkan gambar 3.7, v1 menyatakan query seperti yang telah dijelaskan pada bagian 3.4, sedangkan v2 merupakan posisi kata pada query terhadap kolom

term. Karena dalam contoh ini menggunakan querysystem recommendation”, kata

system” berada pada kolom 0 dan posisi urutan dari query juga berada pada posisi 0, untuk “recommendation” berada pada kolom 1 dan posisi urutan dari query juga berada pada poisisi 1. Mengikuti hasil dari bagian 3.3 selanjutnya untuk mendapatkan

hasil yang akurat maka akan dilakukan algoritma proximity processing yang telah ditunjukkan pada gambar 2.4.

Tujuan utama dari algoritma pada gambar 2.4 untuk mendapatkan posisi term

pada masing – masing dokumen yang didapatkan berdasarkan query, lalu setiap posisi tersebut dihitung jaraknya, jika hasilnya sama dengan 1, maka untuk dokumen akan ditambahkan nilai relevansinya 1 (Goharian, et al. 2001). Untuk lebih jelasnya penulis jabarkan pada tabel 3.9.

Non_zero_vector = <0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.6, 0.3, 0.6> Col_vector = < 0, 1, 0, 1, 0, 1, 2, 2, 3 >

Row_vector = < 0, 2, 4, 7, 9>

Offset_vector = <0, 1, 2, 3, 0, 2, 1, 3, 1, 4, 2, 5, 0, 3, 0, 1> Offter_marker = <0, 2, 4, 6, 8, 10, 12, 14, 15, 16>

(41)

Tabel 3.9 Hasil dari menjalankan algoritma proximty processing toleransi jarak = 1

yang menghasilkan 1 hanya ada 1 dari (1,2)

tolerenasi jarak = 1 yang menghasilkan 1 ada 2 dari (0,1) dan (2,3)

toleransi jarak = 1 yang menhasilkan 1 ada 2 dari (1,2) dan (4,5)

D0 tingkat relevansinya lebih kecil dari pada D1

D1 menjadi lebih tinggi tingkat relevansi dari pada D0

D1 dan D2 menjadi lebih tinggi tingkat relevansi dari pada D0

Setelah proximity processing dijalankan maka setiap dokumen yang memiliki

term seperti yang ada pada query yang jaraknya 1, maka akan memiliki nilai baru pada dokumen tersebut. Tabel 3.10 memperlihatkan hasil nilai sebelumnya yang didapatkan dari CSR SpMV dan nilai sekarang adalah nilai yang ditambahkan berdasarkan hasil dari proximity processing.

Tabel 3.10 Nilai untuk rekomendasi setelah diterapkan proximity processing

Dokumen Nilai Sebelumnya Nilai Sekarang

D0 0.0576 0.0576 + 1 = 1.0576

D1 0.0576 0.0576 + 2 = 2.0576

D2 0.0576 0.0576 + 2 = 2.0576

D3 0.00 0.00

Tabel 3.10 sudah memperlihatkan hasil rekomendasi setelah melewati dua proses, namun hasil yang didapatkan belum memberikan rekomendasi yang secara personal. Tabel 3.2 menunjukkan bahwa ada berita yang pernah diakses dengan term

news recommendation” yang artinya bisa menjadi pertimbangan untuk melakukan rekomendasi supaya lebih personal.

3.5. Bayesian Framework for User Interest

(42)

Kumpulan term setiap dokumen

untuk setiap term hitung nilai dengan

Bayesian Framework for User Interest

Tambahkan nilai untuk term pada masing – masing dokumen

untuk setiap term hitung nilai dengan

Bayesian Framework for User Interest

Menambahkan hasil dari Bayesian Framework for User Interest dengan

hasil dari CSR SpMV dan Proximty Processing

Mengurutkan hasil akhir secara descending

daftar dokumen setelah diurutkan secara

descending

Gambar 3.8 Alur tahapan bayesian framework for user interest

Persamaan yang digunakan untuk bayesian framework for user interest

menggunakan persamaan 3.1, karena untuk kasus penulis, category akan diterjemahkan menjadi term dan untuk click diganti dengan term frequency untuk memberikan penilaian terhadap berita yang tertarik dibaca oleh user. Hal ini penulis lakukan karena konteks sistem rekomendasi penulis menggunakan content based

recommendation yang fokus utama rekomendasi pada detail setiap dokumen yang akan direkomendasikan.

= ) =

0 =

� � ( =�= ) �)

� (3.1)

Keterangan :

0 =

(43)

= ) = probabilitas term terhadap freq pada waktu t.

sebelum dihitung akan dijabarkan lebih dahulu,

maka = = �) ( =�) memilah akses berdasarkan waktu akses, namun karena kasus saat ini hanya memiliki 1 waktu akses maka hanya memiliki 1 tabel akses.

Tabel 3.11 Frekuensi akses term terhadap waktu

Term Waktu

0

news 1

recommendation 1

Dengan menggunakan persamaan 3.1 maka perhitungan untuk masing – masing term adalah sebagai berikut :

1. news

2. recommendation

(44)

Untuk memberikan nilai pada masing dokumen berdasarkan nilai dari perhitungan menggunakan persamaan 3.1 akan ditampilkan pada tabel 3.12.

Tabel 3.12 Penambahan nilai dari penerapan bayesian framework for user interest

Dokumen news recommendation Hasil

D0 0 2x0.5 1.0576 + 1 = 2.0576

D1 0 2x0.5 2.0576 + 1 = 3.0576

D2 2x0.5 2x0.5 2.0576 + 2 = 4.0576

D3 0.5 0 0.00 + 0.5 = 0.5

Tabel 3.12 menujukkan hasil setelah menggunakan CSR SpMV, proximity

processing dan bayesian framework for user interest. Untuk mendapatkan hasil rekomendasi, setiap dokumen akan diurutkan secara descending (dari besar ke terkecil) berdasarkan hasil yang didapatkan masing – masing dokumen. Hasil pengurutan secara descending ditunjukkan pada tabel 3.13.

Tabel 3.13 Hasil rekomendasi

Dokumen Hasil Isi

D2 4.0576 news system recommendation news system recommendation

D1 3.0576 system recommendation system recommendation D0 2.0576 system system recommendation recommendation D3 0.5 news retrieval

3.6. Perancangan General Architecture

General archichecture yang digunakan untuk merepresentasikan komponen – komponen pada sistem (Pressman, 2012), akan menggambarkan komponen penyusun pada sistem rekomendasi yang akan dikembangkan dalam penelitian penulis. Sistem

rekomendasi yang akan dikembangkan untuk rekomendasi pada saat akses 1 berita. Memberikan rekomendasi dengan cara mengambil judul berita yang sedang diakses dan menjadikannya query untuk mencari relevansi menggunakan CSR SpMV dan

(45)

Pengguna

Gambar 3.9 Diagram arsitektur

3.7. Perancangan Use Case

Use case yang bermanfaat untuk mendeskripsikan ringkasan interaksi antara pengguna (aktor) dan sistem (Eriksson, et al. 2000) yang akan penulis jelaskan secara ringkas tentang sistem yang akan dikembangkan.

3.7.1. Definisi Aktor

Untuk mendefinisikan aktor yang akan menggunakan sistem nantinya serta peran dari masing – masing aktor pada bagian – bagian sistem.

Tabel 3.14 Mendeskripsikan secara singkat aktor dalam sistem

No Aktor Deskripsi

1 Admin Orang yang memasukkan berita – berita baru dan mengatur pengaturan rekomendasi berita personal

2 Pembaca berita Orang yang mengakses berita – berita dan yang menjadi target memberikan

rekomendasi

3.7.2. Definisi Use Case

Mendefinisikan setiap use case yang akan digunakan dan menjadi pendukung sistem rekomendasi.

Tabel 3.15 Mendeskripsikan setiap use case

No Use Case Deskripsi

1 Konversi berita Menkonversi berita menjadi total frekuensi setiap term dan dokumen

2 Stemming Menggunakan algoritma porter untuk mencari

kata dasar

3 Stopword removal Menghapus kata – kata yang tidak memberikan arti

(46)

Tabel 3.15 Mendeskripsikan setiap use case (lanjutan)

No Use Case Deskripsi

5 Catat akses berita Mencatat setiap berita yang diakses oleh pembaca berita

6 Rekomendasi Akses berita

Melakukan proses rekomendasi dengan

mempertimbangkan apa yang pernah diakses dan apa yang sedang diakses oleh pembaca berita 7 Manajemen Stopword Untuk menambah jumlah kata yang tidak

penting, supaya hasil rekomendasi lebih bagus

3.7.3. Skenario Use Case

Skenario use case yang digunakan untuk memberikan deskripsi dalam bentuk teks tentang apa yang dikerjakan oleh aktor dan rekasi yang diberikan oleh sistem. Ada 15

use case yang akan dijelaskan dalam bagian skenario use case, yaitu : 1. Konversi berita

Untuk melakukan konversi berita ada 7 tahapan dari skenario normal yang akan terjadi, 1 tahapan dari aktor dan 6 tahapan dari reaksi sistem. Untuk skenario alternatif tidak ada.

Tabel 3.16 Skenario konversi berita

Aksi Aktor Reaksi Sistem

Skenario Normal 1. Menerima judul

2. Memilah perkata

3. Melakukan stopword removal

4. Setiap suku kata dilakukan stemming

5. Melakukan stopword removal sekali lagi 6. Membentuk frekuensi term

7. Menyimpan hasil ke database

2. Stemming

Skenario stemming tidak dibahas sampai bagaimana melakukan stemming karena proses stemming sudah terlihat pada gambar 2.5. Ada 3 tahapan untuk skenario

(47)

Tabel 3.17 Skenario stemming

Aksi Aktor Reaksi Sistem

Skenario Normal 1. Mengirim kalimat

2. Memotong kalimat berdasarkan spasi 3. Mencari kata dasar tiap suku kata

3. Stopword removal

Skenario stopword removal yang berguna untuk menhapus kata – kata yang tidak memberikan arti, ada 3 tahapan dari skenario normal 1 dari aksi aktor dari 2 dari reaksi sistem. Untuk Skenario alternatif tidak ada.

Tabel 3.18 Skenario stopword removal

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Mengirim kalimat

2. Mengambil semua daftar stopword dari database

3. Mengecek untuk setiap suku kata yang ada dalam kalimat, apakah ada di dalam daftar stopword, jika ada maka dihapus

4. Ambil kata dan angka

Skenario pengambilan kata dan angka menggunakan regular expression untuk mendapatkan huruf dan angka saja. Ada 2 tahapan dari skenario ambil kata dan angka yang berasalah dari skenario normal, sedangkan dari skenario alternatif tidak ada.

Tabel 3.19 Skenario ambil kata dan angka

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Mengirim Kalimat

2. Menggunakan Reguler Expression (a-z A-Z 0-9) untuk mengambil hanya huruf dan angka

5. Catat akses berita

(48)

yang berasal dari skenario normal, 1 dari aksi aktor dan 2 dari reaksi sistem. Sedangkan untuk skenario alternatif tidak ada.

Tabel 3.20 Skenario catat akses berita

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Membuka url berita diakses

2. Mengambil identitas berita diakses 3. Mencatat identitas berita ke database

6. Rekomendasi akses berita

Skenario rekomendasi akses berita yang berguna untuk memberikan rekomendasi

dengan cara mengambil judul berita yang sedang diakses dijadikan query dan jika ada berita yang pernah diakses sebelumnya dijadikan pertimbangan pada perhitungan bayesian framework for user interest. Ada 8 tahapan dari skenario normal, 1 dari aktor dari 7 dari reaksi sistem. Sedangkan untuk skenario alternatif tidak ada.

Tabel 3.21 Skenario rekomendasi akses berita

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Menerima url berita diakses

2. Mengambil semua berita yang di post

terakhir tergantung dengan pengaturan batas berita

3. Menggunakan CSR SpMV

menjadikan query judul dari berita yang diakses

4. Mengurutkan secara desending untuk nilai yang didapatkan

5. Menggunakan proximity processing

untuk memberikan nilai yang lebih tinggi terhadap dokumen yang memiliki kecocokan

6. Menggunakan bayesian framework for user interest untuk mencari tahu berita yang disukai oleh user dan

memberikan nilai untuk hasil tersebut 7. Mengurutkan secara descending nilai yang dihasilkan dari ketiga algoritma 8. Menampilkan judul berita dari 5

(49)

3.7.4. Diagram Use Case

Pada tabel 3.14 telah penulis paparkan tentang tipe aktor. Dibagian ini penulis paparkan ulang secara lebih detail secara teknis. Hanya ada 1 jenis aktor :

1. Pengguna Anonim

Pengguna anonim yang merupakan pembaca berita, mengakses halaman berita lalu sistem rekomendasi memberikan rekomendasi ke pembaca berita dengan memasukkan tiga proses di dalamnya yaitu CSR SpMV, proximity processing dan

bayesian framework for user interest. Ketiga proses tersebut akan memberikan nilainya masing – masing terhadap judul berita yang akan direkeomendasikan, 5 tertinggi akan direkomendasikan kepada pembaca berita.

Pada gambar 3.2 ditampilkan secara grafik dalam bentuk use case untuk mendeskripsikan gambaran secara teknis.

Pengguna Anonim

rekomendasi berita

catat berita akses

CSR Sparse Matrix Vector Multiplication

Proximity Processing

Bayesian framework for user interest << include>>

<< include>>

<< include >>

<< include>>

Gambar 3.10 Diagram use case

1.8 Diagram Kelas

Sistem nantinya akan dikembangkan menggunakan object oriented programming. Kelas yang akan digunakan dibagi ke dalam 7 kelas, setiap kelas memiliki fungsi

(50)

1. Class Main

Tugas utama yaitu menggabungkan kelas – kelas dalam menjalankan fungsi – fungsi tertentu seperti newsConversion, logNewsAccess dan newsRecommendation.

2. Class SparseMatrixProximity

Tugas utama yaitu untuk menjalankan proses CSR SpMV dan proximity

processing.

3. Class LogNewsAccess

Tugas utama yaitu melakukan pencatatan pengaksesan berita. 4. Class Parsing

Tugas utama yaitu melakukan eliminasi terhadap karakter – karakter selain dari karakter huruf, angka dan spasi.

5. Class NaïveBayes

Tugas utama yaitu menyimpulkan news interest dari pembaca berita dengan cara mengambil jejak penjelajahan sebelumnya. Jejak penjelajahan yang disimpan hanya berupa ID, sistem mengambil judul berita melalui ID lalu menjadikannya

term dan frekuensi, setelah itu baru dimasukan ke dalam rumus (2.1) .

+newsConversion() +logNewsAccess() +newsRecommendation()

Main

+__construct() +conversionToIR() +makeSparseMatrix() +crsm()

SparseMatrixProximity

+getIdBerita() +save()

LogNewsAccess

+stemming() +stopwordRemoval()

Parsing

+__construct() +newsInterest()

NaiveBayes

(51)

1.9 Diagram Objek

Supaya bisa menjalankan sistem yang dibuat dengan object oriented programming

dibutuhkan objek untuk memanggil kelas. Gambar 3.4 menunjukkan diagram objek yang struktur organisasinya sama seperti diagram kelas pada gambar 3.3 karena sistemnya tidak terlalu besar dan tidak terlalu banyak membutuhkan kombinasi dari kelas.

main : Main

newsRecommendation : SparseMatrixProximity log : LogNewsAccess

newsConversion : SparseMatrixProximity naivebayes : NaiveBayes

parse : Parsing

Gambar 3.12 Diagram objek

1.10 Diagram Sekuen

Untuk menampilkan interaksi dan proses yang dikerjakan dari use case maka perlu digambarkan dalam diagram sekuen. Tidak semua use case akan dibuat masing – masing diagram sekuen, jika sifatnya masuk dalam diagram sekuen yang lain, maka tidak akan dibuat sendiri diagram sekuennya. Yang tidak dibuat diagram sekuen yaitu

stemming, stopword removal, ambil kata dan huruf.

1.10.1.Konversi berita

Tugas dari admin memasukkan judul dan isi berita selanjutnya sistem melakukan konversi dalam bentuk term dan frekuensi untuk disimpan ke database melalui kelas

(52)

Admin main : Main conversion : SparseMatrixProximity

judul dan isi berita

inistilizeConversion() << create >>

<<destroy>> conversionToIR()

Gambar 3.13 Diagram sequence untuk konversi berita

1.10.2.Catat akses berita

Anonyomous atau pembaca berita tanpa login yang mengakses halaman berita sistem akan mencatat ID berita yang diakses oleh pengguna anonim.

Anonymous main : Main lga : logNewsAccess

url

<< create >>

logUrl()

<< destroy >>

Gambar 3.14 Diagram sequence catat akses berita oleh user

3.10.3.Rekomendasi akses berita

Sistem akan memberikan rekomendasi akses berita pada saat pembaca berita sedang mengakses suatu berita dengan menjadikan judul berita sebagai query selanjutnya menjalani tahap – tahapan proses rekomendasi. Tahap pertama menjalani proses CSR SpMV, tahap kedua menjalani proximity processing dan terakhir menjalani proses

Gambar

Gambar 3.1 Alur tahapan eliminasi
Tabel 3.2 Hasil dokumen setelah melalui tahapan eliminasi
Tabel 3.4 df dan idf
Tabel 3.8 Term frequency untuk proximy processing
+7

Referensi

Dokumen terkait

Ketua STISIPOL Raja Haji Ketua Program Studi PEMBANTU KETUA I BIDANG AKADEMIK. FERIZONE, MPM

Sehingga definisi dari pengaruh tingkat pendidikan formal orang tua terhadap keaktifan beribadah remaja di rumah adalah pengaruh tingkat atau jenjang pendidikan yang pernah

Pasar adalah salah satu faktor penting yang harus dipertimbangkan oleh koperasi, karena pasar merupakan faktor yang sangat berpengaruh terhadap pelaksanaan saluran distribusi

penelitian ini untuk memperoleh data yang digunakan sebagai sumber primer, kemudian untuk mendukung penelitian ini digunakan pula data sekunder yang diambil dari

Variabel narsisme mempunyai rerata empirik (RE) sebesar 65,14 dan rerata hipotetik (RH) sebesar 75 yang berarti variabel narsisme termasuk dalam kategori

Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa, karena atas berkat dan karunia-Nya kami dapat menyelesaikan Karya Tulis Ilmiah yang berjudul “Pengaruh

Hal ini dapat diketahui dari hasil analisis yang menunjukkan bahwa ketuntasan belajar siswa kelas eksperimen memperoleh nilai rata-rata sebesar 78,23, sedangkan

Perubahan Laju Pertumbuhan Harian Benih Ikan Gurame Selama Penelitian.. Perlakuan C = pakan dengan penambahan probiotik 10