Sebuah website dikatakan baik jika didukung dengan fitur-fitur teknologi untuk memonitoring kondisi website secara otomatis, seperti mengecek kondisi web server, database, visitor dll. semua kondisi tersebut memiliki data yang dapat analisis sehingga pemlik website dapat mengambil keputusan untuk terus memperbaiki website agar semakin cepat dan membuat content sesuai keinginan visitor dll. salah satu fitur yang akan dibahas kali ini adalah Visitor Counter.

Visitor Counter adalah sebuah fitur pada website yang berfungsi untuk mendata pengunjung pada sebuah website, adapun beberapa fungsi dari visitor counter sebagai berikut:

  • Mendata visitor website
  • Mendata history page yang dilihat visitor
  • Mendata ip address visitor
  • dll 

Sebenarnya google sudah menyediakan fitur google visitor yang dapat gunakan secara gratis yang diberi nama google analytics, nanti akan bahas khusus menegenai google analytcs ini. adapun fitur utama dari google analytics ini dapat mendata semua kegiatan visitor pada website, bahkan fiturenya lebih kaya dari yang akan diperaktekan kali ini, namun dalam artikel ini akan mempelajari bagaiman konsep dasar dan cara membuat visitor counter sederhana dengan PHP Codeigniter, baik langsung saja praktekan.

1. Membuat Database dan Table

buka phpmyadmin, lalu buat sebuah database pada MySql, dan berinama "ci_visitor"

CREATE DATABASE IF NOT EXISTS `ci_visitor` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `ci_visitor`;

Setelah selesai membuat database, selanjutnya buat table visitor dengan filed dan type data sebagai berikut.

CREATE TABLE IF NOT EXISTS `visitor` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ip` varchar(20) NOT NULL,
  `date` date NOT NULL,
  `hits` int(11) NOT NULL,
  `online` varchar(255) NOT NULL,
  `time` time NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

2. Download Codeigniter 

Ok, pada tahap ini persiapan database dan table sudah selesai, selanjutnya konfigurasi Codeigniter dengan database yang telah dibuat diatas, downoad codeigniter pada situs resmi codeigniter, pada contoh kali ini menggunakan codeigniter 3.

Jika sudah download Codeigniter 3, silahkan letakan file codeigniter pada local server seperti xampp/laragon dll,  berinama folder ini ci_visitor. selanjutnya adalah melakukan konfigurasi codeigniter dengan database, caranya buka file ci_visitor/application/config/config.php lakukan konfigurasi database dengan memasukan username, password dan database. Setelah berhasil konfigurasi silahkan akses http://localhost/ci_visitor .

Masuk kebagian inti dari artikel ini yaitu membuat fungsi untuk visitor counter, untuk memulainya bukan controller application/controller/Welcome.php atau bisa membuat controller baru sesuai keinginan dan letakan pada application/controller/Namacontroller.php. buat sebuah fungsi seperti berikut.

public function counters()
    {
        $ip    = $this->input->ip_address(); 
        $date  = date("Y-m-d"); 
        $waktu = time(); 
        $timeinsert = date("Y-m-d H:i:s");

        $s = $this->db->query("SELECT * FROM visitor WHERE ip='".$ip."' AND date='".$date."'")->num_rows();
        $ss = isset($s)?($s):0;
        if($ss == 0){
        $this->db->query("INSERT INTO visitor(ip, date, hits, online, time) VALUES('".$ip."','".$date."','1','".$waktu."','".$timeinsert."')");
        }
        else{
        $this->db->query("UPDATE visitor SET hits=hits+1, online='".$waktu."' WHERE ip='".$ip."' AND date='".$date."'");
        }

        $pengunjunghariini  = $this->db->query("SELECT * FROM visitor WHERE date='".$date."' GROUP BY ip")->num_rows(); 
        
        $pengunjungmingguini  = $this->db->query("SELECT * FROM   visitor WHERE  YEARWEEK(date, 1) = YEARWEEK(CURDATE(), 1)")->num_rows(); 

        $dbpengunjung = $this->db->query("SELECT COUNT(hits) as hits FROM visitor WHERE YEAR(date)='".date('Y')."' ")->row(); 

        $totalpengunjung = isset($dbpengunjung->hits)?($dbpengunjung->hits):0; 

        $bataswaktu = time() - 300;

        $pengunjungonline  = $this->db->query("SELECT * FROM visitor WHERE online > '".$bataswaktu."'")->num_rows(); 

        $this->data['pengunjunghariini']=$pengunjunghariini;
        $this->data['pengunjungmingguini']=$pengunjungmingguini;
        $this->data['totalpengunjung']=$totalpengunjung;
        $this->data['pengunjungonline']=$pengunjungonline;
    }

Setelah membuat fungsi diatas, untuk menerapkan fungsi diatas dalam setiap halaman frontend dapat menggunakan code berikut:

$this->counters();

Jika sudah mengkopi code diatas disetiap function forntend maka setiap visitor mengujungi halaman tersebut maka secara otomatis data visitor akan tersimpan pada table. 

Baik selanjutnya penjelasana dari beberapa fungsi visitor counter diatas:

  1. $ip    = $this->input->ip_address(); code ini berfungsi untuk mendapatkan IP address visitor
  2. $date  = date("Y-m-d");  code ini berfungsi untuk mendapatkan tanggal hari ini, dan anti juga akan digunakan untuk pengecekan data user hari ini
  3. $waktu = time(); code ini hampir sama dengan code nomor 2
  4. $timeinsert = date("Y-m-d H:i:s"); code ini hampir sama dengan code nomor 2
  5. $s = $this->db->query("SELECT * FROM visitor WHERE ip='".$ip."' AND date='".$date."'")->num_rows(); $ss = isset($s)?($s):0; code ini berfungsi untuk mengecek apakah IP address visitor ini sudah mengkses website pada hari ini. dimana variable $ss akan dicek kondisinya.
  6. if($ss == 0){
            $this->db->query("INSERT INTO visitor(ip, date, hits, online, time) VALUES('".$ip."','".$date."','1','".$waktu."','".$timeinsert."')");
            }
            else{
            $this->db->query("UPDATE visitor SET hits=hits+1, online='".$waktu."' WHERE ip='".$ip."' AND date='".$date."'");
            }
      code ini berfungsi untuk mengecek kondisi variable $ss jika data visitor belum ada hari ini maka akan di inputkan ke table visitor, namun sebaliknya jika tersedia akan diupdate datanya.
  7. $pengunjunghariini  = $this->db->query("SELECT * FROM visitor WHERE date='".$date."' GROUP BY ip")->num_rows(); code ini berfungsi untuk mengecek pengunjung hari ini.
  8. $pengunjungmingguini  = $this->db->query("SELECT * FROM   visitor WHERE  YEARWEEK(date, 1) = YEARWEEK(CURDATE(), 1)")->num_rows(); code ini berfungsi untuk mengecek visitor setiap minggunynya.
  9. $dbpengunjung = $this->db->query("SELECT COUNT(hits) as hits FROM visitor WHERE YEAR(date)='".date('Y')."' ")->row(); $totalpengunjung = isset($dbpengunjung->hits)?($dbpengunjung->hits):0; code ini berfungsi untuk menghitung visitor pertahun.
  10. $bataswaktu = time() - 300; $pengunjungonline  = $this->db->query("SELECT * FROM visitor WHERE online > '".$bataswaktu."'")->num_rows(); code ini berfungsi untuk batasan waktu apakah visitor masih online pada website atau sudah meninggalkan website, ini akan dicek salama pertiga menit.

demikian tutorial membuat visitor counter dengan PHP Codeigniter ini, selanjutnya akan ada tutorial bagaimana menampilkan visitor counter kedalam grafik yang akan menggunakan library javascript dari Chartjs.

- ABDESIGNERWEB

Indonesian Kreatif Web Desain

Alamat

Jl. Raya Pekayon No.50, RT.004/RW.001, KOta Bekasi, Jawa Barat 17148

Telp : 0877-8831-11**

Email : abdillah12k@gmail.com

Social Media

Visitor

  • Pengunjung Online : 1
  • Pengunjung Hari Ini : 26
  • Pengunjung Minggu Ini : 127
  • Total Pengunjung : 1076

- Maps

Bagaimana pendapat Anda tentang tampilan dan konten website Abdesignerweb?