Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Membuat Penghitung Pengunjung Situs Web di PHP dan MySQL

Image

Mampu menghitung jumlah pengunjung di setiap halaman web situs web Anda pasti akan membantu Anda dalam berbagai cara. 
Yang paling penting adalah memungkinkan Anda memahami apa yang dicari orang di situs web Anda. Dalam tutorial ini, saya akan memandu Anda tentang bagaimana Anda dapat menambahkan 
penghitung pengunjung situs web di situs web Anda sendiri secara bertahap.

Saya akan menggunakan PHP dan MySQL untuk fungsionalitas dasar tetapi juga menggunakan sedikit kode HTML5 untuk menggambarkan skenario dunia nyata.

Untuk berjaga-jaga jika Anda baru di bidang Pengembangan Web dan ingin menghasilkan uang dengan membuat situs web profesional. Kemudian, saya sangat menyarankan Anda untuk mengambil kursus ini dari Udemy.

Bagaimanapun, mari kita lihat apa yang akan Anda pelajari dalam tutorial ini.


Daftar isi

  • Fungsionalitas dasar dari proyek ini
  • Siapkan database dan tabel untuk penghitung pengunjung situs web
  • File dan folder yang digunakan dalam tutorial ini
  • Hubungkan ke basis data
  • Buat fungsi PHP untuk menangani penghitung pengunjung unik
  • Buat beberapa halaman web untuk menghitung kunjungan
  • Unduh penghitung pengunjung situs web

Fungsionalitas dasar dari proyek ini

  • Ini memungkinkan kami menghitung total tampilan situs web.
  • Hal ini memungkinkan kita untuk menghitung jumlah pengunjung pada satu halaman web.
  • Itu menggunakan alamat IP pengunjung untuk hanya menghitung tampilan unik.

Siapkan database dan tabel untuk penghitung pengunjung situs web

Pada dasarnya kita membutuhkan database untuk dua tujuan. Pertama-tama kami akan menggunakannya untuk menyimpan data untuk setiap halaman web situs web kami. Kedua, kita harus menyimpan catatan pengunjung sebelumnya yang membantu kita mengetahui apakah pengunjung baru itu unik atau tidak.

Mari buka phpMyAdmin Anda dan buat database bernama “website_visitor_counter”. Atau cukup gunakan kueri SQL di bawah ini.

CREATE DATABASE website_visitor_counter;

Sekarang lanjutkan dan tambahkan dua tabel “pages” dan “page_views” di database yang baru dibuat. Anda dapat menggunakan kueri SQL di bawah ini.

CREATE TABLE pages
(
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  total_views INTEGER UNSIGNED NOT NULL,
  
  PRIMARY KEY (id)
);
CREATE TABLE page_views
(
  visitor_ip VARCHAR(255) NOT NULL,
  page_id INTEGER UNSIGNED NOT NULL,
  
  FOREIGN KEY (page_id) REFERENCES pages(id) ON DELETE CASCADE ON UPDATE CASCADE
);

Penggunaan setiap tabel database: -

  • pages – Tabel ini digunakan untuk menyimpan total tampilan setiap halaman web.
  • page_views – Tujuan utama dari tabel database ini adalah untuk menyimpan catatan dari setiap kunjungan unik karena kita akan membutuhkannya di masa depan untuk memeriksa apakah pengunjung baru itu unik atau tidak.

Dalam tutorial ini kita akan menghitung hit pada tiga halaman web. Jadi, mari tambahkan tiga baris dalam tabel “halaman” (satu baris untuk setiap halaman web). Gunakan kueri SQL INSERT di bawah ini.

INSERT INTO pages (total_views)
VALUE (0),(0),(0);

File dan folder yang digunakan dalam tutorial ini

  • includes – (Folder ini digunakan untuk mengelompokkan file yang termasuk dalam file lain)
    • db_connect.php – (File ini digunakan untuk membuat koneksi database)
    • function.php – (File ini digunakan untuk mengelompokkan semua fungsi PHP yang ditentukan pengguna)
    • header.php – (File ini berisi header halaman web)
    • footer.php – (File ini berisi footer halaman web)
  • index.php – (Halaman utama website, hanya digunakan untuk menampilkan total tampilan website)
  • page_1.php – (Berisi kode untuk halaman web pertama)
  • page_2.php – (Berisi kode untuk halaman web kedua)
  • page_3.php – (Berisi kode untuk halaman web ketiga)

Buat file dan folder ini sebelum melanjutkan ke langkah berikutnya.


Hubungkan ke basis data

Menghubungkan ke database MySQL menggunakan PHP adalah prosedur yang sangat sederhana dan mudah. Copy/Paste kode PHP di bawah ini ke dalam file “db_connect.php” Anda dan simpan.

db_connect.php

<?php
$db_host = "localhost"; // Tuan Rumah Basis Data
$db_user = "padli"; // Pengguna Basis Data
$db_pass = ""; // Kata Sandi Basis Data
$db_name = "website_visitor_counter"; // Nama Basis Data

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name); // Hubungkan ke Basis Data

if(!$conn) // Periksa koneksi
{
  die("Koneksi gagal: " .mysqli_connect_error()); // Menampilkan kesalahan jika tidak terhubung
}
?>

Hal yang perlu diperhatikan adalah bahwa Anda mungkin perlu mengubah nilai variabel PHP di atas sesuai dengan lingkungan spesifik Anda.


Buat fungsi PHP untuk menangani penghitung pengunjung unik

Sekarang saatnya untuk melihat bagian inti dari proyek ini di mana kita akan membuat tiga fungsi PHP untuk mendefinisikan logika dan menangani fungsionalitas keseluruhan dari hit counter situs web.

Berikut isi dari file “functions.php” kita.

function.php

<?php
function total_views($conn, $page_id = null)
{
  if($page_id === null)
  {
    // hitung total tampilan situs web
    $query = "SELECT sum(total_views) as total_views FROM pages";
    $hasil = mysqli_query($conn, $query);
    
    if(mysqli_num_rows($result) > 0)
    {
      while($row = $result->fetch_assoc())
      {
        if($row['total_views'] === null)
        {
          return 0;
        }
        else
        {
          return $row['total_views'];
        }
      }
    }
    else
    {
      return "Tidak ada catatan yang ditemukan!";
    }
  }
  else
  {
    // hitung tampilan halaman tertentu
    $query = "SELECT total_views FROM pages WHERE id='$page_id'";
    $result = mysqli_query($conn, $query);
    
    if(mysqli_num_rows($result) > 0)
    {
      while($row = $result->fetch_assoc())
      {
        if($row['total_views'] === null)
        {
          return 0;
        }
        else
        {
          return $row['total_views'];
        }
      }
    }
    else
    {
      return "Tidak ada catatan yang ditemukan!";
    }
  }
}



function is_unique_view($conn, $visitor_ip, $page_id)
{
  $query = "SELECT * FROM page_views WHERE visitor_ip='$visitor_ip' AND page_id='$page_id'";
  $result = mysqli_query($conn, $query);
  
  if(mysqli_num_rows($result) > 0)
  {
    return false;
  }
  else
  {
    return true;
  }
}



function add_view($conn, $visitor_ip, $page_id)
{
  if(is_unique_view($conn, $visitor_ip, $page_id) === true)
  {
    // masukkan catatan pengunjung unik untuk memeriksa apakah kunjungan itu unik atau tidak di masa mendatang.
    $query = "INSERT INTO page_views (visitor_ip, page_id) VALUES ('$visitor_ip', '$page_id')";
    
    if(mysqli_query($conn, $query))
    {
      // Pada titik ini catatan pengunjung unik berhasil dibuat. Sekarang perbarui total_views halaman tertentu.
      $query = "UPDATE pages SET total_views = total_views + 1 WHERE id='$page_id'";
      
      if(!mysqli_query($conn, $query))
      {
        echo "Kesalahan memperbarui data: " . mysqli_error($conn);
      }
    }
    else
    {
      echo "Kesalahan saat memasukkan data: " . mysqli_error($conn);
    }
  }
}
?>

Penjelasan fungsi PHP yang dibuat di atas:

  • total_views($conn, $page_id = null) – Fungsi ini digunakan untuk mengambil total tampilan situs web atau halaman tertentu di situs web.
  • is_unique_view($conn, $visitor_ip, $page_id) – Fungsi ini mengambil alamat IP pengunjung dan ID halaman untuk memeriksa apakah pengunjung telah melihat halaman tersebut atau belum.
  • add_view($conn, $visitor_ip, $page_id) – Jika pengunjung unik maka fungsi ini akan menambahkan catatannya di dalam tabel “page_views” dan juga menambah kolom “total_views” dari halaman web yang dikunjungi sebanyak satu di dalam “pages” meja.

Buat beberapa halaman web untuk menghitung kunjungan

Di bagian ini kita akan membuat empat halaman web untuk menghitung pengunjung unik di situs web kita. File yang digunakan untuk halaman web ini adalah sebagai berikut:

  • index.php
  • page_1.php
  • page_2.php
  • page_3.php

Juga ingat bahwa saya telah menggunakan dua file lagi "header.php" dan "footer.php" hanya untuk memisahkan bagian header dan footer dari halaman web kita. Dengan cara ini kita akan dapat menggunakan kembali kode yang sama di banyak file dan membuatnya sangat mudah untuk diedit karena kita hanya perlu memodifikasi satu file.

Pada dasarnya file "header.php" berisi beberapa tautan untuk bernavigasi di halaman web yang berbeda dari proyek ini. Berikut kode untuk file ini.

header.php

<!DOCTYPE html>
<html>
  <head>
    <title>Penghitung Pengunjung Situs Web</title>
  </head>
  
  <body>
    <header>
      <ul>
        <li><a href="index.php">Halaman Utama</a></li>
        <li><a href="page_1.php">Halaman 1</a></li>
        <li><a href="page_2.php">Halaman 2</a></li>
        <li><a href="page_3.php">Halaman 3</a></li>
      </ul>
    </header>

“footer.php” hanya berisi beberapa tag penutup dari halaman web kita. Periksa kode di bawah ini:

footer.php

  </body>
</html>

File “index.php” sama seperti halaman utama / beranda situs web. Kami hanya akan menggunakannya untuk menampilkan total tampilan situs web. Berikut kode untuk file ini.

index.php

<?php
require_once('includes/db_connect.php'); // File koneksi basis data
require_once('includes/function.php'); // file fungsi PHP
?>

<!-- file header -->
<?php require_once('includes/header.php'); ?>

<div>
  <?php
  $total_website_views = total_views($conn); // Mengembalikan total tampilan situs web
  echo "<strong>Total Tampilan Situs Web:</strong> " . $total_website_views;
  ?>
</div>

<div style="color: red;">Catatan: Halaman ini hanya menampilkan total tampilan situs web.<div>

<!-- file footer -->
<?php require_once('includes/footer.php'); ?>

Apakah kode ini terlihat rumit? Jangan khawatir! Mari saya jelaskan…

  • Di blok PHP pertama kami menyertakan dua file PHP "db_connect.php" dan "functions.php".
  • Setelah itu kita sertakan header halaman web kita.
  • Selanjutnya kita membuat elemen <div></div> dimana kita memanggil fungsi “total_views($conn)”. Anda mungkin telah memperhatikan bahwa kami hanya menyediakan satu variabel koneksi database sebagai parameter, itu karena parameter "page_id" kedua adalah opsional. Dengan cara ini fungsi akan mengembalikan total tampilan situs web dan menyimpannya di dalam variabel yang ditentukan. Setelah itu kami menampilkan nilai variabel itu di layar.
  • Pada baris berikutnya saya hanya menampilkan catatan.
  • Akhirnya file "footer.php" disertakan dalam halaman web.

“page_1.php”, “page_2.php” dan “page_3.php” seperti halaman web lain di situs web. Jadi, kami akan melacaknya secara terpisah hanya untuk menunjukkan kepada Anda metode yang benar tentang bagaimana Anda harus menerapkan penghitung pengunjung situs web di situs web pribadi atau bisnis Anda.

page_1.php

<?php
require_once('includes/db_connect.php'); // File koneksi basis data
require_once('includes/function.php'); // file fungsi PHP

$page_id = 1;
$visitor_ip = $_SERVER['REMOTE_ADDR']; // menyimpan alamat IP pengunjung dalam variabel

add_view($conn, $visitor_ip, $page_id);
?>

<!-- file header -->
<?php require_once('includes/header.php'); ?>

<div>
  <?php
  $total_page_views = total_views($conn, $page_id); // Mengembalikan total tampilan halaman ini
  echo "<strong>Total Tampilan Laman ini:</strong> " . $total_page_views;
  ?>
</div>

<!-- file footer -->
<?php require_once('includes/footer.php'); ?>

page_2.php

<?php
require_once('includes/db_connect.php'); // File koneksi basis data
require_once('includes/function.php'); // file fungsi PHP

$page_id = 2;
$visitor_ip = $_SERVER['REMOTE_ADDR']; // menyimpan alamat IP pengunjung dalam variabel

add_view($conn, $visitor_ip, $page_id);
?>

<!-- file header -->
<?php require_once('includes/header.php'); ?>

<div>
  <?php
  $total_page_views = total_views($conn, $page_id); // Mengembalikan total tampilan halaman ini
  echo "<strong>Total Tampilan Laman ini:</strong> " . $total_page_views;
  ?>
</div>

<!-- file footer -->
<?php require_once('includes/footer.php'); ?>

page_3.php

<?php
require_once('includes/db_connect.php'); // File koneksi basis data
require_once('includes/fungsi.php'); // file fungsi PHP

$page_id = 3;
$visitor_ip = $_SERVER['REMOTE_ADDR']; // menyimpan alamat IP pengunjung dalam variabel

add_view($conn, $visitor_ip, $page_id);
?>

<!-- file header -->
<?php require_once('includes/header.php'); ?>

<div>
  <?php
  $total_page_views = total_views($conn, $page_id); // Mengembalikan total tampilan halaman ini
  echo "<strong>Total Tampilan Laman ini:</strong> " . $total_page_views;
  ?>
</div>

<!-- file footer -->
<?php require_once('includes/footer.php'); ?>

“page_1.php”, “page_2.php” dan “page_3.php” hampir mirip dengan file “index.php” dengan beberapa pengecualian.

  • Kami menggunakan variabel "$page_id" untuk menyimpan ID halaman tertentu, kami mendapatkan ID ini dari tabel database "pages".
  • Setelah itu kita menggunakan “$_SERVER['REMOTE_ADDR']" untuk mendapatkan alamat IP pengunjung.
  • Sekarang kita cukup meneruskan dua variabel di atas ke fungsi “add_view($conn, $visitor_ip, $page_id)” kita.
  • Kami juga meneruskan variabel “$page_id” ke fungsi “total_views($conn, $page_id)”, yang akan mengembalikan total tampilan unik dari halaman web tertentu.

Unduh penghitung pengunjung situs web

Unduh

Posting Komentar untuk "Cara Membuat Penghitung Pengunjung Situs Web di PHP dan MySQL"