SISTEM ANALISIS KONTEN
WEBSITE
MENGGUNAKAN
DATA
CLICKSTREAM
DAN ALGORITME APRIORI PADA
REKAMAN SESI LOG
(STUDI KASUS PADA KEMENTERIAN PERTANIAN INDONESIA)
SUPRIYADI
SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR
PERNYATAAN MENGENAI TESIS DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA*
Dengan ini saya menyatakan bahwa tesis berjudul Sistem Analisis Konten
Website Menggunakan Data Clickstream pada Rekaman Sesi Log adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apapun kepada perguruan tinggi manapun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.
Bogor, November 2013
Supriyadi
NRP G651110581
RINGKASAN
SUPRIYADI. Sistem Analisis Konten Website Menggunakan Data Clickstream pada Rekaman Sesi Log. Dibimbing oleh YANI NURHADRYANI dan ARIF IMAM SUROSO
Situs Web (Website) merupakan satu set halaman web yang saling berhubungan, biasanya meliputi sebuah homepage, umumnya terletak pada server
yang sama, disiapkan dan dipelihara sebagai kumpulan informasi oleh perorangan, kelompok atau organisasi. Penggalian data (data mining) pada sebuah server website mengenai data clickstream biasanya dilakukan oleh pengembang dan pemilik web tersebut. Secara umum ada tiga tahap penting dalam penggalian data
website yang perlu dilakukan, langkah pertama yaitu untuk membersihkan data sebagai iterasi awal dan mempersiapkan untuk mengambil data pola penggunaan oleh pengguna situs Web. Langkah ke dua adalah mengekstrak pola penggunaan dari data yang sudah diperoleh, dan langkah ke tiga adalah untuk membangun sebuah model prediktif didasarkan pada data yang sudah diekstrak sebelumnya.
Penelitian dilakukan dengan mengambil data sekunder Website Kementrian Pertanian Republik Indonesia atau Departemen Pertanian Republik Indonesia (Deptan) dengan menggunakan interval waktu log server selama dua bulan yaitu bulan November 2012 s.d. Desember 2012. Pemilihan data tersebut hanya sebagai sampel untuk dianalisis guna pengembangan perangkat lunak yang bisa mengolah data access log untuk periode kapan pun.
Pengolahan data dan proses preprocessing data log menggunakan perangkat lunak yang dikembangkan berbasis web dan disimpan dalam DBMS mysql. Pengembangan perangkat lunak komputer tersebut menggunakan analisis database dengan mengacu pada analisis keranjang belanja dengan minimum
support dan confidence yang ditentukan sebesar 1% dan 0.2%. Dari hasil analisis diperoleh halaman yang memiliki akses tertinggi adalah halaman index1.php. Walaupun /index1.php merupakan halaman yang memiliki akses tertinggi hal tersebut tidak menunjukan halaman tersebut paling menarik kontennya karena /index1.php adalah default-nya halaman utama website Deptan. Halaman yang memiliki hits tertinggi selain halaman utama (/index1.php) adalah halaman /event.php. /respon.php, /pengumuman/cover_es.htm, /wap/index.php, /tampil.php, /diralamatskpd/tampil.php dan /news/detail.php. Pada proses scan
ke2 diperoleh tujuh kaidah assosiasi yang memenuhi. Untuk pengembangan konten yang berkaitan dengan link maka bisa ditempatkan sugesti link dari halamanhalaman yang memenuhi kaidah ke halaman yang memiliki hits yang rendah. Website Deptan memiliki ratarata kunjungan halaman web (hits) yang relatif merata untuk setiap halamnnya, hal tersebut dilihat dari rata-rata nilai
support dan confidence yang kecil, dan yang tertinggi nilai support-nya adalah sekitar 8%.
SUMMARY
SUPRIYADI. Sistem Analisis Konten Website Menggunakan Data Clickstream
pada Rekaman Sesi Log. Supervised by YANI NURHADRYANI and ARIF Pertanian Republik Indonesia atau Departemen Pertanian Republik Indonesia (Deptan) with the interval of time using server log for two months ie November 2012 sd December 2012. The selection of the data is only as a sample to be analyzed in order to develop software that can process data access logs for the period at any time.
@ Hak Cipta Milik IPB, Tahun 2013
Hak Cipta Dilindungi Undangundang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik atau tinjauan suatu masalah ; dan pengutipan tidak merugikan kepentingan IPB
SISTEM ANALISIS KONTEN
WEBSITE
MENGGUNAKAN
DATA
CLICKSTREAM
DAN ALGORITME APRIORI
PADA
REKAMAN SESI LOG
(STUDI KASUS PADA KEMENTRIAN PERTANIAN INDONESIA)
SUPRIYADI
Tesis
Sebagai Salah Satu Syarat untuk Memperoleh Gelar Magister Komputer
pada
Program Studi Ilmu Komputer
SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR
Judul Penelitian : Sistem Analisis Konten Website Menggunakan Data
Clickstream dan Algoritme Apriori Pada Rekaman Sesi Log.
Nama : Supriyadi
NIM : G651110581
Disetujui oleh
Komisi Pembimbing
Dr Yani Nurhadryani, SSi, MT Dr Arif Imam Suroso, MSc
Ketua Anggota
Diketahui oleh,
Ketua Program Studi Dekan Sekolah Pascasarjana
Ilmu Komputer
Dr Yani Nurhadryani, SSi, MT Dr Ir Dahrul Syah, MScAgr
Puji syukur penulis panjatkan kehadirat Allah SWT atas segala karunia-Nya sehingga tesis ini berhasil diselesaikan. Tema yang diambil dalam penelitian ini adalah rekaman data sesi log web server, dengan judul Sistem Analisis Konten
Website Menggunakan Data Clickstream dan Algoritme Apriori Pada Rekaman Sesi Log. Tesis ini disusun sebagai salah satu syarat untuk memperoleh gelar Magister Komputer pada Program Ilmu Komputer Sekolah Pascasarjana Institut Pertanian Bogor.
Pada kesempatan ini penulis menyampaikan penghargaan dan ucapan terima kasih kepada :
1. Ibu Dr Yani Nurhadryani, SSi, MT dan Bapak Dr Arif Imam Suroso, MSc selaku komisi pembimbing yang telah meluangkan waktu, tenaga dan pikiran sehingga tesis ini dapat diselesaikan.
2. Bapak Dr Irman Hermadi, MS selaku dosen penguji yang telah memberikan arahan dan masukan untuk perbaikan tesis ini.
3. Kedua orangtuaku Bapak (alm) dan Ibu tercinta, yang selalu tak kenal lelah mendukung dan mendoakan siang dan malam.
4. Keluargaku tercinta yang selalu membantu dan berdoa siang dan malam untuk kelancaran penyusunan laporan tesis ini.
5. Staff Pengajar Program Studi Ilmu Komputer
6. Staff Administrasi Departemen Ilmu Komputer atas kerja samanya membantu kelancaran proses administrasi hingga akhir studi.
7. Pimpinan dan staff Pusdatin Kementerian Pertanian Indonesia yang telah membantu dalam memberikan arahan di tempat penelitian dan menyediakan data utama dalam penelitian ini.
8. Rekan-rekan di STMIK Kharisma Karawang
9. Rekan-rekan MKOM13 yang setia berdiskusi dan membantu dengan ikhlas.
Penulis menyadari bahwa masih banyak kekurangan dalam penulisan tesis ini, namun demikian penulis berharap tesis ini dapat bermanfaat untuk bidang ilmu komputer, bidang pendidikan dan bidang umum lainnya.
Bogor, November 2013
DAFTAR TABEL ix
2 TINJAUAN PUSTAKA 5
Data Clickstream 5
Web Mining 5
Analisis Keranjang Belanja 7
SDLC Model 8
3 METODE PENELITIAN 9
Bahan Penelitian 9
Alur Penelitian 9
Memilih Data Log 10
Pra Proses 11
Transformasi Data 18
Penemuan dan Analisis Pola 24
4 HASIL DAN PEMBAHASAN 31
Pemecahan data Log dan Konversi ke file .csv 31 Membersihkan Data dan Pemilihan String 31
Struktur Data Pohon dan Membentuk Node 32
Analisis Database 34
Analisis Asosiasi 34
Pengembangan Sistem Komputer untuk Pengolahan Data 37
5 SIMPULAN DAN SARAN 46
Simpulan 46
Saran 46
DAFTAR PUSTAKA 47
Halaman
1 Spesifikasi berkas bahan penelitian 9
2 Penjelasan format string log Web Server Apache 11
3 Pengelompokan data log dan penggunaannya 13
4 Jenisjenis status HTP 15
5 Contoh format data log yang akan diteliti 17
6 Penguraian String Request 19
7 Contoh kumpulan file yang diakses oleh pegguna (host) 20 8 Pengkodean struktur direktori file dalam halaman web sebagai node 22
9 Rangkaian (sequential) akses halaman Web 22
10 Sebaran frekuensi akses halaman web 23
11 Pemisahan string dengan spasi kosong 24
12 Pemisahan string user-agent dengan spasi kosong 25
13 Daftar sub-domain situs web Deptan 25
14 Keterangan penulisan url 26
15 Contoh transaksi akses node 28
16 Data hasil pemecahan file access_log 31
17 Tahapan pembersihan data transaksi web Deptan 31
18 Daftar node 33
19 Hasil scan/prunning pertama kandidat 1itemset 35 20 Hasil scan/prunning kedua kandidat 2itemset 36 21 Hasil perhitungan support dan confidence kaidah asosiasi 2itemset 37
22 Definisi Use Case 38
23 Uraian Skenario Impor Data Log 39
24 Uraian Skenario Bersihkan Data Log 40
25 Uraian Skenario Membuat Node 40
26 Uraian Skenario Membuat Node 41
27 Uraian Skenario Membuat 1Itemset Node 42
Halaman
1 Tahapan utama proses penelitan 9
2 Tahapan rinci proses penelitan 10
3 Ilustrasi Proses Pemecahan data log 11
4 Ilustrasi Proses konversi ke file csv 12
5 Contoh representasi struktur pohon Web Deptan 24
6 Struktur data Pohon 30
7 Skema pembentukan tabel log 37
8 Use Case Diagram 43
9 Class Diagram 44
DAFTAR LAMPIRAN
Halaman
1 Sequence Diagram 50
2 Tampilan antarmuka aplikasi 53
3 Struktur data tabel 56
1 PENDAHULUAN
Latar Belakang
Situs Web (Website) merupakan satu set halaman web yang saling berhubungan, biasanya meliputi sebuah homepage, umumnya terletak pada server
yang sama, disiapkan dan dipelihara sebagai kumpulan informasi oleh perorangan, kelompok atau organisasi. Semakin hari semakin banyak pengguna yang mengakses Website, hal tersebut mengakibatkan terjadinya globalisasi informasi. Pengguna bisa dengan bebas mengunggah dan mengunduh data dalam berbagai bentuk berkas digital melalui jaringan internet sesuai dengan kemampuan dan kebutuhan informasi yang dicari.
Hal utama yang melatarbelakangi penelitian ini adalah perilaku pengunjung sangat bervariasi tapi keseluruan aktifitasnya terekam semua oleh Web Server dan disimpan dalam bentuk file offline. File tersebut dikenal dengan dama file access.log atau session.log yang isinya terdiri dari data aktifitas log suatu server
web. Data tersebut merupakan rekaman setiap kali pengguna melakukan perubahan proses klik (clickstream) terhadap link yang ada dalam halaman web,
dapat dianalisis, digali (mining) menjadi suatu informasi bagi pengembang web
dalam mengembangkan web-nya.
Penggalian data (data mining) pada sebuah server website mengenai kontennya biasanya dilakukan oleh pengembang dan pemilik web tersebut. Secara umum ada tiga tahap penting dalam penggalian data website yang perlu dilakukan (Srivastava et al. 2000), langkah pertama yaitu untuk membersihkan data sebagai iterasi awal dan mempersiapkan untuk mengambil data pola penggunaan oleh pengguna situs Web. Langkah ke dua adalah mengekstrak pola penggunaan dari data yang sudah diperoleh, dan langkah ke tiga adalah untuk membangun sebuah model prediktif didasarkan pada data yang sudah diekstrak sebelumnya. Seperti yang dilakukan oleh Montgomery et al. (1999) yang dalam penelitiannya lebih menekankan pada rute (path) klik yang dilakukan oleh pengguna Website dengan melakukan penambangan data (mining) secara real time. Kemudian Sule Gunduz dan Tamer Ozsu (2003) juga melakukan analisis Clickstream untuk mengembangkan model prediksi dengan merepresentasikan prilaku pengguna situs Web dalam bentuk pohon prilaku (tree). Penelitian tersebut lebih menekankan pada penelahan data yang berkaitan dengan prilaku pengguna situs
web, sehingga data rekaman prilaku pengguna situs Web tersebut dapat digunakan pihak pengembang web.
Dengan memadukan analisis empiris, Tingliang Huang (2012) memanfaatkan analisis Clickstream untuk melakukan penelitian pada bidang
Management Inventory dengan fokus bahasan pada manfaat penelaahan pengguna Web untuk mengelola data persediaan barang dengan menggunakan analisis empiris.
bagian dari teknik dalam Web Usage Mining (WUM), yang bisa dikembangkan sebagai Business Intelligence (BI) dengan melakukan klasifikasi pengguna (Abdurrahman et al. 2009). Sehingga mendorong para peneliti untuk ikut berpartisipasi dalam mengembangakan perangkat lunak untuk menganalisis data
clickstream. Ada yang menggunakan Pemrograman Java (Dinucă 2012) dan algoritme apriori untuk mengembangkan aplikasi komputer yang bisa menggali informasi dari data clickstream. Karena besarnya data teks yang diolah dibutuhkan banyak teknik untuk mereduksi waktu pengolahan data access log, seperti menggunakan teknik komputasi paralel (Wang Tong et al. 2005).
Perumusan Masalah
Proses pembentukan data clickstream terjadi secara kontinyu tanpa henti selama web server dinyalakan, dan semua aktifitas log direkam semua walaupun sebenarnya bisa diatur sesuai kebutuhan, sehingga data yang akan dijadikan bahan kajian akan bercampur dengan data lainnya. Dengan melihat data clickstream
tersebut dapat diperoleh rumusan masalah seperti berikut:
1. Proses perekaman data clickstream dilakukan tanpa henti dalam kurun waktu pengujian tertentu, sehingga file teks yang terbentuk sangat banyak.
2. Bagaimana mengelompokan dan membersihkan data clickstream sesuai dengan kebutuhan?
1. Menghasilkan data yang akurat sebagai acuan untuk mengembangkan konten Website agar pada pengembangan berikutnya bisa menjadi lebih efisien sesuai dengan kebutuhan user..
1. Pengembang Website
2. Pihak manajemen atau pengelola suatu instansi
Data statistik mengenai konten web yang dihasilkan bisa dijadikan acuan dalam mengambil kebijakan untuk pengembangan konten website institusinya. 3. Peneliti bidang Web Mining
Bisa dijadikan bahan informasi tambahan bagi para peneliti tentang implementasi Algoritme Apriori dalam menganalisis keterhubungan antar halaman Website.
Ruang Lingkup Penelitian dan Bahan Penelitian
Berkaitan dengan rentang waktu pelaksanaan penelitian ini, maka perlu dibatasi ruang lingkup penelitiannya supaya lebih terarah, yaitu sebagai berikut:
1. Penelitian difokuskan pada satu area Web Mining yaitu Web Usage Mining (WUM).
2. Aplikasi yang dikembangkan hanya untuk melakukan proses pre-processing
dan pemodelan data untuk WUM menggunakan algoritme Apriori.
3. Bahan data yang akan diolah hanya untuk data clickstream dari Apache Web Server.
4. Hasil akhirnya berupa data statistik yang bisa dijadikan acuan dalam pengembangan isi dari Website
5. Menganalisis data offline yakni bukan menganalisis data realtime secara langsung. Data berasal dari file yang diambil dari file akses log (access.log)
yang diambil dari Web Server Departemen Pertanian Indonesia (Deptan). 6. Dalam pelaksanaannya penelitian ini akan menggunakan bahan dan alat
sebagai berikut:
a. Data dasar adalah file access.log
b. Perangkat pengolah data menggunakan satu set sistem komputer dengan menggunakan Processor Intel Atom N450(1.66Ghz)
c. Web Server yang digunakan adalah yang berbasis Open Source yaitu Apache Web Server
d. Editor teks menggunakan Open Office, Blue Fish dan Geany
e. Bahasa Pemrograman bebasis Web (HTML, XML, JavaScript, AJAX, PHP dan CSS)
2 TINJAUAN PUSTAKA
Data Clickstream
Clickstream yaitu proses pencatatan atau perekaman data klik pada layar komputer yang dilakukan oleh pengguna pada saat browsing web atau menggunakan aplikasi perangkat lunak dengan lokasi analisis pada area halaman
web atau aplikasi, login pada klien atau di dalam web server, router, atau server proxy (Moe WW et al. 2004), atau Clickstream adalah serangkaian link yang sudah diklik oleh pengguna ketika mengakses halaman web (freedictionary 2013). Data clickstream ini biasanya disimpan dalam sebuah file access.log yang berada di web server. Setiap pengguna melakukan proses klik terhadap menu yang ada di monitor dalam hal ini halaman web, maka Web server akan merekamnya dan disimpan dalam file access.log. Sehingga akan banyak informasi dan data yang tersiimpan di dalamnya dan bisa dianalisis menggunakan metode yang ada dalam
data mining. Proses menganalisis data clickstream merupakan bagian dari Web Usage Mining (WUM) yang melakukan discovery data dengan menggunakan data sekunder yang ada pada web server, yaitu meliputi data access log, browser log, user profiles, registration data, user session, cookies, user queries dan juga data
mouse click (Abdurrahman et al. 2006).
Web Mining
Dengan adanya Website kita bisa menyampaikan informasi kepada khalayak ramai dengan mudah dan cepat tanpa batas wilayah, sehingga siapapun bisa mengasksesnya dengan bebas pula, kecuali yang menyertakan beberapa syarat akses. Sedangkan cara atau teknik data mining untuk mengekstrak data dari data
Web dikenal dengan istilah Web Mining (Srivastava 2005).
Ada tiga kelompok yang termasuk ke dalam Web Mining, yaitu : 1. Web Content Mining (WCM)
Merupakan kelompok Web Mining dengan melakukan proses ekstraksi menggunakan data yang berasal dari isi suatu dokumen Website (J. Srivastava 2005). isi suatu dokumen web tersebut bisa berupa teks, gambar, audio, video dan data record dalam bentuk list dan tabel. Hasil dari penelitian bidang WCM biasanya berupa klasifikasi Website dan implementasi pada mesin pencarian seperti Google.
2. Web Structure Mining (WSM)
Merupakan teknik dalam Web Mining dengan mengambil atau melakukan ekstraksi data yang berasal dari struktur halaman atau struktur dokumen sebuah Website (Srivastava, 2005). Halaman dianggap sebagai node dan
G={V,E}, dengan G adalah graph, V adalah verteks dan E adalah edge. Penelitian bidang WSM sangat bermanfaat untuk mengetahui pola prilaku pengguna atau pengunjung suatu Website.
3. Web Usage Mining (WUM)
Merupakan teknik analisis dan pencarian pola dalam clickstream dan keterhubungan data yang terkumpul atau terbentuk pada saat terjadi interaksi pengguna dengan sumber daya Website (Mobaser 2007). Secara umum ada tiga tahapan proses yang dilakukan dalam WUM, yaitu:
a. Pengumpulan data dan pra proses (data collection and pre-processing)
Pada tahap ini data Clickstream dibersihkan dan dipecah ke dalam beberapa kumpulan data transaksi pengguna yang menggambarkan aktifitas pengguna ketika mengakses Website. Pada tahapan ini yang diperhatikan adalah sumber dan tipe data (penggunaan data, isi data, struktur data dan pengguna data), tahapan pra proses (pembersihan data, identifikasi pageview, identifikasi pengguna, sessionization, pelengkapan jalur atau path dan integrasi data)
b. Pemodelan data untuk WUM
Untuk memudahkan dalam menentukan dan menganalisis pola maka perlu dilakukan proses pemodelan data yang sudah dibersihkan ke dalam bentuk yang lebih mudah dikerjakan dengan menggunakan teknik data mining,
biasanya dimodelkan dalam bentuk matriks, yaitu matriks transaksi dan matriks pageview.
c. Penemuan Pola (pattern discovery) dan Analisis Pola (pattern analysis)
Pada tahap ini dilakukan pencarian dan analisis pola biasanya menggunakan perumusan analisis yang ada dalam ilmu statistik yang meliputi analisis session, analisis klaster, analisis assosiasi dan korelasi menggunakan algoritme Apriori.
Adapun fungsi dari WUM dapat dijelaskan sebagai berikut (Pramudiono 2004): 1. Personalisasi
Melakukan personalisasi website sesuai dengan kebutuhan dan keinginan pengguna
2. Meningkatkan performa website
WUM menyediakan fasilitas untuk mendeteksi kepuasan pengguna, analisis trafik data, transmisi jaringan serta distribusi data, sehingga apabila dianalisis dengan baik akan dihasilkan bahan rujukan untuk meningkatkan performa website menjadi lebih baik.
3. Modifikasi dan pengembangan situs
Untuk mengembangkan website dibutuhkan data yang akurat mengenai kekurangan dan kelebihan suatu website, timbal balik informasi (feed back)
yang diberikan oleh pengguna website sangat berguna dalam mengambil keputusan rancang ulang website.
4. Karakteristik penggunaan
Analisis Keranjang Belanja (Market Basket Analysis)
Fungsi association rules seringkali disebut dengan analisis keranjang belanja (Market Basket Analysis) yang digunakan untuk menemukan relasi atau korelasi diantara himpunan itemitem. Analisis keranjang belanja adalah analisis dari kebiasaan membeli customer dengan mencari asosiasi dan korelasi antara itemitem berbeda yang diletakan customer dalam keranjang belanjanya. Analisis keranjang belanja dapat digunakan secara efektif pada bidang Web Mining
terutama untuk mengilustrasikan aturan assosiasi yang terdapat pada data log, misalnya terdapat aturan sebagai berikut:
Halaman X and Halaman Y implies Halaman Z (X and Y => Z), memiliki nilai
confidence 90%, hal ini berarti jika seirang pengguna atau pengunjung mengunjungi halaman A dan B maka terdapat kemungkinan 90% pengguna tersebut akan mengunjungi halaman Z, sehinnga perlu disediakan link langsung dari halaman A taau B ke C. Salahsatu algoritme yang umum digunakan dalam analisis keranjang belanja adalah Algoritme Apriori, yaitu algoritme analisis keranjang pasar yang digunakan untuk menghasilkan aturan asosiasi (Goswami et al. 2010) dengan tujuan utama adalah untuk mencari maksimal frequent itemset
(didapatkan juga frequent itemset yang tidak maksimal). Istilah penting dalam Algoritme Apriori :
d. Support, supp(X) dari suatu itemset X adalah rasio dari jumlah transaksi dimana suatu itemset muncul dengan total jumlah transaksi.
Supp(X) = TX
TN ; TX adalah Transaksi atau kemunculan X, X I;⊆ TN adalah jumlah total transaksi.
e. Setiap itemset X diasosiasikan dengan himpunan transaksi TX ={T N | T ∈ ⊇
X} yang merupakan himpunan transaksi yang memuat itemset X.
f. Confidence (keyakinan) adalah nilai probabilitas adanya itemset X pada suatu transaksi, maka juga ada itemset Y pada transaksi tersebut.
Conf(X → Y) = SuppX∪Y
SuppX ;
atau dalam terminologi peluang bersyarat Conf(X → Y) = P(Y|X) = PX∩Y
System Development Life Cycle (SDLC ) Model
Bahan dan data yang akan diolah dalam penelitian ini merupakan data teks yang berukuran besar dan ada kemungkinan banyak variasi untuk beberapa Web Server yang berbeda. Agar hasil penelitian ini bisa berkelanjutan maka perlu dikembangkan sebuah sistem yang terkomputerisasi untuk menggantikan pengolahan data manual ke dalam bentuk terkomputerisasi, sehingga sistem yang dikembangkan bisa berlaku untuk data yang berasal dari berbagai Web Server
Apache yakni bukan hanya yang berasal dari Web Server Departemen Pertanian. Akan tetapi dalam pengembangannya Sistem ini menggunakan data sampel yang berasal dari data akses log Web Server departemen Pertanian Indonesia.
Pengembangan sistem dilakukan dengan mengimplementasikan tahapan pengembangan perangkat lunak yaitu SDLC Model (System Development Life Cycle). Adapun tahapannya terdapat 5 fase (Satzinger et al 2007) yaitu:
1. Tahap Perencanan (Project Plannnng Phase)
2. Tahap Analisis (Analysis Phase)
3. Tahap Desain (Design Phase)
4. Tahap Implementasi (Implementation Phase)
5. Tahap Dukungan/Perawatan (Support Phase)
3 METODE PENELITIAN
Bahan Penelitian
Penelitian dilakukan dengan mengambil data sekunder Website Kementerian Pertanian Republik Indonesia atau Departemen Pertanian Republik Indonesia (Deptan) dengan menggunakan interval waktu log server selama dua bulan yaitu bulan November 2012 s.d. Desember 2012. Pemilihan data tersebut hanya sebagai selanjutnya dengan mengikuti tahapan rinci seperti tertera pada gambar 3.2 berikut ini yang merupakan penjabaran dari tahapan umum penelitian di atas:
Pengumpulan data dan pra proses
(Data collection and pre-processing)
Pemodelan data untuk WUM
(Data Modeling for Web Usage Mining)
Penemuan dan Analisis Pola
66.249.73.7 - - [04/Nov/2012:04:08:33 +0700] GET /bpsdm/spp-kupang/index.php HTTP/1.1 200 37803 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; )"
66.249.73.7 - - [04/Nov/2012:04:08:35 +0700]
"GET /pengumuman/LombaHPS30_bkp/PANDUAN_LOMBA_POSTER.pdf HTTP/1.1" 200 97568 "-" "DoCoMo/2.0 N905i(c100;TB;W24H16) )"
Gambar 2. Tahapan rinci proses penelitan
Berikut ini akan diuraikan dan dijelaskan tahapan yang ada pada gambar 2.
1. Memilih data Log
Server yang dianalsis adalah menggunakan Opensource Web Server yaitu Apache. Web Server Apache menyimpan semua data log dalam file access.log
seperti contoh berikut:
String log di atas mengikuti format log pada web server Apache
(http://httpd.apache.org) dengan penjelasan sebagai berikut :
Log sederhana : LogFormat "%h %l %u %t \"%r\" %>s %b"
Tabel 2. Penjelasan format string log Web Server Apache
No String Penjelasan Keterangan
1 %h IP Address client atau remote host yang meminta layanan ke server
host
2 %l Merupakan proses identifikasi log user atau client log identification
3 %u Merupakan userid dari seseorang yang meminta dokumen berdasarkan otentikasi HTTP
userid
4 %t Waktu ketika permintaan diterima oleh server time
5 \"%r\" Berisi sebaris permintaan yang ditulis oleh client, diapit dalam tanda petik dua
request line
6 %>s Kode status yang diberikan oleh server kepada client status
7 %b Ukuran data atau dokumen yang diberikan kepada client byte
8 \%"{Referer}i"%\ Rujukan HTTP request header yang telah dirujuk atau diikutsertakan oleh client
referer identification
9 \"%{User-agent}i\" Identifikasi browser yang digunakan oleh client user agent identification
2. Pra Proses a. Memecah data log
Data access log merupakan file teks yang berukuran sangat besar, apalagi jika
Website yang dianalisis jumlah transaksinya cukup tinggi. Besarnya data teks
b. Konversi ke file .csv (Comma Separated Value)
Agar data bisa diolah lebih fleksibel, maka diubah terlebih dahulu ke dalam bentuk .csv, karena dari format csv bisa dikonversi kebentuk lain, seperti format
sql atau spreadsheet.
Gambar 4. Ilustrasi Proses konversi ke file csv
c. Membersihkan data
Pada tahapan ini dilakukan proses pembuangan string atau variabel yang tidak dibutuhkan dalam penelitian, hal ini sangat diperlukan karena data yang dianalisis merupakan data string yang cukup besar, sehingga apabila variabel yang tidak dibutuhkan dibuang maka waktu untuk pemrosesan data bisa lebih efisien. Data yang akan dibersihkan merupakan data log yang sudah dipecah dan sudah dalam bentuk csv. Karkteristik dari file csv adalah hanya memiliki satu string pemisah (sparator) dan satu string penutup tiap fields.
Contoh baris data yang belum bersih :
$string= 66.249.73.7 04/Nov/2012:04:11:40] GET /wap/index.php? option="component" HTTP/1.1
Seanjutnya apabila dengan kode PHP kita akan memisahkan string diatas berdasarkan sparator spasi kosong maka kodenya seperti berikut :
$data = str_getcsv($string ,' ');
Selain berdasarkan tanda petik di atas, data log juga dibersihkan berdasarkan kelompok atau tipe dari berkas (file) sebagai berikut:
Tabel 3. Pengelompokan data log dan penggunaannya
No Jenis berkas Keterangan Penggunaan
1 .css (teks) Cascading Style Sheet, merupakan kelompok file untuk mempercantik tampilan halaman web.
diabaikan
2 .js (teks) Javascript, merupakan client side script yang berfungsiuntuk membuat halaman web lebih interaktif, contohnya untuk membuat fungsi zoom gambar atau
mesagebox ketika mau menghapus email.
diabaikan
3 .xml (teks) eXtensible Markup Language, merupakan berkas atau bahasa untuk mengatur struktur data web dalam susunan tag yang independen.
diabaikan
4 .bmp (gambar)
Bitmap, merupakan file gambar yang sering disertakan dalam halaman web
diabaikan
5 .gif (gambar) Graphics Interchange Format, merupakan file gambar yang sering disertakan dalam halaman web
diabaikan
6 .jpg (gambar) Join Photographis, merupakan file gambar yang sering disertakan dalam halaman web
diabaikan
7 .png (gambar)
Portable Network Graphics, merupakan file gambar yang sering disertakan dalam halaman web
diabaikan
8 .odt/.doc (teks)
Open Document Text/ Document, merupakan file
dokumen teks (words).
digunakan
9 .ods/.xls (teks)
Open Document Sheet / Excels, merupakan file sheet (Spread sheet).
digunakan
10 .pdf (teks) Portable Data Format, merupakan file teks portable
yang biasanya readonly.
digunakan
11 .mp3 (audio) Media Player 3, file audio untuk melengkapi halaman web
diabaikan
12 .mp4/.mpeg (.video)
Media Player 4/ Media Player Expert Graphics, file video untuk melengkapi halaman web
diabaikan
14 .jsp (teks) Java Server Page, merupakan Server Side Script untuk mengembangkan Website. Script untuk mengembangkan Website.
digunakan
17 .php (teks) PHP Hypertext Preprocessor, merupakan Server Side Script untuk mengembangkan Website.
No Jenis berkas Keterangan Penggunaan
18 .sql (teks) Structured Query Language, file backup database dalam bentuk teks
diabaikan
19 .ico (gambar) Icon, merupakan file gambar untuk dijadikan logo ikon setiap halaman web
diabaikan
Keterangan: digunakan = digunakan sebagai data atau bahan penelitian diabaikan = tidak digunakan sebagai data atau bahan penelitian
d. Pemilihan String
Pada penelitian ini berfokus pada proses penelusuran frekuensi kunjungan terhadap setiap halaman Web yang ada pada halaman web http://www.deptan.go.id, sehingga dari data log yang ada hanya akan diambil beberapa data yang dibutuhkan. Seperti sudah dijelaskan sebelumnya bahawa dalam rangkaian format string log sederhana terdapat susunan seperti berikut :
LogFormat "%h %l %u %t \"%r\" %>s %b \ %"{Referer}i"%\
\"%{User-agent}i\""
Dari format string log di atas tidak semua blok string diambil, hanya beberapa saja yang digunakan sesuai dengan kebutuhan penelitian ini maka yang digunakan sebagai bahan adalah:
LogFormat "%h %t \"%r\" %>s
Pengambilan empat kelompok string di atas berdasarkan keperluan data yang akan diolah, yaitu:
a) %h merupakan kelompok string yang menggambarkan host yang mengakses
web server, adapun identitas yang dicatat adalah berupa alamat host atau IP Address. data ini sangat bermanfaat untuk mengetahui siapa yang mengakses halaman web.
b) %t merupakan runtunan waktu (time series) yang dilakukan oleh tiap host
dalam satu sesi log, data ini sangat bermanfaat untuk membentuk satu rangkaian graph per sekali log untuk tiap host.
c) %r adalah sekumpulan string yang berisi metode transfer data (POST/GET) dan permintaan (request) halaman web oleh pengguna, data ini akan dijadikan sebagai bahan dasar untuk dijadikan node dalam rangkaian graph. d) %s adalah status yang dihasilkan oleh protokol HTTP (Hyper Text Transfer
Protocol) mengenai berhasil tidaknya proses komunikasi antara peminta layanan (client) dan pemberi layanan web (web server).
Secara garis besar terdapat lima kelompok kode status HTTP, yaitu: 1) Kelompok 1xx (Provisional response)
merupakan keolmpok kode status yang menyatakan status sementara ketika sedang terjadi proses permintaan
2) Kelompok 2xx (successful)
3) Kelompok 3xx (Redirected)
Menyatakan bahwa permintaan tidak error atau secara umum bisa diterima, akan tetapi lokasi yang dituju tidak ada atau sedang dialihkan. 4) Kelompok 4xx (Request Error)
Permintaan yang diberikan tidak bisa diproses. 5) Kelompok 5xx (Server Error)
Permintaan tidak bisa diproses karena server yang dituju sedang error.
Berikut ini adalah daftar kode status HTTP secara detil yang diambil dari sumber http://support.google.com/webmasters dan http://hc.apache.org :
Tabel 4. Jenis-Jenis status HTTP
No Kode Deskripsi
1 100 (Continue) Mengindikasikan bagian permintaan pertama sudah diterima, dan
menunggu untuk istirahat, dan client harus melanjutkan permintaannya.
2 101 (Switching
protocols)
client meminta untuk bertukar protolol dan server mengetahunya untuk merealisasikan.
3 200 (Successful) Server berhasil memroses permintaan dari client.
4 201 (Created) Server berhasil memroses permintaan dari client kemudian server
membuat resource baru
5 202 (Accepted) Permintaan diterima oleh server tapi tidak dapat diproses.
6 203 (Non-authoritative
information)
Server berhasil diproses, akan tetapi iformasi yang diberikan berasal dari sumber atau server lain.
7 204 (No content) Permintaan berhasil diproses, akan tetapi server tidak memberikan hasil
apa-apa.
8 205 (Reset content)
Permintaan berhasil diproses, akan tetapi server tidak memberikan hasil apa-apa, perbedaan dengan 204, status 205 membutuhkan reset page oleh client, contoh membersihkan form input.
9 206 (Partial content) Server berhasil memroses sebagaian dari GET request.
10 300 (Multiple choices)
Server memiliki beberapa cara untuk menyelelesaikan permintaan, Server bisa meilih sendiri atau memeberikan pilihan kepada client dalam meyelesaikan proses permintaannya.
11 301 (Moved
permanently) Permintaan dari client dialihkan secara permanen ke sumber lain.
12 302 (Moved temporarily)
Server merespon permintaan dengan mengalihkan ke sumber lain, akan tetapi untuk selanjutnya client harus melakukan permintaan ke lokasi aslinya.
13 303 (See other location) Memberikan respon bahwa seharusnya client melakukan GET request
tersendiri ke lokasi lain untuk memperoleh informasi.
14 304 (Not modified)
Halaman yang diminta belum dimodifikasi sejak permintaan terakhir, pada saat terjadi seperti ini server tidak memberikan hasil apa-apa, sangat berguna untuk mennghemat bandwith.
No Kode Deskripsi
diminta.
16 307 (Temporary redirect)
Server merespon permintaan dengan mengalihkan ke sumber lain, akan tetapi untuk selanjutnya client harus melakukan permintaan ke lokasi aslinya tapi untuk permintaan GET dan HEAD request akan otomatis dialhkan ke lokasi lain.
17 400 (Bad request) Server tidak memahapi perintah atau permintaan dari client.
18 401 (Not authorized) Permintaan yang diberikan membutuhkan otorisasi.
19 403 (Forbidden) Permintaan terkena blok (refusing), biasanya berkaitan dengan hak akses
folder web
20 404 (Not found) Server tidak menemukan halaman yang diminta.
21 405 (Method not
allowed) The method specified in the request is not allowed.
22 406 (Not acceptable) The requested page can't respond with the content characteristics
requested.
23 407 (Proxy
authentication required) Mirip dengan 401, akan tetapi otentikasinya menggunakan proxy.
24 408 (Request timeout) Server kehabisan waktu tunggu untuk satu permintaan.
25 409 (Conflict) Server memiliki konflik ketika menyelesikan permintaan.
26 410 (Gone)
Terjadi apabila resource yang diminta sudah dibuang secara permanen sama dengan 404 tapi terkadang 404 tidak akurat dalam melakukannya dan harus dipadukan dengan 301 untuk mengetahui lokasi barunya.
27 411 (Length required) Server tidak bisa menerima permintaan tanpa menyertakan panjang isi header fields.
too long) Pa jang url yang diminta terlalu panjang.
31 415 (Unsupported media
type) Format permintaan tidak didukung oleh halaman yang diminta.
32 416 (Requested range
not satisfiable) Rentang permintaan tidak tersedia di server.
33 417 (Expectation failed) Server tidak dapat menyetujui persyaratan Expect request-header.
34 500 (Internal server
error) Server error dan tidak dapat melayani permintaan client.
35 501 (Not implemented) Server tidak memiliki fungsionalitas untuk menyelesaikan permintaan.
36 502 (Bad gateway) The server was acting as a gateway or proxy and received an invalid
response from the upstream server.
37 503 (Service
unavailable)
Server tidak tersedia bisa dikarenakan overloaded atau down untuk perawatan.
No Kode Deskripsi
permintaan tepat waktu dari server upstream.
39 505 (HTTP version not
supported)
Server tidak mendukung versi dari HTTP protocol yang digunakan oleh
client.
Adanya pembuangan sebagian string log dikarenakan adanya beberapa pertimbangan yaitu :
1. %l (log identification)
Merupakan identitas log pengguna, apabila host yang tidak punya id maka statusnya akan berisi string "" atau kosong, sehingga apabila string ini dimasukan dalam penelitian, akan banyak host yang tidak terekam pada saat pembersihan data log.
2. %b (byte),
Pada penelitian ini tidak memperhatikan ukuran data yang terjadi selama proses kunjungan web atau transaksi, semua dianggap sebagai satu proses. 3. %"{Referer}i"%
Adalah identifikasi referensi url sebelumnya atau rujukan HTTP request header yang telah dirujuk atau diikutsertakan oleh client dalam penelitian ini tidak diperlukan karena tidak akan meneliti mengenai rute dari path.
4. "%{User-agent}i
Identifikasi browser yang digunakan oleh pengguna, dalam penelitian ini yang akan diteliti adalah frekuensi akses terhadap halaman web tanpa memandang alat yang digunakan untuk mengakses website.
Berikut ini contoh data log dengan format "%h %t \"%r\" %>s yang diambil untuk beberapa host yang mengakses web server pada tanggal 02 Desember 2012:
Tabel 5. Contoh format data log yang akan diteliti
host (%h) time (%t) string request (%r) status
(%s)
157.55.33.40 02/Dec/2012:04:10:10 GET /news/detailarsip_2.php?
id=253&awal=&page=&kunci= HTTP/1.1
200
157.56.229.23 02/Dec/2012:04:08:39 GET /news/detailevent.php?id=76 HTTP/1.1 200
173.199.114.83 02/Dec/2012:04:10:12 GET /pug/detailperencanaan4.php HTTP/1.1 200
173.199.116.235 02/Dec/2012:04:13:14 GET /pug/detailperencanaan6.php HTTP/1.1 200
173.199.118.35 02/Dec/2012:04:08:47 GET /pug/detailperencanaan3.php HTTP/1.1 200
173.199.120.43 02/Dec/2012:04:11:36 GET /pug/detailperencanaan5.php HTTP/1.1 200
173.44.37.226 02/Dec/2012:04:11:44 GET /wap/index.php?option=component&id=3 HTTP/1.1
200
host (%h) time (%t) string request (%r) status (%s)
178.154.161.29 02/Dec/2012:04:11:03 GET
/pesantren/bsp/pai/Data_dan_Informasi/jaringa n_irigasi_indonesia/kalbar.htm HTTP/1.1
200
178.162.191.58 02/Dec/2012:04:12:20 GET /wap/index.php?
option=component&id=3&gbfrom=3895 HTTP/1.1
200
180.76.5.143 02/Dec/2012:04:09:26 GET
/pesantren/ditjenbun/ok/myweb/sub_bagian_ke rjasama.htm HTTP/1.1
200
188.143.232.202 02/Dec/2012:04:08:57 GET /wap/index.php?option=component&id=3 HTTP/1.1
200
188.143.232.202 02/Dec/2012:04:08:58 POST /wap/index.php HTTP/1.1 200
208.115.113.87 02/Dec/2012:04:09:59 GET /bpsdm/stpp-manokwari/tampil.php? page=prog_studi HTTP/1.1
200
66.249.77.63 02/Dec/2012:04:08:48 GET /news/detailarsip.php?id=864 HTTP/1.1 200
66.249.77.63 02/Dec/2012:04:09:29 GET /bpsdm/spp-kupang/index.php?
option=com_easybook&view=easybook&Itemi d=71&limitstart=4450&cal_offset=179p HTTP/1.1
200
66.249.77.63 02/Dec/2012:04:09:31 GET
/index1.php/pusdatin/news/images/images/sms _center.jpg HTTP/1.1
200
e. Integrasi database
Setelah semua data disiapkan dalam format csv, maka perlu ada sinkronisasi dengan database yang akan dirancang agar data log tersebut bisa dintegrasikan atau diimpor ke dalam database. Secara umum isi tabel dalam database meliputi tiga kelompok yaitu: a. Struktur Data Pohon
Kolom data sebagai bahan awal pembentukan node adalah kolom request line.
Dari data request tersebut bisa diambil beberapa informasi yang selanjutnya bisa dijadikan sebagai node dalam struktur data pohon. Adapun alasan kolom request
yang diambil untuk pembentukan node adalah:
b. Seluruh tipe data yang diakses atau diunduh akan dicatat tanpa terkecuali. Berikut ini contoh proses transformasi data log menjadi struktur data pohon dengan diawali dari data tabel 3.4:
Tabel 6. Penguraian kolom string request
host (%h) time (%t) Metode
Request direktori file data GET Protokol status
(%s)
157.55.33.40 02/Dec/2012:04:10:10 GET /news/detailarsip_2.php id=253&awal=&page=
&kunci= HTTP/1.1 200
157.56.229.23 02/Dec/201
2:04:08:39 GET /news/detailevent.php id=76 HTTP/1.1 200
173.199.114.83 02/Dec/201
2:04:10:12 GET /pug/detailperencanaan4.php HTTP/1.1 200
173.199.116.235 02/Dec/201
2:04:13:14 GET /pug/detailperencanaan6.php HTTP/1.1 200
173.199.118.35 02/Dec/201
2:04:08:47 GET /pug/detailperencanaan3.php HTTP/1.1 200
173.199.120.43 02/Dec/201
2:04:11:36 GET /pug/detailperencanaan5.php HTTP/1.1 200
173.44.37.226 02/Dec/201
2:04:11:44 GET /wap/index.php
option=component&id=
3 HTTP/1.1 200
173.44.37.226 02/Dec/201
2:04:11:45 POST /wap/index.php HTTP/1.1 200
178.154.161.29 02/Dec/201
180.76.5.143 02/Dec/2012:04:09:26 GET /
manokwari/tampil.php page=prog_studi HTTP/1.1 200
66.249.77.63 02/Dec/201
2:04:08:48 GET /news/detailarsip.php id=864 HTTP/1.1 200
66.249.77.63 02/Dec/201
2:04:09:37 GET /pug/arsippengumuman.php awal=0&page=1 HTTP/1.1 200
66.249.77.63 02/Dec/201
host (%h) time (%t) Metode
Request direktori file data GET Protokol status
(%s)
66.249.77.63 02/Dec/2012:04:12:54 GET /
pusdatin/statistik/metodologi/ tar.pdf
HTTP/1.1 404
Untuk pembentukan struktur data pohon perlu dibatasi data yang akan diolah agar tidak semua data masuk yaitu sebagai berikut:
1. Batasan runtunan waktu dalam hal ini dibatasi dengan rentang per satu hari, dengan asumsi apabila berganti hari maka rangkaian rute akan dibarukan lagi, hal ini akan menimbulkan permasalahan ketika ada pengguna yang mengakses web dimulai beberapa saat sebelum pergantian hari dan belum mengakhiri proses akses ketika berganti hari misalnya dari pukul 23:00 sampai dengan pukul 02:00 dini, akan tetapi berdasarkan data yang ada kemungkinan tersebut sangat kecil.
2. Data request yang digunakan adalah yang berhasil diproses oleh web server
yaitu dengan kode status 200.
3. Data yang dikirim oleh metode GET tidak diikutsertakan karena dalam penelitian ini tidak membahas sampai ke elemen permintaan (query) tapi hanya pada level akses halaman, sehingga metode GET dan POST dianggap sama.
Berdasarkan kebutuhan dan batasan data di atas maka tabel 3.4 dengan menggunakan runtunan waktu per tanggal 02 Desember 2012 dengan status 200 dapat disederhanakan sebagai berikut:
Tabel 7. Contoh Kumpulan file yang diakses oleh pengguna (host)
host (%h) direktori file
host (%h) direktori file
Apabila digambarkan dalam bentuk struktur data pohon, maka isi tabel 3.5 akan menjadi struktur pohon berikut:
Gambar 5. Contoh representasi struktur pohon Web Deptan
pesantren berita berita alsin tabel_ujialsin.htm
pug
pusdatin statistik metodologi tar.pdf
b. Membentuk Node
Agar memudahkan dalam pengolahan data, maka perlu membuat indeks yang unix untuk setiap string rangkaiaian direktori file yang selanjutnya disebut node.
Tabel 8. Pengkodean struktur direktori file dan halaman Web sebagai Node
Pengkodean Direktori file
A /bpsdm/spp-kupang/index.php
(sekuential) kunjungan halaman web dan file yang diakses untuk masing-masing host adalah sebagai berikut:
Tabel 9. Rangkaian (sequential) akses halaman web
No host (%h) Rangkaian/ Sekuensial Akses Halaman Web
1 157.55.33.40 R, E
2 157.56.229.23 R, G
3 173.199.114.83 R, M
4 173.199.116.235 R, O
5 173.199.118.35 R, L
6 173.199.120.43 R, N
No host (%h) Rangkaian/ Sekuensial Akses Halaman Web
8 178.154.161.29 R, I
9 178.162.191.58 R, Q
10 180.76.5.143 R, J
11 188.143.232.202 R, Q, Q
12 208.115.113.87 R, B
13 66.249.77.63 R, A, K, A, Q, H, C, D, P
Host yang memiliki rangkaian akses (tabel 3.8) halaman web terpanjang adalah host dengan IP Address 66.249.77.63 yaitu R, A, K, A, Q, H, C, D, P. Untuk host yang lainnya hanya membentuk 3 dan 2 node rangkaian. Dari data tersebut bisa dikatakan bahwa host tersebut memiliki waktu paling lama akses pada web deptan dan cukup tertarik terhadap isinya. Sedangkan halaman yang paling banyak diakses adalah halaman Q sebanyak 6 kali, halaman A 2 kali sisanya masing-masing hanya 1 kali dan samasekali tidak ada yang akses yaitu halaman F, untuk lebih rincinya data disajikan sebagai berikut:
Tabel 10. Sebaran frekuensi akses halaman web
4. Penemuan dan Analsisis Pola a. Analisis Database
Untuk mengelola data log diperlukan sebuah tempat penampungan data atau basisdata (database). Data log pada dasarnya adalah data teks yang auto generate mengikuti pola standar dari Web server, akan tetapi panjang atribut untuk tiap kelompok string kadang tidak sama. seperti contoh berikut dengan terlebih dahulu tanda petiknya sudah dibuang:
1. 66.249.73.7 - - [04/Nov/2012:04:09:51 +0700] GET /wap/index.php
HTTP/1.1 200 4132 - SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http:www.google.com/bot.html) 2. 180.76.5.136 - - [04/Nov/2012:04:09:59 +0700] GET
/daerah_new/sulsel/disbun1/Organisasi/index.php HTTP/1.1 200 1818 - Mozilla/5.0 (compatible; Baiduspider/2.0;
+http:www.baidu.com/search/spider.html)
Pada data 1 dan 2 di atas apabila dikonversi dalam bentuk csv dan dilakukan pemisahan dengan pemisah (sparator) spasi kosong maka akan terlihat seperti pada tabel 3.10.
Tabel 11. Pemisahan string dengan spasi kosong
1 2 3 4 5 6 7 8 9 10 1
1
66.249.73.7 - - [04/Nov/2012:04:09:5 1
+0700 ]
GE T
/wap/index.php HTTP/1.1 200 4132
-180.76.5.136 - - [04/Nov/2012:04:09:5 9
HTTP/1.1 200 1818
-Terlihat tepat satu kelompok string ditampung dalam satu kolom, kecuali kelompok string %t dan \"%r\" ditampung lebih dari 1 kolom, hal ini akan berpengaruh terhadap perancangan fields yang akan dibuat dalam tabel log.
%h %l %u %t \"%r\" %>s %b \%"{Referer}i"%\
1 2 3 4 5 6 7 8 9 10 11
Begitupun dengan kelompok string \"%{User-agent}i%\" harus ditampung oleh lebih dari satu kolom, apalagi jumlah variabel stringnya tidak sama, hal ini berbeda dengan kelompok %t yang pasti akan ditampung oleh 2 kolom dan %r
Tabel 12. Pemisahan string user-agent dengan spasi kosong
Data log mentah disimpan dalam tabel yang belum menganut aturan database
seperti primary key ataupun index, hal ini dilakukan agar semua data terkam dulu dalam bentuk tabel untuk memudahkan dalam melakukan query.
b. Analisis Assosiasi
Analisis asosiasi merupakan analisis mengenai keterhubungan antara halaman web yang dikunjungi oleh pengguna. Teknik yang diigunakan adalah menggunakan teknik dalam data mining yaitu analisis keranjang belanja (market basket analysis) dengan menggunakan salahsatu algoritme yang sudah umum dikenal yaitu algoritme apriori.
Adapun objek yang dijadikan itemset adalah direktori yang ada dalam website
atau selanjutnya dikenal dengan node.
Website Deptan memiliki alamat url http://www.deptan.go.id, yang terdiri dari beberapa subdomain dan folder di dalamnya. Adapun subdomain yang ada pada Situs web Deptan adalah sebagai berikut (berdasarkan data acces_log dan penelusuran online):
Tabel 13. Daftar Subdomian Situs Web Deptan
No Subdomain Keterangan
1 http://aplikasi.deptan.go.id/ Daftar Usaha Pertanian
2 http://bkp.deptan.go.id/ Ketahanan Pangan
3 http://bppsdmp.deptan.go.id/ Penyuluhan & Pengembangan Sumber Daya Manusia Pertanian
4 http://database.deptan.go.id/afsis/ AFSIS Indonesia
5 http://ditjenbun.deptan.go.id/ Perkebunan
6 http://ditjennak.deptan.go.id/ Peternakan & Kesehatan
7 http://epetani.deptan.go.id/ e-Petani
8 http://hortikultura.deptan.go.id/ Hortikultura
9 http://intranet.deptan.go.id/ Sistem Manajemen Pengetahuan Intranet Deptan
10 http://itbang.deptan.go.id/ Penelitian & Pengembangan
11 http://itjen.deptan.go.id/ Inspektorat
No Subdomain Keterangan
13 http://litbang.deptan.go.id/berita/one/852/ Kulit Buah Manggis Instan BB-Pascapanen Curi Perhatian Pengunjung PF2N Batam
14 http://lpse.deptan.go.id Layanan Pengadaan Secara Elektronik
15 http://mail.deptan.go.id Web Mail Kementan
16 http://multimedia.deptan.go.id Portal Multimedia Pertanian
17 http://perundangan.deptan.go.id Basisdata Undang-Undang
18 http://pphp.deptan.go.id/ Pengolahan & Pemasaran Hasil
19 http://ppvt.setjen.deptan.go.id/ PVT Perizinan
20 http://psp.deptan.go.id/ Prasarana & Sarana
21 http://puap.deptan.go.id/ Pengembangan Usaha Agribisnis Perdesaan (PUAP)
22 http://pusdatin.deptan.go.id/ Data Teknologi Informasi
23 http://pustaka-deptan.go.id/agritek.php Koleksi teknologi pertanian tepat guna (agriTEK)
24 http://pustaka.litbang.deptan.go.id/ Pustaka Publikasi
25 http://setjen.deptan.go.id/ Sekretariat
26 http://tanamanpangan.deptan.go.id/ Tanaman Pangan
Dari ke 26 Subdomain tersebut masingmasing memiliki file index dan folder yang independen yang bertujuan agar pemeliharaan bisa dibagibagi dan menjadi tanggung jawab masingmasing direktorat. Antara Subdomain dan folder
keduanya memiliki fungsi yang sama yaitu untuk mengelompokan fungsi dan data. Tetapi ada perbedaaan penulisan alamat url ketika user melakukan browsing internet antara alamat url dalam subdomain dan alamat url dalam folder situs utama web Deptan, contoh sebagai berikut:
Tabel 14. Keterangan penulisan url
Penulisan url Keteragan
http://www.deptan.go.id/tanamanpangan tanamanpangan pada url ini berlaku sebagai folder yang ada dalam url http://www.deptan.go.id
http://tanamanpangan.deptan.go.id/ atau http://www.tanamanpangan.deptan.go.id/
tanamanpangan pada url ini berlaku sebagai
subdomain url http://www.deptan.go.id
root
Tabel 3.14 Kesamaan penulisan request line pada web server Penulisan url Penulisan request line
http://www.deptan.go.id/tanamanpangan/data/index.php GET /tanamanpangan/data/index.php
http://tanamanpangan.deptan.go.id/data/index.php GET /tanamanpangan/data/index.php
Penulisan data log oleh web server meliputi semua aktifitas clickstream
yang dilakukan oleh pengguna, sehingga berbagai jenis data akan ada di dalamnya. Sehingga perlu pengelompokan data agar data yang kurang penting bisa diabaikan. Berdasarkan penelaahan terhadap data Log web Deptan telah diperoleh data pohon (tree) sebagai bahan pemetaan situs web deptan. Diasumsikan alamat utama web deptan (http://deptan.go.id) merupakan root dari pohon, kemudian subdomain dan folder yang ada di bawahnya merupakan node level 1, secara umum digambarkan sebagai berikut:
Gambar 6. Struktur data Pohon
Setelah dilakukan penelusuran data log dan mengakses langsung data pada Web Deptan diperoleh sebanyak 20924node untuk selanjutnaya dianalisis dengan teknik data mining association rule yaitu menggunakan analisis keranjang belanja
(market basket analysis). Adapun algoritme yang digunakan adalah Algoritme Apriori untuk mengetahui itemset, frequent Itemset dan Confidence. Berikut tahapan analisis nya:
a. Penentuan Itemset
Pada penelitian ini itemset adalah kumpulan data direktori (node) yang diakses oleh pengguna.
Itemset I = {1, 2, 3, 4, ... ,20924)} adalah sebagai kumpulan node.
b. Transaksi atau Kejadian N merupakan sekumpulan n transaksi (Tn), transaksi dikodekan dengan IP Address dan tanggal, dengan batasan satu kali transaksi adalah dihitung per hari.
Berdasarkan analogi terhadap prilaku customer ketika belanja, pada sekali transaksi bisa membeli suatu jenis barang lebih dari satu item dengan kode unik untuk pencatatan di database berupa nomor faktur. Begitupun pada proses akses IP Address terhadap server per satu satuan waktu bisa mengakses node yang sama berkalikali, berikut ini contoh transaksi IP Address ketika mengakses kumpulan node (itemset).
Tabel 15 Contoh transaksi akses node
No Kode Transaksi IP Address Tanggal Node Aktivitas
1 1.187.206.56-120212 1.187.206.56 12/02/12 /kln/berita/wto/menu_wto.htm 2 1.195.130.141-120312 1.195.130.141 12/03/12 /wap/index.php
3 1.234.45.130-110412 1.234.45.130 11/04/12 /wap/index.php 4 1.234.45.130-110612 1.234.45.130 11/06/12 /wap/index.php 5 1.234.45.130-110712 1.234.45.130 11/07/12 /wap/index.php 6 1.234.45.130-120412 1.234.45.130 12/04/12 /wap/index.php 7 1.4.134.254-120312 1.4.134.254 12/03/12 /index1.php
9 1.4.134.254-120312 1.4.134.254 12/03/12 /pengumuman/cover_es.htm 10 1.4.134.254-120312 1.4.134.254 12/03/12 /event.php
11 10.10.12.15-110512 10.10.12.15 11/05/12 /index1.php 12 10.10.12.15-110512 10.10.12.15 11/05/12 /event.php
13 10.10.12.15-110512 10.10.12.15 11/05/12 /pengumuman/cover_es.htm
c. Berdasarkan tabel 4.4 diperoleh 8 kali transaksi N = {1.187.206.56120212, 1.195.130.141120312, 1.234.45.130110412, 1.234.45.130110612, 1.234.45.130110712, 1.234.45.130120412, 1.4.134.254120312, 10.10.12.15110512}
d. Perhitungan Support
Perhitungan support diperoleh dari jumlah seluruh transaksi yang memuat suatu node dibandingkan dengan keseluruhan transaki. atau apabila dirumuskan:
Support (B) = (jumlah transaksi mengandung B / Total transaksi) % Misalnya kemunculan node 8348(index1.php) adalah 10162, sedangkan total keseluruhan transaksi adalah 115536 maka supportnya adalah 10162/115536 = 8.796%.
e. Confidence (keyakinan)
Nilai keyakinan diperoleh dengan rumus sebagai berikut: Conf(X → Y) = SuppX∪Y
SuppX ;
= PX∩Y PX ;
Misalkan Jumlah transaksi node (8348,19262) atau (/index1.php,/respon.php) adalah 1751, sedangkan total keseluruhan transaksi adalah 115536 maka
supportnya adalah 1751/115536= 1.516%.
Untuk melakukan pemangkasan maka ditentukan terlebih dahulu minimum
4 HASIL DAN PEMBAHASAN
Pemecahan data log dan konversi ke file .csv
Data log yang sudah terpilih kemudian dipecah-pecah agar memudahkan untuk pembacaan oleh program. Pemecahan data log tidak seperti membagi rata menggunakan rumus matematika akan tetapi diambil berdasarkan jumlah baris tertentu. Dari hasil pemecahan diperoleh data sebagai berikut:
Tabel 16. Data hasil pemecahan file access_log
Nomor Nama file log Ukuran (byte) Jumlah Baris 1 a.csv 110 542 665 480 000
Jumlah 632 146 266 2 323 844
Membersihkan data dan Pemilihan String
Setelah data log dipecah menjadi 6 kelompok, kemudian dengan mengguakan aplikasi yang dikembangkan ke enam data tersebut dibersihkan dan dipilih string yang dibutuhkan, sehingga hasil akhirnya akan diperoleh data transaksi yang bersih.
jumlah Transaksi yang tercatat pada Web Server deptan untuk periode November 2012 Desember 2012 adalah sebagai berikut:
Tabel 17. Tahap Pembersihan Data Transaksi Web deptan
No Jenis Transaksi Berkas Awal Berkas Hasil Jumlah Transaksi Jumlah IP Host
1 Pembersihan tahap 1 access_log.csv data_log_1 2 323 844 34 060
2 Pembersihan tahap 2 data_log_1 data_log_2 1 641 919 34 060
3 Pembersihan tahap 3 data_log_2 data_log_1itemset 360 926 29 452
4 Pembersihan tahap 4 data_log_1itemset data_log_1itemset 115 569 29 452
Berdasarkan tabel 4.2 terlihat ada 4 tahap pembersihan, yaitu:
1. Pembersihan tahap 1 merupakan proses pemasukan data teks csv ke tabel data_log_1, disini hanya dilakukan proses impor saja, pembersihan hanya mengganti tanda petik dengan spasi kosong
Misalnya diketahui string request =/wap/index.php?option=component&id= 3&gbfrom=16258.
Pada data request tersebut semua string dibelakang tanda tanya (?) akan dibuang dengan perintah seperti berikut :
$str_rek = /wap/index.php?option=component&id=3&gbfrom=16258
$pisah_request = explode('?',$str_rek);
Setelah perintah tersebut maka akan terbentuk array pisah_request yaitu : $pisah_request[0] = /wap/index.php
$pisah_request[1] = option=component&id=3&gbfrom=16258
Setelah data request terbagi dua, maka tinggal dilakukan pemilihan string yang dibutuhkan yaitu $pisah_request[0], sedangkan $pisah_request[1] dibuang. Kemudian 3 huruf sebelah kanan dari $pisah_request[0] disimpan
@bersihkan = mysql_query("delete from data_log_1 where type_req ='css' or type_req ='js' or type_req ='.js' or type_req ='.db' or type_req ='xml' or type_req ='bmp' or type_req ='gif' or type_req ='jpg' or type_req ='jpeg' or type_req ='png' or type_req ='mp3' or type_req ='mp4' or type_req ='swf' or type_req ='sql' or type_req ='ico' ortype_req ='ef=' or type_req ='exe' or type_req ='*' or type_req ='mso' or type_req ='emf' or type_req ='epp' or type_req ='rtf' or type_req ='lt=' or type_req ='wmf' ortype_req ='ms=' or type_req ='%3D' or type_req ='rc=' or type_req ='MYI' ortype_req like '%/' ");
3. Pembersihan tahap 3 yaitu proses pembuangan request yang sama dan dilakukan pada detik yang sama, hal tersebut untuk menghindari duplikasi data.
4. Pembersihan tahap 4 merupakan proses pembuangan data transaksi yang dilakukan oleh host (IP Address) pada hari yang sama dengan akses node yang sama.
Struktur Data Pohon dan Membentuk Node
Tabel 18. Daftar Node kode_node isi_node
1 /adm.html
2 /adm.php
3 /adm/admloginuser.php
4 /adm/index.html
5 /adm/index.php
6 /admin
7 /admin-login.asp
8 /admin-login.html
9 /admin-login.php
10 /admin.asp
11 /admin.htm
12 /admin.html
13 /admin.indexadmin.php
14 /admin.php
... ...
20923 /wp-content/themes/make-money-online-theme/scripts/timthumb.php
20924
Analisis Database
Berikut ini skema pembentukan tabel untuk keperluan penambangan data:
Gambar 7. Skema pembentukan tabel log
Penambangan data dilakukan terhadap tabel data_log_2 dan data_log_1itemset. data_log_2 digunakan untuk mengetahui runtutan waktu (time series) dalam batasan waktu terkecil adalah detik, sedangkan data_log_1itemset digunakan untuk membentuk transaksi per ip_host sebagai identifikasi sesi (session identification) dengan batasan waktu terkecil adalah hari atau tanggal (relasi antar tabel ada pada class diagram).
Analisis Assosiasi
a. Penentuan kaidah asosiasi
dengan nilai Minimum Support (MS) adalah 1% dan nilai Minimum Confidence (MC) minimum adalah 0.2%, dapat dilihat pada Tabel 4.4
Tabel 19. Hasil Scan / Prunning Pertama kandidat 1itemset
No Kode
1 8348 /index1.php 10162 8.8 ya
2 8039 /event.php 8841 7.7 ya
3 19262 /respon.php 8128 7.0 ya
4 12223 /pengumuman/cover_es.htm 7097 6.1 ya
5 20890 /wap/index.php 2808 2.4 ya
6 19803 /tampil.php 2505 2.2 ya
7 7530 /dir-alamatskpd/tampil.php 1961 1.7 ya
8 10759 /news/detail.php 1496 1.3 ya
9 7535 /dir_kementerian.php 788 0.7 tidak
10 332 /bbkptgpriok/admin/rb/bab-7-microsoft-excel.pdf 648 0.6 tidak
11 7969 /e-mail/alamat-dinas.htm 639 0.6 tidak
12 2500 /
daerah_new/banten/dispertanak_pandeglang/artikel_10a.ht m
626 0.5 tidak
13 7330 /dialog/diskusi.htm 583 0.5 tidak
14 12823 /pengumuman/Mutasi-PNS/mutasi_tugas_pns.pdf 513 0.4 tidak
15 7978 /e-mail/email_pejabat_deptan.htm 492 0.4 tidak
16 7564 /distanbun-sijunjung/admin/rb/bab-7-microsoft-excel.pdf 447 0.4 tidak
17 7474 /dinakkeswan_jateng/detaildata.php 446 0.4 tidak
18 19835 /teknologi/horti/tcabe3.htm 436 0.4 tidak
19 11033 /pedum2012.php 420 0.4 tidak
20 10022 /kln/berita/wto/ttg-wto.htm 390 0.3 tidak
Jumlah transaksi akses node keseluruhan adalah 115 569 transaksi dapat dilihat nilai support untuk /index1.php adalah 8.796% artinya 8.796% dari seluruh
transaksi dipastikan mengandung node 8.796% /index1.php, dan seterusnya untuk data node lain diperoleh nilai support dengan perhitungan sama.