Penerapan
K-Means
Untuk Pengelompokan Pengguna Internet
Berdasarkan
Elapsed
dan
Byte Transferred
Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi
Untuk memperoleh Gelar Sarjana Komputer
Oleh:
Kushendra Satria Prabawa (672009121) Dr. Irwan Sembiring, S.T., M.Kom.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana
Penerapan
K-Means
Untuk Pengelompokan Pengguna Internet
Berdasarkan
Elapsed
dan
Byte Transferred
1)
Kushendra Satria Prabawa2) IrwanSembiring
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: 1)672009121@student.uksw.edu, 2)irwan@staff.uksw.edu,
Abstract
Agencies providing Internet to its employees, to send and receive information. Internet connection is provided is often misused to access websites that do not provide benefits to the institution. Websites that do not provide these benefits need to be identified and then blocked access. This is done with the purpose so that the user can be more focused on productivity. The analysis process can be done by reading and processing the access log files contained on the Internet proxies, such as for example Squid. Process analysis was performed using data mining, by processing the file acces log using algorima K-Means Clustering based on elapsed and bytes transferred. The process analysis on the file is expected to provide an overview for the network administrator, about the Group's website as well as users anywhere who use its Internet access is high, and whether the available internet service actually used for the benefit of the Agency.
Keywords: Data mining, K-Means, elapsed, byte transferred, Acces log
Abstrak
Pada suatu instansi, Internet disediakan untuk mengirim dan menerima informasi. Koneksi Internet yang disediakan sering kali disalahgunakan untuk mengakses website -website yang tidak memberikan manfaat bagi instansi tersebut. Website yang tidak memberikan manfaat tersebut perlu dikenali kemudian diblokir aksesnya. Hal ini dilakukan dengan tujuan supaya pengguna dapat lebih terfokus pada produktivitasnya. Proses analisis dapat dilakukan dengan membaca dan mengolah file access log yang terdapat pada proxy Internet, seperti contohnya Squid. Proses analisis dilakukan dengan menggunakan data mining, tepatnya dengan mengolah file acces log tersebut menggunakan algorima K-Means Clustering berdasarkan elapsed dan byte transferred. Proses analisis pada file tersebut diharapkan dapat memberikan gambaran bagi administrator jaringan, tentang kelompok website maupun pengguna mana saja yang pemakaiannya akses internetnya tinggi, dan apakah layanan internet yang tersedia benar-benar digunakan untuk kepentingan instansi.
Kata Kunci: Data mining, K-Means, elapsed, byte transferred, Acces log
______________________________________ 1)
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana
2)
1 1. Pendahuluan
Pada era digital saat ini, tidak bisa dibayangkan dunia tanpa komunikasi. Manusia memiliki kepentingan bertukar informasi untuk berbagai tujuan. Internet memiliki peran sebagai penyedia informasi dari berbagai titik di dunia, kepada tempat manapun di dunia. Informasi dapat diperoleh dengan mudah dan cepat.
Pada suatu instansi, Internet disediakan untuk mengirim dan menerima informasi. Koneksi Internet yang disediakan sering kali disalahgunakan untuk mengakses website yang tidak memberikan manfaat bagi instansi tersebut. Website yang mengalihkan perhatian pengguna Internet, dapat menurunkan kinerja pengguna tersebut, dan dapat mengganggu kinerja instansi.
Website yang tidak memberikan manfaat tersebut perlu dikenali kemudian diblokir aksesnya. Hal ini dilakukan dengan tujuan supaya pengguna dapat lebih terfokus pada produktivitasnya. Pola penggunaan Internet tersebut perlu dianalisis untuk mengetahui seberapa besar persentase penggunaan data untuk mengakses website-website tersebut.
Proses analisis dapat dilakukan dengan membaca dan mengolah file access log yang terdapat pada proxy Internet, seperti contohnya Squid. Pada file tersebut terdapat rekaman waktu akses, sumber dan tujuan akses, lama akses, dan besar data yang ditransmisikan. Proses analisis dilakukan dengan menggunakan data mining, tepatnya dengan menggunakan algorima K-Means Clustering. Proses analisis pada file tersebut diharapkan dapat memberikan gambaran bagi administrator jaringan, tentang kelompok website dan user mana saja yang mempunyai akses tinggi, dan apakah layanan internet yang tersedia benar-benar digunakan untuk kepentingan instansi.
Berdasarkan permasalahan tersebut, dilakukan penelitian untuk mengelompokkan pengunaan internet baik dari user maupun website yang dikunjungi. Analisis dilakukan untuk mengetahui seberapa besar throughput yang digunakan untuk kepentingan instansi. Analisis dilakukan dengan mengembangkan aplikasi berbasis desktop.
2. Tinjauan Pustaka
Pada penelitian Sutiknyo [1], diimplementasikan K-Means dalam proses penggolongan suara berdasarkan usia. Data suara dikumpulkan dengan proses sampling kemudian dianalisis dengan K-Means untuk dikelompokan dalam cluster usia dewasa dan anak-anak. Pada saat ada sinyal baru yang masuk, maka akan dibandingkan dengan data yang telah terklaster. Perbandingan dilakukan dengan menghitung titik tengah data baru, dengan titik tengah tiap cluster, sehingga diketahui cluster terdekat dengan data baru (sinyal suara baru) tersebut. Penelitian tersebut menghasilkan aplikasi penggolongan suara, yang berdasarkan pengujian, memiliki tingkat keberhasilan 100%.
K-2
Means yaitu dengan mengelompokkan n buah objek ke dalam k kelas berdasarkan jaraknya dengan pusat kelas. Dari hasil penelitian terhadap 20 data sampel diperoleh 3 kelompok mahasiswa berdasarkan nilai BMI dan ukuran rangka, yaitu : BMI normal dan kerangka besar, BMI obesitas sedang dan kerangka sedang, BMI obesitas berat dan kerangka kecil.
Data Mining [3] merupakan solusi yang mampu menemukan kandungan informasi yang tersembunyi berupa pola dan aturan sekumpulan data yang besar agar mudah dipahami. Data Mining didefinisikan sebuah proses untuk menemukan hubungan, pola, dan tren baru yang bermakna dengan menyaring data yang sangat besar, yang tersimpan dalam penyimpanan. menggunakan teknik pengenalan pola seperti teknik statistik dan matematika. Data Mining dan knowledge discovery in database (KDD) [4] merupakan istilah yang memiliki konsep yang berbeda akan tetapi saling berkaitan karena data mining adalah bagian dalam proses knowledge discovery in database.
Salah satu metode yang diterapkan dalam KDD adalah clustering. Clustering adalah membagi data ke dalam grup-grup yang mempunyai obyek yang karakteristiknya sama [5]. Garcia-Molina [6] menyatakan clustering adalah pengelompokan item data ke dalam sejumlah kecil grup sedemikian sehingga masing-masing grup mempunyai sesuatu persamaan yang esensial. Clustering memegang peranan penting dalam aplikasi data mining, misalnya eksplorasi data ilmu pengetahuan, pengaksesan informasi dan text mining, aplikasi basis data spasial, dan analisis web.
Tan [7] membagi clustering dalam dua kelompok, yaitu hierarchical and partitional clustering. Partitional Clustering [8] disebutkan sebagai pembagian obyek-obyek data ke dalam kelompok yang tidak saling overlap sehingga setiap data berada tepat di satu cluster. Hierarchical clustering [9] adalah sekelopok cluster yang bersarang seperti sebuah pohon berjenjang (hirarki). Algoritma clustering terbagi ke dalam kelompok besar seperti berikut: 1. Partitioning algorithms: algoritma dalam kelompok ini membentuk bermacam partisi dan kemudian mengevaluasinya dengan berdasarkan beberapa kriteria. 2. Hierarchy
algorithms: pembentukan dekomposisi hirarki dari sekumpulan data
menggunakan beberapa kriteria. 3. Density-based [10] : pembentukan cluster berdasarkan pada koneksi dan fungsi densitas. 4. Grid-based: pembentukan cluster berdasarkan pada struktur multiple-level granularity 5. Model-based: sebuah model dianggap sebagai hipotesa untuk masing-masing cluster dan model yang baik dipilih diantara model hipotesa tersebut.
3
menentukan koordinat titik tengah setiap cluster, 2. menentukan jarak setiap obyek terhadap koordinat titik tengah, 3. mengelompokkan obyek-obyek tersebut berdasarkan pada jarak minimumnya. Gambar 1 menunjukkan diagram alir dari algoritma K-Means. Secara umum metode K-Means menggunakan algoritma sebagai berikut [11]:
1. Tentukan k sebagai jumlah cluster yang dibentuk.
Untuk menentukan banyaknya cluster k dilakukan dengan beberapa pertimbangan seperti pertimbangan teoritis dan konseptual yang mungkin diusulkan untuk menentukan berapa banyak cluster.
2. Bangkitkan k Centroid (titik pusat cluster) awal secara random. Penentuan centroid awal dilakukan secara random/acak dari objek-objek yang tersedia sebanyak k cluster, kemudian untuk menghitung centroid cluster ke-i berikutnya,
3. Hitung jarak setiap objek ke masing-masing centroid dari masing-masing cluster. Ada beberapa cara penghitungan jarak yang biasa digunakan yaitu :
Euclidean distance
Manhattan distance disebut juga taxicab
Chebichev distance
4. Alokasikan masing-masing objek ke dalam centroid yang paling terdekat.
Untuk melakukan pengalokasian objek kedalam masing-masing cluster pada saat iterasi secara umum dapat dilakukan dengan dua cara yaitu dengan hard k-means, dimana secara tegas setiap objek dinyatakan sebagai anggota cluster dengan mengukur jarak kedekatan sifatnya terhadap titik pusat cluster tersebut, cara lain dapat dilakukan dengan fuzzy C-Means.
5. Lakukan iterasi, kemudian tentukan posisi centroid baru dengan menggunakan persamaan (1).
6. Ulangi langkah 3 jika posisi centroid baru tidak sama.
4
Gambar 1 Alur algoritma K-Means [12]
Access log adalah file yang mencatat semua akses yang dilakukan terhadap web server. Data yang disediakan oleh web server logs berisi informasi tentang remotehost (ip address), rfc931, authuser, timestamp, request, status, dan size serta jenis agen yang digunakan untuk mengakses website
Tabel 1 Format dan Contoh Access log
Field Keterangan Contoh
time Unix timestamp 1301572114
elapsed Durasi akses. Dalam milidetik 4014
client ip address Alamat IP komputer local 192.168.67.71
code/status Squid result code TCP_MISS/206
bytes Ukuran byte yang ditransmisikan 279858
method Metode yang digunakan untuk
mendapatkan objek GET
URL Alamat url yang diakses https://www.google.co.id/
rfc931 -
peerstatus/peerhost DIRECT/119.110.77.232
type Tipe data
application/x-rar-compressed
3. Metode dan Perancangan Sistem
5
data, (2) Perancangan sistem, (3) Implementasi sistem yaitu Perancangan aplikasi/program, dan (4) Pengujian sistem serta analisis hasil pengujian.
Gambar 2 Tahapan Penelitian
Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut. Tahap pertama: yaitu melakukan analisis kebutuhan; Tahap kedua: yaitu melakukan perancangan sistem yang meliputi perancangan proses K-Means, atribut-atribut yang digunakan di access log untuk diterapkan pada proses clustering; Tahap ketiga: yaitu mengimplementasikan rancangan yang telah dibuat di tahap dua ke dalam sebuah aplikasi/program sesuai kebutuhan sistem; Tahap keempat: yaitu melakukan pengujian terhadap sistem yang telah dibuat, serta menganalisis hasil pengujian tersebut, untuk melihat apakah aplikasi yang telah dibuat sudah sesuai dengan yang diharapkan atau tidak, jika belum sesuai
Gambar 3 Alur Proses Clustering Data Access log
6
mewakili nilai elapsed time, dan y menentukan byte transferred. Rumus untuk menentukan titik pusat awal cluster adalah sebagai berikut:
(1)
Pada tiap record, dihitung jarak antara record dengan titik tengah tiap-tiap cluster. Rumus perhitungan jarak euclidean ditunjukkan pada rumus 3. Rumus 4 merupakan rumus perhitungan rata-rata (mean) digunakan untuk menghitung ulang titik pusat cluster. Rata-rata suatu cluster diperoleh dengan menjumlahkan nilai member pada cluster tersebut, dibagi dengan jumlah member di dalam cluster itu. Rata-rata dihitung untuk tiap atribut, yaitu x untuk elapsed time, dan y untuk byte transferred. Pada rumus 4 ditunjukkan rumus untuk atribut x (elapsed time), yang juga dapat berlaku untuk atribut y (byte transferred)
(3)
(4)
Berikut diberikan contoh proses clustering terhadap data access log. Format data access log adalah sebagai berikut:
Tabel 2 Format Access log
Field Keterangan Contoh
Time Unixtimestamp 1301572114
Elapsed Durasi akses. Dalam milidetik 4014
7
code/status Squidresultcode TCP_MISS/206 Bytes Ukuran byte yang ditransmisikan 279858
Method Metode yang digunakan untuk
mendapatkan objek GET
URL Alamat url yang diakses https://www.google.co.id/
rfc931 -
peerstatus/peerhost DIRECT/119.110.77.232
Type Tipe data application/x-rar-compressed
Setelah melalui proses pembersihan, dimisalkan hasil ringkasan access log adalah sebagai berikut:
Tabel 3 Contoh Hasil Ringkasan Access log
IP Elapsed (X) ByteTransferred (Y)
Data tersebut akan dikelompokkan dalam 3 cluster yaitu A, B, C, dengan jumlah iterasi adalah 2. Titik tengah tiap cluster yang dihasilkan dari perhitungan dengan rumus 1, dan rumus 2 yaitu:
A = (16335, 3362067), B = (19445, 4255420), dan C = (22555, 5148773). Hasil iterasi pertama adalah:
Tabel 4 Hasil Iterasi Pertama
IP Elapsed (X)
ByteTransferred
(Y) A B C
192.168.67.10 16335 3362067 0 893358.4 1786717
192.168.67.16 25665 6042126 2680075 1786717 893358.4
192.168.67.22 16677 3619241 257174.2 636185 1529543
192.168.67.23 17698 3723590 361525.6 531832.9 1425191
192.168.67.24 17643 3733322 371257.3 522101.1 1415460
192.168.67.28 18290 3648499 286438.7 606922.1 1500280
192.168.67.39 16507 3459869 97802.15 795556.4 1688915
192.168.67.41 17722 3769288 407223.4 486135.1 1379493
192.168.67.56 16706 3822160 460093.1 433268.7 1326626
192.168.67.57 16641 3625630 263563.2 629796.2 1523154
8
192.168.67.28, 192.168.67.39, 192.168.67.41, 192.168.67.57), ditunjukkan dengan cetak tebal dan miring. Demikian juga pada cluster B ada 1 anggota (192.168.67.56, C ada 1 anggota (192.168.67.16). Angka pada tiap cluster adalah nilai jarak antara member dengan tiap cluster dengan menggunakan rumus euclidean.
893358.4 adalah hasil perhitungan jarak menggunakan rumus 3 (Euclidean) yaitu (16335−19445)2+ (3362067−4255420)2. 16335 adalah nilai X pada member pertama, dan 3362067 adalah nilai Y pada member pertama. Angka 19445 dan 4255420 adalah titik tengah cluster B. Member dimasukkan pada cluster dengan nilai jarak terkecil.
Setelah itu, pada tiap cluster dihitung nilai rata-rata (means), untuk tiap cluster, yaitu dengan menghitung rata-rata nilai X pada tiap member dan rata-rata nilai Y pada tiap member cluster. Dari Iterasi pertama menghasilkan titik tengah cluster baru yaitu:
A = (17189.1, 3617688), B = (16706, 3822160), dan C = (25665, 6042126) Hasil iterasi kedua adalah:
Tabel 5 Hasil Iterasi Kedua
IP Elapsed (X)
ByteTransferred
(Y) A B C
192.168.67.10 16335 3362067 255622.7 460093.1 2680075
192.168.67.16 25665 6042126 2424453 2219984 0
192.168.67.22 16677 3619241 1635.024 202919 2422902
192.168.67.23 17698 3723590 105903 98574.99 2318550
192.168.67.24 17643 3733322 115634.6 88842.94 2308818
192.168.67.28 18290 3648499 30830.41 173668.2 2393638
192.168.67.39 16507 3459869 157820.7 362291.1 2582273
192.168.67.41 17722 3769288 151600.7 52881.76 2272852
192.168.67.56 16706 3822160 204472.3 0 2219984
192.168.67.57 16641 3625630 7960.643 196530 2416513
9 4. Hasil dan Pembahasan
Aplikasi yang dikembangkan dalam penelitian ini berupa aplikasi berbasis desktop. Perangkat pengembangan yang digunakan adalah Visual Studio 2012 Express for Windows Desktop, dengan pustaka .Net Framework 4.5. Database yang digunakan adalah Microsoft SQL Server Express 2012.
Gambar 4 Hasil Implementasi Clustering pada Aplikasi
Sesuai dengan perancangan, pada aplikasi dikembangkan fitur clustering dengan menggunakan algoritma K-Means berdasarkan remote host(destination) maupun local host. Pada Gambar 4, diatur untuk membentuk 4 cluster dengan object Remote Host ( Destination) menggunakan iterasi 10. Data access log yang diolah dibatasi oleh rentang waktu yaitu pada jam 7 pagi sampai dengan jam 16.
10
Gambar 5 menunjukkan form yang menampilkan grafik bar. Grafik ini merupakan ringkasan dari 10 website yang paling banyak menggunakan byte data dan waktu akses. Chart sebelah kiri merupakan daftar website dengan penggunaan byte 10 terbesar. Chart sebelah kanan dihitung berdasarkan total waktu akses (elapsed) dalam satuan detik. Kedua chart ini dimaksudkan untuk memberikan informasi secara visual, kepada administrator jaringan, sehingga dapat membantu dalam pengambilan keputusan pengaturan jaringan.
Tiap satu proses iterasi akan membentuk susunan cluster tersendiri. Seiring dengan banyaknya proses iterasi yang dilalui, maka pusat cluster akan semakin menyesuaikan. Titik tengah cluster akan bergeser berdasarkan anggota-anggota cluster yang dimiliki. Semakin lama, dalam satu cluster, akan terdapat anggota yang memiliki atribut-atribut yang berdekatan (mirip).
Gambar 6 Hasil Clustering Penggunaan Internet Pada Rentang Jam 7-16 dalam sepekan
11
Gambar 7 Ringkasan URL yang diakses oleh beberapa komputer
Pada iterasi terakhir, terdapat satu cluster dengan satu komputer yang memiliki nilai “byte transferred” dan “elapsed time” terbesar yaitu facebook.com. Ringkasan penggunaan byte data oleh komputer tersebut dapat dilihat pada fiter statistik data. Gambar 7 menunjukkan komputer mana saja yang mengakses website facebook tersebut. Data tersebut jika disajikan dalam bentuk chart, ditunjukkan pada Gambar 8. Visualisasi data ini bertujuan untuk mempermudah pemahamaan data.
12
Pada Gambar 8 ditunjukkan diagram pie untuk menampilkan 10 besar komputer yang mengakses facebook.com dengan byte transferred terbesar. Disini dapat dilihat penggunaan terbesar yang mengakses facebook.com adalah member dengan ip 192.168.67.254
Gambar 9 Hasil Implementasi Clustering pada Aplikasi berdasar local host
Pada Gambar 9 menunjukkan hasil clustering dari sample data access log berdasarkan local host, yang terkumpul sepanjang tanggal 7-11 September 2015, dalam rentang jam 7 sampai dengan 16. Hasil clustering membentuk 4 cluster. Cluster 2 merupakan kelompok local host yang paling banyak menggunakan akses internet, dalam hal waktu dan byte.
13
Gambar 10 menunjukkan form yang menampilkan grafik bar. Grafik ini merupakan ringkasan dari 10 local host yang paling banyak menggunakan byte data dan waktu akses. Chart sebelah kiri merupakan daftar local host dengan penggunaan byte 10 terbesar. Chart sebelah kanan dihitung berdasarkan total waktu akses (elapsed) dalam satuan detik. Kedua chart ini dimaksudkan untuk memberikan informasi secara visual, kepada administrator jaringan, sehingga dapat membantu dalam pengambilan keputusan pengaturan jaringan.
Gambar 11 Ringkasan akses yang dilakukan oleh local host
14
Gambar 12 Ringkasan URL yang diakses oleh suatu komputer dalam bentuk diagram pie.
Pada Gambar 12 ditunjukkan diagram pie untuk menampilkan 10 besar website mana saja yang diakses oleh 192.168.67.16 dengan byte transferred terbesar. Disini dapat dilihat penggunaan terbesar yang diakses oleh alamat tersebut adalah mengakses youtube.com
5. Simpulan
Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan yaitu pengelompokan penggunaan internet dapat dianalisis dengan cara mengolah access log dari proxy server, kemudian diklasterkan dengan menggunakan algoritma K-Means. Hasil clustering menunjukkan kelompok-kelompok website yang paling sering diakses dan pengguna yang paling banyak menggunakan byte data pada rentang waktu tertentu. Rentang waktu ini dapat dispesifikasikan sampai dengan rentang per jam, sehingga dapat diketahui pola perilaku penggunaan pada jam kerja dan jam istirahat. Berdasarkan hasil clustering ini, administrator jaringan dapat melihat website mana saja yang perlu dibatasi aksesnya, sehingga dapat memaksimalkan penggunaan byte data internet untuk keperluan yang seharusnya. Pola titik tengah cluster membentuk pola yang menunjukkan bahwa semakin besar waktu yang digunakan untuk mengakses website tersebut, maka semakin besar pula data byte yang digunakan.
15
transferred dalam acceslog. Untuk penelitian selanjutnya dapat ditambahkan atribut lainnya yaitu method yang terdapat pada file acceslog. Untuk penelitian selanjutnya, dapat dibandingkan dengan menggunakan algoritma asosiasi (Apriori), atau klasifikasi (KNN).
6. Daftar Pustaka
[1]. Sutiknyo, P. H. P. & Soelistijorini, R. 2011. Penggolongan Suara Berdasarkan Usia Dengan Menggunakan Metode K-Means. EEPIS Final Project
[2]. Rismawan & Kusumadewi. Aplikasi K-Means untuk Pengelompokan Mahasiswa Berdasarkan Nilai Body Mass index (BMI) & Ukuran Kerangka. Yogyakarta: Seminar Nasional Aplikasi Teknologi Informasi 2008 (SNATI 2008) ISSN: 1907-5022; 2008.
[3]. Soumen Chakrabarti, Martin Ester, Usama Fayyad, Johannes Gehrke, Jiawei Han, Shinichi Morishita, Gregory Piatetsky-Shapiro, W. W. 2015. Data Mining Curriculum. http://www.kdd.org/curriculum/index.html. Diakses 5 Januari 2016.
[4]. Fayyad, U., Piatetsky-Shapiro, G. & Smyth, P. 1996. From data mining to knowledge discovery in databases. AI magazine 17, 37.
[5]. Berkhin, P. 2004. Survey Of Clustering Data Mining Techniques. Accrue Software, San Jose, CA, 2002.
[6]. Garcia-Molina, H. 2008. Database systems: the complete book. Pearson Education India.
[7]. Tan, P.-N., Steinbach, M. & Kumar, V. 2013. Data Mining Cluster Analysis: Basic Concepts and Algorithms.
[8]. Popat, S. K. & Emmanuel, M. 2014. Review and Comparative Study of Clustering Techniques. International Journal of Computer Science and Information Technologies 5, 805–812.
[9]. Zhao, Y. & Karypis, G. 2002. Evaluation of hierarchical clustering algorithms for document datasets. In Proceedings of the eleventh international conference on Information and knowledge management, pp. 515–524.
[10]. Chen, Y. & Tu, L. 2007. Density-based clustering for real-time stream data. In Proceedings of the 13th ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 133–142.
[11]. Agusta Y. K-Means-Penerapan, Permasalahan dan Metode Terkait. Denpasar, Bali: Jurnal Sistem dan Informatika (Februari 2007) Vol. 3: 47-60; 2007.