Pada bab ini akan dibahas tentang implementasi aplikasi penghitungan pengunjung beserta faktor pendukung yang dibutuhkan oleh sistem, serta hasil pengujian terhadap sistem menggunakan beberapa jenis software yang digunakan untuk aplikasi ini.
4.1 Implementasi
Implementasi di bagi 3 (tiga) bagian, yaitu implementasi program, basis data dan implementasi antar muka.
4.1.1 Implementasi Program
Aplikasi ini merupakan aplikasi berbasis web dan menggunakan bahasa pemrograman PHP dengan basis data MySQL yang dapat diakses secara online.
Pada bab ini, penulis akan membahas tentang beberapa proses utama yang ada di sistem yang menjadi titik berat penulisan tugas akhir ini, yaitu:
1. Proses penampilan kode penghitungan pengunjung. 2. Proses penghitungan dan pengambilan data pengunjung. 3. Proses penampilan data pengunjung.
4.1.1.1 Proses penampilan kode penghitungan pengunjung
Program ini akan tampil jika member telah berhasil login dan telah mengisi alamat situs web, sehingga program akan menampilkan kode yang akan dipasang di situs web pengguna (client) dengan cara menyalin code yang diberikan.
Kode 4.1 Potongan Kode Penampilan Alamat Situs Web
1. $sql5 = "SELECT * FROM dataweb where nama_member='$namases'"; 2. $query5 = mysql_query($sql5);
3. $rows1 = mysql_fetch_array($query5); 4. $site = $rows1['website'];
Kode 4.1 (Lanjutan) Potongan Kode Penampilan Alamat Situs Web
6. <textarea name="txtarea" cols="45" rows="2" onClick="this.focus();this.select()"> <a href="http://www.statiscount.co.cc" target"blank"> 7. <img height="0" src="http://www.statiscount.co.cc/hit2.php?site=<?echo"$site"? > rd=' + Math.round(1000*Math.random()) + '&rf=' + encodeURIComponent(document.referrer) +" width="0"/></a></textarea> 8. <?}?>?> Penjelasan Kode:
Pada baris 1 kode yang dijalankan untuk menampilkan alamat situs web pertama kali adalah mengambil semua data yang ada dalam dataweb dimana baris yang dipilih berdasarkan namases yang disimpan dalam $sql5. Setelah itu pada baris 2 program akan menjalankan querry sql yang ada pada $sql5, tahap selanjutnya kode pada baris 3 mengambil semua data dalam bentuk array yang disimpan dalam $rows1. Baris 4 untuk mengambil hasil yang ada dalam kolom website pada array dan menyimpannya di dalam $site.
Baris 5 merupakan kode untuk memeriksa apakah udah pada tabel member hasilnya sama dengan 1, jika benar maka jalankan baris 6 dan 7 yang akan menampilkan kode dari penghitungan pengunjung.
4.1.1.2 Proses Penghitungan dan Pengambilan Data Pengunjung
Proses ini merupakan inti dari aplikasi penghitungan pengunjung, dimana terdapat pengambilan semua data yang diperlukan seperti alamat Ip, waktu kunjungan, referer, pramban, nama website yang dikunjungi, query dan idunik yang didapatkan dengan pengabungan antara ip, pramban dan waktu. Pada proses ini juga penambahan kunjungan yang akan disimpan ke dalam basis data.
Jika pada jam 12.00 pengunjung mengakses proses ini pertama kali dan kunjungan kedua pada jam 12.14 dan kunjungan ketiga pada jam 12.10 maka akan dianggap satu kali kunjungan, karena pada setiap kunjungan yang dilakukan berada dibawah 15menit. Tetapi jika pengunjung mengakses proses ini pertama kali pada jam 12.00 dan mengakses kembali pada jam 12.16 maka akan dianggap dua kali kunjungan karena jarak antara kunjungan pertama dan kunjungan kedua lebih dari 15menit.
Kode 4.2 Potongan Kode Pengambilan Alamat IP Pengunjung :
1. function get_ip_address() {
2. foreach (array('HTTP_CLIENT_IP', 'HTTP_X_REAL_IP',
'REMOTE_ADDR', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR',
'HTTP_FORWARDED') as $key) {
3. if (array_key_exists($key, $_SERVER) === true) { 4. foreach (explode(',', $_SERVER[$key]) as $ip) { 5. if (filter_var($ip, FILTER_VALIDATE_IP) !== false) { 6. return $ip;
7. }}}}}
Penjelasan Kode:
Function get_ip_address adalah untuk memeriksa nilai keabsahan dari ip address, pada baris 2 kode program untuk melakukan pengulanan untuk pencarian nilai dari ip dalam bentuk array yang disimpan dalam $key. Fungsi dari kode pada baris 3 adalah mengembalikan nilai true jika nilai dari $key ada di dalam $_SERVER dan membandingkan apakah nilai yang dihasilkan sama dengan true.
Fungsi kode dari baris 4 untuk mengekstrak nilai dari $key dan disimpan dalam $ip. Jika hasil dari variabel ip tidak identik dengan false maka kembali ke $ip.
Kode 4.3 Potongan Kode Pengambilan Data Pengunjung
1. $qs = $_SERVER['QUERY_STRING']; 2. $sn = $_SERVER['SCRIPT_NAME'];
3. $uagent = $_SERVER['HTTP_USER_AGENT']; 4. $ip = get_ip_address();
5. if (isset($_GET[rf]) && ($_GET[rf] != ""))
$rf=urldecode($_GET[rf]); else $rf = $_SERVER['HTTP_REFERER'];} 6. $url = "$rf";
7. $r = parse_url($url, PHP_URL_HOST);
Penjelasan Kode:
Baris 1 mempunyai fungsi untuk mengambil nilai dari query string dan disimpan dalam $qs, fungsi baris 2 untuk mengambil nilai dari script name dan simpan dalam $sn, baris 3 mengambil nilai dari user agent dan disimpan dalam $uagent, $ip merupakan nilai dari get ip address, pada baris 5 fungsinya untuk mengambil referer dan disimpan dalam $rf, di baris 6 nilai $rf di ambil oleh $url dan di baris 7 $r mengambil nilai host url dari $url
Kode 4.4 Potongan Kode Membuat Idunik :
1. if (empty($idunik)) {
2. $waktu = date("Y-m-d H:i:s");
3. $idunik = md5($ip . $uagent . $waktu); 4. setcookie("idunik", $idunik);
5. $qry = "INSERT INTO hitung (idunik, useragent, ipaddr) VALUES ('$idunik', '$uagent', '$ip')";
6. mysql_query($qry) or die("INSERT `hitung` gagal"); }
Penjelasan Kode :
Jika idunik kosong pada baris 1 maka ambil tanggal dengan format tahun – bulan – tanggal jam- menit – detik yang disimpan dalam $waktu, $idunik pada baris 3 merupakan gabungan dari nilai $ip, $uagent dan $waktu, pada baris 4 idunik dibuat sebagai cookie, pada fungsi kode pada baris 5 untuk masukkan data ke tabel hitung kolom idunik, useragent, ipaddr dengan value nya $idunik, $uagent dan $ip dan jalankan querry tersebut pada baris 6
Kode 4.5 Potongan Kode Membandingkan Nama Pramban
1. if($pos=strpos($uagent, "Firefox")) 2. {$uagent='Mozilla Firefox';}
3. else if ($pos=strpos($uagent, "MSIE")) 4. {$uagent='Windows Internet Explorer';} 5. else if ($pos=strpos ($uagent, "Opera")) 6. {$uagent='Opera';}
7. else if ($pos=strpos ($uagent, "Chrome")) 8. {$uagent='Google Chrome';}
9. else if ($pos=strpos ($uagent, "Safari")) 10. {$uagent='Safari';}
11. else $uagent='Other';
Penjelasan kode:
Fungsi dari kode baris 1 dan baris 2 untuk memeriksa apakah kata firefox terdapat dalam hasil dari nilai $uagent, jika ia maka simpan $uagent dengan nama Mozilla Firefox, jika tidak pengecekan pada baris 3 jika kata MSIE terdapat pada $uagent maka simpan Windows Internet Explorer dalam $uagent, jika tidak terdapat maka lanjutkan pada baris 5 yaitu mencari kata Opera dalam $uagent, jika ada simpan Opera dalam $uagent, jika tidak jalankan baris 7 dengan pengecekan apakah kata Chrome terdapat dalam $uagent, jika benar simpan Google Chrome dalam $uagent, jika tidak lanjutkan baris 9 apa kata dalam
$uagent terdapat kata safari, jika benar simpan Safari dalam $uagent jika tidak simpan Other dalam $uagent
Kode 4.6 Potongan Kode Mengubah Ip Menjadi Ipnumber
1. $ipad = explode('.',$ip);
2. $ipne = 16777216*$ipad[0] + 65536*$ipad[1] + 256*$ipad[2] + $ipad[3];
3. $sql4 = "SELECT negara2, negarafull FROM ipnegara WHERE kodeawal <= $ipne";
4. $result4 = mysql_query($sql4);
5. while ($hasil = mysql_fetch_array($result4)){ 6. $ngra2 = $hasil['negara2'];
7. $ngrafull = $hasil['negarafull']; }
Penjelasan kode:
Fungsi dari baris 1 adalah untuk mengekstrak nilai dari $ip dan simpan dalam $ipad, pada baris 2 hasil dari $ipad di ubah menjadi ipnumber, pada baris 3 kode untuk mengambil negara2, negara full dari tabel ipnegara dimana kodeawal kecil atau sama dengan $ipne, baris 4 untuk menjalankan perintah pada querry, pengulangan hasil dalam bentuk array dibaris 5, pada baris 6 pengambilan nilai dari array pada kolom negara2 dan simpan dalam $ngra2, pengambilan nilai dari kolom negarafull dan simpan dalam $ngrafull pada baris 7.
Kode 4.7 Potongan Kode Penyimpanan Data Pengunjung
1. if (is_null($rf)){
2. $qry = "INSERT INTO conter (website, ipaddr, browser, idunik, namascript, que, negara2, negarafull) VALUES ('$site', '$ip', '$broser', '$idunik', '$sn', '$qs', '$ngra2', '$ngrafull') "; 3. } else {
4. $qry = "INSERT INTO conter (website, ipaddr, referer, browser, idunik, namascript, que, negara2, negarafull) VALUES ('$site', '$ip', '$r', '$broser', '$idunik', '$sn', '$qs', '$ngra2', '$ngrafull') ";}
5. mysql_query($qry) or die("INSERT `conter` gagal");
Penjelasan Kode:
Pengecekan apakah nilai $rf bersifat null pada baris 1, baris 2 merupakan kode dari masukkan data ke dalam tabel conter kolom website, ipaddr, browser, idunik, namascript, que, negara2, negarafull dengan value $site, $ip, $brwser, $idunik, $sn, $qs, $ngra2 dan $ngrafull jika tidak jalankan kode data ke dalam tabel conter kolom website, ipaddr, referer, browser, idunik, namascript, que,
negara2, negarafull dengan value $site, $ip, $r, $brwser, $idunik, $sn, $qs, $ngra2 dan $ngrafull pada baris 4 dan jalankan querry pada baris 5
Kode 4.8 Pengecekan Waktu Kunjugan dan Simpan Penambahan Kunjungan :
1. $sql3 = "SELECT * FROM `conter` WHERE idunik ='$idunik' AND website='$site' AND TIME_TO_SEC( TIMEDIFF( Now( ) , waktu ) ) <900 ORDER BY waktu DESC";
2. $result3 = mysql_query($sql3); 3. $jum = mysql_num_rows($result3);
4. if($jum == 1){ $sql2 = "update dataweb set counter = counter + 1 where website='$site'";
5. $result2 = mysql_query($sql2);}
Penjelasan Kode:
Kode pada baris 1 merupakan ambil semua data dari tabel conter dimana idunik = $idunik dan website =$site dengan pengurutan waktu di bawah 900 menit, baris 2 merupakan kode untuk menjalankan query dari baris 1, baris 3 merupakan pengambilan jumlah baris yang ada, baris 4 merupakan perbandingan jika $jum sama dengan 1 maka update tabel dataweb counter tambah 1 dimana website =$site, baris 5 untuk menjalankan query dari baris 4
Kode 4.9 Penampilan Gambar Penghitungan : 1. $font = "Telegraphem.ttf";
2. $im = imagecreatefromjpeg('bg3.jpg');
3. $color = imagecolorallocate($im, 255, 10,10); 4. imagettftext($im,20,0,5,27, $color, $font, $semu); 5. header("content-type: image/jpeg");
6. imagejpeg($im); 7. imagedestroy($im);
Penjelasan Kode:
Baris 1 untuk pengambilan font, baris 2 fungsinya untuk membuat gambar dari file bertipe jpeg dan mengalokasikan warna dan menyimpan dalam variabel $im dengan komposisi warna R=255, G=10, B=10 seperti baris 3, baris 4 berfungsi untuk mencetak text yang mempunyai 8 struktur yaitu (gambar, besar font, posisi dalam derajat, posisi_x, posisi_y, warna, jenis font, string yang akan dicetak), baris 5 berfungsi untuk menciptakan gambar berformat jpeg dan menampilkan gambar pada baris 6, pada baris 7 berfungsi untuk mengosongkan variabel yang digunakan untuk menyimpan gambar.
Kode 4.10 Potongan Kode Penampilan Angka Hitungan :
1. $sql = "SELECT * FROM dataweb where website='$website'" ; 2. $result = mysql_query($sql); 3. $rows = mysql_fetch_array($result); 4. $counter = $rows['counter']; 5. $num = strlen($counter); 6. $num_0 = 7-$num; 7. $ab= ""; 8. for($i=0;$i<$num_0;$i++) { 9. $ab .= "0" ; 10. } 11. $ac= ""; 12. for($i=0;$i<$num;$i++) { 13. $ac .= substr($counter,$i,1); 14. }
15. $semu = $ab . $ac ;
Penjelasan Kode:
Pengambilan semua data dari tabel dataweb dimana kolom website = $site yang disimpan dalam $sql pada baris 1 dan menjalankan query dari $sql pada baris 2, kode pada baris 3 merupakan pengambilan array yang ada pada kolom dari tabel dataweb dan disimpan dalam $rows, baris 4 mengambil hasil dari kolom counter dan simpan dalam $counter pada baris 5 penghitungan panjang dari $counter, $num_0 pada baris 6 mempunyai hasil dari panjang counter – 7, nilai awal $ab adalah kosong pada baris 7
Baris 8 berfungsi untuk menghitung angka 0 diawal counter, jika $i punya nilai 0 dan $i lebih kecil dari hasil $num dan $i melakukan pengulangan sebanyak hasil dari $i <$num_0, dibaris 8 $ab diisi dengan 0, baris 11 menerangkan bahwa nilai awal $ac adalah kosong, baris 12 menghitung angka pada counter, $i punya nilai 0 dan $i lebih kecil dari hasil $num dan $i melakukan pengulangan sebanyak $i<$num, dan masukkan nilai dari $counter ke dalam $ac, baris 15 berfungsi untuk menampilkan hasil dari $ab dan $ac.
4.1.1.3 Proses penampilan data pengunjung
Pada proses ini memberikan hasil berupa data pengunjung yang pernah berkunjung dalam bentuk tabel. Tabel yang di tampilkan dibagi menjadi dua tampilan yaitu pada saat masuk ke halaman data maka akan di tampilkan tanggal, IP, negara dan nama situs dan jika nama situs yang di akses maka akan
ditampilkan nama situs web, referrer, pramban yang digunakan dan querry yang dipakai.
Kode 4.11 Penampilan Data Pengunjung :
1. $qry = "SELECT * FROM conter WHERE website = '$site' ORDER BY waktu DESC Limit $mulai, $_PERPAGE";
2. $rs = mysql_query($qry);
3. while ($row = mysql_fetch_array($rs)){ 4. $id = $row[id]; 5. $tg = $row[waktu]; 6. $ns = $row[namascript]; 7. $ip = $row[ipaddr]; 8. $ngra = $row[negarafull]; 9. $site = $row[website];
10. echo " <tr style=\"background-color: $bgcolor;\"><td width=60>$tg</td><td>$ip</td><td>$ngra</a></td><td><a href=periksa3.php?id=$id&site=$site>$ns</a></td></tr>\n";
Penjelasan Kode:
Ambil semua data dari tabel conter dimana website = hasil dari $site yang diurutkan melalui waktu terbesar dengan mulainya adalah $mulai dan batas maksimal 1 halaman adalah $_PERPAGE, baris 2 berfungsi untuk menjalankan querry yang ada pada baris 1 dan baris 3 untuk mengulangi hasil dari querry yang ditampilkan dalam bentuk array. Kode di baris 4 menjelaskan bahwa ambil nilai yang ada pada kolom id, ambil nilai dari kolom waktu di baris 5, ambil nilai dari kolom namascript, ambil nilai ip dari kolom ipaddr, nilai negara dari negarafull dan nilai website dari kolom website seperti yang di jelaskan pada baris 9, baris 10 berfungsi untuk menampilkan data yang telah diambil ke dalam tabel
Kode 4.12 Penampilan Data Nama Situs :
1. $qry = "SELECT * FROM conter WHERE id= '$id'"; 2. $rs = mysql_query($qry); 3. $row = mysql_fetch_array($rs); 4. $ns = $row[namascript]; 5. $brwser = $row[browser]; 6. $que = $row[que]; 7. $ids= $row[id]; 8. $re = $row[referer]; 9. if($id != $ids){
10. echo "Data Tidak Ada!!";}else{
11. echo "<body bgcolor=\"#DDFFFF\" style=\"font-family: Verdana, Tahoma, Arial, Helvetica; font-size: 12px;\">\n";
12. echo "<b>Nama Situs Web:<br></b>$ns<br/><br>\n<b>Browser yang digunakan:</b><br>$brwser\n<b><br><br/>Querry yang
digunakan:</b><br>$que\n<br/><br><b>Referer :</b><br>$re\n<br/>\n---<br/>\n";}
Penjelasan Kode:
Kode di baris 1 berfungsi untuk mengambil semua data dari tabel conter dimana id adalah hasil dari $id, baris 2 untuk menjalankan querry yang ada, baris 3 mengambil data yang ada dari tabel conter dengan hasil berupa array, baris 4 mengambil nilai dari kolom namascript, baris 5 ambil nilai dari kolom browser, ambil nilai dari kolom que, ambil nilai dari kolom id dan ambil nilai di kolom referer. Baris 8 membandingkan jika nilai dari $id tidak sama dengan nilai $ids maka tampilkan data tidak ada, jika ada maka akan di tampilkan nama situs web, browser yang digunakan, querry yang digunakan, dan referer.
4.1.2 Implementasi Basis Data
Basis data pada aplikasi server ini mempunyai 4 tabel, yaitu tabel conter, dataweb, hitung dan member. berikut merupakan lampiran SQL (Structured Query Language) dari basis data program ini.
Kode 4.13 Potongan Sql Tabel conter
Penjelasan Kode:
1. CREATE TABLE IF NOT EXISTS `conter` ( 2. `id` bigint(20) NOT NULL AUTO_INCREMENT,
3. `waktu` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 4. `website` varchar(80) CHARACTER SET latin1 NOT NULL, 5. `ipaddr` varchar(15) CHARACTER SET latin1 NOT NULL, 6. `referer` varchar(40) CHARACTER SET latin1 DEFAULT NULL, 7. `browser` varchar(30) CHARACTER SET latin1 NOT NULL, 8. `idunik` char(32) CHARACTER SET latin1 NOT NULL,
9. `namascript` varchar(60) CHARACTER SET latin1 NOT NULL, 10. `que` varchar(50) CHARACTER SET latin1 NOT NULL,
11. `negara2` varchar(2) CHARACTER SET latin1 NOT NULL, 12. `negarafull` varchar(60) CHARACTER SET latin1 NOT NULL, 13. PRIMARY KEY (`id`)
14. )
Buat tabel conter meruapakan perintah dari baris 1, baris 2 menerangkan bahwa kolom id dengan tipe bigint dengan panjang karater 20 dan bersifat auto_increment agar dapat bertambah satu secara otomatis jika ada data yang disimpan, waktu bertipe timestamp dan berformat current_timestamp agar waktu yang dicatat merupakan waktu saat data disimpan, baris 4 menerangkan bahwa kolom website bertipe varchar dengan panjang 80 karakter dan bersifat tidak boleh kosong, ipaddr bertipe varchar dengan 15 karakter dan tidak boleh kosong.
Referer mempunyai tipe varchar dengan panjang 40 karakter, browser bertipe varchar dengan panjang 30 karakter, idunik bersifat char dengan panjang 32 karakter karena yang disimpan data bertipe md5, nama script bertipe varchar dengan panjang 60 karakter, que bertipe varchar dengan 50 karakter, negara 2 bertipe varchar dengan panjang 2 karakter, negarafull bertipe varchar dengan panjang 60 karakter seperti baris 12, dan id merupakan primary key nya
Kode 4.14 Potongan Sql Tabel dataweb
1. CREATE TABLE IF NOT EXISTS `dataweb` ( 2. `id` bigint(20) NOT NULL AUTO_INCREMENT,
3. `nama_member` varchar(50) COLLATE latin1_general_ci NOT NULL, 4. `website` varchar(100) COLLATE latin1_general_ci NOT NULL, 5. `counter` int(9) NOT NULL DEFAULT '0',
6. PRIMARY KEY (`id`) 7. )
Penjelasan Kode:
Baris 1 merupakan perintah untuk membuat tabel dataweb dengan kolom id bertipe bigint dan bersifat auto_increment, nama member bertipe varchar dengan panjang 50 karakter dan counter bertipe int dengan panjang 9 karakter dengan isi awal 0 dan primary key adalah id
Kode 4.15 Potongan Sql Tabel hitung
1. CREATE TABLE IF NOT EXISTS `hitung` ( 2. `uid` bigint(20) NOT NULL AUTO_INCREMENT,
3. `idunik` char(32) CHARACTER SET latin1 NOT NULL,
4. `useragent` varchar(51) CHARACTER SET latin1 NOT NULL, 5. `ipaddr` varchar(15) CHARACTER SET latin1 NOT NULL, 6. PRIMARY KEY (`uid`)
7. )
Penjelasan Kode:
Buat tabel hitung dengan kolom uid bertipe bigint dengan panjang 20 karakter, idunik bertipe char dengan 32 karakter karena data yang disimpan bertipe md5, useragemt bertipe varchar dengan panjang 51 karakter, ipddr bertipe varchar dengan 15 karakter dan uid yang menjadi primary key
Kode 4.16 Potongan Sql Tabel member
Penjelasan Kode:
1. CREATE TABLE IF NOT EXISTS `member` ( 2. `id` int(255) NOT NULL AUTO_INCREMENT,
3. `email` varchar(100) COLLATE latin1_general_ci NOT NULL, 4. `pword` varchar(32) COLLATE latin1_general_ci NOT NULL, 5. `udah` varchar(1) COLLATE latin1_general_ci NOT NULL, 6. PRIMARY KEY (`id`)
7. )
Perintah untuk membuat tabel member di baris 1 dengan isi kolom id bertipe int dengan auto_increment agar dapat bertambah saat data dimasukkan, email bertipe varchar dengan panjang 100 karakter, pword bertipe varchar dengan panjang 32 karakter, dan udah bertipe varchar dengan panjang 1 karakter, dan id merupakan primary key
Kode 4.17 Potongan Sql Tabel Ipnegara
1. CREATE TABLE IF NOT EXISTS `ipnegara` (
2. `kodeawal` varchar(10) COLLATE latin1_general_ci NOT NULL, 3. `kodeakhir` varchar(10) COLLATE latin1_general_ci NOT NULL, 4. `negara2` varchar(2) COLLATE latin1_general_ci NOT NULL, 5. `negarafull` varchar(60) COLLATE latin1_general_ci NOT NULL 6. )
Penjelasan Kode:
Buat tabel ipnegara dengan kolom kodeawal yang bertipe varchar dengan panjang 10 karakter, kodeakhir bertipe varchar dengan panjang 10 karakter, negara2 bertipe varchar dengan panjang 2 karakter karena isi dari kolom negara2 adalah singkatan 2 karakter dari nama negara, negarafull bertipe varchar dengan panjang 60 karakter.
4.1.3 Implementasi Antar Muka
Antar muka merupakan gambaran tampilan sebuah situs web untuk menampilkan hasil dari kode yang telah dibuat. Berikut merupakan gambaran desain antar muka dari aplikasi penghitungan pengunjung ini, antara lain :
Gambar 4.1 Tampilan Antar Muka Halaman Home Jika Website Kosong
Tampilan gambar 4.1 ada jika situs web pengguna belum didaftarkan atau kosong, maka pengguna harus mendaftarkan alamat situs web untuk mendapatkan kode dari penghitungan pengunjung.
Tampilan gambar 4.2 ada jika pengguna sudah mendaftarkan nama situs web dengan keterangan website anda yang terdaftar di situs kami dan kode penghitungan pengunjung.
Gambar 4.3 Tampilan Antar Muka Halaman Data
Tampilan gambar 4.3 merupakan tampilan dari halaman data yang menampilkan tanggal dan waktu kunjungan, alamat ip, negara dan nama situs yang digunakan oleh pengunjung. Nama situs dapat di akses untuk mengetahui data dari masing-masing pengunjung seperti nama situs web, pramban yang digunakan, querry dan referer dari pengunjung
Gambar 4.4 Tampilan Antar Muka Halaman Nama Situs
Gambar 4.4 merupakan tampilan detail dari nama situs, dimana data tersebut berupa nama situs, pramban , querry dan referer dari masing2 pengunjung
4.2 Pengujian Fungsionalitas Aplikasi
Pengujian akan dilakukan dengan menggunakan metodek kotak hitam (blackbox) untuk lebih memfokuskan pada keperluan fungsional dari aplikasi. Dengan metode ini, maka validitas fungsi akan diuji, apakah menghasilkan keluaran yang sesuai dengan yang diharapkan atau tidak.
4.2.1 Lingkungan Pengujian
Aplikasi server di hosting di http://statiscount.co.cc/cpanel/ sedangkan perangkat user menggunakan browser sebagai alat komunikasi server dengan client. Berikut spesifikasi kebutuhan dari sistem dimana aplikasi ini dibuat dan dijalankan.
1. Perangkat keras (hardware):
2. Perangkat lunak (software): a. Windows 7 Ultimate (32-bit)
b. Mozilla Firefox, Google Chrome, Opera, Safari dan Internet Explorer
c. Xampp
d. Macromedia Dreamweaver dan Notepad++
4.2.2 Skenario Pengujian
Pengujian ini dilakukan pada tanggal 7 juli 2012, dengan menggunakan broser Mozilla Firefox, Google Chrome, Opera, Safari dan Internet Explorer.
Tabel 4.1 Skenario Pengujian.
NO Item yang
diuji Sifat Cara Pengujian Hasil yang diharapkan
1. Halaman Login
Normal Memasukan email dan
password yang benar Masuk ke halaman home Tidak Normal Memasukan email dan
password tidak benar
Aplikasi akan memberikan pesan “Username atau Password salah.”
2. Halaman Registrasi
Normal
Masukkan Email, Password, Re Password dan centang rules
Akan muncul teks registrasi berhasil
Tidak Normal
Kosong semua, Email kosong, Password beda dengan Re Password, dan tidak di centang
Akan muncul alert untuk pemberitahuan.
3 Penambahan Pengunjung
Normal
Akases pada halaman pramban selama 15 menit satu kali
Aplikasi akan menambahkan angka +1 pada tampilan
Tidak Normal
Akases pada halaman pramban selama 15 menit dua kali atau lebih
Aplikasi akan menampilkan angka yang sama pada setiap kunjungan
4 Penampilan Data
Normal Mengakses link data Akan muncul tabel data
Tidak Normal
Mengakses link data dan mengubah id dan site pada address bar
Akan muncul teks “ Data Tidak Ada!!”
4.2.3 Hasil Pengujian
Dari hasil pengujian yang dilakukan dapat diperoleh hasil pengujian. Dari tabel skenario pengujian dilakukan oleh penulis secara berulang-ulang. Maka diperoleh hasil pengujian tersebut sesuai dengan rumusan rancangan aplikasi program yang sudah ditentukan dan diterangkan dalam tabel hasil pengujian pada tabel 4.2.
Tabel 4.2 Hasil Pengujian
NO Item yang
diuji Sifat Cara Pengujian
Hasil yang diharapkan
Hasil Pengujian
1. Halaman Login
Normal Memasukan email dan password yang benar
Masuk ke halaman
home Sesuai
Tidak Normal
Memasukan email dan password tidak benar
Aplikasi akan memberikan pesan “Username atau Password salah.” Sesuai 2. Halaman Registrasi Normal Masukkan Email, Password, Re Password dan centang rules
Akan muncul teks registrasi berhasil Sesuai
Tidak Normal
Kosong semua, Email kosong, Password beda dengan Re Password, dan tidak di centang
Akan muncul alert untuk pemberitahuan. Sesuai
3 Penambahan
Pengunjung
Normal
Akases pada halaman pramban selama 15 menit satu kali
Aplikasi akan menambahkan angka +1 pada tampilan Sesuai Tidak Normal
Akases pada halaman pramban selama 15 menit dua kali atau lebih
Aplikasi akan menampilkan angka yang sama pada setiap kunjungan
Sesuai
4 Penampilan
Data
Normal Mengakses link data Akan muncul tabel data Sesuai
Tidak Normal
Mengakses link data dan mengubah id dan site pada address bar
Akan muncul teks “ Data Tidak Ada!!” Sesuai
4.2.4 Analisis Hasil Pengujian
Setelah melakukan pengujian dan menjalankan program aplikasi, maka dari hasil tersebut dapat dianalisa sebagai berikut :
1. Proses login berjalan dengan baik sehingga hanya email yang terdaftar saja yang bisa mengakses data dan dapat melihat isi dari data pengunjung
2. Proses registrasi berjalan dengan baik sehingga dapat memberi peringatan jika ada file yang salah agar hanya data tertentu yang disimpan
3. Proses pada setiap link berjalan dengan baik agar bisa saling terkoneksi dengan benar
4. Data pengunjung dapat ditampilkan dengan baik karena mempermudah pengguna melihat data
5. Proses koneksi ke basis data berjalan dengan baik agar penyimpanan data dapat disimpan dengan rapi dan baik
6. Sistem berjalan dengan baik dan stabil
Secara fungsionalitas program tidak ditemukan kesalahan dan sudah sesuai dengan proses yang ada pada sistem dan prosedur yang sudah direncanakan. Hasil analisis terhadap aplikasi penghitungan pengunjung yang dibangun secara keseluruhan berfungsi dengan baik dan dapat digunakan sebagai sarana penghitungan pengunjung.