Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Puji syukur kepada Tuhan Yang Maha Esa atas berkat dan rahmat yang telah
diberikan, sehingga penulis dapat menyelesaikan skripsi ini. Skripsi yang berjudul
“Analisis dan Perancangan Piranti Lunak Penganalisa Web pada Apache Web server
dengan Platform Linux“ ini dimaksudkan untuk memenuhi salah satu syarat kelulusan
dalam jenjang pendidikan S-1 (Strata-1) jurusan Teknik Informatika pada Universitas
penulisan skripsi ini karena keterbatasan pengetahuan dan pengalaman penulis, sehingga
masih jauh dari sempurna. Oleh karena itu kritik dan saran untuk penyempurnaan skripsi
Pada Kesempatan ini, penulis hendak menyampaikan rasa terima kasih kepada
semua pihak yang telah memberikan bantuan, nasihat, petunjuk, kesempatan, dan
dorongan selama penulis menyelesaikan skripsi ini. Ucapan terima kasih ini terutama
ditujukan kepada :
1. Ibu Ir. Th. Widia S.MM., selaku Ketua Universitas Bina Nusantara.
materiil yang tidak ternilai harganya, serta teman-teman dan semua pihak yang
Akhir kata, semoga skripsi ini dapat bermanfaat bagi semua pihak yang berkepentingan.
Penulis
UNIVERSITAS BINA NUSANTARA
Abstrak
Untuk mengetahui sejauh mana suatu web dapat menampilkan informasi yang up-
to-date dan berdaya guna secara maksimal, maka akan digunakan suatu tool untuk
menganalisa aktifitas web tersebut. Dengan adanya informasi dari piranti lunak tersebut,
maka aktifitas dari suatu web akan lebih efisien.
Metode yang dipakai adalah membaca data yang ada pada log file, dan
mengolahnya menjadi suatu informasi yang kemudian disimpan ke dalam database.
Kemudian informasi ini ditampilkan dalam bentuk halaman web.
Piranti lunak yang dibuat ini diberi nama webanalyzer. Webanalyzer ini akan
membaca aktifitas yang ada di web server melalui log file. Tentunya hal – hal seperti
caching dan proxy yang ada di internet tidak akan tercatat dalam data pada log file. Akan
tetapi, dengan menganalisa log file yang ada di web server maka sebagian besar aktifitas
di web sudah dapat dianalisis. Web analyzer ini dapat menampilkan statistik dalam
bentuk tabel, maupun dalam bentuk suatu grafik.
Dengan adanya penganalisa web ini, diharapkan para web administrator dapat
menempatkan, dan mengetahui daya guna dari web yang dibuatnya. Sehingga tujuan
dari web yang dibuat tersebut dapat tercapai. Untuk pengembangan selanjutnya dari
program ini, maka dapat ditambahkan fasilitas – fasilitas khusus lain yang dapat
ditampilkan oleh web server yang ada. Juga dapat ditambahkan kemampuan
menampilkan dalam berbagai macam bentuk grafik yang sesuai dengan selera.
Kata Kunci : Analisis, Perancangan, Piranti Lunak, Penganalisa Web, Web Server,
Platform Linux, log file.
BAB 1
PENDAHULUAN
Di era teknologi informasi sekarang ini, internet berkembang dengan sangat pesat.
WWW adalah salah satu sarana penyampaian informasi yang paling banyak digunakan
dalam internet. Tiap tahun, banyak sekali bermunculan situs-situs web baru. Situs-situs
web ini digunakan untuk berbagai kebutuhan, mulai dari penelitian, pemasaran hingga
pendidikan. Banyak perusahaan yang telah menyadari pentingnya teknologi ini. Mereka
menerapkan teknologi ini pada perusahaan mereka dengan harapan keuntungan yang
Tetapi dalam perkembangannya, bukan hanya teknologi ini saja yang penting
melainkan dalam menajemen web itu sendiri. Manajemen web yang buruk akan
menimbulkan akibat yang buruk bagi perusahaan. Sehingga harapan perusahaan untuk
Salah satu cara untuk mengatasi hal-hal diatas adalah dengan mengamati sifat dan
berbagai kegiatan para pengunjung, pada situs web yang dimiliki. Hal-hal yang dapat
diamati seperti apa saja yang menjadi minat dari para pengunjung, dari mana
pengunjung berasal, pada jam-jam berapa saja mereka mengunjungi website tersebut,
dan sebagainya. Dengan mengetahui minat dan sifat dari para pengunjung, maka tujuan
bagian web yang sering dikunjungi, dan memperbaiki isi web yang kurang diminati
pengunjung.
Untuk mengetahui minat para pengunjung ini, maka diperlukan adanya suatu
piranti lunak yang menganalisa log file yang dihasilkan web server yang mencatat segala
aktifitas yang terjadi pada server. Dengan mengetahui segala aktifitas pengunjung, dan
menampilkannya dalam bentuk yang menarik dan informatif, maka manajemen suatu
web dapat dibuat lebih baik. Piranti lunak ini berfungsi untuk menganalisa bagian web
yang sering dikunjungi dalam suatu periode tertentu, misalnya per-jam, per-hari, atau
Menganalisa access log file yang dihasilkan oleh Apache web server dan
bentuk tabel dan diagram aktifitas yang dilakukan oleh para pengunjung web
server.
Piranti lunak ini dibuat agar bekerja pada platform linux, dengan Apache web
server.
2. Dapat mengurangi ketidakefisienan access log file, karena access log file
servernya
1.4 Metodologi
a. Menganalisa access log file, yang dilakukan melalui access log file
yang dimiliki situs web binus, untuk mengetahui informasi apa saja
yang bisa didapatkan dari access log file standard, dan bagaimana
antar halaman.
Skripsi ini terdiri atas lima bagian pokok yang secara singkat dijabarkan sebagai
berkut :
Bab 1 Pendahuluan
Bab ini berisi gambaran umum tentang penulisan skripsi ini, seperti hal-hal
yang melatarbelakangi penulisan skripsi ini, ruang lingkup penulisan, tujuan, dan
manfaat yang diperoleh dari skripsi ini, serta metodologi yang diterapkan.
dengan skripsi ini yang disaring dari berbagai sumber, baik dari buku referensi,
Bab ini membahas mengenai rancangan sistem yang akan dibuat, seperti
rancangan database.
Bab 4 Implementasi
spesifikasi modul dari program ini, diagram alir, diagram transisi (STD), dan
hubungan antar modulnya. Juga dibahas mengenai cara kerja program berdasarkan
2.1 Internet
Menurut Manger (1994, p238), Internet adalah suatu kumpulan global dari jaringan
komputer yang ada di seluruh dunia, yang semuanya saling berhubungan membentuk
berbagai pelosok dunia untuk bertukar atau memberikan informasi dalam beberapa saat
saja. Internet dikenal juga degan nama: “The Net, “The Information Super Highway”,
dan “Cyberspace”.
dengan kemampuan mengirim dan menerima berbagai data dan informasi secara terpadu
dan dalam bentuk yang terintegrasi. Hal ini diwujudkan dalam bentuk jaringan
Untuk kebutuhan tersebut, pada tahun 1969 proyek bernama ARPANET dibentuk
lembaga penelitian. Dari penelitian tersebut dihasilkan jaringan komputer luas yang
fungsinya. MILNET untuk kepentingan militer dan ARPANET untuk kepentingan non-
militer. Gabungan dari kedua jaringan tersebut menjadi DARPA INTERNET yang
Menurut Larson dan Stephens (2000, p3), web browser adalah suatu program
yang berfungsi untuk mengambil dan menampilkan informasi dari web server dengan
menggunakan HTTP. Dengan kata lain web browser merupakan client pada WWW. Web
Minoli (1998, p366) berpendapat bahwa web server asalah suatu program yang
menawarkan pelayanan yang bisa diperoleh di seluruh jaringan. Web server merupakan
suatu tipe server khusus yang dapat berkomunikasi dengan client menggunakan HTTP.
Web server menunggu client untuk berhubungan dan ketika hubungan terjadi, web
Aktifitas dari pengaksesan suatu web server dicatat pada log file. Ketika sebuah
HTTP client berhubungan dengan Apache web server, sebagian besar informasi
dipertukarkan. Web server mendapatkan informasi mengenai data klien dan aktifitas
dibuat adalah error log dan access log, tetapi selain itu dapat dibuat log file lainnya. Dua
log file didefinisikan sebagai suatu file konfigurasi standard yang langsung didapat dari
distribusi Apache.
Access log menyimpan informasi dasar tentang transaksi HTTP dan error log
menyimpan segala informasi tentang kesalahan yang ada. Walaupun kita dapat membuat
log file lainnya, sebagian besar orang hanya menggunakan dua jenis log file tersebut.
Format Maksud
%b Jumlah total byte yang dikirimkan ke klien. Ini tidak termasuk HTTP
header dan seharusnya menggambarkan ukuran sebenarnya dari file yang
diminta. Jika angka yang dilaporkan lebih kecil dari besar file, hal ini
berarti transfer file terinterupsi. Jika file diambil dari local cache untuk
klien, maka akan ditulis sebagai “-“.
%f Nama file yang diminta oleh klien
%{variable}e Isi dari variable variable. Sebagai contoh %{REMOTE_PORT)e akan
mencatat portpada klien yang digunakan untuk komunikasi data untuk
mengirimkan dokumen.
%h Alamat dari klien. Jika HostnameLookups dimatikan. Hal ini hanya akan
menjadi ip address dari ip klien dan sama seperti %a. Jika
HostnameLookups diaktifkan, ini akan menjadi fqdn dari mesin klien.
%a Alamat ip dari klien. Untuk konfigurasi standar ini akan sama seperti %a,
tetapi jika HostnameLookups diaktifkan, akan hanya mencatat alamat ip,
daripada fqdn dari klien.
%(header}i Isi dari HTTP header. Sebagai contoh %{Referer}i akan mencatat referrer
ke dokumen yang diminta. Yaitu halaman web yang memiliki link ke
halaman yang diminta saat ini.
%l Remote log name, nama ini disediakan oleh ident pada mesin klien dan
biasanya kosong.
%{Foobar}n Isi dari note Foobar dari modul lain.
%{header}o Isi dari baris header yang terdapat pada header yang dikrimkan ke klien
%p Port kanonikal dari server yang melayani request. Untuk sebagian besar
situs, ini akan sama untuk setiap request, tetapi dapat berguna jika kita
menjalankan virtual host yang memantau berbagai port.
%P Nomor proses ID yang melayani request.
%r Baris pertama dari request. Bentuknya seperti GET / HTTP / 1.0 dan
mengindikasikan request yang dibuat ke server.
%s Status dari request. Jika request ini di redirect, maka tanda > berarti yang
dicatat adalah status yang terakhir.
%t Pencatatan waktu dalam bentuk standar
%{format}t Waktu dalam bentuk yang dispesifikan oleh format.
%T Jumlah waktu yang dibutuhkan untuk melayani request (detik).
%u Nama dan password yang dimasukkan untuk aunthentifikasi. Jika
statusnya 401 (Unauthorized), maka berarti tidak valid.
%U Path URL yang diminta.
%v Nama dari server yang melayani request.
Keterangan :
202.155.89.122 : Alamat ip dari klien
- (pertama) : Remote log name, dan kosong isinya.
- (kedua) : Nama dan password untuk authentifikasi. Dalam hal ini
isinya tidak ada.
[11/Jul/2001:02:57:59 +0700] : Waktu dalam format standard
"GET /about.jsp HTTP/1.0" : Request terhadap web server.
200 : Status request. (berhasil).
5621 : Besar file dalam byte.
suatu host komputer yang mewakili alamat IP (Internet Protocol). Ada 6 domain name
2.1.6 Hypertext
Menurut Sampurna (1996, p312), hypertext diartikan sebagai text yang tidak
perlu diakses secara berurutan, mempunyai link yang dapat membawa ke suatu topik
tertentu secara langsung. Hypertext dapat menghubungkan kita ke dokumen lain, baik
yang berada di situs yang sama, maupun dokumen yang berada pada situs yang lain.
Hypertext Markup Language (HTML) adalah suatu format data untuk membuat
dokumen hypertext yang dapat dibaca dari suatu platform ke platform lain tanpa
melakukan suatu perubahan apapun (Sampurna, 1996, p13) Hypertext merupakan suatu
istilah yang diperkenalkan oleh Ted Nelson yan digunakan untuk menjelaskan tulisan
non- linier, dimana kita mengikuti jalur yang berhubungan dengan sebuah dokumen.
2.1.8 HTTP (Hypertext Transfer Protocol)
HTTP adalah suatu protocol yang menentukan aturan yang perlu diikuti oleh
web browser dalam meminta dan mengambil suatu dokumen, dan oleh web server dalam
menyediakan dokumen yang diminta web browser (Sampurna 1996, p6). Protokol ini
Menurut Manger (1994, p240), URL merupakan standar yang digunakan untuk
menentukan alamat (lokasi) dari sebuah sumber (resource) tertentu yang ada di internet.
Format URL terbagi atas dua macam yaitu format huruf dan format angka. Format huruf
lebih banyak dipakai daripada format angka karena format huruf lebih mudah diingat.
Contoh : HTTP://www.binus.ac.id
Sampurna (1996, p314), WWW merupakan sistem komunikasi dan informasi hypertext
yang digunakan pada jaringan komputer Internet yang dapat diakses menggunakan FTP,
2.2 Beberapa Istilah Penting yang Terdapat pada Piranti Lunak Web Analyzer
2.2.1 HIT
Hit sama dengan request, atau sama dengan jumlah baris di log file dengan
asumsi semua baris di log file adalah sah. Hit dapat dihitung dengan mudah pada Unix.
dibandingkan pageview, karena gambar atau objek non-halaman lain terhitung juga
sebagai hit. Satu pageview sendiri dapat terdiri dari beberapa hit tergantung pada
komposisi halaman yang dibuat. Jika suatu halaman penuh dengan gambar-gambar kecil
hasil potongan misalnya, maka rasio hit : pageview akan semakin besar. Banyak situs
“normal” yang hit-nya sekitar 3-4 kali pageview, tapi ini tentunya dapat amat bervariasi.
Semakin besar rasio, maka kadang bisa dikatakan bahwa halaman situs semakin berat
2.2.2 FILE
File adalah request yang menghasilkan respon berkode status 2xx dan
menghasilkan respon (kolom jumlah byte di log file lebih besar dari 0). Besaran ini
hendak mengukur jumlah file yang dikirim keluar oleh web server. File biasanya lebih
kecil daripada pageview karena hanya menghitung respon 2xx, tapi dapat juga lebih
2.2.3 PAGEVIEW
Pageview hasil analisis log dihitung sebagai request ke URL yang memiliki
akhiran-akhiran umum sebuah page. Misalnya, .html, .htm,.shtml, dan .phtml. Query
string umumnya dilucuti dulu sebelum diperhitungkan, sehingga akhiran untuk URL
/view.php?page=index.html adalah .php, bukan .html. Ini tentu saja hanya merupakan
pendekatan, karena .php tidak selalu berupa page dan direktori atau file tanpa akhiran
pun dapat berupa page (mis: akses ke direktori indeks otomatis Apache /icons/
memandang kode status respon. Jadi Internal Server Error (500). Redirect(3xx), atu Not
Found (404) pun jika dihasilkan dari URL berakhiran page akan dihitung sebagai satu
pageview.
2.2.4 VISIT
mengunjungi situs kita. Meskipun ada cara lain seperti dengan menggunakan modul
khusus yang melepas cookie. Program ini dipakai untuk mengukur visit dengan
pendekatan sebagai berikut : satu visit adalah kumpulan request yang dialakukan dalam
rentang waktu maksimum 30 menit dan dari host yang sama dengan User-Agent yang
sama pula. Tentu saja ini tidak sempurna, tapi pada kebanyakan kasus cukup mendekati.
Visit praktis hampir selalu lebih kecil daripada pageview, karena setiap orang umumnya
minimal membaca 1 halaman pada suatu situs web, sehingga satu visit rata-rata
menghasilkan lebih dari satu pageview. Kecuali misalnya situs web tersebut hanya berisi
gambar-gambar.
Jumlah byte adalah total jumlah byte respond dan kurang lebih menggambarkan
outgoing traffic dari web server. Berikut ini sebuah ilustrasi untuk memperjelas
keterangan di atas. Suatu situs web memiliki dua halaman /index.html dan /news.html.
Di index.html dan news.html masing – masing terdapat index.css dan utils.js. Di gambar
adalah sama, yaitu gambar bullet kecil. Sementara news.html hanya mengandung
gambar bullet saja. Hari ini ada sepuluh orang berbeda yang mengakses halaman
index.html dan hanya lima yang mengklik halaman news.html. Satu orang yang hanya
mengakses halaman depan hanya mematikan load gambar di browsernya. Efek cache
tidak diperhatikan.
tidak akan terhitung sebagai pageview. Jika 1 orang mengakses halaman depan saja
tanpa me-load gambar. Sembilan orang lainnya memuat halaman depan dengan 6
gambar, sehingga ada 9 x ( 1 + 6 ) = 63 hit tambahan. Lima orang yang mengakses juga
halaman news telah meng-cache gambar bullet dan CSS/Javascript, tapi browser
biasanya mengirimkan request dengan If-Last-Modified yang akan dijawab dengan 304
oleh web server. Sehingga ini menambah lagi hit sebanyak 5 hit. Total hit adalah 15 + 1
+ 63 + 5 = 84 hit. Jika setting Check for newer versions of page di browser pengunjung
diset menjadi never, maka 5 hit terakhir tadi tidak akan terjadi.
2.2.6 URL
Setiap kali suatu host mengakses situs web, maka URL web yang dikunjungi
dicatat dalam log file. Dalam satu jam url yang sama dapat dikunjungi berkali-kali oleh
satu atau berbagai host. Suatu page dapat menerima parameter yang berbeda dari host,
karena itu dalam perhitungan jumlah pengaksesan tiap page, maka parameter ada dalam
log file diabaikan. Parameter suatu site diawali dengan karakter ‘?’, untuk itu, semua
2.2.7 Method
Method adalah suatu aksi yang dilakukan oleh web browser, untuk mengambil
1. POST
Metode post dugunakan untuk meminta agar original server menerima data
2. GET
3. HEAD
Sama seperti method get, hanya saja yang diminta adalah hanya head dari
suatu page, dan tidak termasuk body dari page tersebut. Fungsinya untuk
mengecek apakah informasi suatu web telah diperbaharui. Jika sudah, maka versi
yang ada pada head suatu page berbeda dengan yang ada pada cache komputer
host. Jika berbeda, maka web server akan mengirimkan body dari page tersebut.
informasi terbaru.
2.2.8 IP address
Agar kita dapat mengirimkan suatu paket ke komputer tertentu dalam internet,
komputer tersebut harus memiliki alamat. Alamat ini harus unik. Satu alamat hanya
boleh dimiliki oleh satu komputer. Alamat komputer dalam internet kini disebut sebagai
IP address. IP address ditulis sebagai empat urutan bilangan desimal yang dipisahkan
dengan titik. Setiap bilangan tersebut berupa salah satu bilangan bernilai diatara 0-255.
2.3.1 Linux
Linux adalah sebuah sistem operasi open source yang gratis dibawah lisensi
GNU. Sistem operasi 32-64 bit yang merupakan turunan dari Unix dan dapat dijalankan
pada berbagai macam platform perangkat keras. Mulai dari Intel x86 sampai dengan
prosesor RISC.
Aktifitas dari pengaksesan suatu web server dicatat pada log file. Ketika sebuah
HTTP klien berhubungan dengan Apache web server, sebagian besar informasi
dipertukarkan. Web server mendapatkan informasi mengenai data klien dan aktifitas
Informasi ini akan dicatat oleh Apache web server. Dua standar log file yang
dibuat adalah error log dan access log, tetapi selain itu dapat dibuat log file lainnya. Dua
log file didefinisikan sebagai suatu file konfigurasi standard yang langsung didapat dari
distribusi Apache.
Access log menyimpan informasi dasar tentang transaksi HTTP dan error log
menyimpan segala informasi tentang kesalahan yang ada. Walaupun kita dapat membuat
log file lainnya, sebagian besar orang hanya menggunakan dua jenis log file tersebut.
2.3.2 MySQL
MySQL yang dibaca dengan My Ees-Que-El adalah sistem manajemen database
relasional yang dibuat oleh suatu perusahaan komputing di Swedia yang bernama TcX
dan open source. MySQL bersifat multithread, handal, cepat, dan fleksibel, sehingga
2.3.3 Apache
Apache dibangun oleh para veteran pengembang NCSA HTTPD (National Center for
Supercomputing Application). Program ini pertama kali di desain untuk sistem operasi
PHP adalah bahasa script sisi server yang didesain khusus untuk web. Dalam
sebuah halaman web, kita dapat meletakan kode PHP yang akan dieksekusi setiap kali
halaman ini dipanggil. Kode PHP diinterpretasi pada web server dan menghasilkan html
atau hasil lain yang akan dilihat oleh pengunjung. PHP merupakan suatu bahasa program
yang bersifat interpreter sebab termuat sebagai suatu modul dalam Apache web server.
PHP bersifat browser independent yang berarti apllikasi web dapat dilakukan oleh
browser apapun.
2.3.5 Cron
Cron adalah program pada linux yang berfungsi seperti task scheduler pada
windows, yaitu memanggil dan menjalankan program pada waktu-waktu tertentu, sesuai
dengan keinginan pengguna. Cron aktif saat komputer dihidupkan, dan setiap menit
memeriksa, apakah ada program tertentu yang perlu dijalankan pada menit tersebut.
tertentu, kita dapat meng-install-nya pada cron, yaitu dengan membuat file yang berisi
waktu dan tugas-tugas yang perlu dijalankan. Peng-install-an dilakukan dengan perintah
crontab. Crontab menginstall file yang telah dibuat tersebut, pada user tertentu.
2.3.6 Java
Java adalah bahasa pemrograman yang berorientasi objek, dan berjalan pada
berbagai sistem operasi. Java memungkinkan kita membuat applet, yang dapat dipasang
pada halaman web. Java juga memungkinkan kita membuat program berskala besar
yang berjalan secara normal pada setiap sistem operasi yang mendukung bahasa ini.
Dua class yang penting pada java yang digunakan pada piranti lunak penganalisa
web adalah :
beberapa token. Proses pembagian (parsing) dikendalikan oleh sebuah tabel dan
sekumpulan flag yang dapat diatur ke berbagai keadaan. Stream tokenizer dapat
mengenal identifier, angka, string di dalam tanda petik, dan berbagai jenis komentar.
Setiap byte yang dibaca dari input stream dikenal sebagai karakter dalam
jangkauan '\u0000' hingga '\u00FF'. Nilai-nilai karakter digunakan untuk melihat lima
kemungkinan atribut dari suatu karakter, yaitu : white space, alfabet, numerik, string
kali membangun objek dari class ini, membuat dan mengisi tabel sintaks, dan secara
setiap iterasi dari loop tersebut hingga nilai dari nextToken adalah TT_EOF.
menjadi beberapa token. Proses tokenisasinya jauh lebih sederhana daripada yang
digunakan pada stream tokenizer. String tokenizer tidak membedakan antara identifier,
angka, string yang berada di dalam tanda petik, dan juga komentar.
Suatu string tokenizer objek bekerja dalam dua cara, tergantung dari apakah ia
diciptakan dengan flag delimeter yang memiliki nilai true atau false. Jika flag tersebut
Jika flag tersebut true, maka karakter-karakter delimeter tersebut juga dianggap
sebagai token. Sebuah token adalah sebuah karakter delimeter, atau kumpulan karakter
yang tidak mengandung delimeter. Objek string tokenizer secara internal memelihara
posisinya yang terakhir dalam string untuk ditokenisasi. sebuah token didapat dengan
mengambil sebuah substring dari string yang digunakan untuk menciptakan objek string
tokenizer.
BAB 3
ANALISA DAN PERANCANGAN PIRANTI LUNAK
Gambar 3a
Beberapa data yang ada pada file access_log
Dengan data dari file access_log tersebut, maka hampir sebagian besar informasi
mengenai kinerja dari web server yang ada. Tetapi untuk menganalisa data dari file
tersebut akan dibutuhkan waktu yang lama bila dikerjakan secara manual saja oleh web
administrator. Apabila web administrator ingin mengetahui pada jam 15:30 pada tanggal
9 Juli 2001 siapa saja yang mengakses web server nya, maka ia perlu melihat data
tersebut per baris sampai ia menemukan data yang sesuai ( lihat gambar 3a bagian
merah). Hal ini tentunya akan menyulitkan apabila ia menginginkan suatu informasi
yang lain dengan kriteria yang berbeda (misalnya siapa saja yang mengakses
Configure.jpg).
Gambar 3.b
Contoh sederhana dari sebuah halaman web
Dari gambar 3.b dapat diketahui bahwa ada 2 buah file gambar dan 1 buah file
dokumen utama pada halaman web tersebut. Kemudian untuk menghitung jumlah dari
hit tersebut, maka kita harus menjumlahkan semua obyek yang ada dalam satu halaman
tersebut. Berarti dalam halaman web tersebut terdapat 3 HITS yang terdiri dari 2 HITS
gambar dan 1 HITS dokumen utama.
Gambar 3.c
Contoh alamat URL berupa obyek berupa halaman
Pada gambar 3.c bagian yang diberi kotak terlihat bahwa suatu alamat URL
terdiri dari method (berupa method GET), letak file, dan tidak ada keterangan apakah
file tersebut berupa suatu obyek halaman apa bukan. Obyek halaman ini berupa suatu
alamat URL yang memiliki kriteria akhiran (.htm, .html, .php, .jsp, .php, .asp, dan
lainnya).
Agar dapat diketahui apakah obyek tersebut atau bukan, maka alamat URL
tersebut harus dipecahkan menjadi beberapa bagian. Kemudian URL tersebut dianalisa
apakah merupakan obyek halaman yang memenuhi salah satu akhiran kriteria halaman
atau bukan. Apabila memenuhi kriteria tersebut, maka jumlah PAGEVIEW akan
bertambah. PAGEVIEW ini akan dijumlahkan berdasarkan jangkauan waktu yang
diinginkan, misalnya berupa per hari, atau pun per jam.
Gambar 3.d
Contoh analisa BYTES pada file log
Pada gambar 3.d bagian yang diberi kotak terlihat bahwa file tersebut berukuran
10,414 bytes. Sesuai dengan konfigurasi pada file log standar pada Apache web server,
maka besar ukuran file ini akan selalu terletak pada bagian belakang baris log. Besaran
ini akan dijumlahkan sesuai dengan besaran waktu yang diinginkan berupa per jam, atau
pun per hari.
Gambar 3.e
Contoh analisa POST pada file log
Pada gambar 3.e terlihat bahwa akan dilakukan penambahan informasi registrasi
pada server dengan kode status 200 yang berarti OK. Fungsi ini akan dijumlahkan
berdasarkan jangkauan waktu yang diinginkan berupa per jam atau pun per hari.
3.3.7 Fungsi GET
Fungsi ini digunakan untuk berapa banyak data yang harus diambil dari server
ketika terjadi suatu request dari pengunjung. Data yang diambil ini bisa berupa obyek
halaman atau pun obyek non-halaman.
Gambar 3.f
Contoh-contoh request yang terjadi.
Dari gambar 3.f dapat terlihat bahwa request dari pengunjung bisa berupa file
gambar atau pun berupa obyek halaman. Request yang terjadi bisa saja menghasilkan
kode status yang gagal seperti 404, pada gambar 3.f semua request berhasil diterima
oleh pengunjung karena menghasilkan kode status 200. Seperti hal nya fungsi POST,
fungsi ini juga akan diakumulasikan sesuai dengan kriteria yang diinginkan ( misalnya
per jam atau pun per hari ).
Gambar 3.g
Contoh analisa untuk fungsi HEAD
Dari gambar 3.g merupakan salah satu contoh dari HEAD request yang terjadi.
Hanya saja data pada contoh di atas merupakan bad request, karena menghasilkan kode
status 400. HEAD ini digunakan agar data yang ada merupakan selalu merupakan data
yang terbaru. Hasil dari HEAD request yang berhasil diterima oleh pengunjung adalah
HEAD request yang menghasilkan kode status 200.
3.3.10 Fungsi IP
Fungsi ini digunakan untuk melihat IP mana saja yang sering mengakses ke web
server dan diurutkan menurut 10 yang yang terbanyak. Kegunaan dari fungsi IP ini akan
dibahas lebih lanjut pada analisa kegunaan piranti lunak penganalisa web. Fungsi ini
juga mengabaikan kode status yang diberikan oleh web server, dan akan ditampilkan
sesuai dengan kriteria yang diinginkan seperti per jam, per hari, atau pun per bulan.
beberapa token dengan delimeter ‘[‘, ‘]’, dan ‘”’. Dari hasil tokenisasi, diperoleh
2. Token kedua berupa remote logname yang biasanya kosong. Token ini diabaikan.
3. Token ketiga berupa remote user yang biasanya kosong, Token ini diabaikan.
5. Token kelima berupa zone waktu pada server. Token ini diabaikan.
6. Token keenam berupa jenis request pengunjung
8. Token kedelapan berupa versi HTTP yang diinginkan pengunjung. Token ini
diabaikan
10. Token kesepuluh berupa jumlah total byte yang dikirimkan ke klien.
Dari hasil tokenisasi diatas lalu dihitung apakah jam dan tanggal token keempat
sama dengan jam dan tanggal pada log file baris sebelumnya. Jika sama, maka hasil
perhitungan nantinya disimpan ke variabel array dinamis yang tersedia, sedangkan jika
beda, maka semua hasil yang telah disimpan pada array sebelumnya dipindahkan ke
database. Setelah itu, semua isi array dikosongkan, dan variabel-variabel diinisialisasi
ulang untuk jam berikutnya. Hal ini dilakukan agar program dapat berjalan dengan jauh
Menganalisa URL.
String pada token URL diperiksa dengan cara membuang semua karakter yang
terletak setelah karekter ‘?’, karena karakter ‘?’ berarti parameter yang dikirimkan ke
server. Setelah itu nama dan ekstensi file pada URL disimpan ke variabel nama dan file,
beberapa IP yang diamati sebelumnya. Jika IP sama dengan salah satu IP sebelumya,
maka diperiksa apakah waktu terakhir dari IP yang sebelumnya telah melewati 30 menit
(1.800.000 milidetik) Jika sudah, maka kunjungan ini dihitung sebagai kunjungan baru,
dan jumlah visit ditambah. Jika belum melewati 30 menit, maka berarti pengunjung
belum mengakhiri kunjungan yang lama. Jika IP tidak berada dalam salah satu IP
sebelumnya, maka IP ini dimasukan kedalam variabel array IP yang sedang berkunjung,
Menganalisa Method
method tersebut GET, POST atau HEAD. Jika method tersebut adalah get, maka nilai
variabel GET ditambah satu, begitu juga dengan POST dan HEAD.
Setiap baris log file yang valid, dihitung sebagai satu hit, baik kode request pada
baris tersebut mengindikasikan berhasil maupun yang tidak berhasil. Kode request dari
setiap hit diperiksa, apakah mengindikasikan keberhasilan, atau tidak. Request yang
berhasil, diindikasikan dengan kode request 2xx dan 3xx. Jika berhasil, maka jumlah
Setiap file lalu diperiksa ekstensinya, apakah masuk dalam kategori pages atau
tidak (file-file yang yang termasuk dalam kategori pages, adalah file-file yang
berekstensi htm, html, jsp, asp, txt, php, dan cfml) Jika ya, maka maka jumlah pages
ditambah.
Setiap baris log file yang valid, dan jumlah byte yang ditransfer terdapat pada log file,
Token URL dan token kode yang didapat, dibandingkan dengan semua token url
dan token kode yang telah dibaca sebelumya. Jika sama, maka jumlah url dan kode
ditambah. Jika beda, maka isi array ditambahkan dengan URL dan kode yang baru. Lalu
berdasarkan analisa URL dan Pages sebelumnya, maka jika url tersebut termasuk pages,
maka statusnya dijadikan 1, selain itu statusnya dijadikan 0. Hal ini dilakukan untuk
memudahkan program PHP dalam menampilkan URL yang paling banyak diakses, baik
Setelah analisa dilakukan, dan hasilnya disimpan dalam database, maka koneksi ke file
tersebut ditutup, begitu pula koneksi ke database. Lalu file dihapus dan diciptakan file
Tabel utama
Field Tipe null Key
Tanggal Date No Yes
Jam Tinyint No Yes
Hits Integer No
Files Integer No
Pages Integer No
Kbytes Integer No
Table IP
Field Tipe null Key
Tanggal Date No Yes
Jam Tinyint No Yes
Ip Integer No Yes
Jumlah Integer No
Tabel URL
Field Tipe null Key
Tanggal Date No Yes
Jam Tinyint No Yes
URL Integer No Yes
Jumlah Integer No
Kbytes Integer No
Tabel Method
Field Tipe null Key
Tanggal Date No Yes
Jam Tinyint No Yes
mPost Integer No
mGet Integer No
mHead Integer No
Tabel Kode
Field Tipe null Key
Tanggal Date No Yes
Jam Tinyint No Yes
Kode Integer No Yes
Jumlah Integer No
ambil Login
Klik Home Klik OK
data dari tabel
Valid
log Index
Klik
tampilkan/OK
ambil Klik Setting
Tampil
tempat log file Setting
Banyaknya halaman web yang ada sekarang ini membuat para pengembang web
cenderung tidak terlalu memikirkan pentingnya suatu statistik mengenai halaman web
yang dibuatnya. Sehingga kinerja web yang dibuatnya tidak diketahui secara pasti.
Karena itu perlu dibuat alat bantu yang dapat menampilkan statistik transaksi suatu web,
sehingga akan mempermudah web administrator dalam menganalisa kinerja web apakah
sudah efisien atau belum. Seorang manajer memerlukan laporan mengenai aktifitas
transaksi atau pun tingkat minat dari para pengunjung ke halaman web nya, bahkan juga
mempermudah kerja dari seorang web administrator dalam membuat laporannya akan
dibuat suatu alat bantu berupa suatu piranti lunak yang khusus dalam menganalisa
jumlah pengunjung, jumlah halamannya, error yang terjadi, dan hal lainnya. Piranti
piranti lunak ini akan direpresentasikan dengan model grafik dan tabel.
3.9 Cara Kerja Program Web Analyzer
Pertama kali web analyzer dijalankan, maka web administrator perlu melakukan
Setelah konfigurasi dilakukan, maka pada jam yang ditentukan web analyzer
akan membaca dan menganalisa access log file, dan menyimpannya pada database
MySQL dengan nama dan password hasil konfigurasi diatas. Setelah pembacaan selesai,
maka web analyzer akan menghapus access log file tersebut. File tersebut kemudian
akan dibuat kembali oleh Apache web server ketika terjadi aktifitas baru pada web
server.
Setelah data dalam database terisi, maka hasil hasilnya akan ditampilkan oleh
web analyzer dalam bentuk halaman web. Web administrator dapat menjalankan
program ini baik secara lokal melalui jaringan LAN maupun internet, karena bentuknya
Web analyzer menampilkan hasil analisa dalam bentuk statistik, yaitu dalam
bentuk grafik histogram (diagram batang) dan tabel. Web administrator dapat melihat
Setiap selesai memproses sebuah request, web server pada umumnya akan
mencatat request tersebut di sebuah baris log file. Semua request termasuk HTML dan
gambar, respond sukses dan kesalahan akan dicatat. Yang biasanya tidak dicatat adalah
request yang tidak selesai misalnya karena timeout, redirect internal, dan sub-request.
Log file akan bertambah besar terus dan agar tidak memenuhi disk secara berkala
perlu dilakukan rotasi, artinya log file lama dipindahkan ke nama atau lokasi lain lalu
dikompresi, direkam ke tape/CD, dan/atau dihapus. Log file baru kini menjadi kosong
dan siap diisi kembali. Rotasi dapat dilakukan per bulan, minggu, hari, atau bahkan lebih
sering. Jika sebuah situs mengalami 100 ribu hit per hari dan rata-rata request tersebut
menghasilkan 180 karakter, maka per hari akan dihasilkan log file sebesar 17 MB. Untuk
menghemat tempat seorang web administrator dapat memilih format log common, tapi ia
Log file yang ada, lalu dianalisis oleh program ini. Program ini membaca per
baris log file, mengakumulasikan jumlah hit, pageview, dan sebagainya. Rata-rata
program statistik log melaporkan informasi yang serupa (hit/pageview/visit total dan
kemudahan navigasi situs tersebut, fasilitas tambahan yang membuat tool tersebut
biasanya tidak mengukur pageview yang sebenarnya. Definisi pageview adalah setiap
halaman yang diakses oleh pengunjung. Mayoritas halaman adalah respond dengan
Content-Type text/html, tapi respond ini dapat dihasilkan dari berbagai sumber. Mulai
dari file HTML static, PHP, skrip CGI, dan sebagainya. Yang tercatat di log file hanyalah
akhiran file yang di-request, bukan Content-Type. Tapi skrip PHP atau CGI tidak selalu
harus memproduksi HTML melainkan dapat menghasilkan gambar, PDF atau apa pun.
Perhitungan dengan analisis log juga tidak dapat menghitung pageview yang
dihasilkan dari cache. Seperti diketahui, akses HTTP banyak menggunakan cache dari
proxy di tengah-tengah antara kita dan server asli. Ini membantu mempercepat respond
an menghemat bandwidth, tapi efeknya beberapa orang melihat halaman situs suatu web
hanya dari cache. Akses ini tidak tercatat di log web server dari page tersebut. Hanya
saat orang tersebut menekan refresh dan mem-bypass cache, maka aksesnya akan
Selama masih ada baris lain dalam file log akses, maka
pindah baris
akhir selama
panggil modul simpan ke database
tutup database
tutup file
hapus file
isikan tempTanggal dengan format tanggal yang benar dari thn,bln, dan tgl
akhir jika
akhir modul getDriver
coba
komputer
buka file
akhir coba
tangkap eror
coba
seting streamTokenizer
akhir coba
tangkap eror
end Jika
nilainya dijadikan 0
end jika
temptoken terakhir diisikan sebagai byte yang ditransfer
tokenVersion dikosongkan
end jika
tokenVersion dikosongkan
end jika
end jika
coba
akhir coba
tangkap eror
cetak letak kesalahannya
jika jam berbeda dengan tempJam dan tanggal berbeda dengan tempTanggal,
maka
akhir jika
akhir jika
akhirJika
akhir jika
akhir modul hitungSite
kurang
akhir jika
end looping
akhir looping
akhir looping
akhir jika
akhir jika
akhir jika
akhir looping
tambahkan jumlahUrl
akhir jika
akhir jika
akhir looping
tambahkan jumlahKode
akhir jika
coba
selain itu
akhir jika
akhir coba
tangkap eror
coba
ambil semua ip dalam database dengan tanggal dan jam terakir
ambil semua url dalam database dengan tanggal dan jam terakir
ambil semua kode dalam database dengan tanggal dan jam terakir
akhir coba
tangkap eror
coba
selain itu
isi tabel ip
akhir looping
looping dari nol hinggal jumlahUrl
akhir looping
isi tabel
akhir looping
akhir jika
set semua variabel yang berhubungan dengan isi database dengan kosong
akhir coba
tangkap eror
Pseudocode login
Ambil masukan dari kolom user dan password
Bandingkan masukan user dengan semua record set yang ada di database
Pseudocode setting
Modul IP
Insialisasi Database
Buat tabel dengan hasil dari query dan jumlah data tersebut
Isi tabel dengan hasil dari query dan jumlah data tersebut
Apabila terdapat data yang lebih detail, maka tampilkan data di bagian bawah tabel
Buat suatu fungsi untuk menghubungkan dengan Modul lain dan style yang sama
End Modul
Modul URL
Insialisasi Database
Buat tabel dengan hasil dari query dan jumlah data tersebut
Isi tabel dengan hasil dari query dan jumlah data tersebut
Apabila terdapat data yang lebih detail, maka tampilkan data di bagian bawah tabel
Buat suatu fungsi untuk menghubungkan dengan Modul lain dan style yang sama
End Modul
Modul Kode
Insialisasi Database
Buat suatu fungsi untuk menghubungkan dengan Modul lain dan style yang sama
End Modul
Modul Utama
Inisialisasi Database
Isi tabel dengan hasil dari query dan persentasenya dengan query2
Hubungkan setiap data detail seperti tanggal,bulan ke data yang lebih spesifik
Buat suatu fungsi untuk menghubungkan dengan Modul lain dan style yang sama
End Modul
Modul Method
Inisialisasi Database
Isi tabel dengan hasil dari query dan persentasenya dengan query2
Hubungkan setiap data detail seperti tanggal,bulan ke data yang lebih spesifik
Buat suatu fungsi untuk menghubungkan dengan Modul lain dan style yang sama
End Modul
Modul GambarIP
Inisilisasi database
End Modul
Modul GambarUtama
Inisialisasi Database
//Untuk Bytes
//end Bytes
//Untuk Visits
//end Visits
//Untuk Hits
//end Hits
//Untuk Files
Cetak gambar grafik batang berdasarkan dari modul dan maksimum Hits tadi
//end Files
//Untuk Pages
//end Pages
End Modul
Modul GambarMethod
Inisialisasi Database
//Untuk Head
//end Head
//Untuk Get
//end Get
//Untuk Post
//end Post
End Modul
//File diagram2.php
Modul Maksimum
end Modul
Modul Petakan
Petakan semua titik yang ada berdasarkan hasil query dari database
Rubah titik yang sudah diinisialisasi menjadi sebuah titik baru yang sudah diolah
End Modul
Modul Borderatas
End Modul
Modul Borderbawah
End Modul
Modul Inisialisasi
End Modul
BAB IV
4.1 Implementasi
Hardware minimum yang dibutuhkan dalam menggunakan program web analyzer ini
adalah :
3. PHP 4.0
4. MySQL
5. Java 1.3
6. Driver MM.MySQL
dengan menggunakan editor atau pun dengan menggunakan perintah yang sudah
2. Jalankan program
file anda berbeda dengan letak default linux, maka jalankan seting.php dan
service httpd.
Untuk memudahkan pemakaian program aplikasi ini, maka dibuat suatu halaman
web khusus yang berfungsi untuk mengatur konfigurasi agar program ini dapat berjalan
access_ log file dari web site binus. Log file ini berukuran 22.134 kilobytes, yang
mencatat 205.580 aktifitas yang terjadi pada web site binus yang berlangsung dari
tanggal 9 Juli 2001 hingga tanggal 3 Oktober 2001. Evaluasi dilakukan dengan
memindahkan log file tersebut pada folder tertentu pada lokal komputer, sehingga
Dari hasil analisa, maka didapatkan bahwa pembacaan access log file yang
mencatat 205.580 aktifitas dapat dianalisa dan disimpan dalam database dalam waktu
konfigurasi jam dan tanggal yang mereka inginkan, maka pembacaan access log file
dapat terjadi secara otomatis setiap hari tanpa harus dilakukan setiap hari secara manual.
Setelah pembacaan selesai, maka program java pembaca access log file segera
menghapus access log file tersebut, sehingga ukuran file tidak terus-menerus bertambah
besar.
kemudian muncul page index.php, disini terdapat beberapa tombol navigasi yang akan
Pada halaman ini, seorang web administrrator diminta mengenaina User ID dan
passwordnya. Jika User ID dan passwordnya benar, maka ia masuk ke halaman indeks.
Pada halaman ini ditampilkan tombol untuk menuju ke informasi terakhir yang
terdapat dalam database, dan juga tombol pilihan tanggal dan bulan, untuk melihat
informasi pada tahun, dan bulan tersebut. Jika pengguna mengklik Tampilkan, maka ia
akan ke halaman Informasi utama pada tanggal yang tertera tersebut. Jika ia mengklik
OK, maka ia akan ke halaman Informasi utama pada bulan dan tahun yang diinginkan.
Gambar 4.3 : Gambar Halaman Informasi Utama per Tamggal dalam Bentuk Grafik
Pada halaman informasi utama ini, web administrator dapat melihat jumlah hits,
file, visit, pages yang muncul dalam bentuk grafik pada dan tabel jumlah hits, files,
pages, visits, dan bytes dalam suatu bulan tertentu. Pengguna juga dapat mendapatkan
informasi lebih detail dalam bentuk statistik harian. Untuk itu ia cukup mengklik tanggal
yang ia inginkan.
4.2.1.3.2 Halaman Informasi Utama per Bulan dalam Bentuk Tabel
Pada gambar 4.3 Ditampilkan tabel statistik jumlah jumlah hits, files, pages,
visits, dan bytes dalam suatu bulan tertentu. Selain itu juga ditampilkan prosentase-nya,
yaitu jumlah satu hari dibagi jumlah satu bulan lalu dikalikan seratus persen. Angka
yang berwarna biru berarti bahwa bagian tersebut dapat diklik, untuk melihat informasi
per jamnya.
4.2.1.3.3 Halaman Informasi Utama per Tanggal dalam Bentuk Grafik
Gambar 4.5 : Gambar Halaman Informasi Utama per Tamggal dalam Bentuk Grafik
Pada halaman ini, web admintrator dapat melihat jumlah hits, file, visit, pages
yang muncul dalam bentuk grafik pada dan tabel jumlah hits, files, pages, visits, dan
Gambar 4.6 : Gambar Halaman informasi Utama per Tanggal dalam bentuk Tabel
Dari tabel diatas, dapat dllihat jumlah pengunjung dalam bentuk yang lebih detail, dan
Gambar 4.7 : Gambar Halaman informasi method per Bulan dalam bentuk Grafik
tiap harinya, dalam bentuk diagram batang. Dari gambar diatas dapat dilihat bahwa
urutan method dari yang sering muncul adalah GET, PUT, dan HEAD.
4.2.1.4.2 Halaman Informasi Method per Bulan dalam Bentuk Tabel
Gambar 4.8 : Gambar Halaman Informasi Method per Bulan dalam Bentuk Tabel
4.2.1.4.3 Halaman Informasi Method per Tanggal dalam Bentuk Grafik
Gambar 4.9 : Gambar Halaman Informasi Method per tanggal dalam Bentuk grafik
4.2.1.4.4 Halaman Informasi Method per Tanggal dalam Bentuk Tabel
Gambar 4.10 : Gambar Halaman Informasi Method per Tanggal dalam Bentuk tabel
4.2.1.5 Halaman Informasi URL
Gambar 4.14 : Gambar Halaman Informasi IP per tahun dalam bentuk grafik
4.2.1.6.2 Halaman Informasi IP per Bulan dalam bentuk Tabel
Gambar 17 : Gambar Halaman Informasi IP per Jam dalam bentuk Grafik dan Tabel
4.2.1.7 Halaman Informasi Kode
5.1 Kesimpulan
Dengan adanya piranti lunak penganalisa web, maka para web administrator
semakin mudah dalam menganalisa situs webnya. Piranti lunak berfungsi sebagai alat
untuk memonitor kemajuan dan perkembangan situs web nya. Dengan melihat hasil
statistik yang ditunjukan oleh web analizer ini yang berupa diagram batang atau pun
5.2 Saran
Program ini dapat dikembangkan lebih lanjut dengan membuatnya mejadi lebih
aman, yaitu dengan menambahkan enkripsi pada user name dan password MySQL yang
disimpan pada file seting.conf. Selain itu juga dapat ditambahkan fungsi-fungsi
Azis, Farid. (2001). Belajar Sendiri Pemrograman PHP 4. Elex Media Komputindo,
Jakarta.
Birmingham.
Bride, Mac. (1997). Publishing The World Wide Web, Ksaint Blanc. London.
Harton, Ivor. (2000). Beginning Java 2 – JDK 1.3 Edition. Wrox Press Ltd, Birmingham.
Jepson, Brian (2000). Database Application Programming with Linux. Wiley Computing
Lin, Han (2000). Tip dan Trik Mengkonfigurasi dan Mengoptimalkan Linux Red Hat
Maslakowski, Mark, dkk. (2000). Teach Yourself MySQL in 21 days. Sams, Indiana.
Pitts, David, dkk. (1999). Red Hat Linux 6 Unleased, Sams, Indiana.
Welling, Luke, dkk. (2001). PHP and MySQL Web Deployment. Sams, Indiana.