i
ABSTRACTKURNIAWAN AJI SAPUTRA. The Recommendation System of Hyperlink Addition on a Website based on Website's Data Log. Supervised by ANNISA S.Kom, M.Kom.
A good website structure is needed by the website visitors. The website structure which is created by the website developer should be in accordance with user preferences. The easier the user can find the target page, the better the website structure is. However if the user still get some difficulties in finding the location of the target page, website developer must change the website structure. Data logs from the website can help developers to improve the structure of the website. Data log should pass through the process of data preprocessing which are data cleaning, user identification, session identification, path completion and transaction identification. After that, expectation location will be searched in the data log by using Find Expectation Location algorithm. Location expectations are then processed using the optimization algorithm (FirstOnly and OptimizeBenefit) to get the recommendation of adding a page link. Finally the improved structure will be displayed using a scalable vector graphic (SVG).
SISTEM REKOMENDASI PENAMBAHAN
LINK
PADA
WEBSITE
BERDASARKAN DATA
LOG
WEBSITE
KURNIAWAN AJI SAPUTRA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
SISTEM REKOMENDASI PENAMBAHAN
LINK
PADA
WEBSITE
BERDASARKAN DATA
LOG
WEBSITE
KURNIAWAN AJI SAPUTRA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
SISTEM REKOMENDASI PENAMBAHAN
LINK
PADA
WEBSITE
BERDASARKAN DATA
LOG
WEBSITE
KURNIAWAN AJI SAPUTRA
Skripsi
sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
i
ABSTRACTKURNIAWAN AJI SAPUTRA. The Recommendation System of Hyperlink Addition on a Website based on Website's Data Log. Supervised by ANNISA S.Kom, M.Kom.
A good website structure is needed by the website visitors. The website structure which is created by the website developer should be in accordance with user preferences. The easier the user can find the target page, the better the website structure is. However if the user still get some difficulties in finding the location of the target page, website developer must change the website structure. Data logs from the website can help developers to improve the structure of the website. Data log should pass through the process of data preprocessing which are data cleaning, user identification, session identification, path completion and transaction identification. After that, expectation location will be searched in the data log by using Find Expectation Location algorithm. Location expectations are then processed using the optimization algorithm (FirstOnly and OptimizeBenefit) to get the recommendation of adding a page link. Finally the improved structure will be displayed using a scalable vector graphic (SVG).
i
Judul : Sistem Rekomendasi Penambahan Link Pada Website Berdasarkan Data LogWebsite
Nama : Kurniawan Aji Saputra NRP : G64052249
Menyetujui:
Pembimbing,
Annisa S.Kom., M.Kom. NIP 197907312005012002
Mengetahui :
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Dr. Drh. Hasim, DEA NIP 196103281986011002
ii
KATA PENGANTARPuji Syukur penulis panjatkan kepada Allah SWT atas segala rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer di Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor
Ucapan terima kasih penulis sampaikan kepada pihak yang telah membantu penyelesaian tugas akhir ini, antara lain kepada Bapak Muhaeni MS dan Ibu Sumilah sebagai kedua orang tua penulis, dan kepada Henny Dwi Kurniawati sebagai adik penulis yang selalu memberikan motivasi, moril, materiil dan kasih sayang yang diberikan. Terima kasih dan penghargaan setinggi-tingginya kepada Ibu Annisa S.Kom, M.Kom selaku pembimbing skripsi penulis yang telah memberikan saran dan bimbingan selama penelitian berlangsung dan penulisan tugas akhir ini. Selanjutnya ucapan terima kasih saya sampaikan kepada semua civitas Departemen Ilmu Komputer yang telah mendidik, mengajar dan membina penulis. Selanjutnya penulis juga ingin mengucapkan terima kasih kepada teman-teman satu bimbingan yaitu Mega, Mirna, Karin, dan Agnes, terima kasih atas kerjasamanya. Terima kasih kepada teman-teman satu angkatan Ilmu Komputer angkatan 42 yang telah memberikan semangat dan kebersamaan dalam pengerjaan tugas akhir ini.
Penulis menyadari masih banyak kekurangan di dalam penyusunan tugas akhir ini. Oleh karena itu, saran dan kritik yang membangun sangat diharapkan sehingga tugas akhir ini akan lebih baik dan lebih bermanfaat. Amin
Bogor, Juli 2009
iii
RIWAYAT HIDUPPenulis dilahirkan di Purworejo pada tanggal 06 Februari 1987 sebagai anak pertama dari dua bersaudara dari pasangan Muhaeni MS dan Sumilah. Penulis beralamatkan di Desa Panggeldlangu RT 02 RW I kecamatan Butuh, Kabupaten Purworejo, Jawa Tengah.
iv
DAFTAR ISIHalaman
DAFTAR ISI ... iv
DAFTAR GAMBAR ... v
DAFTAR LAMPIRAN ... v
PENDAHULUAN ... 1
Latar Belakang ... 1
Tujuan ... 1
Ruang Lingkup ... 1
Manfaat ... 1
TINJAUAN PUSTAKA ... 1
Web Mining ... 1
Struktur Website ... 1
Data Log ... 2
Data Preprocessing ... 2
Penentuan Halaman Target ... 4
Model Pencarian Pengguna ... 4
Scalable Vector Graphic (SVG) ... 5
METODE PENELITIAN ... 5
Penambahan Tabel Database ... 6
Pengambilan Data Log asli Website ... 6
Data Preprocessing ... 6
Data Processing ... 7
Visualisasi ... 7
Lingkungan Pengembangan Sistem ... 8
Batasan Sistem ... 8
HASIL DAN PEMBAHASAN... 8
Penambahan Tabel Database ... 8
Pengambilan Data Log asli Website ... 9
Data Preprocessing ... 10
Data Processing ... 11
Visualisasi ... 12
KESIMPULAN DAN SARAN... 13
Kesimpulan ... 13
Saran ... 13
DAFTAR PUSTAKA ... 13
v
DAFTAR GAMBARHalaman
1 Struktur Berurut (Veer et al. 2004) ... 1
2 Struktur Bertingkat dua (Veer et al. 2004) ... 2
3 Struktur Bertingkat tiga (Veer et al. 2004) ... 2
4 Struktur Kombinasi Berurut dan Bertingkat (Veer et al. 2004) ... 2
5 Struktur Jaringan (Veer et al. 2004) ... 2
6 Data Preprocessing (Cooley et al. 1999) ... 4
7 Model Pencarian Pengguna (Srikant & Yang 2001) ... 5
8 Metode Penelitian ... 5
DAFTAR LAMPIRAN Halaman 1 Atribut-atribut tabel database tambahan ... 15
2 Contoh baris di dalam data log asli website ... 16
3 Halaman Target... 17
4 Halaman yang diminta pengunjung ... 18
5 Alamat IP Pengunjung... 19
6 Session identification... 20
7 Path Completion ... 21
8 Transaction Identification ... 22
9 Lokasi Harapan ... 23
10 Visualisasi Struktur Website hasil penelitian ... 24
11 Hasil dan Visualisasi algoritme FirstOnly ... 25
1
PENDAHULUANLatar Belakang
Website yang baik adalah yang mampu menyediakan layanan yang baik kepada setiap pengunjungnya. Pengunjung akan tetap bertahan pada website tersebut sampai sesuatu yang mereka inginkan sudah berhasil didapatkan. Pembangunan sebuah website yang baik harus memperhatikan tujuan dari pengembangan website tersebut. Layanan apa saja yang nantinya akan diberikan kepada pengunjungnya. Sedapat mungkin layanan yang ditujukan sebagai layanan utama ini diletakkan di halaman yang mudah ditemukan. Jika tidak ditampilkan pada halaman utama maka sebaiknya diberikan jalan pintas ataupun
hyperlink ke halaman tujuan tersebut.
Pada penelitian Nurdian Setyawan (2008) yang berjudul Rekomendasi Penambahan Link
pada Web Berdasarkan Pola Akses Pengguna sudah berhasil mengimplementasikan algoritme yang tepat untuk menentukan halaman target yang pengguna cari. Namun hasil penelitian tersebut masih berupa tabel-tabel yang sulit dimengerti oleh pengembang ataupun pengguna biasa. Penelitian ini akan memvisualisasikan hasil rekomendasi penambahan hyperlink
tersebut dengan menggunakan website yang sederhana sehingga mudah dimengerti oleh pengguna maupun pengembang website.
Data yang digunakan pada penelitian sebelumnya masih menggunakan data dummy,
maka pada penelitian ini akan menggunakan data log asli website yang sebenarnya. Dengan demikian, sistem hasil penelitian ini diharapkan dapat dimanfaatkan oleh pengembang website
untuk dapat memperbaiki struktur web-nya agar sesuai dengan harapan pengguna yaitu dengan menambahkan hyperlink dari lokasi harapan ke lokasi target.
Tujuan
Tujuan dari penelitian ini adalah membuat halaman rekomendasi website yangditerapkan ke dalam sebuah website artificial dengan menggunakan data log asli website.
Ruang Lingkup
Penelitian ini dibatasi pada data path
halaman dari sebuah website yang dikunjungi oleh pengguna yang diperoleh dari data log asli
website yang menggunakan apache-server.
Manfaat
Simulasi hasil rekomendasi penambahan
hyperlink pada website berdasarkan data log
website ini diharapkan mampu membantu para pengembang website untuk membuat struktur
web yang baik sehingga dapat meningkatkan kepuasan terhadap pengguna website itu sendiri.
TINJAUAN PUSTAKA Web Mining
Pada penelitian web mining sebelumnya Nurdian Setyawan (2008) telah berhasil menerapkan Algortime Find Expectation Location dan Algoritme Optimasi (FirstOnly, OptimizeBenefit, dan OptimizeTime) untuk menentukan lokasi-lokasi harapan yang ditambahkan hyperlink untuk mencapai halaman target sebagai upaya memperbaiki struktur website agar sesuai dengan harapan pengunjung. Penelitian yang mengacu pada penelitian dengan judul Mining Web Logs to Improve Website Organization (Srikant & Yang 2001) ini juga menggunakan pendekatan waktu untuk menghitung optimasi dari masing-masing algoritme optimasi yang digunakan.
Struktur Website
Struktur website perlu diorganisasikan dengan baik agar pengunjung puas terhadap layanan yang diberikan dan memudahkan dalam pencarian informasi yang diperlukan. Struktur
website tergantung dari tujuan pengembangannya seperti berikut ini (Veer et al. 2004)
a. Struktur Berurut
Pada halaman utama hanya terdapat
hyperlink ke halaman berikutnya dan untuk halaman yang lainnya terdapat hyperlink ke halaman sebelumnya, hyperlink ke halaman selanjutnya dan hyperlink ke halaman utama. Bentuk struktur berurut seperti pada Gambar 1.
Halaman 1
Halaman 1 Halaman 2Halaman 2 Halaman 3 Halaman 3 Halaman 4Halaman 4
Gambar 1 Struktur Berurut (Veer et al. 2004)
b. Struktur Bertingkat
2
Halaman isi 1 Halaman isi 1 Halaman isi 2 Halaman isi 2 Halaman isi 3 Halaman isi 3 Halaman isi 4 Halaman isi 4 Halaman Menu Halaman MenuGambar 2 Struktur Bertingkat dua (Veer et al.
2004) Halaman isi 1 Halaman isi 1 Halaman isi 2 Halaman isi 2 Halaman Menu Halaman Menu Halaman isi 3 Halaman isi 3 Halaman isi 4 Halaman isi 4 Halaman isi 5 Halaman isi 5 Halaman Menu Halaman Menu Halaman isi 6 Halaman isi 6 Halaman Menu Halaman Menu
Gambar 3 Struktur Bertingkat tiga (Veer et al.
2004)
c. Struktur Kombinasi Berurut dan Bertingkat
Struktur ini perpaduan atau gabungan antara struktur berurut dengan struktur bertingkat. Perpaduan struktur ini dapat dilihat pada Gambar 4 berikut ini.
Halaman isi 1-1 Halaman isi 1-1 Halaman isi 1-2 Halaman isi 1-2 Halaman Menu Halaman Menu Halaman isi 1-3 Halaman isi 1-3 Halaman isi 2-1 Halaman isi 2-1 Halaman isi 2-2 Halaman isi 2-2 Halaman isi 2-3 Halaman isi 2-3
Gambar 4 Struktur Kombinasi Berurut dan Bertingkat (Veer et al. 2004)
d. Struktur Jaringan
Pada struktur ini hyperlink suatu halaman tidak teratur penempatannya dan setiap halaman pasti terdapat hyperlink dengan halaman lainnya. Struktur jaringan ini menyulitkan pengembang website untuk menelusuri tingkah laku pengunjung. Struktur ini dapat dilihat seperti pada Gambar 5 berikut ini.
Halaman isi 1 Halaman isi 1 Halaman isi 4 Halaman isi 4 Halaman isi 2 Halaman isi 2 Halaman isi 3 Halaman isi 3 Halaman isi 5 Halaman isi 5 Halaman isi 6 Halaman isi 6
Gambar 5 Struktur Jaringan (Veer et al. 2004)
Data Log
Data log adalah data yang mencatat setiap
request halaman website oleh pengguna saat membuka suatu website tertentu. Data log ini dihasilkan oleh website atau server proxy
berupa berkas untuk masing-masing transaksi HTTP. Biasanya nama file data log ini adalah
access.log. Data log ini terdiri dari tiga jenis yaitu data log yang tersimpan di apache-server,
client , dan server proxy. Format data log ini berbeda-beda untuk setiap jenis informasi yang disimpan di dalamnya. Perbedaan ini biasanya tergantung pada web server yang digunakan (Ivancy & Vajk 2006).
Sebagai contoh berikut ini adalah format yang lebih dikenal dengan CLF (Common Log Format) data log yang menggunakan Apache-server :
114.4.12.15 - - [29/Jul/2009:15:05:58 +0700] "GET /index.php?page=detail&id=25 HTTP/1.0" 200 12493
Dari data log tersebut ada beberapa informasi yang bisa didapatkan. Informasi yang pertama adalah IP pengguna yang melakukan
request terhadap halaman website tersebut yaitu 114.4.12.15. Kemudian setelah itu dapat terlihat informasi yang diberikan adalah mengenai waktu pengguna melakukan request yaitu tanggal 29 Juli tahun 2009 pada pukul 15:05:58.
GET menunjukkan metode request, /index.php?page=detail&id25 menunjukkan halaman yang diminta, sedangkan HTTP/1.0
menunjukkan protokol yang digunakan. 200 menunjukkan status request (200 berarti status setuju), 12493 adalah respon yang dikirimkan ke client dalam satuan byte.
Data Preprocessing
Beberapa yang dilakukan pada tahap data preprocessing ini dapat dilihat pada Gambar 6. Tahap-tahap yang dilakukan yaitu (Cooley et al. 1999):
1. Data Cleaning
Langkah pertama yang harus dilakukan pada data awal adalah data cleaning. Data mentah yang didapatkan masih banyak mengandung baris-baris yang tidak bersangkutan dengan web mining yang akan dilakukan. Baris-baris tersebut harus dihapus sebelum kita mengaplikasikan teknik untuk mining data.
3
gambar yang dihilangkan antara lain gif, jpeg, jpg, GIF, JPEG, JPG (Cooley et al. 1999). Misalkan di dalam satu halaman memuat 4 buah gambar, maka yang terjadi pada data log
terdapat 5 baris di dalam data log. Baris-baris yang memuat gambar ini yang harus dihapus. Karena pada umumnya pengguna tidak meminta semua grafik pada satu halaman
website. Grafik-grafik tersebut secara otomatis ter-download karena dicantumkan pada kode HTML halamannya. Format multimedia seperti
file-file video tidak dihilangkan, karena ada kemungkinan file-file video ini tidak
ter-download otomatis tetapi karena memang diminta oleh pengguna.
Modul lainnya yang digunakan untuk data cleaning antara lain (Castellano et al. 2007):
a. Request dengan metode selain GET. Metode selain GET di dalam data log tidak menunjukkan permintaan dari pengguna. Biasanya metode selain GET dilakukan oleh
server itu sendiri dan oleh robots. Karena
request dengan metode selain GET tidak signifikan maka harus dihapus dari data log.
b. Request yang gagal atau tidak lengkap. Hal ini dapat diindikasikan dengan baris yang mengandung kode HTTP error. Status dengan nilai 200 menunjukkan berhasil. Maka yang perlu dihapuskan adalah permintaan dengan status nilai tidak sama dengan 200.
c. Request gambar-gambar multimedia. Setiap permintaan halaman juga akan secara otomatis meminta berkas, gambar , dan multimedia yang terkandung di dalamnya. Permintan beberapa berkas dapat dengan mudah diidentifikasi dengan melihat ekstensi dari berkas tersebut. Berkas dengan ekstensi gif, jpg, jpeg akan dihapus dari baris data log karena permintaan berkas ini tidak mewakili aktivitas pengunjung. Format multimedia seperti file-file video tidak dihilangkan, karena ada kemungkinan file-file
video ini tidak ter-download otomatis tetapi karena memang diminta oleh pengguna.
d. Request yang dilakukan oleh robots. Web robots atau biasa dikenal dengan web crawlers
atau web spiders ini dapat diidentifikasi dengan melihat seluruh baris pada data log. Jika ada
baris yang mengandung berkas “robot.txt”
dihapus dari baris data log.
2. User Identification
Setelah tahap data cleaning, muncul masalah baru yaitu bagaimana kita menentukan halaman permintaan dari pengguna yang sama. Banyak metode yang dapat digunakan, namun
kebanyakan membutuhkan tambahan informasi yang terkadang tidak ada di dalam data log Di dalam setiap baris data log terdapat alamat IP dan browser yang digunakan pengguna. Salah satu metode yaitu dengan menggunakan kombinasi alamat IP dan browser yang digunakan. Asumsinya adalah semua baris dalam data log dengan alamat IP dan browser
yang sama dilakukan oleh pengguna yang sama.
Akan tetapi kenyataannya alamat IP tidak selalu menjadi sebuah identitas yang unik untuk pengguna dan dalam data log CLF (Common Log Format) tidak tercatat browser yang digunakan pengguna. Kadang banyak pengguna saling berbagi satu alamat IP. Metode yang akan digunakan adalah jika pengguna-pengguna ini membuka website yang sama dengan satu alamat IP maka mereka dianggap satu pengguna yang sama.
3. Session Identification
Setelah data log dikelompokkan berdasarkan penggunanya, pada langkah ini data log akan dikelompokkan berdasarkan session
kunjungannya. Hal ini tidak mudah untuk mencari kapan pengunjung meninggalkan
website karena tidak ada informasi tersebut di dalam data log. Metode yang paling banyak digunakan untuk hal ini adalah metode yang berdasarkan pada time-out. Jika rentang waktu sangat lama diantara subbagian permintaan dari pengguna yang sama maka session baru telah dimulai. Pada penelitian Catledge dab Pitkow (1995), mereka menemukan time-out yang optimal adalah 25.5 menit dan menghasilkan waktu standar 30 menit.
4. Path Completion
Browser menyimpan halaman yang telah dikunjungi di dalam memori. Teknik ini disebut dengan caching dan tujuannya adalah mengurangi waktu respon ketika meminta sebuah berkas. Sebagai contoh, ketika pengguna memilih tombol back di browser maka versi
cached dari halaman akan ditampilkan dan tidak ada permintaan baru yang dikirim ke server
halaman. Hal ini menyebabkan request halaman yang dilakukan pengguna tidak tercatat di dalam data log. Tujuan path completion adalah untuk menambahkan request halaman yang tidak tercatat tersebut untuk setiap sesinya sehingga dihasilkan path perilaku pengguna yang lengkap.
5. Transaction Identification
4
langkah-langkah sebelumnya telah dilakukan. Contoh jika kita menganalisa sebuah website
berita maka bentuk dari transaksi yang ditangkap oleh setiap session misalkan hanya halaman dengan berita olahraga. Setiap transaksi kemudian akan mengandung semua halaman dengan berita internasional dan yang lainya. Untuk website e-commerce bentuk traksaksinya mengandung halaman dengan informasi produk yang ditawarkan atau semua halaman yang berkaitan dengan pembayaran dan pesanan.
Gambar 6 Data Preprocessing (Cooley et al.
1999)
Penentuan Halaman Target
Halaman target adalah halaman dari website
yang mengandung informasi yang dibutuhkan pengunjung. Beberapa website seperti Amazon dan Ebay, dapat dilihat dengan jelas perbedaannya antara halaman indeks dan halaman konten (Srikant & Yang 2001). Ada beberapa metode untuk menentukan halaman target diantaranya yaitu :
a. Jika perbedaan antara halaman indeks dan halaman konten sangat jelas maka halaman target dari website tersebut adalah halaman konten atau halaman isi. Sebagai contoh pada
website e-commerce pada halaman produk merupakan halaman isi sedangkan pada halaman kategori merupakan halaman indeks.
b. Jika perbedaan antara halaman isi dan halaman konten tidak begitu jelas maka untuk menentukan halaman target dapat menggunakan waktu kunjungan terhadap halaman tersebut. Dalam hal ini halaman yang dikunjungi dalam waktu yang lama maka dapat dikatakan sebagai halaman target.
c. Pada struktur bertingkat dua maupun lebih dari dua maka halaman isi dari website tersebut adalah leaf dari struktur website tersebut. Jadi halaman target pada struktur bertingkat seperti
ini adalah halaman yang berada pada level atau tingkat paling tinggi. Jika pada struktur bertingkat empat maka halaman pada level empat adalah halaman targetnya.
Model Pencarian Pengguna
Pola tingkah laku pengguna sangat berbeda-beda. Salah satu yang mempengaruhi adalah struktur website tersebut. Informasi atau halaman target yang dicari oleh pengguna bisa satu bisa juga banyak. Berikut ini model pencarian pengguna yang mencari informasi tanpa menggunakan mesin pencarian (Srikant & Yang 2001).
1. Pencarian Satu Halaman Target
Asumsikan pengguna mencari halaman target T dan lokasi sekarang C. Pengunjung akan melakukan strategi pencarian berikut :
1. mulai dari root struktur website.
2 selama lokasi sekarang (C) bukan halaman target (T), lakukan :
a. Jika ada hyperlink dari C ke halaman yang mirip dengan halaman target T, ikuti hyperlink tersebut sampai halaman T ditemukan.
b. Jika tidak, backtrack dan kembali ke
parent C.
Perlu diketahui bahwa bila pengunjung membuka halaman yang sama lagi pada langkah 2 (a), ia akan mengikuti hyperlink yang berbeda karena perkiraan bahwa hyperlink cenderung telah diperbarui.
2. Pencarian Beberapa Halaman Target
Asumsikan beberapa halaman target yang dicari pengguna T1,T2, … Tn. Pengunjung akan
melakukan strategi pencarian berikut :
Untuk i=1 sampai dengan n
a. Jika i=1, mulai dari root, jika tidak mulai dari lokasi sekarang C.
b. Selama lokasi sekarang bukan halaman target Ti, lakukan :
Jika ada hyperlink dari lokasi sekarang C yang mirip dengan halaman target Ti, ikuti hyperlink tersebut sampai
halaman T ditemukan.
Jika tidak, backtrack dan kembali ke
parent C. Mulai pencarian untuk halaman target Ti+1 pada langkah 1(a).
5
dan traversal path {1A, 2A, 3A, 2A, 3B, 2A, 1A, 2C, 9}. Pengunjung mencari satu halaman target 9. Dia mulai di root, berharap halaman 9 di bawah 2A, pergi ke 2A dan kemudian 3A, menyadari bahwa 9 tidak di bawah 3A,
backtracks ke 2A, mencoba 3B, menyadari bahwa 3B tidak berisi 9, semua backtracks jalan ke root, dan akhirnya menemukan 9 di bawah 2C. Lokasi yang diharapkan untuk halaman target 9 adalah di 3A dan 3B, dan ternyata lokasi yang sebenarnya di lokasi 2C.
Gambar 7 Model Pencarian Pengguna (Srikant & Yang 2001)
Scalable Vector Graphic (SVG)
Scalable Vector Graphic (SVG) merupakan format file baru untuk menampilkan grafik dalam pengembangan web yang berbasis XML (eXtensible Markup Language). Image SVG berekstensi svg yang hanya bisa dibaca oleh
browser yang sudah mendukung plugin SVG atau kontrol ActiveX. Fungsi SVG untuk menampilkan grafik 2 dimensi dalam kode XML dan juga dapat mengkreasikan sebuah grafik yang terdiri dari banyak vektor yang berbeda-beda. Pada dasarnya, SVG dapat digunakan untuk membuat tiga jenis objek grafik, yaitu path, gambar dan teks. Kelebihan yang paling utama adalah image tidak akan kehilangan kualitasnya apabila diperbesar atau diperkecil(scalable), karena dibuat berdasarkan metode vektor bukan pixel seperti pada format grafik umumnya yaitu GIF, JPEG dan PNG. Sehingga memungkinkan pengembangan web dan juga designer untuk membuat grafik dengan mutu tinggi.
Struktur penulisan dokumen SVG mempunyai sedikit aturan sederhana. Aturan dasar yang paling penting adalah dokumen SVG dimulai dengan elemen <SVG> dan diakhiri dengan elemen </SVG>. Contoh :
<svg width='800px' height='450'
viewBox='10 0 0 0'
xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xl ink'>
…..
</svg>
SVG menetapkan enam bentuk dasar, termasuk juga path dan teks, yang dapat digabungkan untuk membentuk image yang mungkin. Setiap bentuk ini mempunyai properti yang menjelaskan posisi dan ukuran dari bentuk. Warna dan garis ditentukan oleh properti fill dan stroke. Untuk membuat lingkaran contohnya :
<circle cx='15' cy='15' r='12'
fill='#000000' stroke='#000000'/>.
Elemen garis dapat dibentuk dengan :
<line x1 = '15' y1 = '15 ' x2 = '30' y2 = '30' stroke-width = '1' stroke = 'blue'/>.
Elemen teks dibentuk dengan :
<text transform='matrix(1 0 0 1 15
30)' fill='#FFFFFF'
font-weight='bold' font-family='verdana'
font-size='10'>.
Dapat juga dibentuk elemen elips dengan :
<ellipse cx=”40” cy=”40” rx=”35” ry=”25”/>
Elemen persegi empat dibuat dengan :
<rect x=”40” y=”40” width=”75” height=”100”/>.
Sedangkan elemen lainnya yang dapat dibentuk dengan SVG ini adalah path, polyline, dan
polygon.
METODE PENELITIAN
Penelitian ini dilaksanakan dalam beberapa tahap yaitu : (1) Penambahan tabel database (2) Pengambilan Data Log asli Website (3) Data Preprocessing (4) Data Processing dan (5) Visualisasi dan Simulasi Sistem. Tahap-tahap yang dilakukan pada penelitian diilustrasikan pada Gambar 8 di bawah ini.
Mulai Selesai Visualisasi dan Simulasi Processing Data Preprocessing Pengambilan Data Log
Penambahan Tabel Database
Data Cleaning
Transaction Identification Path Completion Session Identification
User Identification
Algoritme Find Expectation Location Algoritme Optimasi (FirstOnly dan
OptimizeBenefit)
6
Pada gambar metode penelitian di atas tidak keseluruhan tahapnya dilakukan pada penelitian ini karena beberapa sudah dilakukan pada penelitian Nurdian Setyawan (2008). Tahap-tahap yang dilakukan pada penelitian ini adalah penambahan tabel database, pengambilan data
log, data preprocessing (data cleaning, user identification, session identification, path completion), visualisasi dan simulasi sistem.
Penambahan Tabel Database
Tabel-tabel database yang ada pada penelitian sebelumnya hanya digunakan untuk tahap data processing. Sedangkan untuk tahap
data preprocessing belum ada, sehingga perlu ditambahkan beberapa tabel database untuk
data preprocessing. Tabel-tabel yang ditambahkan ini juga harus menyesuaikan dengan tabel-tabel yang sudah ada sehingga memudahkan dalam menghubungkan keterkaitan antara tahap data preprocessing dan tahap data processing.
Pengambilan Data Log asli Website
Pada tahap pengambilan data log ini dibagi menjadi 2 langkah yaitu proses input data dan penentuan halaman target dari website.
1. Proses input data
Pada penelitian sebelumnya masih menggunakan data dummy atau data yang dihasilkan oleh suatu algoritme. Pada penelitian kali ini data yang akan digunakan adalah data
log asli website dari www.eramuslim.com yang merupakan data log apache-server.
Data ini pada awalnya berupa file
berekstensi log. Karena ukuran file ini sangat besar dan tidak mampu dibuka oleh teks editor maka untuk memperoleh informasi yang dibutuhkan dalam data log tersebut dapat menggunakan cara parsing data menggunakan
script bahasa pemrograman PHP. Tujuan lain dari penggunaan parsing data ini adalah untuk mengambil informasi yang dibutuhkan, tidak semua atribut yang ada di dalam data akan berguna dalam penelitian. Informasi yang diambil antara lain adalah alamat IP (Internet Protocol Address), waktu, dan path halaman
website yang dibuka oleh pengunjung. Informasi yang yang diperlukan tersebut akan disimpan ke dalam database yang sudah dibuat.
2. Penentuan halaman target.
Pada sebagian besar website yang disebut dengan halaman target adalah halaman-halaman isi yang mengandung informasi yang dibutuhkan oleh para pengunjung website.
Penentuan halaman target ini digunakan untuk menelusuri langkah-langkah yang dilakukan oleh pengunjung dalam mencari informasi yang dibutuhkan. Langkah yang dilakukan bisa saja langsung dapat menemukan halaman target, namun banyak langkah-langkah yang harus dilakukan pengunjung tersebut dan mungkin ada juga yang tidak dapat menemukan halaman target tersebut. Dalam penelitian ini untuk menentukan halaman menggunakan asumsi bahwa halaman target itu adalah leaf dari struktur website tersebut dan hanya diambil 15 halaman target yang paling banyak dikunjungi oleh pengunjung.
Data Preprocessing
Data yang diperoleh untuk penelitian ini masih berupa data mentah ataupun data yang belum terstruktur dengan jelas. Oleh sebab itu diperlukan data preprocessing agar data yang diperoleh dapat mendukung penelitian
1. Data Cleaning
Pada langkah pertama dalam data praprocessing ini data mentah yang sudah dimasukkan ke dalam tabel database melalui proses parsing kemudian akan diperiksa path
-path halaman tersebut. Path halaman yang mengandung informasi selain halaman website
akan dihapus. Path halaman yang dihapus diantaranya yang mengandung format gambar seperti jpg, jpeg, gif, JPG, JPEG, GIF (Cooley
et al. 1999). dan format lain yang tidak mengandung informasi yang dibutuhkan (misalnya : css, exe, js).
2. User Identification
Pada tahap ini akan diidentifikasi pengguna berdasarkan alamat IP pengguna di dalam setiap baris data log. Dalam hal ini digunakan asumsi bahwa permintaan dengan alamat IP yang sama maka informasi berasal dari pengguna yang sama. Sebagai contoh jika banyak pengguna membagi satu alamat IP maka dalam hal ini akan memberikan indikasi bahwa hanya ada satu pengguna.
Kelemahan pada metode ini adalah jika banyak pengguna yang mengunjungi sebuah
website dengan IP yang sama maka hanya dianggap hanya satu orang saja. Walaupun sebenarnya tingkah laku orang-orang tersebut berbeda-beda namun masih tetap dianggap hanya satu orang.
3. Session Identification
7
yang membuat karakteristik dari data log
tersebut juga pasti akan berbeda. Session dapat berarti menunjukkan lamanya pengunjung berada di dalam website dan juga dapat berarti banyaknya kunjungan yang dilakukan pengunjung.
Pada penelitian ini untuk menentukan
session dari setiap pengguna menggunakan asumsi bahwa setiap session dari pengguna berada pada rentang waktu 25,5 menit. Perhitungan rentang waktu dimulai saat pengguna melakukan request pertama kali pada
website sampai waktu 25,5 menit. Apabila waktu lebih dari 25,5 menit maka kemudian akan dihitung sebagai session yang baru sehingga pengunjung akan mempunyai lebih dari satu session. Jika rentang waktu kurang dari 25.5 menit maka pengunjung tersebut hanya memiliki satu session pada kunjungannya tersebut.
4. Path Completion
Setiap pengunjung mempunyai tingkah laku yang berbeda di dalam mengunjungi sebuah
website yang sama. Ada pengunjung yang hanya membuka satu halaman saja kemudian meninggalkan website tersebut. Namun ada juga yang membuka banyak halaman sampai menemukan halaman target yang dicarinya. Pada tahap ini akan diurutkan halaman yang diminta oleh pengunjung di dalam satu kali
session kunjungannya. Sehingga akan terlihat halaman dan urutan pencarian dari pengunjung dalam mencari informasi di dalam website
tersebut. Jika pengunjung sama namun session
berbeda maka pathcompletion yang dihasilkan akan berbeda pula.
5. Transaction Identification
Tahap selanjutnya adalah transaction identification yaitu akan dicari urutan halaman yang diminta oleh pengunjung sampai pengunjung tersebut menemukan halaman target yang sudah ditentukan pada tahap sebelumnya atau jika memang tidak menemukan halaman target yaitu sampai dengan path completion berakhir. Proses yang dilakukan pada tahap ini hampir sama dengan
path completion. Perbedaannya hanyalah pada
transaction identification berganti setelah ditemukan halaman target pada proses path completion.
Data Processing
Setelah data preprocessing selesai kemudian data akan diproses agar mendapatkan hasil rekomendasi hyperlink pada halaman
website. Pada tahap ini dilakukan 2 langkah yaitu pencarian lokasi harapan dan penentuan halaman rekomendasi.
1. Pencarian lokasi harapan
Lokasi harapan adalah lokasi atau path
halaman yang ada di dalam website yang diminta oleh pengunjung sebelum menemukan halaman targetnya namun tidak mempunyai
hyperlink dengan halaman target. Lokasi harapan yang dihasilkan dapat lebih dari satu karena perbedaan tingkah laku dari pengunjung tersebut. Pencarian lokasi harapan ini menggunakan algoritme Find Expectation Locations yang sudah digunakan pada penelitian sebelumnya yaitu oleh Nurdian Setyawan (2008). Pada penelitian ini hanyalah memasukkan data hasil preprocessing ke dalam algoritme tersebut. Algoritme ini membatasi jumlah lokasi harapan hanya 4 (empat) lokasi yaitu untuk lokasi pertama (E1), lokasi kedua (E2), lokasi ketiga (E3) dan lokasi keempat (E4).
2. Penentuan Halaman Rekomendasi
Pada penentuan halaman rekomendasi ini juga akan digunakan 2 (dua) buah algoritme optimasi yaitu FirstOnly dan OptimizeBenefit
yang juga sudah digunakan pada penelitian sebelumnya oleh Nurdian Setyawan (2008). Hasil dari tahap ini adalah halaman-halaman mana saja yang perlu ditambahkan sebagai
hyperlink ke dalam halaman targetnya. Pernambahan hyperlink ini disimpan dalam bentuk tabel database mysql.
Visualisasi
Untuk memperjelas hasil akhir penelitian ini maka perlu disimulasikan atau divisualisasikan hasil rekomendasi tersebut ke dalam web
artificial. Di dalam web artificial ini langkah-langkah pengguna untuk mendapatkan hasil rekomendasi hyperlink. Pertama, melalui form input pengguna memasukkan file data log.
Kedua, klik data preprocessing. Pada proses ini membutuhkan waktu proses yang tergantung dari ukuran file data log yang diberikan oleh pengguna. Ketiga, klik data processing. Pada proses ini data log yang sudah dilakukan
8
Proses visualisasi akan menggunakan gambar dengan format SVG (Scalable Vector Graphic) yang berbasis XML sehingga visualiasasi ini akan bersifat dinamis mengikuti data log website yang dimasukkan ke dalam sistem. Agar visualisasi ini mudah dipahami oleh pengunjung maka akan dibedakan struktur awal website dan halaman yang ditambahkan oleh sistem.
Lingkungan Pengembangan Sistem
Spesifikasi perangkat keras yang digunakan dalam pengembangan sistem dapat berpengaruh pada kinerja algoritme yang digunakan. Perangkat lunak pada komputer yang akan berpengaruh pada cara kerja sistem secara keseluruhan. Maka sistem akan berkerja dengan baik apabila digunakan pada perangkat lunak yang sama saat sistem ini dikembangkan. Perangkat keras dan perangkat lunak yang digunakan pada penelitian ini adalah :
1. Perangkat Keras
Processor : Intel Pentium Dual CPU T2390 1,86GHz
Memory : 1GB
Harddisk : 120 GB
Keyboard dan Mouse
2. Perangkat Lunak
Sistem Operasi Microsoft® Windows Vista Ultimate
Apache 5.0.51a sebagai web server
Notepad++ sebagai editor halaman web dan pemrogramannya
MySQL 5.0.51a sebagai database managementserver
PHPMyAdmin 2.11.4 sebagai tool
database MySQL
Adobe Photoshop CS2 untuk membuat desain grafis
Opera version 9.64 sebagai browser.
Batasan Sistem
Batasan-batasan sistem dibutuhkan agar sistem dapat bekerja sesuai dengan tujuan pengembangannya. Batasan-batasan ini yang nantinya akan digunakan untuk pengembangan sistem menjadi lebih kompleks. Batasan-batasan sistem rekomendasi penambahan link pada website berdasarkan data logwebsite yang sedang dikembangkan saat ini antara lain :
1. Data log yang digunakan sebagai input masih data log dari apache-server. Belum mendukung data log lainnya.
2. Format data log harus sesuai dengan CLF (Common Log Format) yaitu :
172.17.1.146- - [20/Mar/2006:00:25:12 +0700] "GET /ipb-bhmn HTTP/1.1" 301 324
3. Data log harus berupa file teks. Belum mendukung file hasil kompresi seperti .gz
atau .zip.
4. Sistem tidak dapat digunakan secara bersamaan oleh 2 pengguna atau lebih.
HASIL DAN PEMBAHASAN Penambahan Tabel Database
Pada penelitian yang menggunakan data log
asli dari website ini membutuhkan penambahan tabel pada database. Namun ada beberapa tabel
database yang digunakan pada penelitian sebelumnya oleh Nurdian Setyawan (2008) masih tetap akan digunakan pada penelitian kali ini. Database yang masih tetap akan digunakan antara lain : tb_exp_locations, tb_hsl_firstonly
dan, tb_hsl_optbenefit. Penambahan tabel yang dilakukan dapat dilihat pada Tabel 1.
Tabel 1 Tabel database tambahan
Nama Tabel Keterangan
data_cleaning Tabel untuk menyimpan data
log hasil tahap
data cleaning.
session_identifcation Tabel untuk menyimpan hasil tahap session identification
yaitu sesi kunjungan dari masing-masing pengunjung.
path_completion Tabel untuk menyimpan hasil dari proses path completion.
transaction_identification Tabel untuk menyimpan hasil
9
Tabel 1 Tabel database tambahan lanjutan
Nama Tabel Keterangan
path_url Tabel untuk menyimpan jenis-jenis halaman yang diminta oleh pengunjung dan jumlah total kunjungan terhadap halaman tersebut
struktur_web Tabel untuk menyimpan struktur awal website yang akan digunakan untuk visualisasi.
Atribut-atribut tabel tersebut dapat dilihat pada Lampiran 1. Sehingga total dari tabel
database yang digunakan dalam pengembangan sistem ini adalah 9 (sembilan) buah tabel. Namun dari kesembilan tabel tersebut saling berdiri sendiri atau tidak mempunyai
relationship antar tabel.
Pengambilan Data Log asli Website
1. Proses input data
Pada penelitian ini data log yang digunakan adalah data log website www.eramuslim.com. Data log ini merupakan data log hasil penyimpanan pada apache-server bulan januari 2009. Jumlah record yang ada pada data log ini adalah 112.219 baris. Jumlah data yang akan digunakan sebagai record di dalam ini dibatasi hanya 10.000 baris. Hal ini dikarenakan keterbatasan perangkat keras dalam pengembangan sehingga untuk data yang lebih besar dari itu akan membutuhkan waktu untuk
data processing yang sangat lama. Selanjutnya dilakukan partisi sesuai kebutuhan yaitu 10.000 baris per file yang akan digunakan sebagai data
input. Dengan demikian, rata-rata besarnya ukuran file input data tersebut adalah 1MB. Untuk penelitian ini hanya akan diambil 5 file
pertama hasil partisi. Contoh dari baris yang ada di dalam data log dapat dilihat pada Lampiran 2.
Sistem untuk pertama kali akan meminta
user untuk memasukkan file atau data tersebut untuk di-upload ke dalam sistem. Setelah proses
input data berhasil kemudian akan dilakukan
parsing terhadap data tersebut. Pada proses
parsing ini hanya beberapa informasi saja yang akan diambil yaitu alamat IP, path atau halaman dan waktu. Kode yang digunakan untuk parsing
yaitu sebagai berikut :
//menghapus tabel data_cleaning drop_table(data_cleaning);
//membuat tabel data cleaning create_table(data_cleaning);
//lokasi file datalog
$log_file = 'datalog/datalog.log';
//pattern untuk format data log apache server
$pattern = '/^([^ ]+) ([^ ]+) ([^ ]+) (\[[^\]]+\]) "(.*) (.*) (.*)" ([0-9\-]+) ([0-9\-([0-9\-]+)$/';
$patternGambar = array( 1 => "/jpg$/",2 => "/gif$/",3 => "/jpeg$/",4 => "/JPG$/",5 => "/GIF\$$/",6 => "/JPEG$/",7 => "/ico$/",8 => "/png$/",9 => "/js$/",10 => "/\.css$/");
$fh = fopen($log_file,'r') or die
($php_errormsg); $i = 1;
$requests = array(); $ip = array();
while (! feof($fh)) {
// read each line and trim off
leading/trailing whitespace
if ($s = trim(fgets($fh,1024))) { if
(preg_match($pattern,$s,$matches)) {
list($whole_match,$remote_host,$logname, $user,$time,$method,$request,$protocol,$
status,$bytes,$referer,$user_agent) =
$matches; $jumlahRaw++;
$time = convertTime($time); for($j=1;$j<=14;$j++){
if(preg_match($patternGambar[$j] ,$request,$a)){
$status = 'del'; }
}
if($status != 'del'){
$query = "INSERT INTO
data_cleaning VALUES
('$remote_host','$time','$request') ";
$hasil = mysql_query($query) or
die (mysql_error()); }
$msg = "<a4 id='main'>BERHASIL PARSING DATA</a4><br /><br /><br />
<p id='main'><a
href='index.php?page=dat&sub=view'>L
ihat Data Log</a> || <a
href='index.php?page=pra&sub=cle'>Pr aprocessing</a></p>";
10
}else {
error_log("Can't parse line $i: $s"); echo "<a3 id='main'>FORMAT DATA LOG TIDAK SESUAI</a3><br /><br />";
echo " <p id='main'><a
href='index.php?page=dat&sub=inpu t'><< Input Data Baru</a></p>"; return (1);
} $i++; }
fclose($fh) or die($php_errormsg);
2. Penentuan Halaman Target
Dalam penelitian ini untuk menentukan halaman menggunakan asumsi bahwa halaman target itu adalah leaf dari struktur website
tersebut dan hanya diambil 15 halaman target yang paling banyak dikunjungi oleh pengunjung. Untuk itu harus dilakukan penghitungan terhadap kunjungan website untuk masing-masing halaman website. Kode php yang digunakan untuk penghitungan ini adalah
$query = "SELECT request from
data_cleaning";
$result = mysql_query($query) or die (mysql_error()); while($row=mysql_fetch_array($result)){ extract($row); $path[$request] +=1; } arsort($path);
foreach ($path as $pathurl => $hits){
if($i<50){
mysql_query("UPDATE path_url SET hits
= '$hits' where request =
'$pathurl'");
$i++;
}
}
Dari tahap ini dihasilkan 15 halaman yang akan digunakan sebagai halaman target. Halaman target yang dihasilkan untuk file
partisi 1 (satu) dapat dilihat pada Lampiran 3. Dari hasil penentuan halaman target tersebut dapat dilihat dari 10.000 baris halaman yang paling banyak diminta oleh pengguna adalah
“
/berita/palestina/hamas-hancurkan-tujuh-tank-zionis.htm” dengan nilai kunjungan sebanyak
313 kali. Halaman yang paling banyak
dikunjungi kedua adalah
“/ berita/palestina/israel-gencatan-senjata-sepihak-gagal-tumbangkan-hamas.htm” dengan kunjungan sebanyak 253 kali. Begitu juga untuk 15 halaman target yang lainnya.
Data Preprocessing
1. Data Cleaning
Untuk tahap data cleaning ini sudah dilakukan secara sekaligus saat proses parsing
data. Sehingga sampai tahap ini data sudah dianggap bersih dari path yang diminta pengunjung yang formatnya bukan format halaman. Contoh data hasil data cleaning yang disimpan di dalam tabel database dapat dilihat pada Lampiran 4.
2. User Identification
Alamat IP dari data log yang diproses sudah mengalami proses pengkodean / enkripsi, sehingga alamat IP yang ditunjukkan bukan alamat IP yang sebenarnya dari pengunjung. Hal ini untuk menjaga kerahasiaan dari pengunjung website itu sendiri. Untuk melakukan simulasi percobaan pada sistem ini digunakan 5 bagian dari data log. Untuk bagian 1 terdapat 5.748 pengunjung yang berbeda. Sedangkan untuk bagian 2 terdapat 5.719 pengunjung. 5.722 pengunjung untuk bagian 3, 5.599 pengunjung untuk bagian 4 dan untuk bagian 5 terdapat 5.835 pengunjung yang mempunyai alamat IP berbeda. Contoh alamat IP yang sudah dikodekan dan disimpan di dalam database dapat dilihat seperti pada Lampiran 5.
3. Session Identification
Tahap session identification dilakukan dengan cara menghitung. Contoh session dan pengguna yang disimpan di dalam database
dapat dilihat pada Lampiran 6. Satu pengunjung dapat memiliki lebih dari satu session, Namun satu session hanya dimiliki oleh satu pengunjung. Seperti dapat dilihat pengguna dengan alamat IP 1022457008 mempunyai 2
sessionyaitu “1232266477” dan “1232266267”. Sedangkan untuk session “1231140272” hanya dimiliki oleh pengguna dengan alamat IP 1023754728. Tidak ada selain pengguna tersebut yang mempunyai session
“1231140272” walaupun pengguna tersebut mempunyai banyak session.
4. Path Completion
11
Kode php untuk mengelompokkan ini adalah sebagai berikut :
//menghapus tabel session_identification
drop_table(path_completion);
//membuat tabel session_identification
create_table(path_completion);
$query = "SELECT * from
session_identification order by
session";
$result = mysql_query($query) or
die (mysql_query(error));
while($row= mysql_fetch_array($result)){
extract($row);
if(empty($sessionNow)){
$sessionNow = $session;
$pathNow = $request;
}
else{
if($sessionNow == $session){
$pathNow = "$pathNow,$request";
}else{
mysql_query("INSERT INTO path_completion VALUES
('$user','$sessionNow','$pathNow')");
$sessionNow = $session;
$pathNow = $request;
}
}
}
Hasil dari path completion dapat dilihat pada Lampiran 7. Dari hasil tersebut dapat dilihat bahwa pengguna dengan alamat IP 2085692385 dengan session “1231140062” hanya membuka 1 (satu) saja pada website ini yaitu halaman /berita/dakwah- mancanegara/amira-mayorga-yesus-bahkan- tidak-menyuruh-umatnya-untuk-menyembah-dirinya.htm”. Sementara untuk pengguna dengan alamat IP 2107713143 dan session
“1231140066” membuka lebih dari satu halaman. Halaman yang dibuka yaitu /berita/dunia/mahasiswa-indonesia-di-mesir-gelar-aksi-solidaritas.htm” kemudian pengguna melanjutkan kunjungannya dengan membuka
“ /manhaj-dakwah/hujatan-terhadap-dakwah-al-banna.htm” dan “ berita/palestina/hamas-hancurkan-tujuh-tank-zionis.htm”.
5. Transaction Identification
Data dari hasil path completion akan diproses pada tahap selanjutnya yaitu tahap
transaction identification. Dari urutan-urutan
tingkah laku pengunjung pada path completion
akan dilihat halaman target pada urutan tersebut. Jika pengunjung sudah menemukan halaman target maka kemudian proses akan mulai dari awal namun proses pembacaan data hasil path completion tetap akan diteruskan.
Hasil dari tahap transaction identification
ini selanjutnya akan disimpan ke dalam tabel
transaction_identification yang nantinya akan menjadi data input untuk tahap processing
menggunakan algoritme optimasi. Contoh data yang disimpan di dalam database dapat dilihat pada Lampiran 8. Dari tabel ini dapat dilihat setiap transaksi yang terjadi begitu pendek. Pengunjung tidak perlu bersusah payah untuk menemukan halaman target yang dicarinya. Bahkan sering kali pengunjung dapat langsung menemukan halaman target tersebut. Hal ini dapat sebagai indikator awal bahwa struktur dari website ini sudah cukup baik yaitu dengan menempatkan hyperlink ke halaman target pada halaman utama atau halaman pertama pengunjung mengunjungi website tersebut.
Pengguna dengan alamat IP 1009985486
membuka halaman “
/berita/palestina/hari-ke- 21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm”. Halaman tersebut oleh sistem diidentifikasi sebagai halaman target. Maka pengguna ini sudah langsung dapat menemukan halaman target dengan mudah dan dengan satu kunjungan saja. Kemudian pengguna langsung meninggalkan
website. Berbeda dengan pengguna dengan alamat IP 1039598537. Pengguna ini membuka 5 (lima) halaman pada kunjungannya. Halaman pertama yang diminta adalah
“ /berita/dunia/yusuf-qardawi-teruslah-turun-ke-jalan.htm”. halaman berikutnya adalah
“ //nasihat-ulama/israel-harus-dihapus-dunia-islam-perlu-direformasi.htm,
/konsultasi/konspirasi/kontroversi-natal-25-desember-2.htm,
/berita/dunia/yahudi-menentang-yahudi.htm” dan
/berita/dunia/yordania-akan-bekukan-hubungan-diplomatik-dengan-israel.htm” karena akhir dari ketiganya tersebut adalah halaman target maka pengguna ini dapat dikatakan telah melakukan 3 (tiga) kali transaksi.
Data Processing
1. Pencarian Lokasi Harapan
Langkah pertama dari tahapan data processing adalah pencarian lokasi harapan. Lokasi harapan sebagai indikator awal ada atau tidaknya pengunjung yang tersesat di dalam
12
Semakin banyak lokasi harapan yang dihasilkan maka semakin banyak pula pengunjung yang tersesat. Hal ini berarti struktur dari website
tersebut masih kurang baik. Sebaliknya jika lokasi harapan yang dihasilkan sedikit atau tidak ada sama sekali maka artinya semakin sedikit pula pengunjung yang tersesat yang berarti ada indikasi bahwa struktur website
tersebut sudah baik.
Pada penelitian ini ditemukan beberapa halaman lokasi harapan. Contoh lokasi harapan dapat dilihat pada Lampiran 9. Pada baris pertama dapat dilihat bahwa halaman target
adalah “
/berita/dunia/iran-bantu-gaza-bentuk- pasukan-islam-dan-hentikan-ekspor-minyak-ke-as.htm” dan kolom E1 yaitu
“/konsultasi/sehat/alergi-kulit.htm”. Sedangkan
pada kolom aktual adalah
“ /konsultasi/sehat/dima-klinik-bekam-yang-baik.htm”. Hal ini berarti ada pengguna yang mengharapkan halaman target
“ /berita/dunia/iran-bantu-gaza-bentuk-pasukan-islam-dan-hentikan-ekspor-minyak-ke-as.htm”
pada lokasi harapan “
/konsultasi/sehat/alergi-kulit.htm” sedangkan hyperlink halaman target tersebut berada pada lokasi aktual
“ /konsultasi/sehat/dima-klinik-bekam-yang-baik.htm”. Begitu juga seterusnya untuk baris -baris yang lain dalam tabel tb_exp_locations.
2. Penentuan Halaman Rekomendasi
Penelitian ini tidak menemukan halaman rekomendasi walaupun ditemukan lokasi harapan. Hal ini dikarenakan perbedaan karakteristik data yang digunakan pada penelitian ini dengan data dummy pada penelitiaan sebelumnya. Karakteristik data yang digunakan pada saat ini masih susah membedakan halaman indeks dan halaman target. Sehingga untuk menentukan halaman target harus menggunakan asumsi bahwa halaman tersebut berada pada leaf struktur
website dan mempunyai jumlah kunjungan halaman paling banyak. Jika dilihat dari website
aslinya ternyata memang pada halaman awal sudah terdapat hyperlink menuju ke halaman target, sehingga pengunjung tidak perlu bersusah payah mencari halaman targetnya.
Apabila sistem tidak menghasilkan halaman rekomendasi hal ini dapat berarti struktur
website tersebut sudah baik atau bisa juga disebabkan oleh perbedaan karakteristik data pada algoritme Find expectation Location dan algoritme optimasi. Faktor lain yang dapat mempengaruhi halaman rekomendasi adalah panjang pendeknya path completion. Jika terlalu pendek kemungkinan sistem tidak akan
menghasilkan halaman rekomendasi. Kemudian faktor yang berikutnya adalah kemungkinan sudah ada hyperlink ke halaman target pada halaman utama.
Visualisasi
Sistem ini merupakan sebuah sistem yang berbasis web, sehingga tampilan atau visualisasi dari sistem ini juga berupa website yang di dalamnya menunjukkan proses-proses yang akan dilakukan terhadap data yang dimasukkan. Pertama kali pengguna sistem ini akan memasukkan data log website berupa file teks. Tahap selanjutnya adalah tahap data preprocessing. Di dalam tahapan ini terdapat banyak sub tahap data preprocessing.
Pada tahapan visualisasi struktur website
digunakan gambar dengan format SVG (Scalable Vector Graphic) sebagai salah satu format gambar yang bersifat dinamis. Visualisasi struktur website hanya dapat memperlihatkan struktur awal dari website
tanpa adanya penambahan hasil rekomendasi. Hal ini dikarenakan data pada penelitian ini tidak menghasilkan halaman rekomendasi. Visualisasi ini menggunakan simbol lingkaran (circle) untuk mewakili path atau halaman. Untuk hubungan keterkaitan atau hyperlink
antarhalaman disimbolkan dengan menggunakan lurus berwarna biru. Nama-nama halaman website disimbolkan dengan angka. Angka yang digunakan tergantung dari banyaknya halaman yang divisualisasikan. Sedangkan untuk hyperlink hasil rekomendasi akan digambarkan dengan garis putus-putus dengan warna merah.
Karena penelitian ini tidak menghasilkan halaman rekomendasi maka visualisasi hasil penelitian data log hanya menampilkan struktur awal website tanpa halaman rekomendasi seperti dapat dilihat pada Lampiran 10. Untuk menguji visualisasi struktur website awal dan struktur website yang sudah ditambahkan
hyperlink rekomendasi maka kemudian digunakan data dari hasil penelitian sebelumnya oleh Nurdian Setyawan (2008) yang menggunakan data dummy. Hasil dari kedua algoritme optimasi (FirstOnly, OptimizeTime) akan diambil untuk menguji visualisasi. Pada hasil algoritme FirstOnly nilai maksimal dari
threshold adalah 44 dengan nilai maksimal dari
minsup adalah 10%. Sedangkan untuk algoritme
OptimizeBenefit nilai maksimal threshold
adalah 52 dengan nilai maksimal minsup juga 10%. Parameter yang digunakan adalah
13
Visualisasi hasil algoritme FirstOnly dapat dilihat seperti pada Lampiran 11. Nilai
threshold 37 dan minsup 7% menghasilkan 5 halaman rekomendasi. Sedangkan pada algoritme OptimizeBenefit menghasilkan 20 halaman rekomendasi. Visualisasi hasil algoritme Optimizebenefit dapat dilihat pada Lampiran 12. Hasil kedua algoritme ini menunjukkan halaman rekomendasi yang berbeda-beda sehingga menghasilkan struktur
website yang berbeda juga. Perbedaan pada algoritme ini diantaranya adalah pada algorirme
FirstOnly lokasi harapan yang dilibatkan hanya 1 (satu) lokasi harapan yaitu E1. Sedangkan pada algoritme OptimizeBenefit melibatkan 4 (empat) lokasi harapan yaitu E1, E2, E3, dan E4. Sehingga waktu yang dibutuhkan oleh kedua algoritme sangat berbeda.
KESIMPULAN DAN SARAN Kesimpulan
Penelitian ini telah berhasil melakukan tahapan data preprocessing dengan menggunakan data log asli dari website yang disimpan dalam bentuk database mysql,
sehingga data yang nantinya akan diproses menggunakan algoritme optimasi (FirstOnly, OptimizeBenefit) harus melalui tahapan data preprocessing terlebih dahulu. Penelitian ini juga sudah dapat menampilkan struktur dari
website, baik struktur awal website maupun struktur yang sudah ditambahkan dengan halaman rekomendasi pada website tersebut. Visualisasi menggunakan SVG (Scalable Vector Graphic ) membuat visualisasi lebih dapat dimengerti oleh pengguna sistem dan lebih dinamis. Dengan demikian, jika dilakukan percobaan terhadap data log dari website lain, visualisasi ini tetap dapat digunakan.
Saran
Pada penelitian ini hanya digunakan data log
dari satu website. Untuk itu perlu dicoba menggunakan data dari beberapa website yang lain (dinamis maupun statis) yang sudah dapat dibedakan halaman target dan halaman indeks dari website tersebut.
DAFTAR PUSTAKA
Castellano G, Fanelli A M, Torsello M A. 2007.
Log Data Preparation For Mining Web Usage Patterns. maya.cs.depaul.edu/~classes/ect584/papers/ cms-kais.pdf [27 Maret 2009].
Catledge L, Pitkow JE. 1995. Characterizing Browsing Strategies in the World-Wide Web.
http://smartech.library.gatech.edu/dspace/bit stream/1853/3558/1/95-13.pdf [8 April 2008]
Cooley R, Mobasher B, Srivastava J. 1999.
Data Preparation for Mining World Wide Web Browsing Pattern.
http://citeseerx.ist.psu.edu/viewdoc/downloa d;jsessionid=ECF66FEC62532CF4833FIE2 AC36C5C93?doi=10.1.1.33.2792&rep=rep1 &type=pdf[8 April 2008]
Ivancy R, Vajk I. 2006. Frequent Pattern Mining in Web Log Data. Acta Polytechnica Hungarica, Vol. 3, No. 1.
Setyawan N. 2008. Rekomendasi Penambahan Link Pada Web Berdasarkan Pola Akses Pengguna [Skripsi]. Bogor. Program Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam.
Srikant R, Yang Y. 2001. Mining Web Log to Improve Website Organization. http://www.almaden.ibm.com/quest/papers/ www10_weblog.pdf [22 September 2007].
15
Lampiran 1 Atribut-atribut tabel database tambahan
Atribut-atribut tabel data_cleaning
Nama Kolom Tipe Data Keterangan
user varchar (20)
time int (11)
request varchar (255)
Atribut-atribut tabel session_identification
Nama Kolom Tipe Data Keterangan
user varchar (20)
session int(11)
request varchar(255)
Atribut-atribut tabel path_completion
Nama Kolom Tipe Data Keterangan
user varchar (20)
session int(11)
path Text
Atribut-atribut tabel transaction_identification
Nama Kolom Tipe Data Keterangan
User varchar (20)
Path Text
Atribut-atribut tabel path_url
Nama Kolom Tipe Data Keterangan
request_id int (10)
Request varchar (255)
Level int(2)
Hits int(10)
Atribut-atribut tabel struktur_web
Nama Kolom Tipe Data Keterangan
request varchar (255)
level int(2)
16
Lampiran 2 Contoh baris di dalam data log asli website
2059964514 - - 1231135663 "GET /berita/palestina/hamas-hancurkan-tujuh-tank-zionis.htm HTTP/1.1" - -
3415103478 - - 1231135737 "GET /konsultasi/sehat/efek-negatif-onani.htm HTTP/1.1" - -
3232243716 - - 1231135737 "GET / HTTP/1.1" - -
2093159844 - - 1231135737 "GET /ustadz-menjawab/jama-atau-salat-di-bus.htm HTTP/1.1" - -
3395102040 - - 1231135737 "GET /suara-kita/pemuda-mahasiswa/palestina-dan-sesuatu-yang-lain-di-athena.htm HTTP/1.1" - -
3399357710 - - 1231135737 "GET /berita/dakwah-mancanegara/dari-seorang-aktivis-neo-nazi-menjadi-seorang-muslim.htm HTTP/1.1" - -
2107764664 - - 1231135738 "GET / HTTP/1.1" - -
3414354954 - - 1231135738 "GET /berita/analisa/kegagalan-israel-terhadap-palestina.htm HTTP/1.1" - -
3232250711 - - 1231135738 "GET / HTTP/1.1" - -
2107951477 - - 1231135738 "GET / HTTP/1.1" - -
3415809354 - - 1231135738 "GET /berita/palestina/hamas-hancurkan-tujuh-tank-zionis.htm HTTP/1.1" - -
3399445510 - - 1231135738 "GET / HTTP/1.1" - -
3415103294 - - 1231135738 "GET / HTTP/1.1" - -
3400082610 - - 1231135739 "GET /oase-iman/balada-kesabaran.htm HTTP/1.1" - -
3415829541 - - 1231135739 "GET /berita/dunia/khalid-mishaal-murka-allah-menanti-israel-di-gaza-hamas-akan-menang.htm HTTP/1.1" - -
3400086450 - - 1231135739 "GET /berita/analisa/kegagalan-israel-terhadap-palestina.htm HTTP/1.1" - -
2107713927 - - 1231135739 "GET /berita/ HTTP/1.1" - -
3397119054 - - 1231135739 "GET / HTTP/1.1" - -
2887128181 - - 1231135739 "GET /berita/palestina/prioritas-israel-tumbangkan-hamas.htm HTTP/1.1" - -
3399000550 - - 1231135739 "GET /berita/dunia/yahudi-menentang-yahudi.htm HTTP/1.1" - -
2107920306 - - 1231135739 "GET / HTTP/1.1" - -
2033469383 - - 1231135739 "GET /syariah/bercermin-salaf/kemenangan-islam-di-syam-iraq-dan-yaman.htm HTTP/1.1" - -
2107740713 - - 1231135740 "GET /konsultasi/keluarga/menghadapi-ibu-yang-terlalu-merongrong-anaknya.htm HTTP/1.1" - -
2093158645 - - 1231135740 "GET /berita/dunia/khalid-mishaal-murka-allah-menanti-israel-di-gaza-hamas-akan-menang.htm HTTP/1.1" - -
2107698740 - - 1231135740 "GET /berita/dunia/israel-bahas-skenario-serangan-darat.htm HTTP/1.1" - -
167772467 - - 1231135740 "GET
/MSOffice/cltreq.asp?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1" - -
3399000550 - - 1231135740 "GET /berita/palestina/tahanan-palestina-di-penjara-israel-ancam-mogok-makan.htm HTTP/1.1" - -
2107959821 - - 1231135740 "GET /berita/palestina/hamas-tak-ada-dialog-jika-masih-ada-blokade-dan-agresi-israel.htm HTTP/1.1" - -
2093162966 - - 1231135741 "GET / HTTP/1.1" - -
17
Lampiran 3 Halaman Target
No URL Hits
1 /berita/palestina/hamas-hancurkan-tujuh-tank-zionis.htm 313
2 /berita/palestina/israel-gencatan-senjata-sepihak-gagal-tumbangkan-hamas.htm 253
3
/berita/dunia/pejuang-hamas-fatah-bersatu-abbas-tolak-negosiasi-dengan-israel.htm 235
4 /berita/dunia/yusuf-qardawi-teruslah-turun-ke-jalan.htm 201
5
/berita/dunia/pejuang-hamas-fatah-bersatu-abbas-tolak-negosiasi-dengan-israel.htm 155
6
/berita/dunia/iran-bantu-gaza-bentuk-pasukan-islam-dan-hentikan-ekspor-minyak-ke-as.htm 148
7
/berita/palestina/hari-ke-21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm 117
8
/berita/palestina/hari-ke-21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm 91
9 /berita/dunia/lemparan-batu-anak-anak-palestina-gentarkan-israel.htm 87
10 /berita/dunia/petani-israel-rugi-besar-akibat-geraikan-boikot.htm 77
11 /berita/dunia/yahudi-menentang-yahudi.htm 75
12 /berita/rss/int 74
13 berita/dunia/mahasiswa-indonesia-di-mesir-gelar-aksi-solidaritas.htm 74
14 /berita/dunia/gaza-kebohongan-pertama-obama.htm 67
18
Lampiran 4 Halaman yang diminta pengunjung
Alamat IP Waktu Halaman
1009870417 1231140571 /fiksi/perempuan-dan-cincin-di-jarinya-bag-1.htm
1009985486 1232267570 /berita/palestina/israel-gencatan-senjata-sepihak-gagal-tumbangkan-hamas.htm
1010047370 1231140659 /berita/dunia/aktris-hollywood-boikot-pengusaha-yahudi-zionis-as.htm
1010168901 1232266544 /berita/palestina/israel-gencatan-senjata-sepihak-gagal-tumbangkan-hamas.htm
1010168901 1232266708 /berita/palestina/hari-ke-21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm
1010168901 1232267009 /berita/palestina/hari-ke-20-israel-makin-membuktikan-dirinya-sebagai-penjahat-perang.htm
1010168901 1232267243 /suara-langit/undangan-surga/merindukan-mati-syahid.htm
1010180875 1231140232 /berita/dunia/iran-bantu-gaza-bentuk-pasukan-islam-dan-hentikan-ekspor-minyak-ke-as.htm
1010180875 1231140346 /berita/rss/int
1010180875 1231140678 /berita/rss/int
1010181361 1231140454 /berita/palestina/hamas-hancurkan-tujuh-tank-zionis.htm
1010181361 1231140599 /oase-iman/hijrah-kedua-sang-musashi.htm
1022369949 1232266528 /berita/palestina/hari-ke-21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm
1022369949 1232266536 /berita/palestina/hari-ke-21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm
1022457008 1232266477 /oase-iman/nikmat-berhijab.htm
1022458758 1232266267 /berita/palestina/hari-ke-21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm
1023754728 1231140479 /berita/dunia/yahudi-menentang-yahudi.htm
1023754728 1231140565 /berita/dunia/yordania-akan-bekukan-hubungan-diplomatik-dengan-israel.htm
1023754728 1231140651 /berita/palestina/hamas-hancurkan-tujuh-tank-zionis.htm
1023755303 1232227255 /berita/palestina/hari-ke-21-22-pertemuan-doha-dunia-arab-bekukan-hubungan-dengan-israel.htm
1023769619 1231140068 /konsultasi/konspirasi/kiamat-2012.htm
19
Lampiran 5 Alamat IP Pengunjung
Alamat IP
1123631938
1591339728
3399020594
2107729223
2033469383
3399016549
3399668931
3732719634
1916426500
2108061929
2107701710
1094176879
3395101756
168558991
1123636613
3393814199
3732719507
2107763467
3399174276
2107762877
2107754121
2085705930
2107704149
974793278
2107964410
1920562491
1988653054
3393599237
2107688481
3411021270
20
Lampiran 6 Session identification
Alamat IP Session