31
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 1 2 3 4 5 6
Nama file log a.csv b.csv c.csv d.csv e.csv f.csv
Ukuran (byte) 110 542 665 150 217 973 147 894 289 93 766 392 62 261 364 67 463 583
Jumlah Baris 480 000 522 838 475 826 311 630 253 348 280 202
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 2. Pembersihan Tahap 2 merupakan proses pemisahan string request yang ada pada data_log_1, dengan menggunakah Script PHP.
32 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 pada fileds type_req dan dijadikan acuan query pembersihan baris data yang mengandung file gambar, audio, video, layout web dan string query. Pembersihan dilakukan dengan perintah SQL berikut : $$pj_string = strlen($pisah_request[0]); $type_req = substr($pisah_request[0],$pj_string-3,3); @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 Struktur data pohon yang terbentuk tidak direpresentasikan dalam bentuk gambar, akan tetapi dalam bentuk susunan direktori. dari hasil penelusuran direktori web Deptan, diperoleh sebanyak 20 924 node, dengan pengurutan data berdasarkan abjad isi_node supaya memudahkan pencarian.
33 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
/wp-content/uploads/2012/01/laporan-kemajuan-program-catatanakhir-tahun-pertama-desember-2011.pdf
34 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 Proses analisis yang pertama dilakukan yaitu menentukan kandidat 1itemset untuk 20 transaksi tertinggi dari transaksi node pada tabel data_log_1itemset
35 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 Node
Isi Node
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
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
626
0.5
tidak
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
420
0.4
tidak
390
0.3
tidak
12 2500 13 7330
/dir-alamatskpd/tampil.php
/ daerah_new/banten/dispertanak_pandeglang/artikel_10a.ht m /dialog/diskusi.htm
/pedum2012.php
20 10022 /kln/berita/wto/ttg-wto.htm
Node Count
Support Memenuhi (%) Nilai MS
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. Menentukan kandidat 2itemset dapat dilakukan dengan mencari keseluruhan kombinasi akses node yang terdapat pada hasil scan 1itemset, sebagai berikut:
36 Tabel 20. Hasil Scan / Prunning Kedua kandidat 2itemset No
Kode Node Isi Node
Node Count
Support Memenuhi (%) Nilai MS
1
8348,19262 /index1.php,/respon.php
1751
1.5
ya
2
8039,8348
/event.php,/index1.php
1748
1.5
ya
3
8039,19262 /event.php,/respon.php
1744
1.5
ya
4
8039,12223 /event.php,/pengumuman/cover_es.htm
1525
1.3
ya
5
12223,19262 /pengumuman/cover_es.htm,/respon.php
1519
1.3
ya
6
8348,12223 /index1.php,/pengumuman/cover_es.htm
1514
1.3
ya
7
8039,19803 /event.php,/tampil.php
521
0.5
tidak
8
8348,19803 /index1.php,/tampil.php
380
0.3
tidak
9
19262,19803 /respon.php,/tampil.php
369
0.3
tidak
10
12223,19803 /pengumuman/cover_es.htm,/tampil.php
341
0.3
tidak
11
8348,10759 /index1.php,/news/detail.php
159
0.1
tidak
12
8039,10759 /event.php,/news/detail.php
143
0.1
tidak
13
10759,19262 /news/detail.php,/respon.php
142
0.1
tidak
14
10759,12223 /news/detail.php,/pengumuman/cover_es.htm
128
0.1
tidak
15
8348,7530
/index1.php,/dir-alamatskpd/tampil.php
65
0.1
tidak
16
8039,7530
/event.php,/dir-alamatskpd/tampil.php
64
0.1
tidak
17
12223,7530
/pengumuman/cover_es.htm,/diralamatskpd/tampil.php
60
0.1
tidak
18
19262,7530 /respon.php,/dir-alamatskpd/tampil.php
56
0.05
tidak
19
7530,19803 /dir-alamatskpd/tampil.php,/tampil.php
42
0.04
tidak
20
19803,20890 /tampil.php,/wap/index.php
39
0.03
tidak
21
8039,20890 /event.php,/wap/index.php
36
0.03
tidak
22
12223,20890 /pengumuman/cover_es.htm,/wap/index.php
34
0.03
tidak
23
19803,10759 /tampil.php,/news/detail.php
31
0.03
tidak
24
8348,20890 /index1.php,/wap/index.php
29
0.03
tidak
25
20890,7530 /wap/index.php,/dir-alamatskpd/tampil.php
25
0.02
tidak
26
7530,10759 /dir-alamatskpd/tampil.php,/news/detail.php
22
0.02
tidak
27
10759,20890 /news/detail.php,/wap/index.php
19
0.02
tidak
28
19262,20890 /respon.php,/wap/index.php
16
0.01
tidak
Berdasarkan tabel 4.5 maka selanjutnya dilakukan proses perhitungan confidence dari kaidah assosiasi yang memenuhi syarat Minimum Support (MS) 1.0% dan Minimum Confidence (MC) 0.2% sebagai berikut:
37 Tabel 21. Hasil perhitungan support dan confidence kaidah assosiasi 2itemset No Kaidah Assosiasi
Support (%)
Confidence (%)
Memenuhi MS dan MC
1 /respon.php ----> /index1.php
1.5
0.22
ya
2 /pengumuman/cover_es.htm ----> /event.php
1.3
0.21
ya
3 /respon.php ----> /event.php
1.5
0.21
ya
4 /pengumuman/cover_es.htm ----> /respon.php
1.3
0.21
ya
5 /pengumuman/cover_es.htm ----> /index1.php
1.3
0.21
ya
6 /event.php ----> /index1.php
1.5
0.20
ya
7 /event.php ----> /respon.php
1.5
0.20
ya
8 /respon.php ----> /pengumuman/cover_es.htm
1.3
0.19
tidak
9 /event.php ----> /pengumuman/cover_es.htm
1.3
0.17
tidak
10 /index1.php ----> /respon.php
1.5
0.17
tidak
11 /index1.php ----> /event.php
1.5
0.17
tidak
12 /index1.php ----> /pengumuman/cover_es.htm
1.3
0.15
tidak
Nilai support dan nilai confidence 2itemset /respon.php > /index1.php (19262 > 8348) adalah 1.5% dan 0.22% (tabel 4.5), hal ini berarti setiap kali halaman web atau node /respon.php diakses maka ada kepercayaan sebesar 0.22% bahawa di dalamnya ada halaman /index1.php. Sedangkan nilai support dan nilai confidence 2itemset /index1.php > /respon.php 1.5% dan 0.17%, yang berarti setiap kali halaman web atau node /index1.php diakses maka ada kepercayaan sebesar 0.17% bahawa di dalamnya ada halaman /respon.php. Pengembangan Sistem Komputer untuk pengolahan data 1. Perencanaan Sistem Sistem yang akan dikembangkan diharapkan bisa menggantikan tahapan fungsi manual dalam menganalisis data Clickstream sehingga hasil akhir seperti yang tergambar dalam gambar 3.2 bisa tercapai. Fungsi utama dari sistem yang dikembangkan yaitu dapat memprediksi pengembangan konten Website untuk lebih baik lagi. 2. Analisis Sistem Pada tahapan ini akan diuraikan mengenai kebutuhan data dan informasi untuk pengembangan sistem (System Requirement). Analisis dilakukan dengan Pendekatan Berorientasi Objek (Object Oriented Approach) atau dikenal juga dengan Object Oriented Modeling (OO Modeling). Menurut Satzinger et al. (2007) yang termasuk kebutuhan sistem dirumuskan sepbagai berikut : OO Requirement = Event Table + Class Diagram + Use Case Diagram +
38 Interaction Diagram (Collaboration and/or Sequence Diagram) + Statechart Diagram a. Analisis Use Case Definisi Aktor Aktor pada sistem ini terdiri dari satu aktor yang disebut dengan pengguna (user) dengan deskripsi nya adalah semua pengguna sistem yang bisa menganalisis data Clickstream dengan cara mengolah data mentah berupa data log, membersihkan, menganalsis dan melihat prediksi pengembangan konten Website. Proses Pendefinisian Use Case Tabel 22. Definisi Use Case No. Use Case
Deskripsi
1
Impor Data Log (Format Merupakan proses mengambil data log yang CSV) sudah tersimpan di komputer, untuk selanjutnya akan disimpan dalam database.
2
Membersihkan Data Log
Merupakan proses membersihkan data log dengan membuang string yang tidak dibutuhkan
3
Membuat Node
Proses Pembuatan node yang berasal dari direktori atau folder yang ada pada Website serta membandingkan data node yang ada pada Website dengan aktivitas untuk masingmasing host
4
Membuat 1-Itemset Node
Merupakan salahsatu tahapan dalam algoritme apriori yaitu menentukan frequent dari kemunculan node 1-item node
5
Membuat 2-Itemset Node
Merupakan tahapan selanjutnya dari tahapan membuat 1-Itemset Node, yaitu menentukan frequent dari kemunculan node 2-item node
6
Lihat Aktivitas Host
Merupakan proses query terhadap tabel log untuk mengambil data request untuk masingmasing host (IP Address)
7
Membuat data grafik
Merupakan proses menampilkan data dalam bentuk grafik
39 Uraian Skenario Uses Case Tabel 23 Uraian Skenario Impor Data Log Nama Use Case:
Impor Data Log
Skenario:
Mengimpor data log
Triggering Event:
User memilih url website kemudian menngambil (browse) file log yang sudah dikonversi ke file .csv.
Deskripsi singkat:
Merupakan proses pemilihan berkas log untuk tiap-tiap url website, hanya diperkenankan 1 url 1 data log dengan waktu yang sama
Aktor:
User
Use Case terkait
Membersihkan data log
Stakeholders:
User
Kondisi sebelum:
Data deskripsi url harus sudah tersimpan dalam tabel.
Kondisi Sesudah:
Adanya penambahan data log untuk suatu alamat url dengan validasi berdasarkan waktu log.
Aliran Aktifitas
Aktor
Sistem
1.
Memilih url induk yang akan ditambahkan data log nya
2.
Memilih data log yang 2.1 Memeriksa keberadaan data sesuai dengan url induk pada tabel disesuaikan dengan data yang dimasukan oleh user 2.2 Menyimpan data ke dalam tabel 2.3 Memberikan konfirmasi data berhasil disimpan
3.
Memeriksa data log dengan 3.1. Membaca data log dan mengonversi ke file .csv memisahkan data tiap baris dengan pembatas (separator) spasi 3.2. Menampilkan data yang sudah dipisah-pisah 3.3. Memberikan konfirmasi penyimpanan data yang sudah dipisah-pisah tiap barisnya ke dalam database
Penangkapan 2.1. Jika data yang dimasukan sudah ada pada tabel maka batalkan Kondisi Kesalahan proses penyimpanan serta berikan konfirmasi bahwa data sudah (Exception ada, arahkan user ke form masukan data. Conditions) 3.1 Apabila ada data log yang tidak terbaca, periksa lagi data log awal untuk memastikan datadalam format .csv dan hanya memiliki 1 separasi yaitu spasi
40 Tabel 24 Uraian Skenario Bersihkan Data Log Nama Use Case:
Membersihkan Data Log
Skenario:
Membersihkan data log
Triggering Event:
User memilih url website kemudian membersihkan data log
Deskripsi singkat:
Ketika pilihan bersihkan berkas dipilih, maka sistem akan membersihkan data log dengan membuang baris data yang mengandung file tertentu.
Aktor:
User
Use Case terkait
Membuat 1-itemset node, include: Impor data log
Stakeholders:
User
Kondisi sebelum:
Url website harus sudah memiliki data log
Kondisi Sesudah:
Data log hanya memuat data yang dibutuhkan, baris data yang mengandug file tertentu maka akan dihapus.
Aliran Aktifitas
Aktor
Sistem
1.
Memilih url induk yang akan dibersihkann data log nya
2.
Melakukan proses 2.1 Membersihkan data log dari pembersihan berkas url web sesuai dengan pilihan user (pembersihan data log meliputi penghapusan baris data yang mengandung file css, js, .js, .db , xml, bmp, gif, jpg, jpeg, png, mp3, mp4, swf, sql, ico dan baris data yang tidak memiliki file (berakhiran /) 2.2 Memberikan konfirmasi berkas berhasil dibersihkan
Penangkapan Kondisi Kesalahan (Exception Conditions)
Tabel 25. Uraian Skenario Membuat Node Nama Use Case:
Membuat Node
Skenario:
Mengelola data Direktori Website
Triggering Event:
User memilih opsi Direktori Website pada sajian menu utama.
Deskripsi singkat:
Ketika user memilih untuk menambahkan direktori website, maka akan disediakan form isian direktori
Aktor:
User
Use Case terkait
Lihat Aktivitas Host, Membuat 1-Itemset Node, Membuat 1-Itemset Node
41 Nama Use Case:
Membuat Node
Stakeholders:
User
Kondisi sebelum:
url website sudah dideskripsikan
Kondisi Sesudah:
Data direktori termutakhirkan.
Aliran Aktifitas
Aktor
Sistem
1.
Memilih opsi Direktori Website pada menu utama
2.
Melakukan pengelolaan data 2.1 Menyediakan form direktori pengelolaan data direktori
Penangkapan Kondisi Kesalahan (Exception Conditions)
Tabel 26. Uraian Skenario Lihat Aktivitas Host Nama Use Case:
Lihat Aktivitas Host
Skenario:
Aktivitas Host
Triggering Event:
User memilih Menu Aktivitas Host pada menu utama
Deskripsi singkat:
Ketika pilihan aktivitas host dipilih maka akan dilakukan proses pencarian seluruh aktivitas yang dilakukan tiap-tiap host
Aktor:
User
Use Case terkait
Membuat Node, Include : Bersihkan Data Log
Stakeholders:
User
Kondisi sebelum:
Url website harus sudah memiliki data log dan data log nya sudah dibersihkan
Kondisi Sesudah:
Daftar aktifitas untuk masing-masing host.
Aliran Aktifitas
Aktor
Sistem
1.
Memilih url yang dilihat host-nya.
2.
Memilih host untuk 2.1 Menampilkan aktivitas untuk ditampilkan aktivitasnya masing-masing host
Penangkapan Kondisi Kesalahan
akan
42 Tabel 27. Uraian Skenario Membuat 1Itemset Node Nama Use Case:
Membuat 1Itemset Node
Skenario:
Membuat 1Itemset Node
Triggering Event:
User memilih menu Apriori kemudian memasukan minimum support yang dikehendaki sesuai dengan tampilan data
Deskripsi singkat:
Merupakan proses pembentukan kandidat 1-itemset dan menentukan freuent 1-temset data log
Aktor:
User
Use Case terkait
Membuat 2-itemset Node, include: Membersihkan Data Log
Stakeholders:
User
Kondisi sebelum:
Data Log sebelumnya harus sudah bersih.
Kondisi Sesudah:
Terbentuk Data frequent 1-itemset
Aliran Aktifitas
Aktor
Sistem
1.
Memilih Menu Apriori
2.
Memasukan Minimun support
3.
Memeriksa itemset
Angka Frequent-1 3.1. Membaca data_log_1itemset 3.2. Menghitung Frekuensi tiaptiap node 3.3. Menampilkan kandidat 1itemset Node 3.4. Menampilkan data 1-itemset Node
Penangkapan 3.1 Apabila tidak ada data Minimum support maka tampilkan Kondisi Kesalahan konfirmasi agar mengisi angka Minimum Support. (Exception Conditions)
Tabel 28. Uraian Skenario Membuat 2Itemset Node Nama Use Case:
Membuat 2Itemset Node
Skenario:
Membuat 2Itemset Node
Triggering Event:
User melakukan proses penentuan 1-temset node
Deskripsi singkat:
Merupakan proses pembentukan kandidat 2-itemset dan menentukan freuent 2-temset data log
Aktor:
User
Use Case terkait
Include: Membuat 1-itemset Node
Stakeholders:
User
Kondisi sebelum:
Data 1-itemset harus sudah terbentuk
Kondisi Sesudah:
Terbentuk Data frequent 2-itemset
Aliran Aktifitas
Aktor 1.
Memilih tombol Periksa 2-
Sistem
43 Nama Use Case:
Membuat 2Itemset Node itemset 2.
Memilih Simpan 2-itemset
3.
Memeriksa itemset
Frequent-2 3.1. Membaca data_log_2itemset 3.2. Menghitung Frekuensi tiaptiap node 3.3. Menampilkan kandidat 2itemset Node 3.4. Menampilkan data 2-itemset Node
Penangkapan Kondisi Kesalahan (Exception Conditions)
b. Use Case Diagram
Gambar 8. Use Case Diagram
44 c. Diagram Kelas (Class Diagram)
Gambar 9. Class Diagram
45 3. Desain Sistem Sistem yang dikembangkan merupakan sebuah aplikasi komputer yang bisa dijalankan pada berbagai sistem operasi komputer. Pengembangan aplikasi ini menggunakan script atau bahasa pemrograman berbasis web, yaitu HTML, JavaScript, XML, Ajax dan PHP. Berikut ini struktur umum dari template aplikasi yang akan dirancang :
Gambar 16. Desain antar muka template aplikasi 4. Implementasi Sistem Sistem yang dikembangkan merupakan aplikasi yang crossflatform artinya bisa dijalankan pada berbagai sistem aplikasi komputer. Sistem ini bisa berjalan pada komputer stand alone ataupun terintegrasi dalam jaringan, adapun syarat utamanya yaitu harus melakukan instalasi web server terlebih dahulu.