• Tidak ada hasil yang ditemukan

HASIL DAN PEMBAHASAN Rancangan Arsitektur

2. Fungsi sistem

Terdapat empat fungsi sistem yang dijalankan di dalam sistem utama, yaitu: a. Fungsiinput_interest_behavior

Pada fungsi ini seperti yang tampak pada kode sumber di bawah, sistem akan menentukan profil minat dan profil perilaku pengguna berdasarkan kategori koleksi-koleksi

wallpaper yang telah diunduh oleh pengguna sebelumnya.

1) forall transaction where user=ui

do

2) forall category in

transaction where user= ui do

3) input first appearance

category to field first in interest table;

4) input last appeareance

category to field last in interest table;

5) input number of appeareance

category for each transaction to

count in interest table; 6) if(count>γ) then 7) support interest= count/(Number of Transactions-first+1); 8) end 9) end

10) forall 2-set category in

transaction where user= ui do

11) input first appearance

2-set category to field first in behavior tabel;

12) input last appeareance

2-set category to field last in behavior table;

13) input number of appeareance

2-set category for each

transaction to count in behavior table; 14) if (count>γ) then 15) support behavior= count/(number of transactions-first+1 16) end 17) end 18) end

Untuk menjelaskan kode sumber di atas, akan dicontohkan suatu transaksi yang dilakukan oleh seorang pengguna seperti yang tampak pada Tabel 2.

Tabel 2 Tabel transaksi

id transaksi id wallpaper category id user

1 12 A 1 1 15 C 1 1 13 E 1 2 14 B 1 2 15 C 1 2 16 E 1 2 17 F 1 3 20 D 1 3 40 E 1 3 38 F 1 4 23 B 1 4 33 C 1 4 31 D 1

Tabel transaksi di atas memiliki empat

field, yaitu id transaksi, id wallpaper, category dan id user. id transaksi

merupakan identitas transaksi selama pengguna

login,id wallpaper adalah identitaswallpaper

yang diunduh, category adalah kategori

wallpaper yang diunduh, sertaid user adalah identitas pengguna yang mengunduh

wallpaper.

Fungsi input_interest_behavior akan mengisi tabelinterest dan tabelbehavior dari data yang ada pada Tabel 2 yang merupakan tabel transaksi.

Tabel 3 Tabelinterest

Category First last count Support

A 1 1 1 N/A B 2 4 2 67% C 1 4 3 75% D 3 4 2 100% E 1 3 3 75% F 2 3 2 67%

Tabel interest di atas memiliki lima field, yaitu category, first, last, count dan

support. category merupakan kategori

wallpaper yang muncul pada transaksi,first

adalah transaksi di mana kategori pertama kali muncul,last adalah transaksi di mana kategori terakhir kali muncul, count adalah jumlah transaksi di mana kategori muncul, serta

support adalah nilaisupport terhadap kategori. Pada fungsi ini terdapatthreshold minimal count (dilambangkan γ) yang akan menyaring kategori-kategori yang nilai kemunculannya di bawah nilai threshold γ. Kategori-kategori

yang nilai kemunculannya di atas nilai

threshold γ (sebagai contoh, nilai γ=1) yang akan dihitung nilai support dengan menggunakan persamaan 2.

Hal ini juga berlaku untuk profil perilaku, fungsi ini akan mengisi tabel behavior

berdasarkan informasi yang ada pada Tabel 2. Tabel 4 Tabelbehavior

2-category set first last Count Support

[A,C] 1 1 1 N/A [A,E] 1 1 1 N/A [B,C] 2 4 2 67% [B,D] 4 4 1 N/A [B,E] 2 2 1 N/A [B,F] 2 2 1 N/A [C,D] 4 4 1 N/A [C,E] 1 2 2 50% [C,F] 2 2 1 N/A [D,E] 3 3 1 N/A [D,F] 3 3 1 N/A [E,F] 2 3 2 67%

Tabel behavior memiliki lima field, yaitu

2-category set, first, last, count dan

support.2-category set merupakan himpunan dua kategori (2-category set) wallpaper yang muncul pada transaksi,first adalah transaksi di mana 2-category set pertama kali muncul,

last adalah transaksi di mana 2-category set

terakhir kali muncul, count adalah jumlah transaksi di mana2-category set muncul, serta

support adalah nilai support terhadap 2-category set.

Pada Tabel 4 juga dilakukan penyaringan nilai kemunculan2-category set terhadap nilai γ (sebagai contoh, nilai γ=1). 2-category set di atas nilai γ yang akan dihitung nilai support

dengan menggunakan persamaan 4.

Kemudian profil minat ditentukan dengan mencari nilaisupport yang nilainya lebih besar dari nilaithreshold α, seperti yang digunakan dalam persamaan 1 (sebagai contoh, nilai α=70%) maka profil minat={C,D,E}. Pada profil perilaku ditentukan dengan mencari support yang nilainya lebih besar dari nilai

threshold β, seperti yang digunakan di dalam persamaan 3 (sebagai contoh, nilai β=40%) maka profil perilaku={[B,C], [C,E],[E,F]}. b. Fungsicreate_vector

Pada fungsi create_vector sistem akan membentuk matriks vektor pengguna berdasarkan profil minat dan profil perilaku yang sudah terbentuk dari tabel interest dan tabelbehavior.

1) Forall 2-set category where support behavior>β do 2) forall category do 3) a_kat=category 4) end 5) z=0; 6) a=0; 7) n=0; 8) vector=NULL;

9) for(x=0;x<number of category;x++) do 10) for(y=n;y<number of category;y++)do 11) element=subset 2-set category; 12) if category_interest= a_kat[x]then 13) vector= vector.’1’;

14) a++; 15) end 16) else

17) if (element[0]= a_kat[x] & element[1]=a_kat[y]) then 18) vector= vector.’1’; 19) end 20) else 21) vector= vector.’0’; 22) end 23) end 24) end 25) end

26) input vektor to table user where user=ui;

27)End

Seperti disebutkan sebelumnya, bahwa fungsi ini akan membentuk matriks vektor perilaku pengguna berdasarkan profil perlaku pengguna. Sebagai contoh, jika profil minat={C,D,E} dan profil perilaku={[B,C], [C,E] ,[E,F]} maka proses pembentuk matriks dapat dilihat pada Gambar 4

0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 F]} [E, E], [C, C], {[B, } , , { F E D C B A F E D C B A E D C

Gambar 4 Proses pembentukan matriks vektor. Seperti yang tampak pada Gambar 4, maka akan diperoleh vektor matriks pengguna: 0000000100010100110.

c. Fungsicluster_vector

Pada fungsi ini, sistem akan mengelompokkan setiap pengguna berdasarkan jarak masing-masing matriks vektor pengguna.

1) M=0;

2)forall user in user table user do

3) get user[m]; 4) get vektor_user[m]; 5) m++; 6)end 7) user_centroid[0]=user[0]; 8) vector_centroid[0]=vector_user[0]; 9) user_iteration=1; 10) sum_cluster=1; 11) id_cluster=sum_cluster; 12) k=1; 13) for(i=1;i<sum_cluster;i++)do 14) distance= euclid_distance (vector_centroid,vector_user[i]);

15) if(distance>δ)then 16) sum_cluster++; 17) id_cluster++; 18) user_centroid [id_cluster]= user[i]; 19) vector_centroid [id_cluster]= vector_user[i]; 20) user_is_in=id_cluster; 21) end 22) else 23) user_is_in=shortest euclid distance(vector_centroid, vector_user[i]); 24) vector_centroid [id_cluster]= average_point(cluster[id_cluster]); 25) user_is_in=id_cluster; 26) end 27) End

Pada fungsi ini terdapat nilai untuk jarak minimal matriks vektor (dilambangkan dengan δ). Pada saat fungsi dijalankan pengguna dengan id yang paling kecil yang menjadi

centriod culster dari cluster yang baru terbentuk. Pengguna seterusnya akan diperiksa jarak terpendeknya menggunakan jarak

Euclidean dengan setiap cluster yang sudah terbentuk sebelumnya. Jika jarak terpendek ≤ nilai δ, maka matriks vektor masuk ke dalam

cluster yang memiliki jarak terkecil dan

centroid cluster berubah berdasarkan matriks vektor yang baru di dalam cluster. Dalam hal ini penentuan nilai centroid cluster

menggunakan metode Unweighted pair-group centroid. Kemudian jika jarak terpendek > nilai δ, maka membentuk cluster baru dan matriks vektor tersebut menjadicentroid cluster. d. Fungsirecommendation

Pada fungsi ini, sistem akan menghasilkan rekomendasi koleksi-koleksi wallpaper yang belum pernah diunduh oleh pengguna, berdasarkan koleksi-koleski wallpaper yang telah diunduh oleh pengguna yang lain yang memiliki profil minat dan profil perilaku yang sama pada kelompokcluster yang sama.

1) forall users in the same

cluster do

2) forall user which has the same

interest do

3) select id wallpaper

which has not been download;

4) input into interest

recommendation; 5) end

6) forall user which has the

same behavior do

7) select id wallpaper

which has not been download;

8) input into behavior

recommendation; 9) end

10) end

Analisis Kompleksitas Waktu Algoritma

Untuk sistem utama, bisa dikatakan bahwa kompleksitas waktunya adalah O(n), karena pada baris ke-2 terjadi perulangan untuk menampilkan koleksi wallpaper. Pada sistem utama terjadi pemanggilan beberapa fungsi. Yaitu pada baris 10 terjadi pemanggilan fungsi

recommendation, baris 14 terjadi pemanggilan fungsi input_interest_behavior, baris 15 terjadi pemanggilan fungsi create_vector, serta pada baris 16 terjadi pemanggilan fungsi

cluster_vector.

Fungsi recommendation memiliki kompleksitas waktu O(2n2). Karena pada perulangan baris 1, terdapat perulangan pada baris 2 dan 6.

fungsi input_interest_behavior memiliki kompleksitas waktu O(2n2). Karena pada perulangan baris 1, terdapat perulangan pada baris 2 dan 10.

Untuk fungsi create_vektor, karena pada sistem ini hanya ada sepuluh kategori maka pada baris pertama hanya ada 10x9=90 kemungkinan. Pada baris 8 dan 9 terjadi perulangan berkalang 2 sebanyak 10 kali, maka waktu kompleksitasnya 90x100=9000. Karena waktu kompleksitasnya selalu tetap dan bisa dikatakan nilai skalarnya kecil, maka fungsi ini memiliki kompleksitas waktu O(1).

Fungsi cluster_vector, memiliki kompleksitas waktu O(n2). Karena pada perulangan baris 1, terdapat perulangan pada baris 13. Dengan demikian secara keseluruhan sistem rekomendasi ini memiliki kompleksitas waktu algoritma O(2n2).

Implementasi Sistem

Dalam mengembangkan sistem ini digunakan perangkat lunak dan perangkat keras sebagai berikut:

perangkat lunak:

a. Sistem Operasi Windows XP Professional SP2

b. XAMPP 1.5.5

c. Web Server Apache 2.2.3 d. Bahasa Pemrograman PHP 5.2.0 e. DBMS MySQL 5.0.2

f. Web Browser Mozilla Firefox 2.0.0.2 dan Microsoft Internet Explorer 6.0.29 dengan perangkat keras PC:

a. Prosesor Intel Pentium D 2,80Ghz b. Memori 1024MB DDR II RAM c. Harddisk 160 GB

d. VGA GeCube ATI Radeon X1650 512MB DDR II

e. Monitor 17” resolusi 1280x1024 f. Mouse danKeyboard

Rancangan Pengujian

Pengujian sistem rekomendasi ini dilakukan secara langsung oleh pengguna awam. Dalam percobaan ini, sebanyak 517 koleksiwallpaper

dikumpulkan dan dikelompokkan menjadi sepuluh kategori. Seperti yang tampak pada Tabel 5, kategori games memiliki jumlah koleksi terbanyak, yaitu 12,57% dari keseluruhan jumlah koleksi. Sedangkan kategori photo manipulated memliki koleksi yang paling sedikit, yaitu 8,12%.

Tabel 5 Koleksiwallpaper

Kategori Jumlah Koleksi %

3D 49 9.48 abstract 49 9.48 fantasy 67 12.96 fractals 47 9.09 games 65 12.57 landscape 46 8.90 minimalistic 50 9.67 PC/ Mac 49 9.48 photo manipulated 42 8.12 vector 53 10.25 TOTAL 517 100

Sistem ini diujikan kepada tujuh individu pengguna. Jika pengguna tersebutlogin, maka pengguna dapat melakukan proses browsing

koleksi yang ada di dalam sistem berdasarkan kategori. Setiap kali pengguna mengunduh koleksi wallpaper, sistem rekomendasi akan mencatat informasi-informasi yang diperlukan untuk menghitung dan menentukan profil pengguna. Pengguna juga dapat meminta rekomendasi dari sistem. Berdasarkan

wallpaper yang direkomendasikan, pengguna harus secara eksplisit menilai rekomendasi tersebut. Ada dua nilai yang digunakan untuk menilai rekomendasi yang diberikan, yaitu sesuai (hit) dan tidak sesuai (miss).

Sesuai dengan tanggapan yang dikumpulkan dari hasil percobaan, ada nilai ukur yang digunakan untuk mengevaluasi metode yang digunakan dalam sistem ini. Ng dan Nb masing-masing adalah lambang untuk jumlah respon baik dan respon buruk. Dalam hal ini N adalah jumlah total rekomendasi, sehingga didefinisikan bahwahit ratio danmiss ratio, sebagai berikut:

Hit Ratio=

N

Ng danMiss Ratio =

N

Nb ...(6)

Hasil Pengujian

Setelah mencatat koleksi wallpaper yang telah diunduh oleh pengguna selama masa percobaan, didapat hasil seperti yang tampak di dalam Tabel 6.

Tabel 6 Jumlah koleksiwallpaper yang diunduh

Kategori Jumlah yang diunduh %

3D 74 7.42 abstract 95 9.53 fantasy 90 9.03 fractals 95 9.53 games 49 4.91 landscape 155 15.55 minimalistic 114 11.43 PC/ Mac 57 5.72 photo manipulated 196 19.66 vektor 72 7.22 TOTAL 997 100

Seperti yang terlihat pada Tabel 6, total koleksi yang diunduh selama pengujian adalah sebanyak 997 koleksi. Di mana koleksi dari kategori photo manipulated adalah koleksi yang paling banyak diunduh, yaitu 19.66% dari jumlah koleksi yang diunduh. Sedangkan kategori games adalah kategori yang paling sedikit diunduh, yaitu 4.91%.

Untuk setiap kategori yang ada dalam profil minat dan 2-set category di dalam profil perilaku maka yang akan diproses adalah yang nilai kemunculannya harus lebih besar dari nilai γ, di mana nilai γ=1.

Berdasarkan pengujian dan percobaan beberapa kali sebelumnya, didapat nilai

threshold untuk α sebesar 0.26 dan β sebesar 0.14. Dari data transaksi yang mencatat koleksi wallpaper yang diunduh, dilakukan proses perhitungan dan penentuan matriks vektor masing-masing pengguna berdasarkan profil perilaku.

Dalam percobaan ini dilakukan percobaan dengan nilai threshold δ yang berbeda-beda, masing-masing 0.75, 1.6, 2.8 dan 3.8. Di dalam Tabel 7 ditunjukkan hasil pengelompokan berdasarkan nilai threshold δ. Di dalam tabel ini pengguna dilambangkan dengan id_user

seperti 2, 3 dan seterusnya. Cluster yang terbentuk dilambangkan dengan C0, C1 dan seterusnya.

Tabel 7 Hasil prosesclustering dengan menggunakan nilai δ yang berbeda

Cluster δ =0.75 δ =1.6 δ =2.8 δ =3.8 C0 2 2, 4 2, 4, 8 2, 3, 5, 6, 8 C1 3 3 3 4 C2 4 5 5 7 C3 5 6 6 C4 6 7 7 C5 7 8 C6 8

Dari Tabel 7 dapat dilihat pada saat nilai δ sebesar 0.75 terdapat tujuhcluster. Kemudian, nilai δ dinaikan menjadi 1.6 makacluster yang terbentuk berkurang satu dan menjadi enam

cluster. Ketika nilai δ dinaikkan menjadi 2.8, ada cluster yang bergabung dengan cluster

yang lain (sebagai contoh, id_user 4 bergabung dengancluster C0). Ketika nilai δ dinaikkan lagi menjadi 3.8, beberapa cluster

kembali menggabungkan diri dengan cluster

yang lain sehingga jumlah cluster berkurang dua menjadi 3cluster.

Secara umum, dengan semakin besar nilai δ maka semakin banyak anggota yang ada di dalam cluster dan membuat semakin sedikit cluster yang terbentuk.

Dalam percobaan dilakukan juga pengamatan terhadap rekomendasi yang diminta oleh pengguna. Jika pengguna meminta rekomendasi, maka sistem akan memberikan rekomendasi wallpaper

berdasarkan minat dan perilaku, serta berdasarkan cluster pengguna yang sama. Sebelum wallpaper hasil rekomendasi dapat diunduh oleh pengguna, maka sistem akan menanyakan apakah hasil yang direkomendasikan sesuai dengan keinginan pengguna. Jika sesuai, maka hasil rekomendasi dianggap sebagai hit, sebaliknya jika hasil rekomendasi tidak sesuai dengan keinginan pengguna dianggap sebagaimiss.

Tabel 8 Tabel hit rasio berdasarkan nilai δ id user δ =1.6 (%) δ=2 (%) δ=3.6 (%) 2 72.22 100.00 66.67 3 35.29 4 86.96 100.00 5 38.00 6 75.00 7 8 100.00 100.00

Pada Tabel 8 ditampilkan perbandinganhit ratio berdasarkan nilai-nilai δ yang diujikan dalam percobaan. Pada tabel nilai yang ada

memang tidak terlihat pola yang jelas, ini dikarenakan pengguna diberi kebebasan untuk meminta dan menilai rekomendasi. Jika dilihat pada Tabel 8 ada beberapa hit ratio yang nilainya kosong, hal ini dapat terjadi karena: a. Pengguna tidak meminta rekomendasi. b. Pengguna meminta rekomendasi, namun

tidak ada yang direkomendasikan. Karena pengguna sudah mengunduh koleksi

wallpaper yang akan direkomendasikan. c. Pengguna meminta rekomendasi, namun

tidak ada yang direkomendasikan. Karena di dalamcluster pengguna hanya sendirian.

Dokumen terkait