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 Baris1 a.csv 110 542 665 480 000 2 b.csv 150 217 973 522 838 3 c.csv 147 894 289 475 826 4 d.csv 93 766 392 311 630 5 e.csv 62 261 364 253 348 6 f.csv 67 463 583 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.
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=16258Setelah 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.
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.pdfAnalisis 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
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 Node 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.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.phpadalah 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:
Tabel 20. Hasil Scan / Prunning Kedua kandidat 2itemset
No Kode Node Isi Node CountNode 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:
Tabel 21. Hasil perhitungan support dan confidence kaidah assosiasi 2itemset
No Kaidah Assosiasi Support (%) Confidence (%) Memenuhi MS dan MC1 /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 :
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 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
Uraian Skenario Uses Case
Tabel 23 Uraian Skenario Impor Data Log
Nama Use Case: Impor Data LogSkenario: 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
Tabel 24 Uraian Skenario Bersihkan Data Log
Nama Use Case: Membersihkan Data LogSkenario: 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 NodeSkenario: 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
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 Menyediakanpengelolaan data direktori form Penangkapan Kondisi Kesalahan (Exception Conditions)
-Tabel 26. Uraian Skenario Lihat Aktivitas Host
Nama Use Case: Lihat Aktivitas HostSkenario: 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
-Tabel 27. Uraian Skenario Membuat 1Itemset Node
Nama Use Case: Membuat 1Itemset NodeSkenario: 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_1itemset 3.2. Menghitung Frekuensi
tiap-tiap node
3.3. Menampilkan kandidat 1-itemset Node
3.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 Node
Nama Use Case: Membuat 2Itemset NodeSkenario: 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
2-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 node
3.3. Menampilkan kandidat 2-itemset Node
3.4. Menampilkan data 2-itemset Node Penangkapan Kondisi Kesalahan (Exception Conditions)