31
4 HASIL DAN PEMBAHASAN
Pemecahan data log dan konversi ke file .csvData 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 Baris1 a.csv 110 542 665 480 0002 b.csv 150 217 973 522 8383 c.csv 147 894 289 475 8264 d.csv 93 766 392 311 6305 e.csv 62 261 364 253 3486 f.csv 67 463 583 280 202
Jumlah 632 146 266 2 323 844
Membersihkan data dan Pemilihan StringSetelah 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 NodeStruktur 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-catatan-akhir-tahun-pertama-desember-2011.pdf
34
Analisis DatabaseBerikut 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 Assosiasia. 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
NoKode Node
Isi NodeNode Count
Support (%)
Memenuhi Nilai MS
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.htm
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.
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 NodeNode 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,/dir-alamatskpd/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 AssosiasiSupport (%)
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 data1. 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 SistemPada 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 CaseDefinisi 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 CSV)
Merupakan proses mengambil data log yang 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 masing-masing 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 masing-masing 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 sesuai dengan url induk
2.1 Memeriksa keberadaan data 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 mengonversi ke file .csv
3.1. Membaca data log dan 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 Kondisi Kesalahan (Exception Conditions)
2.1. Jika data yang dimasukan sudah ada pada tabel maka batalkan proses penyimpanan serta berikan konfirmasi bahwa data sudah ada, arahkan user ke form masukan data.
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 LogNama 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 pembersihan berkas
2.1 Membersihkan data log dari 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 direktori
2.1 Menyediakan form 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 akan dilihat host-nya.
2. Memilih host untuk ditampilkan aktivitasnya
2.1 Menampilkan aktivitas untuk masing-masing host
Penangkapan Kondisi Kesalahan
-
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 Angka Minimun support
3. Memeriksa Frequent-1 itemset
3.1. Membaca data_log_1itemset3.2. Menghitung Frekuensi tiap-
tiap node3.3. Menampilkan kandidat 1-
itemset Node3.4. Menampilkan data 1-itemset
Node
Penangkapan Kondisi Kesalahan (Exception Conditions)
3.1 Apabila tidak ada data Minimum support maka tampilkan konfirmasi agar mengisi angka Minimum Support.
Tabel 28. Uraian Skenario Membuat 2Itemset NodeNama 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 Sistem
1. Memilih tombol Periksa 2-
43
Nama Use Case: Membuat 2Itemset Node
itemset
2. Memilih Simpan 2-itemset
3. Memeriksa Frequent-2 itemset
3.1. Membaca data_log_2itemset3.2. Menghitung Frekuensi tiap-
tiap node3.3. Menampilkan kandidat 2-
itemset Node3.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 SistemSistem 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 SistemSistem 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.