Log files data yang diterima dari server web STIS merupakan data yang memiliki ukuran 4GB.
Log tersebut berisi log dari tanggal 9 November 2018 hingga 18 November 2019. Selanjutnya, log diambil secara acak untuk mendapatkan log dalam rentang waktu 8 hari.
Log STIS tersebut kemudian dipisahkan per variabel (parsing data) dan dibuka secara parsial melalui aplikasi LogViewPlus dengan ukuran per bagiannya sebesar 250MB yang mendapatkan sebanyak 19 part.
Dari bagian tersebut kemudian dipilih secara acak dan mendapatkan hasil bagian ke-19 yang terpilih. Part 19 tersebut merupakan data log dengan records pertama tanggal 5 November 2019 (disimpan sebagai "request-agent.csv").
File .csv tersebut kemudian diolah menggunakan aplikasi RStudio.
--PROSES CLEANING:
1. Pengambilan data dalam rentang waktu 8 hari (5 November 2019 sampai 12 November 2019).
2. Cleaning data IP Local STIS (10.100.244.244).
3. Menghapus data yang tidak memiliki referrer
4. Cleaning data dengan ekstensi yang tidak diperlukan (.css,.jpg,.xml, dsb)
5. Cleaning data yang mengakses selain web STIS (misal mengakses SEMA STIS, SIPADU STIS)
(disimpan sebagai "request-agent2.csv")
Dari file request-agent2 tersebut kemudian diambil variabel "user-agent" untuk diterjemakan ke jenis user agent melalui API yang disediakan web "useragentsring.com".
Variabel user-agent tersebut dimasukkan ke dalam database untuk diterjemahkan dengan PHP ke web useragentsring. (codingan disimpan dalam folder "user_agent")
Data yang telah diterjemahkan memiliki output dalam format JSON yang kemudian diubah ke format csv secara online melalui web "numidian.io".
Output tersebut kemudian digabungkan dengan data request sebelumnya, dan dilakukan cleaning records yang diakses oleh robot/crawler. (disimpan dalam "skripsi-data.csv")
Dilakukan visualisasi rincian cleaning data.
Masuk ke proses selanjutnya.
--VISUALISASI ERROR
--VISUALISASI WAKTU
--VISUALISASI USER AGENT (BROWSER, OS)
--LOKASI AKSES
variabel IP diterjemahkan ke variabel lokasi (titik koordinat, nama negara, nama kota, dsb) melalui API yang disediakan web "freegeoip.app"
Variabel IP tersebut dimasukkan ke dalam database untuk diterjemahkan dengan PHP ke web freegeoip. (codingan disimpan dalam folder "loc_ip")
Data yang telah diterjemahkan memiliki output dalam format JSON yang kemudian diubah ke format geoJSON secara online melalui web "codepen.io/parry-drew/pen/wWYXmR".
Data geoJSON tersebut kemudian dilakukan visualisasi menggunakan JavaScript. (codingan disimpan dalam folder "plot_ip"
-POLA AKSES
sebelum masuk ke proses mencari pola akses, selain records dengan status 2xx akan dihapus terlebih dahulu.
--USER IDENTIFICATION
Dilakukan pengidentifikasian user/pengunjung web STIS berdasarkan IP, Browser dan OS yang digunakan saat mengakses web STIS.
---user dengan IP beda menandakan user yang berbeda
---IP sama tapi jenis browsernya beda menandakan user yang berbeda
---IP dan Browser sama tapi OS yang digunakan berbeda menandakan user yang berbeda
(disimpan dalam "r-userID.csv")
--SESSION IDENTIFICATION
Dilakukan pengidentifikasian sesi yang dilakukan user berdasarkan jarak akses dari request sebelumnya, dimana digunakan jarak selama 30 menit.
---Mengidentifikasi beda waktu request terbaru dengan request lama yang diminta user.
---Mengidentifikasi sesi dari jarak waktu tersebut(userID yang sama dan jarak waktu akses lebih dari 30 menit menandakan sesi yang berbeda dari user tersebut).
(disimpan dalam "r-datasesi.csv")
--TRANSAKSI IDENTIFICATION
Dilakukan untuk mengidentifikasi urutan transaksi berdasarkan userID dan sessionID yang nantinya akan digunakan dalam pencarian pola menggunakan apriori association rules.
---userID yang berbeda menandakan transaksi yang berbeda
---userID yang sama tapi sessionIDnya berbeda menandakan transaksi yang berbeda
(disimpan dalam "r-transapriori.csv")
--TRANSFORMASI DATA KE FORMAT 'TRANSACTIONS' dengan fungsi read.transactions() pada package "arules"
--APRIORI PER ITEM TRANSAKSI
langsung dilakukan pencarian pola akses (rules) dengan fungsi apriori() pada packages "arules"
visualisasi hasil rules dengan package "arulesviz"
--APRIORI PER ITEM KATEGORI
perlu melakukan parsing URL dan mengelompokkan ke kategori tertentu baru dilakukan pencarian pola akses dan visualisasi seperti pada pola akses per item transaksi.