1 PENDAHULUAN Latar Belakang Saat ini perkembangan dan kemajuan teknologi informasi berbasis jaringan, khususnya teknologi pada jaringan Internet berlangsung dengan pesat. Berkat teknologi informasi Internet, hampir seluruh pengguna di dunia dapat mengakses informasi yang ada di dalam Internet. Situs-situs web yang ada di dalam Internet pun mengalami perkembangan yang pesat. Informasi dan konten yang ada di dalam situs web pun semakin banyak dan beragam. Dengan semakin banyak dan beragamnya informasi dan konten yang disediakan oleh sebuah situs web, semakin banyak waktu yang diperlukan oleh pengguna/pengunjung untuk menjelajahi (browse) seluruh isi konten yang ada di dalam situs web. Hal ini membuat pengguna merasa kurang nyaman dalam menjelajahi isi konten sebuah situs web untuk mencari informasi atau konten yang diinginkan pengguna situs web. Oleh karena itu, diperlukan aplikasi yang dapat membantu pengunjung sebuah situs web untuk mencari konten yang sesuai dengan keinginan pengguna. Penelitian ini berusaha membantu pengguna dalam mencari konten di dalam sebuah web dengan memberikan rekomendasi konten yang cocok dengan profil pengguna. Di dalam sebuah situs web, informasi dan konten yang diminta (request) oleh pengguna umumnya tercatat dalam browsing history. Oleh karena itu, browsing history dapat dijadikan sumber untuk mengetahui pola minat dan perilaku pengguna situs web. Tujuan Tujuan penelitian adalah mengembangkan sistem yang dapat memberikan rekomendasi kepada pengguna berdasarkan profil minat dan perilaku pengguna yang diambil dari data transaksi yang dilakukan oleh penggguna dalam mengakses isi informasi yang ada dalam situs web. Ruang Lingkup Ruang lingkup yang diteliti adalah personalisasi rekomendasi koleksi berdasarkan profil minat dan perilaku pengguna (dengan studi kasus rekomendasi koleksi wallpaper) . Koleksi-koleksi yang direkomendasikan oleh sistem adalah koleksi-koleksi yang belum diunduh oleh pengguna. Penelitian dilakukan dengan mengacu pada penelitian yang dilakukan oleh Yong (2001). Manfaat Hasil penelitian ini diharapkan dapat mempermudah pengguna dalam menjelajahi (browsing) isi dan informasi yang ada di dalam sebuah situs web sesuai dengan keinginan pengguna. TINJAUAN PUSTAKA Association Mining Rule Jika I={i1,i2,...,im} adalah himpunan entitas yang disebut Item. Andaikan D adalah himpunan transaksi T, di mana setiap transaksi T adalah himpunan Item di mana T I . Sebuah Identifier (pengenal) yang unik yang disebut TID, digunakan untuk mengasosiasikan setiap transaksi. Kita katakan sebuah transaksi T terdapat X, sebuah himpunan yang terdiri dari beberapa item di dalam I, jika X T . Sebuah Association Rule (aturan asosiasi) adalah sebuah implikasi dari di mana X I, X Y , Y I dan X Y =Ø. Aturan X Y berlaku di dalam himpunan transaksi D dengan keyakinan (confidence) c jika c% transaksi di dalam D terdapat X juga terdapat Y. Aturan X Y memiliki nilai support s di dalam himpunan transaksi D jika s% di dalam himpunan transaksi D terdapat X Y (Agrawal 1994). Jika ada himpunan transaksi D, masalah di dalam xzAssociation Mining Rule adalah bagaimana menghasilkan aturan asosisasi yang memiliki nilai support dan nilai keyakinan (confidence) yang lebih besar daripada nilai minimum support dan nilai minimum keyakinan (confidence) yang telah ditentukan. Algortima yang menggunakan teknik Association Mining Rule (Agrawal 1994), antara lain: a. Algoritma Appriori Pada Tabel 1 dapat dilihat notasi yang digunakan pada algoritma yang menggunakan teknik Association Mining Rule. Tabel 1 Notasi Algoritma Item k Lk Ck Himpunan item yang memilki item k. Himpunan large k-items (dengan nilai minimum support) Setiap anggota himpunan memiliki dua field, yaitu itemset dan support count. Himpunan kandidat k-items (himpunan item dengan jumlah yang besar). 2 Item k Ck Himpunan item yang memilki item k. Setiap anggota himpunan memiliki dua field, yaitu itemset dan support count. Himpunan kandidat k-items di mana TID yang dihasilkan transaksi disimpan dan diasosiasikan dengan para kandidiat 1) 2) 3) 4) 1) 2) 3) L1={large 1-itemset}; for (k=2;Lk-1=Ø;k++) do begin Ck=Appriori-gen(Lk-1); //Kandidat baru 4) forall transaction t D do begin 5) Ct=subset(Ck,t); //kandidat yang terdapat pada t 6) forall candidates c Ct do 7) c.count++; 8) end 9) Lk={ c Ck | c.count≥minsup} 10) end 11) Answer= k Lk ; Algoritma Appriori Candidate Generation Dalam alogritma Appriori diperlukan sebuah algoritma yang mengambil input Lk-1, di dalam himpunan large (k-1) itemset dan menghasilkan himpunan superset yang terdiri dari semua himpunan large (k-1) itemset. Seperti yang tampak pada kode sumber di bawah. 1) 2) Insert into Ck select p.item1,p.item2,…,p.itemk1,q.itemk-1 3) from Lk-1 p,Lk-1 q 4) where p.item1=q.item1,…,p.itemk2=q.itemk-2 ,p.itemk-1<q.itemk-1; 5) forall itemset c Ck do 6) forall (k-1) subset s of c do 7) If (s L) then 8) delete c form Ck; 9) end 10) end 11) end b. Algoritma ApprioriTid Pada Algoritma ApprioriTid seperti yang tampak pada kode sumber di bawah, juga terjadi pemanggilan fungsi appriori-gen yang merupakan fungsi algoritma Appriori Candidate Generation. C k =Appriori-gen(Lk-1); //Kandidat baru 5) 6) C k =Ø; forall entries t C k 1 do begin //untuk menentukan himpunan itemset di dalam Ck terdapat pada transaksi dengan identfier t.TD 7) Pada Algoritma Appriori seperti yang tampak pada kode sumber di bawah, terjadi pemanggilan fungsi Appriori-gen yang merupakan fungsi algoritma Appriori Candidate Generation. L1={large 1-itemset};. C1=Database D; for (k=2;Lk-1=Ø;k++) do begin 8) Ct={ c Ck |(c-c[k]) t.set-of-itemsets ^ (c-c[k-1]) t.set-of-itemsets }; forall candidates c Ct do 9) c.count++; 10) end 11) Lk={ c Ck | c.count≥minsup} 12) end 13) Answer= k Lk ; Selain dua algortima di atas ada juga algoritma hasil modifikasinya, yaitu: c. Algoritma Incremental mining Algoritma ini merupakan modifikasi dari Algoritma Appriori dan Algoritma ApprioriTid yang dikembangkan oleh Yong (2001). Di mana tujuan algoritma ini adalah menentukan profil pengguna di dalam tabel Interest dan tabel Behavior. Personalisasi Rekomendasi Dalam menentukan rekomendasi yang akan diberikan kepada pengguna, ada dua pendekatan yang umum digunakan dalam personalisasi rekomendasi (Balabanovic 1997) yaitu: a. Content-Based Recommendation Pendekatan yang digunakan dalam content-based untuk menghasilkan rekomendasi berasal dari teknik temu kembali informasi. Teks dokumen direkomendasi berdasarkan perbandingan antara isi dokumen dengan profil pengguna. Rekomendasi yang akan dihasilkan berdasarkan tingkat kesesuaian isi konten suatu dokumen dengan isi konten dokumendokumen yang pernah diunduh oleh pengguna sebelumnya. Ada dua kelemahan yang terdapat di dalam pendekatan content-based. Kelemahan pertama adalah bahwa sistem ini umumnya hanya dapat digunakan untuk item yang berisi teks. Untuk item yang berisikan media yang lain yang tidak menggunakan teks seperti film dan musik, pendekatan contentbased tidak dapat digunakan. 3 Kelemahan yang kedua adalah sistem hanya dapat merekomendasikan item yang memiliki nilai tinggi terhadap profil pengguna, pengguna hanya dapat melihat rekomendasi item yang mirip dengan yang telah dilihat sebelumnya. Jika jumlah pengguna yang ada jauh lebih sedikit dengan volume informasi yang ada (karena ada perubahan dalam jumlah yang besar atau terlalu cepat di dalam basis data) maka akan menghasilkan rekomendasi yang terlalu luas. b.Collaborative Recommendation Pendekatan Collaborative Recommendation berbeda dengan ContentBased. Pendekatan Collaborative Recommendation tidak merekomendasi item yang karena kemiripan item yang diminati pengguna pada masa lalu, tetapi merekomendasikan item yang diminati pengguna yang lain. Pendekatan inipun memiliki kelemahan. Kelemahan yang pertama adalah, jika terdapat item yang baru di dalam basis data maka tidak dapat langsung direkomendasikan sampai ada pengguna lain berminat terhadap item tersebut. Masalah yang kedua yang dihadapi adalah jika terdapat pengguna yang memiliki selera yang berbeda (tidak lazim), maka tidak ada pengguna yang lain yang bisa dikatakan mirip dengan pengguna tersebut, sehingga tidak dapat menghasilkan suatu rekomendasi (poor recommendation) Profil Minat (Interest Profile) Jika support (c) didefinisikan sebagai support atas kategori c. Kemudian, jika diberikan sebuah threshold α, maka Interest Profile (I) pengguna didefinisikan sebagai berikut: I={c| Support (c)≥ α } ........................................(1) Jika count (c) didefinisikan sebagai jumlah kemunculan kategori c dalam data transaksi suatu pengguna. Kemudian, jika first (c) adalah kemunculan yang pertama kategori c di dalam himpunan transaksi pengguna. Serta jika diberikan himpunan transaksi pengguna dengan sebanyak T transaksi, maka tingkat minat pengguna terhadap kategori c (support (c)) didefinisikan sebagai berikut: Support(c) count(c) T first(c) 1 ........................(2) Profil Perilaku (Behavior Profile) Jika support[c,d] didefinisikan sebagai support atas 2-category set [c,d]. Kemudian, jika diberikan threshold β, maka Behavior Profile (B) pengguna didefinisikan sebagai berikut: B= {[c,d]| Support [c,d]≥ β }……………….……..(3) Jika count [c,d] didefinisikan sebagai jumlah kemunculan 2-set category [c,d] dalam data transaksi suatu pengguna. Kemudian, jika first [c,d] adalah kemunculan yang pertama 2set category [c,d] di dalam himpunan transaksi pengguna. Serta jika diberikan himpunan transaksi pengguna sebanyak T transaksi, maka tingkat perilaku pengguna terhadap kategori c dan d (support [c,d]) didefinisikan sebagai berikut: Support[c, d] count[c, d] T first[c, d] 1 ..................(4) Dynamic Clustering Dynamic Clustering dikembangkan oleh Yong (2001), di mana digunakan jarak Euclidean untuk mengukur jarak masingmasing matriks vektor. Berikut ini algoritma Dynamic Clustering: 1) forall vector matrix do 2) if cluster=Ø then 3) create new cluster; 4) centroid=vector matrix; 5) end 6) else 7) if minimal distance ≤ δ then 8) put vector matrix into cluster with shortest distance; 9) update centroid considering the vector matrix; 10) end 11) else 12) create new cluster; 13) centroid=vektor matriks; 14) end 15) end 16) End Euclidean distance Jika A dan B merupakan sebuah matriks vektor, serta Ai dan Bi merupakan elemen ke-i dari vektor A dan vektor B, maka jarak Euclidean vektor A dengan vektor B dirumuskan sebagai berikut: Distance(A, B) n 2 A Bi i 1 i ……….......(5) Web Mining Web mining adalah proses menggali dan menemukan suatu informasi (knowledge) menggunakan teknik data mining terhadap 4 dokumen, layanan, dan data pada World Wide Web (Etzoni 1996). Web mining merupakan bagian dari proses data mining yang khusus dilakukan pada sebuah situs web. Klasifikasi web mining dapat dibagi dalam tiga kategori (Huysmans et al. 2004), yaitu: a. Web content mining Web content mining adalah penggalian informasi dari konten/informasi dan dokumen web untuk membantu pengunjung menemukan informasi yang diinginkannya. b.Web structure mining Web structure mining adalah ekstraksi informasi struktur link situs web untuk mengelompokkan interkoneksi dokumen web sehingga memudahkan pencarian informasi dari situs web lain. c. Web usage mining Web usage mining adalah aplikasi teknik data mining untuk mengetahui pola akses pengunjung terhadap suatu situs web. Pola akses ini diolah dari data sekunder yang menyimpan aktivitas pengunjung seperti data log server, log proxy, log browser, session, cookies, dan sebagainya. METODOLOGI Metodologi yang digunakan dalam penelitian ini mengikuti dan mengadaptasi semua tahapan pengembangan sistem sesuai linear sequential model seperti berikut : 1. Analisis Pada tahapan ini akan dilakukan proses analisis mengenai permasalahan yang berhubungan dengan kebutuhan sistem. Hasil analisis yang didapat adalah: a. Sistem harus dapat menampilkan semua koleksi wallpaper dan informasi yang berkaitan dengan walllpaper tersebut yang ada dalam basis data. b. Sistem harus dapat mencatat setiap kali pengguna mengunduh sebuah koleksi wallpaper. c. Sistem harus dapat menghitung dan menentukan profil minat dan profil perilaku setiap pengguna berdasarkan data transaksi wallpaper yang telah diunduh. d. Sistem harus dapat membentuk matriks vektor setiap pengguna berdasarkan profil pengguna pengguna. e. Sistem harus dapat mengelompokkan setiap pengguna ke dalam cluster berdasarkan jarak masing-masing vektor matriks setiap pengguna. f. Sistem harus dapat memberikan rekomendasi koleksi wallpaper yang belum diunduh kepada pengguna dari koleksi yang sudah diunduh pengguna lain yang memiliki minat dan perilaku yang mirip dengan pengguna di dalam kelompok cluster sama. 2. Desain Hal-hal yang akan dilakukan dan diperoleh dalam tahap ini adalah : a. Membuat basis data yang akan berisikan informasi-informasi yang berkaitan dengan koleksi wallpaper. b. Membuat algoritma pencatatan yang akan mencatat setiap kali pengguna mengunduh koleksi wallpaper. c. Membuat algoritma yang akan menghitung dan menentukan profil minat dan profil perilaku setiap pengguna berdasarkan data transaksi yang telah tercatat sebelumnya. d. Membuat algoritma yang dapat menghasilkan matriks vektor pengguna berdasarkan profil minat dan profil perilaku setiap pengguna. e. Membuat algoritma clustering dengan menggunakan Euclidean Distance untuk mengelompokkan penguna berdasarkan jarak masing-masing vektor matriks pengguna. f. Membuat algoritma yang dapat memberikan rekomendasi koleksi yang belum diunduh berdasarkan koleksi yang sudah diunduh pengguna lain yang memilik profil minat dan perilaku yang sama dengan pengguna di dalam satu cluster pengguna. g. Membuat desain antarmuka pengguna yang dapat menampilkan wallpaper yang ada di dalam basis data dan informasiinformasi yang lain berkaitan dengan wallpaper tersebut serta dapat menampilkan rekomendasi koleksi untuk masing-masing pengguna. 3. Pengkodean (Code) Pada tahap ini akan dilakukan proses implementasi pengkodean program sesuai analisis dan perancangan yang sudah dilakukan. 4. Pengujian (Test) Pada tahap ini dilakukan proses pengujian dan percobaan terhadap terhadap sistem sesuai dengan spesifikasi yang ditentukan sebelumnya. Faktor yang digunakan dalam percobaan adalah nilai-nilai threshold yang digunakan dalam proses perhitungan. Hal-hal yang akan diamati selama dilakukan proses pengujian terhadap sistem yang dikembangkan: a. Jumlah cluster yang terbentuk.