Anda di halaman 1dari 105

PRAKATA

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

Bina Nusantara, Jakarta.

Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada

penulisan skripsi ini karena keterbatasan pengetahuan dan pengalaman penulis, sehingga

masih jauh dari sempurna. Oleh karena itu kritik dan saran untuk penyempurnaan skripsi

ini sangat diperlukan dan diharapkan oleh penulis.

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.

2. Bapak Sony S.Kom, selaku pembimbing penulis yang telah memberikan

petunjuk, saran, dan bimbingan sehingga skripsi ini dapat diselesaikan.

3. Segenap staf pengajar Universitas Bina Nusantara yang telah membimbing

penulis selama kuliah.


4. Ayah, Ibu, serta saudara penulis yang telah memberikan dukungan moral dan

materiil yang tidak ternilai harganya, serta teman-teman dan semua pihak yang

tidak dapat penulis sebutkan satu per satu.

Akhir kata, semoga skripsi ini dapat bermanfaat bagi semua pihak yang berkepentingan.

Jakarta, Januari 2002

Penulis
UNIVERSITAS BINA NUSANTARA

Jurusan Teknik Informatika


Skripsi Sarjana Komputer
Semester Ganjil tahun 2001/2002

Analisis dan Perancangan Piranti Lunak Penganalisa Web pada


Apache Web server dengan Platform Linux

Johan Ali 0331980206


Jamal Senjaya 0331980274
Ronnie Francis 0331980309
Kelas/Kelompok : 07PAT/SN-01

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

1.1 Latar Belakang

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

diperoleh perusahaan mereka meningkat.

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

meningkatkan keuntungan menjadi suatu harapan yang sia-sia belaka.

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

perusahaan untuk meningkat keuntungan dapat tercapai, yaitu dengan memperhatikan

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

per-bulan. Dengan demikian harapan dari perusahaan dapat tercapai.

1.2 Ruang lingkup

Batasan-batasan dari piranti lunak penganalisa web adalah sebagai berikut :

 Menganalisa access log file yang dihasilkan oleh Apache web server dan

hasilnya disimpan dalam database.

 Merancang dan membuat halaman web yang menampilkan statistik dalam

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.

1.3 Tujuan dan manfaat

Adapun tujuan yang ingin dicapai adalah sebagai berikut :

1. Membantu web administrator membaca access log file yang dimilikinya,

dan menyimpannya ke database dalam bentuk yang lebih informatif.


2. Memberikan informasi kepada web administrator, berbagai aktifitas yang

dilakukan oleh para pengunjung pada situs web nya.

Sedangkan manfaat yang ingin diperoleh antara lain :

1. Sebagai sumber informasi bagi web administrator dalam mengambil

keputusan dalam megembangkan situs webnya.

2. Dapat mengurangi ketidakefisienan access log file, karena access log file

masih kurang informatif.

3. Membantu web administrator dalam menganalisa efisiensi dan kinerja web

servernya

1.4 Metodologi

Metodologi yang digunakan dalam penulisan ini adalah

1. Metode analisis, terdiri atas :

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

cara mengolahnya menjadi bentuk yang lebih informatif.

b. Studi Pustaka, untuk mengetahui informasi apa

saja yang dibutuhkan oleh para web administrator untuk

mengembangkan situs webnya.

2. Metode perancangan, terdiri atas :

a. Merancang program yang membaca dan menganalisa access log file.

b. Merancang tampilan layar.

c. Merancang database yang digunakan.


d. Merancang spesifikasi modul.

e. Flow chart pada program pembaca access log file.

f. STD (State Transition Diagram), yang menggambarkan hubungan

antar halaman.

1.5 Sistematika Penulisan

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.

Bab 2 Landasan Teori

Bab ini membahas tentang definisi-definisi dan teori-teori yang berkaitan

dengan skripsi ini yang disaring dari berbagai sumber, baik dari buku referensi,

maupun dari internet.

Bab 3 Analisa dan Perancangan Sistem

Bab ini membahas mengenai rancangan sistem yang akan dibuat, seperti

rancangan arsitektur sistem dan keterangannya, rancangan tampilan layar, dan

rancangan database.
Bab 4 Implementasi

Bab ini membahas mengenai spesifikasi komputer yang digunakan,

spesifikasi modul dari program ini, diagram alir, diagram transisi (STD), dan

hubungan antar modulnya. Juga dibahas mengenai cara kerja program berdasarkan

dari tampilan layar.

Bab 5 Kesimpulan dan Saran

Pada bab ini akan disampaikan kesimpulan berdasarkan analisa,

perancangan, implementasi, dan evaluasi yang dilakukan, serta memberikan saran-

saran agar hasil dari keseluruhan dapat dikembangkan lebih lanjut.


BAB 2
LANDASAN TEORI

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

satu kesatuan. Internet dapat mencapai dan menghubungkan ke banyak tempat di

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”.

2.1.1 Sejarah Internet

Pada masa perang dingin, berdasarkan kebutuhan atas peningkatan arus

informasi antar staf militer Amerika, mereka mengembangkan perangkat komunikasi

dengan kemampuan mengirim dan menerima berbagai data dan informasi secara terpadu

dan dalam bentuk yang terintegrasi. Hal ini diwujudkan dalam bentuk jaringan

komputer dengan jangkauan area yang luas.

Untuk kebutuhan tersebut, pada tahun 1969 proyek bernama ARPANET dibentuk

Departemen Pertahanan Amerika Serikat dengan dukungan beberapa universitas dan

lembaga penelitian. Dari penelitian tersebut dihasilkan jaringan komputer luas yang

memudahkan komunikasi antar mereka.

Keunggulan jaringan komputer tersebut membuat banyak pihak mulai ikut

bergabung. Dalam perkembangannya, ARPANET dipecah menjadi dua bagian sesuai

fungsinya. MILNET untuk kepentingan militer dan ARPANET untuk kepentingan non-
militer. Gabungan dari kedua jaringan tersebut menjadi DARPA INTERNET yang

kemudian dikenal dengan Internet.

2.1.2 Web Browser

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

browser memungkinkan semua user untuk mengakses server dengan mudah.

2.1.3 Web Server

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

server menerima permintaan dari client dan me-respon-nya, biasanya dengan

mengembalikan sebuah dokumen atau gambar.

2.1.4 File Log

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

yang dilakukannya. Sedangkan di pihak klien mendapatkan informasi mengenai

halaman web yang diminta.


Informasi ini akan dicatat oleh Apache web server. Dua standard 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.

Dalam bentuk standard konfigurasi access log adalah :

Log Format “%h %l %u %t \“%r\” %s %b” common

Argumen format pada directive log format :

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.

Contoh dari log file standar ini :


202.155.89.122 - - [11/Jul/2001:02:57:59 +0700] "GET /about.jsp HTTP/1.0" 200 5621

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.

2.1.5 Domain Name


Menurut Sampurna (1996, p311), domain name merupakan sebuah nama untuk

suatu host komputer yang mewakili alamat IP (Internet Protocol). Ada 6 domain name

utama yang ada saat ini (Held, 1997, p155) :

 COM untuk organisasi komersial

 EDU untuk lembaga pendidikan

 GOV untuk lembaga pemerintahan

 MIL untuk organisasi miter

 NET untuk penyedia internet

 ORG untuk organisasi umum / non profit

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.

2.1.7 HTML (Hypertext Markup Language)

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

merupakan protocol standar yang digunakan untuk mengakses dokumen HTML.

2.1.9 URL (Uniform Resource Locator)

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

2.1.10 Worl Wide Web (WWW)

World Wide Web sering disalahartikan dengan Internet. Padahal menurut

Sampurna (1996, p314), WWW merupakan sistem komunikasi dan informasi hypertext

yang digunakan pada jaringan komputer Internet yang dapat diakses menggunakan FTP,

HTTP, dan lain-lain.

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.

Cukup dengan menjalankan perintah wc access_log untuk menghitung jumlah baris di


file access_log. Ini berarti hit cukup berbeda dan pasti lebih besar angkanya

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

(karena banyak mengandung objek non-halaman).

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

besar seandainya ada banyak objek non-halaman.

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/

sebelumnya menghasilkan sebuah pageview). Perhitungan pageview umumnya tidak

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

Besaran ini dimaksudkan untuk menggambarkan jumlah orang yang

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.

2.2.5 Jumlah BYTES

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.

Total pageview yang diakses adalah 10 + 5 = 15 pageview. Index.css dan utils.js

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

karakter dibelakang karakter ‘?’ diabaikan.

2.2.7 Method

Method adalah suatu aksi yang dilakukan oleh web browser, untuk mengambil

data atau memasukkan data ke web server. Aksi-aksi tersebut adalah:

1. POST
Metode post dugunakan untuk meminta agar original server menerima data

dan informasi yang dikirimkan oleh client.

2. GET

Method GET digunakan untuk meminta agar web server mengirimkan

halaman web yang diminta.

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.

Dengan begitu, maka informasi yang didapatkan host selalu merupakan

informasi terbaru.

2.2.8 IP address

IP adalah protokol di internet yang mengurusi masalah pengalamatan dan mengatur

pengiriman paket data sehingga ia sampai ke alamat yang benar.

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.

Contoh penulisan IP address ialah sebagai berikut : 132.92.122.114

2.3 Piranti lunak yang digunakan

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

yang dilakukannya. Sedangkan di pihak klien mendapatkan informasi mengenai

halaman web yang diminta.

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

banyak digunakan oleh berbagai perusahaan.

2.3.3 Apache

Apache merupakan web server yang paling banyak dipergunakan di internet.

Apache dibangun oleh para veteran pengembang NCSA HTTPD (National Center for

Supercomputing Application). Program ini pertama kali di desain untuk sistem operasi

lingkungan Unix. Namun demikian, pada beberapa versi berikutnya Apache

mengeluarkan programnya yang dapat dijalankan di Windows NT.

2.3.4 PHP (PHP Hypertext Preprocessor)

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.

Untuk menjalankan beberapa tugas yang perlu dijalankan pada waktu-waktu

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 :

2.3.6.1 Stream tokenizer

Class stream tokenizer mengambil input stream dan membaginya menjadi

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

dalam tanda petik, dan karakter komentar.


Sebuah aplikasi yang menggunakan stream tokenizer, ketika dijalankan, pertama

kali membangun objek dari class ini, membuat dan mengisi tabel sintaks, dan secara

berulang-ulang melakukan perulangan dengan memanggil metode nextToken dalam

setiap iterasi dari loop tersebut hingga nilai dari nextToken adalah TT_EOF.

2.3.6.2 String Tokenizer

Class string tokenizer memungkinkan suatu aplikasi memecah suatu string

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

false, maka karakter-karakter delimeter bekerja untuk memisahkan berbagai token.

Sebuah token adalah kumpulan karakter yang tidak mengandung delimeter.

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

3.1 Analisa Permasalahan


Masalah yang dihadapi untuk memudahkan web administrator dalam mengambil
keputusan bagi perusahaannya adalah menganalisa suatu file log yang merupakan
kumpulan data aktifitas pengunjung pada situs web-nya. Data pada file log ini hanya
berupa suatu data yang mencatat aktifitas dari pengunjung pada web server nya. Dengan
hanya mengandalkan data ini, maka web administrator akan membutuhkan waktu yang
lama dalam memberikan keputusan untuk peningkatan kinerja dari web server nya.
Apabila web administrator ingin mengetahui IP mana saja yang banyak
mengakses web server nya dalam rentang waktu 1 jam, maka ia harus membuka file
access_log dan melihatnya per baris bagian yang ingin diketahuinya. Jumlah record pada
file log dapat mencapai jutaan baris, sehingga hal ini akan menyulitkan untuk
pengambilan keputusan bagi web administrator.

Contoh dari file access_log dalam bentuk standar :

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).

3.2 Alternatif Penyelesaian Permasalahan


Salah satu cara penyelesaian permasalahan adalah dengan membuat suatu
database yang menampung data–data yang dibutuhkan secara berkelompok untuk diolah
menjadi suatu informasi yang dibutuhkan oleh web administrator. Informasi tersebut
bisa berupa kumpulan IP yang mengakses suatu situs web dengan jangkauan waktu per
jam. Di dalam database ini data-data dari file access_log dikelompokkan dalam satu
jenis yang sama (misalnya jenis IP, URL, METHOD, dan lainnya).
Dari hasil pengelompokkan data tersebut, akan diperoleh suatu informasi
mengenai IP yang mengakses suatu situs web tertentu dalam jangkauan waktu per jam.
Agar informasi ini dapat lebih mudah dipahami, maka informasi ini akan
direpresentasikan dalam bentuk diagram batang maupun dengan menggunakan tabel-
tabel.

3.3 Analisa Fungsi Sebagai Alternatif Penyelesaian Permasalahan

3.3.1 Fungsi HITS


Fungsi HITS ini digunakan untuk menentukan banyaknya obyek (bisa berupa
gambar, script, suatu teks dokumen, atau pun lainnya) yang diakses pada suatu situs
web. Hal ini berarti apabila dalam suatu halaman web mempunyai banyak gambar, maka
jumlah HITS ini akan semakin besar. Untuk dapat lebih jelas melihat cara kerja dari
fungsi HITS ini, maka di bawah ini diberikan suatu contoh sederhana dari halaman situs
web yang berada di Internet.
Contoh sederhana dari halaman web :

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.

3.3.2 Fungsi FILES


Fungsi FILES ini digunakan untuk menghitung jumlah dari banyaknya obyek
yang berada pada halaman web tetapi hanya mengambil obyek yang mendapatkan
respon 2xx dari web server. Respon 2xx dari web server ini menyatakan bahwa request
terhadap web server oleh web browser berhasil diterima dan mengembalikannya lagi
pada web browser berupa obyek gambar atau pun non-gambar.
Biasanya fungsi FILES ini lebih kecil daripada pageview, tetapi dapat juga
terjadi hal sebaliknya bila dalam satu halaman tersebut terdapat banyak obyek non-
halaman (misalnya dalam halaman tersebut banyak terdapat script untuk pengaturan
layar dan file-file tersebut diletakkan secara terpiasah). Perbedaan dari fungsi FILES dan
fungsi HITS adalah fungsi FILES akan mengecek status dari web server dan hanya
menjumlahkannya apabila obyek tersebut mempunyai status 2xx.
3.3.3 Fungsi PAGES (PAGEVIEW)
Fungsi PAGES ini digunakan untuk menghitung jumlah obyek berupa halaman
pada situs web.

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.

3.3.4 Fungsi VISITS


Fungsi ini digunakan untuk mengetahui berapa banyak orang yang mengunjungi
situs web kita dengan jangkauan waktu per 30 menit. Biasanya besaran fungsi ini hampir
selalu lebih kecil daripada PAGEVIEW, karena pengunjung minimal membaca 1
halaman pada situs web sehinggal 1 VISITS akan menghasilkan lebih dari
1 PAGEVIEW. Hal tersebut tidak akan berlaku dalam kasus situs web yang isinya hanya
berupa gambar-gambar saja. Dalam gambar 3.c, analisa pada file log tersebut dapat kita
lakukan per 30 menit untuk tanggal, jam, dan ip yang sama.
3.3.5 Fungsi BYTES
Fungsi ini hanya menganalisa besar ukuran suatu file pada suatu alamat URL
kemudian menjumlahkannya sesuai dengan jangkauan waktu yang diinginkan.

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.

3.3.6 Fungsi POST


Fungsi ini digunakan untuk menghitung berapa banyak data yang harus diterima
oleh server untuk menjadi suatu bagian dari data server itu sendiri.

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 ).

3.3.8 Fungsi HEAD


Fungsi ini biasanya digunakan untuk memvalidasi suatu hypertext links,
aksesbilitas, dan perubahan yang baru terjadi. HEAD ini biasanya berupa suatu
metainformasi dari keseluruhan suatu halaman.

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.9 Fungsi URL


Fungsi ini digunakan untuk melihat alamat URL mana saja yang sering diakses
oleh pengunjung dan diurutkan menurut 10 yang terbesar. Fungsi ini lebih dikhususkan
untuk mengetahui alamat URL yang berupa obyek halaman, yaitu alamat URL yang
mempunyai akhiran .htm, .html, .jsp, .asp, .php, dan lainnya.
Fungsi ini direpresentasikan dalam jangkauan waktu per jam, per hari, maupun
per bulan. Kegunaan dari fungsi ini akan dibahas lebih lanjut pada analisa kegunaan dari
piranti lunak penganalisa web ini. Fungsi ini akan mengabaikan kode status yang
diberikan oleh web server dan hanya menganalisa obyek halaman yang sering diakses
oleh pengunjung.

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.

3.3.11 Fungsi KODE


Fungsi ini digunakan untuk melihat kode status apa yang terjadi pada jangkauan
waktu tertentu. Kegunaan dari fungsi KODE ini akan dibahas lebih lanjut pada analisa
kegunaan piranti lunak penganalisa web. Kode status ini akan diberikan oleh web server
pada waktu terjadi suatu request dari user.
Kode status yang sering terjadi seperti kode status 200, ini berarti bahwa request
tersebut berhasil dengan baik diterima hasilnya oleh pengunjung. Kode status ini dapat
ditemukan pada RFC-2616 yang dapat dicari pada Internet. Contoh lain dari kode status
ini misalnya kode 404, ini berarti bahwa alamat yang dikehendaki oleh pengunjung, atau
pun obyek lainnya yang ingin diakses tidak tersedia.
3.4 Analisa Kegunaan Piranti Lunak Penganalisa Web

3.4.1 Analisa Kegunaan Fungsi HITS, FILES, PAGES,VISITS, BYTES.


Dengan menganalisa jumlah HITS dan FILES, maka dapat diketahui
perbandingan file yang mempunyai kode status 2xx dengan kode status yang error.
Dengan demikian web administrator dapat mengetahui kinerja dari web server apakah
web server nya sudah cukup handal atau belum. Dengan menganalisa jumlah PAGES
dan VISITS, maka dapat diketahui minat dari pengunjung pada situs web kita. Apabila
jumlah PAGES jauh lebih banyak dari jumlah VISITS, maka dapat terlihat bahwa minat
pengunjung pada situs web tersebut besar. Dengan melihat jumlah BYTES, maka web
administrator dapat mengatur bandwidth untuk peningkatan kinerja web server.

3.4.2 Analisa Kegunaan Fungsi POST, GET, HEAD.


Method POST, GET, dan HEAD berguna untuk mengatur besar bandwidth yang
diperlukan untuk transfer informasi antar web server dan klien. Jika pada situs web lebih
banyak terjadi method POST, maka web administrator dapat memperbesar bandwidth
untuk pengiriman data ke server. Jika terjadi hal sebaliknya, maka web administrator
dapat memperbesar bandwidth untuk pengiriman data atau informasi dari server.

3.4.3 Analisa Kegunaan Fungsi URL.


Dengan adanya fungsi URL yang telah diurutkan dari yang sering dikunjungi,
maka web administrator dapat mengetahui minat dari pengunjung bahkan bisa
memisahkan file pada URL tersebut ke bagian khusus agar pengaksesan oleh pengunjung
lebih cepat. Hal yang sebaliknya untuk URL yang jarang dikunjungi, maka web
administrator dapat mengevaluasi kembali halaman web tersebut dan memperbaikinya
untuk peningkatan mutu dari situs web.

3.4.4 Analisa Kegunaan Fungsi Alamat IP.


Dengan adanya fungsi alamat IP yang telah diurutkan dari 10 yang terbanyak,
maka web administrator dapat mengantisipasi asal dari pengunjung. Sehingga jika ada
alamat IP yang banyak berasal dari tempat yang jauh, maka untuk meningkatkan kinerja
dari web server maka dapat ditambah web server baru yang dekat dengan tempat
tersebut.

3.4.5 Analisa Kegunaan Fungsi KODE.


Dengan adanya fungsi KODE, maka dapat terlihat jumlah kode status yang
berhasil maupun yang terjadi error. Dari kode status tersebut bisa kita analisa lebih
dalam URL apa saja yang menghasilkan kode status tersebut. Sehingga jika URL
tersebut banyak mengalami error dapat diperbaiki dengan cepat.

3.5 Arsitektur Piranti Lunak

Gambar 3.1 Arsitektur Web Analyzer

Untuk menganalisa dan merepresentasikannya pada komputer klien, maka piranti


lunak ini didesain dengan dengan 2 tahap. Tahapan-tahapan tersebut adalah :
1. Tahap pertama adalah menganalisa file log tersebut
melalui program Java, dan menyimpan nya ke dalam database MySQL. Cara
pembacaan dan pengolahan data file log akan dibahas lebih lanjut pada analisa
algoritma pembacaan file log. Program Java tersebut akan berjalan secara
otomatis sesuai dengan konfigurasi yang dilakukan pada file crontab di Linux.
File tersebut akan dikonfigurasi oleh web administrator secara manual.
2. Dari database tersebut, maka akan ada pengolahan lebih
lanjut menjadi suatu bentuk informasi yang ditampilkan dalam diagram batang
maupun tabel-tabel. Informasi ini ditampilkan dalam 5 menu utama, yaitu
utama, method, IP, URL, dan kode. Mengenai analisa fungsi dan kegunaannya
telah dibahas pada sub bab sebelumnya. Pada tahapan ini program yang
digunakan untuk pengolahan adalah PHP, dan akan dijalankan melalui web
browser.
Jadi sebagai penghubung dua tahapan tersebut adalah database MySQL, yang
diolah dari data mentah menjadi suatu informasi yang dapat digunakan oleh web
administrator dalam pengambilan keputusan secara cepat. Informasi ini hanya bisa
dilihat oleh web administrator atau user yang telah terdaftar. Sebab untuk dapat melihat
informasi tersebut, maka user harus memasuki layar login dimana user harus
memasukkan user id dan password nya.

3.6 Analisa Algoritma Pembacaan File Log


Log file dibuka, dan dibaca perbaris. Isi tiap baris dipecah-pecah menjadi

beberapa token dengan delimeter ‘[‘, ‘]’, dan ‘”’. Dari hasil tokenisasi, diperoleh

sepuluh token, antara lain :

1. Token pertama berupa hostname pengunjung, yang berupa alamat IP.

2. Token kedua berupa remote logname yang biasanya kosong. Token ini diabaikan.

3. Token ketiga berupa remote user yang biasanya kosong, Token ini diabaikan.

4. Token keempat berupa tanggal dan waktu kunjungan

5. Token kelima berupa zone waktu pada server. Token ini diabaikan.
6. Token keenam berupa jenis request pengunjung

7. Token ketujuh berupa URL yang diminta pengunjung

8. Token kedelapan berupa versi HTTP yang diinginkan pengunjung. Token ini

diabaikan

9. Token kesembilan berupa response code yang dihasilkan

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

lebih cepat, daripada penyimpanan ke database dilakukan setiap selesai perhitungan.

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,

yang nantinya akan digunakan untuk menghitung files dan pageview.

Menganalisa IP, dan Visit

Visit dan IP dianalisa dengan membandingkan IP yang diamati sekarang dengan

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,

waktu kunjungan dicatat, dan jumlah visit ditambah.

Menganalisa Method

Method dapat dianalisa dengan mudah, yaitu dengan menganalisa apakah

method tersebut GET, POST atau HEAD. Jika method tersebut adalah get, maka nilai

variabel GET ditambah satu, begitu juga dengan POST dan HEAD.

Menganalisa Hits, Files, Pageview, dan Bytes

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

files yang berhasil ditransfer ditambah.

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,

maka jumlah byte ini ditambahkan ke jumlah byte sebelumnya.


Menganalisa URL dan Kode

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

berdasarkan file, maupun berdasarkan pages.

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

baru yang kosong.

3.7 Rancangan Database

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

3.8 Diagram Transisi


3.8.1 STD Program Secara Global
Tidak valid

ambil Login
Klik Home Klik OK
data dari tabel
Valid
log Index
Klik
tampilkan/OK
ambil Klik Setting
Tampil
tempat log file Setting

Klik Utama disimpan


Klik Method Klik IP Klik URL Klik Kode Klik Logout
ambil
nama log file
yang
Utama Method
digunakan id IP URL Kode

3.8.2 STD Halaman Index

Index Klik Setting


Klik Tampilkan
Atau klik OK
Tampil Setting
Klik OK dan valid

3.1.1 STD Halaman Setting


Klik Setting Klik OK
dan
Setting valid

3.8.3 STD Pada tiap Halaman

3.9 SPESIFIKASI MODUL


3.9.1 Hubungan Antar Modul Gambar Utama

3.9.2 Hubungan Antar Modul Gambar Method


3.9.3 Hubungan Antar Modul Gambar IP

3.9.4 Hubungan Antar Modul Kode

3.10 PSEUDOCODE PROGRAM

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

dimungkinkan untuk mengetahui dari kalangan mana yang sangat berminat.

Dengan adanya tuntutan demikian dari seorang manajer, maka untuk

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

lunak ini kami sebut “Penganalisa Web”.

Untuk mempermudah dalam menganalisa suatu halaman web tersebut, maka

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

konfigurasi pada web analyzer untuk menentukan beberapa hal berikut :

1. Letak direktori dan nama log file access yang dimiliki.

2. User dan password yang digunakan untuk menggunakan database MySQL

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

yang berupa halaman web.

Web analyzer menampilkan hasil analisa dalam bentuk statistik, yaitu dalam

bentuk grafik histogram (diagram batang) dan tabel. Web administrator dapat melihat

statistik tersebut baik per jam, maupun per tanggal.

Program ini menampilkan :

1. Jumlah kunjungan ke situs web,

2. Jumlah halaman yang dibuka,

3. Jumlah file yang dibuka,

4. Jumlah byte yang ditransfer oleh server,

5. Metode-metode apa saja yang digunakan,


6. Jumlah kode-kode tertentu yang muncul,

7. Beberapa URL yang sering dipanggil,

8. IP yang paling sering muncul dalam jangkauan sepuluh besar.

3.10 Analisa Pemecahan Permasalahan


3.10.3 Analisa Log file

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

tidak memperoleh informasi Referer.

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

harian). Perbedaannya hanya terletak pada keindahan laporan yang dihasilkan,

kemudahan navigasi situs tersebut, fasilitas tambahan yang membuat tool tersebut

menjadi lebih handal.


Berbeda dengan asumsi umum dan laporan hasil program statistik, analisis log

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

sampai ke server asli.

3.11 Struktur Database


3.12
3.13 Perancangan Layar

3.13.3 Rancangan Layar Login

3.13.4 Rancangan Layar Index


3.13.5 Rancangan Layar Setting
3.13.6 Rancangan Layar Informasi Utama per Bulan
3.13.7 Rancangan Layar Informasi Utama per Tanggal
3.13.8 Rancangan Layar Informasi Method per Bulan
3.13.9 Rancangan Layar Informasi Method per Tanggal
3.13.10 Rancangan Layar Informasi URL per Bulan
3.13.11Rancangan Layar Informasi URL per Tanggal

3.13.12 Rancangan Layar Informasi URL per Jam


3.13.13 Rancangan Layar Informasi IP per Bulan
3.13.14 Rancangan Layar Informasi IP per Tanggal
3.13.15 Rancangan Layar Informasi IP per J am
3.13.16 Rancangan Layar Informasi Kode per Bulan

3.13.17 Rancangan Layar Informasi Kode per Tanggal


3.13.18 Rancangan Layar Informasi Kode per Jam
3.14 State Transition Diagram (STD)

3.15 Hubungan Antar Modul

3.16 Psedocode Program

3.16.3 Pseudocode Program readAccessLogFile.java

mulai modul utama

panggil modul getDriver

panggil modul connectToFile

panggil modul initTokenizer

panggil modul initDatabase

Selama masih ada baris lain dalam file log akses, maka

pindah baris

panggil modul parsingFile

panggil modul parseTanggal

panggil modul hitungSite

akhir selama
panggil modul simpan ke database

tutup database

tutup file

hapus file

akhir modul utama

mulai modul parseTanggal

ambil token dari tokenizerWaktu, dan isikan ke tgl

ambil token dari tokenizerWaktu, dan isikan ke bln

ambil token dari tokenizerWaktu, dan isikan ke thn

ubah nama bulan dari nama bulan menjadi angka

isikan tempTanggal dengan format tanggal yang benar dari thn,bln, dan tgl

ambil token dari tokenizerWaktu, dan isikan ke tempJam

ambil token dari tokenizerWaktu, dan isikan ke tempMenit

isikan tempWaktu dengan format waktu yang benar dari thn,bln,tg,tempjam

akhir modul parseTanggal

mulai modul getDriver

Coba loading driver

jika berhasil lanjutkan

jika gagal tangkap eror

cetak Tak Bisa Loading Driver

Cetak letak kesalahannya

akhir jika
akhir modul getDriver

mulai modul connectToFile

coba

buka file konfigurasi

gunakan stream tokenizer untuk membaca file konfigurasi

baris pertama pada file konfigurasi sebagai nama log file

baris kedua pada konfigurasi konfigurasi sebagai direktori log file

baris ketiga pada file konfigurasi sebagai host

baris keempat pada konfigurasi konfigurasi sebagai nama pengguna

komputer

baris kelima pada file konfigurasi sebagai pasword

Buka database webanalyzer

buka file

akhir coba

tangkap eror

cetak letak kesalahannya

akhir tangkap eror

akhir modl connectToFile

mulai modul initTokenizer

coba

gunakan pembaca file pada log file

gunakan buffer untuk penbace file


gunakan streamTokenizer pada buffer

reset sintax streamTokenizer

seting streamTokenizer

akhir coba

tangkap eror

cetak letak kesalahannya

akhir tangkap eror

akhir modul initTokenizer

mulai modul parsingFile

gunakan stringTokenizer pada setiap baris file yang dibaca

token pertama diisikan sebagai IP

dua token berikutnya diabaikan

token keempat diisikan sebagai waktu

abaikan token kelima

jika masih ada token lainnya, maka :

isikan token tersebut ke array tempToken

tambahkan variabel jumlahToken

end Jika

tempToken pertama diisikan sebagai method

tempToken kedua dari akhir diisikan sebagai kode

jika tempToken terakhir adalah karakter '-', maka

nilainya dijadikan 0

end jika
temptoken terakhir diisikan sebagai byte yang ditransfer

jika jumlah token = 3, maka

tokenizerSite dianggap null

tokenVersion dikosongkan

end jika

jika jumlah token = 4, maka

tokenizerSite diisi dengan tempToken kedua

tokenVersion dikosongkan

end jika

jika jumlah token = 3, maka

tokenizerSite diisi dengan tempToken kedua

tokenVersion diisi dengan tempToken ketiga dari terakhir

end jika

akhir modul parsingFile

awal modul hapusLastRecord

coba

hapus record terakhir dari tabel utama

hapus record terakhir dari tabel ip

hapus record terakhir dari tabel kode

hapus record terakhir dari tabel url

hapus record terakhir dari tabel method

akhir coba

tangkap eror
cetak letak kesalahannya

akhir tangkap eror

akhir modul hapusLastRecord

awal modul hitungSite

jika jam berbeda dengan tempJam dan tanggal berbeda dengan tempTanggal,

maka

panggil modul simpanKeDatabase

akhir jika

jika jumlahToken sama dengan lima, maka

panggil modul parseSite

panggil modul hitungIP

panggil modul hitungMethod

panggil modul hitungURL

panggil modul hitungKode

tambahkan nilai variabel hits

jika tokenKode berada diantara 199 dan 400, maka

tambahkan nilai variabel files

jika ekstensi ada dalam ekstensiPage, maka

tambahkan nilai variabel files

akhir jika

akhirJika

tambahkan nilai tbytes dengan bytes

akhir jika
akhir modul hitungSite

awal modul hitungIP

jika IP berbeda dengan ip Sebelumnya, maka

variabel beda diisi nilai true

looping dari nol hingga empat

hitung jarak waktu antar dua waktu visit

jika tokenIP sama dengan empat ip sebelumnya, dan jarak waktu

kurang

dari setengah jam, maka isi variabel beda dengan salah

akhir jika

end looping

jika beda bernilai true, maka

tambahkan nilai variabel visit

looping dari nol hingga empat

isikan array waktuVisit dengan tempWaktu

geser isi previusIP satu langkah kebelakang

akhir looping

isi previousIP terakir denga tokenIP

isi variabel simpan dengan true

looping dari nol hingga jumlahIP

jika tokenIP berada dalam array ipIP, maka

isi variabel simpan dengan false

tambahkan nilai ipJumlah


akhir jika

akhir looping

jika simpan bernilai true, maka

isi array ipIP pada posisi jumlahIp dengan tokenIP

isi array ipJumlah pada posisi jumlahIp dengan satu

tambahkan nilai jumlahIP

akhir jika

akhir jika

akhir modul hitungIP

awal modul hitungURL

isi variabel simpan dengan true

looping counter dari nol hingga jumlah URL

jika tokenUrl sama dengan urlURL yang ke counter

isi bariabel simpan dengan false

tambahkan nilai urlHits yang ke counter

tambahkan nilai urlBytes yang ke counter dengan bytes

akhir jika

akhir looping

jika simpan bernilai true, maka

isi urlURL pada posisi jumlahUrl dengan tokenURL

isi urlHits pada posisi jumlahUrl dengan satu

isi urlBytes pada posisi jumlahUrl dengan bytes

tambahkan jumlahUrl
akhir jika

akhir modul hitungURL

awal modul hitungMethod

jika tokenMetod bernilai "GET", maka tambahkan nilai method ke nol

jika tokenMetod bernilai "POST", maka tambahkan nilai method ke satu

jika tokenMetod bernilai "HEAD", maka tambahkan nilai method ke dua

akhir modul hitungMethod

awal modul hitungKode

isi variabel simpan dengan true

looping counter dari nol hingga jumlahKode

jika tokenKode sama dengan kodeKode yang ke counter

isi variabel simpan dengan false

tambahkan nilai kodeJumlah yang ke counter

akhir jika

akhir looping

jika simpan bernilai true, maka

isi kodeKode pada posisi jumlahKode dengan tokenKode

isi kodeJumlah pada posisi jumlahKode dengan satu

tambahkan jumlahKode

akhir jika

akhir modul hitungKode


awal modul initDatabase

coba

ambil record terakhir dari tabel utama

jika ada record terakhir, maka

isi nilai tanggal dengan Tanggal yang ada di database

isi nilai jam dengan Jam yang ada di database

isi nilai hits dengan Hits yang ada di database

isi nilai files dengan Files yang ada di database

isi nilai pages dengan Pages yang ada di database

isi nilai tbytes dengan Bytes yang ada di database

isi nilai visits dengan Visits yang ada di database

panggil modul isiDataLainnya

panggil modul hapusLastRecords

selain itu

kosongkan variabel tanggal, jam, hits, files, pages, tbytes, visits

akhir jika

akhir coba

tangkap eror

cetak letak kesalahannya

akhir tangkap eror

akhir modul initDatabase

awal modul isiDataLainnya

coba
ambil semua ip dalam database dengan tanggal dan jam terakir

isikan hasilnya ke array ipIP, ipJumlah

ambil semua url dalam database dengan tanggal dan jam terakir

isikan hasilnya ke array urlHits, urlBytes, urlURL

ambil semua kode dalam database dengan tanggal dan jam terakir

isikan hasilnya ke array kodeKode, kodeJumlah

ambil record terakhir dari tabel method

isikan hasilnya ke array method

akhir coba

tangkap eror

cetak letak kesalahannya

akhir tangkap eror

akhir modul isiDataLainnya

awal modul simpanKeDatabase

coba

jika variabel tanggal kosong, maka

isi variabel jam dengan tempJam

isi variabel tanggal denga tempTanggal

selain itu

isi tabel utama

looping dari nol hinggal jumlahIP

isi tabel ip

akhir looping
looping dari nol hinggal jumlahUrl

isi tabel url

akhir looping

isi tabel method

looping dari nol hinggal jumlahKode

isi tabel

akhir looping

akhir jika

set semua variabel yang berhubungan dengan isi database dengan kosong

akhir coba

tangkap eror

cetak letak kesalahannya

akhir tangkap eror

akhir modul simpanKeDatabase

awal modul parseSite

isikan tokenUrl dengan token pada tokenizerSite

parsing nama file dan ekstensi dari tokenUrl

isikan elstnsi dengan ekstensi dari hasil parsing

jika tidak ada ekstensi, maka ekstensi dikosongkan

akhir modul parseSite

3.16.4 Pseudocode untuk file PHP

Pseudocode login
Ambil masukan dari kolom user dan password

Cek apakah ada isinya atau tidak

Buka database ambil semua field pada tabel login

Bandingkan masukan user dengan semua record set yang ada di database

Pseudocode setting

Ambil masukkan path, nama file, host, user, password

Cek apakan file yang diisikan ada

Cek apakah dapat terhubung dengan database

Jika kedua pengecekan valid maka tulis ke sebuah text file

Modul IP

Baca file konfigurasi

Panggil Modul GambarIP

Insialisasi Database

Periksa style yang digunakan

Buat suatu query berdasarkan style yang digunakan

Hubungkan ke database MySQL dengan query tersebut

Jika (jumlah data > 10), maka batasi jumlah data = 10

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

Baca file konfigurasi

Insialisasi Database

Periksa style yang digunakan

Buat suatu query berdasarkan style yang digunakan

Hubungkan ke database MySQL dengan query tersebut

Jika (jumlah data > 10), maka batasi jumlah data = 10

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

Baca file konfigurasi

Insialisasi Database

Periksa style yang digunakan

Buat suatu query berdasarkan style yang digunakan

Hubungkan ke database MySQL dengan query tersebut

Buat tabel dengan hasil dari query tersebut

Masukkan file bacakode.php

Isi tabel dengan hasil dari query tersebut

Terjemahkan setiap kode menjadi suatu keterangan


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 Utama

Baca file konfigurasi

Inisialisasi Database

Panggil Modul GambarUtama

Periksa style yang digunakan

Buat suatu query berdasarkan style yang digunakan

Buat suatu query2 untuk menghitung persentasenya

Hubungkan ke database MySQL dengan query tersebut

Dapatkan hasil jumlah maksimum penggunaan dengan query2

Buat tabel dengan hasil dari query tersebut

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

Baca file konfigurasi

Inisialisasi Database

Panggil Modul GambarMethod

Periksa style yang digunakan


Buat suatu query berdasarkan style yang digunakan

Buat suatu query2 untuk menghitung persentasenya

Hubungkan ke database MySQL dengan query tersebut

Dapatkan hasil jumlah maksimum penggunaan dengan query2

Buat tabel dengan hasil dari query tersebut

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

Baca file konfigurasi

Buat gambar kosong dan muatkan ke dalam memory

Inisilisasi database

Periksa style yang digunakan

Buat suatu query berdasarkan style yang digunakan

Hubungkan ke database MySQL dengan query tersebut

Masukkan File Warna.php

Masukkan File diagram2.php

Inisialisasi grafik batang yang akan dibuat

Panggil modul petakan dari file diagram2.php

Cetak gambar grafik batang berdasarkan modul tadi

Masukkan File tentu_bulan.php

Cetak Header dari gambar grafik tersebut


Cetak garis - garis skala tersebut

Buat border untuk grafik tersebut

Cetak gambar yang sudah dibuat ke web browser

Buang gambar yang ada di memory

End Modul

Modul GambarUtama

Baca file konfigurasi

Buat gambar kosong dan muatkan ke dalam memory

Inisialisasi Database

Periksa style yang digunakan

Buat suatu query berdasarkan style yang digunakan

Hubungkan ke database MySQL dengan query tersebut

Masukkan File Warna.php

Masukkan File diagram2.php

Inisialisasi grafik batang yang akan dibuat

Cari maksimum range dari setiap topik yang akan dipetakan

//Untuk Bytes

Inisialisasi gambar untuk bytes dari file diagram2.php

Panggil modul maksimum dari file diagram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut

Cetak gambar grafik batang berdasarkan dari modul tadi

//end Bytes
//Untuk Visits

Inisialisasi gambar untuk visits dari file diagram2.php

Panggil modul maksimum dari file diagaram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut

Cetak gambar grafik batang berdasarkan dari modul tadi

//end Visits

//Untuk Hits

Inisialisasi gambar untuk hits dari file diagram2.php

Panggil modul maksimum dari file diagram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut

Cetak gambar grafik batang berdasarkan dari modul tadi

//end Hits

//Untuk Files

Inisialisasi gambar untuk files dari file diagram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut

Cetak gambar grafik batang berdasarkan dari modul dan maksimum Hits tadi

//end Files

//Untuk Pages

Inisialisasi gambar untuk pages dari file diagram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut


Cetak gambar grafik batang berdasarkan dari modul dan maksimum Hits tadi

//end Pages

Cetak gambar yang sudah dibuat ke web browser

Buang gambar yang ada di memory

End Modul

Modul GambarMethod

Baca file konfigurasi

Buat gambar kosong dan muatkan ke dalam memory

Inisialisasi Database

Periksa style yang digunakan

Buat suatu query berdasarkan style yang digunakan

Hubungkan ke database MySQL dengan query tersebut

Masukkan File Warna.php

Masukkan File diagram2.php

Inisialisasi grafik batang yang akan dibuat

Cari maksimum range dari setiap topik yang akan dipetakan

//Untuk Head

Inisialisasi gambar untuk Head dari file diagram2.php

Panggil modul maksimum dari file diagram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut

Cetak gambar grafik batang berdasarkan dari modul tadi

//end Head
//Untuk Get

Inisialisasi gambar untuk Get dari file diagram2.php

Panggil modul maksimum dari file diagaram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut

Cetak gambar grafik batang berdasarkan dari modul tadi

//end Get

//Untuk Post

Inisialisasi gambar untuk Post dari file diagram2.php

Panggil modul maksimum dari file diagram2.php

Panggil modul petakan dari file diagram2.php

Cetak keterangan pada gambar tersebut

Cetak gambar grafik batang berdasarkan dari modul tadi

//end Post

Cetak gambar yang sudah dibuat ke web browser

Buang gambar yang ada di memory

End Modul

//File diagram2.php

Modul Maksimum

Ambil variable maksimum dari parameter yang ada

Cari maks_range berdasarkan rumus

Kembalikan hasilnya berupa maks_range yang telah diolah

end Modul
Modul Petakan

Apabila ada data maka lakukan modul ini

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

Buat polygon berdasarkan dari panjang, dan lebar gambar

Cetak gambar ke layar berdasarkan warna yang ada

End Modul

Modul Borderbawah

Buat polygon berdasarkan dari panjang, dan lebar gambar

Cetak gambar ke layar berdasarkan warna yang ada

End Modul

Modul Inisialisasi

Buat semua titik menjadi dalam keadaan segaris

End Modul
BAB IV

Implementasi dan Evaluasi

4.1 Implementasi

4.1.1 Kebutuhan Hardware dan Software

4.1.1.1 Kebutuhan hardware :

Hardware minimum yang dibutuhkan dalam menggunakan program web analyzer ini

adalah :

1. Processor : Intel pentium II 300 Mhz

2. Memory : 128 Mbyte

3. Harddisk : freespace 10 Mbyte

4 VGA card : 4 MByte

4.1.1.2 Kebutuhan software :

Software pendukung agar dapat menjalankan program adalah :

3. PHP 4.0

4. MySQL

5. Java 1.3

6. Driver MM.MySQL

7. Apache Web Server

8. Web Browser Konqueror.


4.1.2 Instalasi Program

Langkah-langkah yang harus dilakukan dalam instalasi program ini adalah

1. Buat konfigurasi file crontab

dengan menggunakan editor atau pun dengan menggunakan perintah yang sudah

ada di Linux : crontab –e

2. Jalankan program

createDatabase.class dengan perintah :

$java –classpath path createDatabase

dimana path adalah directory dimana program createDatabase.class berada.

3. Copy semua program java, driver

MM.MySQL, dan modul PHP pada direktory tertentu.

4. Jika letak dan/atau nama access log

file anda berbeda dengan letak default linux, maka jalankan seting.php dan

tunjukan direktory dan nama access log file tersebut.

5. Seting cron untuk menjalankan

program accessLogFile.class, agar program berjalan secara periodik.

6. Jalankan service mysqld, dan

service httpd.

4.1.3 Fasilitas Configurasi

Untuk memudahkan pemakaian program aplikasi ini, maka dibuat suatu halaman

web khusus yang berfungsi untuk mengatur konfigurasi agar program ini dapat berjalan

sebagaimana mestinya. Konfigurasi yang ditampilkan adalah untuk mengkonfigurasi


cron untuk dapat berjalan kapan saja sesuai kebutuhan, serta konfigurasi untuk koneksi

ke database MySQL server.

4.2 Evaluasi Program

Piranti lunak web analyzer ini mengevaluasi web dengan menggunakan

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

seolah-olah aktifitas tersebut terjadi pada komputer kami.

Dari hasil analisa, maka didapatkan bahwa pembacaan access log file yang

mencatat 205.580 aktifitas dapat dianalisa dan disimpan dalam database dalam waktu

sekitar 125 detik. Dengan menggunakan cron, setelah administrator melakukan

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.

Untuk memulainya web administrator harus memasukan user ID dan password

kemudian muncul page index.php, disini terdapat beberapa tombol navigasi yang akan

menampilkan seluruh informasi yang terjadi pada webnya.


4.2.1 Tampilan Layar

4.2.1.1 Halaman Login

Gambar 4.1 : Gambar Halaman Login

Pada halaman ini, seorang web administrrator diminta mengenaina User ID dan

passwordnya. Jika User ID dan passwordnya benar, maka ia masuk ke halaman indeks.

Jika salah, maka ia diminta untuk login kembali.


4.2.1.2 Halaman Pembuka

Gbr 4.2 : Gsmbar Halaman Pembuka

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.

Jika ia mengklik seting, maka ia akan masuk ke halaman seting.


4.2.1.3 Halaman Informasi Utama

4.2.1.3.1 Halaman Informasi Utama per Bulan dalam Bentuk Grafik

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

Gambar 4.4 : Gambar Halaman informasi Utama 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

bytes dalam suatu hari tertentu.


4.2.1.3.4 Halaman Informasi Utama per Tanggal dalam Bentuk Tabel

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

dalam bentuk angka yang terperinci.


4.2.1.4 Halaman Informasi Method

4.2.1.4.1 Halaman Informasi Method per Bulan dalam Bentuk Grafik

Gambar 4.7 : Gambar Halaman informasi method per Bulan dalam bentuk Grafik

Gambar diatas menampilkan informasi jumlah dari method-method yang muncul

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

4.2.1.5.1 Halaman Informasi URL per Bulan

Gambar 4.11 : Gambar Halaman Informasi URL per Bulan


4.2.1.5.2 Halaman informasi URL per Tanggal

Gambar 4.12 : Gambar Halaman Informasi URL per Tanggal


4.2.1.5.3 Halaman informasi url per Jam

Gambar 4.13 :Gambar Halaman Informasi URL per Jam


4.2.1.6 Halaman informasi IP

4.2.1.6.1 Halaman Informasi IP per Bulan dalam bentuk Grafik

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 4.15 : Gambar Informasi IP per Bulan dalam bentuk tabel


4.2.1.6.3 Halaman Informasi IP per Tanggal dalam bentuk Grafik

Gambar 4.16 : Gambar Informasi IP per tanggal dalam bentuk grafik


4.2.1.6.4 Halaman Informasi IP per Tanggal dalam bentuk Tabel

Gambar 16 : Gambar Halaman Informasi IP per Tanggal dalam bentuk Tabel


4.2.1.6.5 Halaman Informasi IP per Jam dalam bentuk Grafik dan Tabel

Gambar 17 : Gambar Halaman Informasi IP per Jam dalam bentuk Grafik dan Tabel
4.2.1.7 Halaman Informasi Kode

4.2.1.7.1 Halaman Informasi Kode per Bulan

Gambar 4.18 : Gambar Halaman Informasi Kode per Bulan


4.2.1.7.2 Halaman Informasi kode per Tanggal

Gambar 4.19 : Gambar Halaman Informasi kode per Tanggal


4.2.1.7.3 Halaman Informasi kode per Jam

Gambar 2.20 : Gambar Halaman Informasi kode per Jam


Bab 5

Kesimpulan dan Saran

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

tabel, maka ia dapat menentukan kebijaksanaan perusahaan terhadap situs webnya.

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

kecerdasan buatan yang dapat menilai kinerja web yang dianalisa.


Daftar Pustaka

Azis, Farid. (2001). Belajar Sendiri Pemrograman PHP 4. Elex Media Komputindo,

Jakarta.

Castagnetto, Jesus, dkk. (2000). Professional PHPProgramming. Wrox Press Ltd,

Birmingham.

Bowen, Rich, dkk. (2000). Apache Server Unleased, Sams, Indiana.

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

Publishing, New York.

Lin, Han (2000). Tip dan Trik Mengkonfigurasi dan Mengoptimalkan Linux Red Hat

Server. Elex Media Komputindo, Jakarta.

Maslakowski, Mark, dkk. (2000). Teach Yourself MySQL in 21 days. Sams, Indiana.

Pew, John. A. (1997). Instant Java. Prentice Hall PTR, Singapore.

Pitts, David, dkk. (1999). Red Hat Linux 6 Unleased, Sams, Indiana.

Pranata, Antony. (2000). Panduan Pemrograman JavaScript. ANDI, Yogyakarta.

Siple, Mathew. (1998). The Complete Guide to Java Database Programming,

Computing Mc Graw Hill, New York.

Sofyan, Ahmad. (2000) Server Linux, Nurul Fikri Computer, Jakarta.

Welling, Luke, dkk. (2001). PHP and MySQL Web Deployment. Sams, Indiana.