• Home
  • /
  • PHP
  • /
  • Membuat Script Komentar Ala Blog
PHP

Membuat Script Komentar Ala Blog

 

Banyak sekali pengunjung setia blog ini yang menanyakan ke saya, bagaimana cara membuat script komentar dalam blog ini. He.. 3x jujur saja, bahwa di blog ini saya tidak pernah membuat script tersebut sama sekali karena blog ini saya bangun menggunakan WordPress. Di dalam WordPress, memang sudah tersedia fasilitas untuk mengirim komentar yang ditujukan bagi para pengunjung blognya.

But.. anyway di sini saya akan memberikan sedikit ide sederhana bagaimana membuat script PHP untuk memberikan komentar ala blog tersebut. Mudah-mudahan paparan saya ini bisa berguna buat Anda yang ingin mengembangkan script komentar ala blog di situs buatan sendiri atau bahkan siapa tahu ada yang membuat software blogging sendiri seperti layaknya WordPress buatan anak bangsa Indonesia 🙂

OK.. sebelum kita bahas point utama pembuatannya, saya berikan dulu screen shot hasilnya berikut ini untuk memberikan gambaran awal skenario penggunaan scriptnya.

Script PHP MySQL - Membuat Komentar Ala Blog

Gambar di atas menunjukkan tampilan pertama (halaman index) dari script yang menampilkan list atau daftar artikel yang telah dipublish. Sekarang perhatikan tampilan di bawah ini yang menunjukkan tampilan script setelah salah satu artikel diklik

Script PHP MySQL - Membuat Komentar Ala Blog

Terlihat pada gambar di atas bahwa di bawah konten artikel terdapat bagian komentar yang nantinya akan diisi oleh pengunjung. Perhatikan hasil tampilan script komentarnya setelah user mengisi komentar pada artikel tersebut di bawah ini

Script PHP MySQL - Membuat Komentar Ala Blog
Script PHP MySQL - Membuat Komentar Ala Blog

Nah.. sedangkan gambar di bawah ini tampilan bila sudah ada lebih dari satu komentar yang ada dalam artikel.

Script PHP MySQL - Membuat Komentar Ala Blog

OK dah paham ya dengan skenario tampilan dan penggunaannya? Kalo sudah, kita bisa mulai membuat script komentar ala blog ini.

Pertama, kita siapkan tabel databasenya. Di sini saya hanya membuat 2 tabel saja, yaitu untuk menyimpan data konten artikel serta tabel untuk menyimpan data komentar. Perlu diingat bahwa hal terpenting untuk pembuatan script komentar ini adalah pengkaitan antara suatu artikel dengan komentar yang berada di dalam postingan artikel tersebut. Oleh karena itu di dalam tabel komentar, kita harus membuat field yang menghubungkan suatu komentar dengan artikel tertentu.

CREATE TABLE `artikel` (
  `idArtikel` int(11) auto_increment,
  `title` varchar(30),
  `content` text,
  `author` varchar(30),
  `datePub` date,
  PRIMARY KEY  (`idArtikel`)
);

CREATE TABLE `komentar` (
  `idComment` int(11) auto_increment,
  `idArtikel` int(11),
  `commentAuthor` varchar(30),
  `urlAuthor` varchar(30),
  `comment` text,
  `commentDate` date,
  PRIMARY KEY  (`idComment`)
);

Perhatikan struktur tabel ‘komentar’ di atas bahwa di dalam tabel tersebut terdapat field ‘idArtikel’. Field ini digunakan untuk merelasikan suatu komentar dengan artikel tertentu yang ada di tabel ‘artikel’ melalui id artikelnya. Sehingga suatu komentar bisa jelas miliknya artikel yang mana.

OK sekarang saya berikan sampel data konten artikelnya (2 data saja ya).

INSERT INTO `artikel` VALUES ('1', 'Title Artikel 1', 'Ini adalah konten artikel 1. Ini adalah konten artikel 1. 
Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1.
Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1. ', 'Rosihan Ari', 
'2010-01-20');

INSERT INTO `artikel` VALUES ('2', 'Title Artikel 2', 'Ini adalah konten artikel 2. Ini adalah konten artikel 2. 
Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2. 
Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2. ', 'Rosihan Ari',
'2010-01-21');

Yes !! tabel untuk menyimpan data artikel dan komentar sudah dibuat, now what? ya… kita mulai bikin scriptnya deh.

Script pertama yang dibuat adalah script untuk menampilkan list artikelnya dulu (sesuai skenario di atas). Ini dia scriptnya. Oya.. hampir lupa, sebelum membuat script list artikel, ada baiknya kita buat dulu script untuk koneksi ke MySQL nya.

koneksi.php

<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
?>

Silakan diisi sendiri ya parameter koneksi di atas.. 🙂

Selanjutnya kita bisa buat script untuk menampilkan list artikelnya

index.php

<h1>Daftar Artikel</h1>

<?php

// koneksi ke mysql
include "koneksi.php";

// query SQL untuk membaca semua artikel terurut berdasarkan id nya
$query = "SELECT * FROM artikel ORDER BY idArtikel";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   // menampilkan list judul artikel
   echo "<h3><a href='view.php?idArtikel=".$data['idArtikel']."'>".$data['title']."</a></h3>";
}

?>

Keterangan:
Pada script di atas, setiap title artikel diberikan link menuju ke script view.php untuk menampilkan detail konten artikelnya. Oya, jangan lupa gunakan parameter pada link nya ya. Dalam hal ini parameter yang digunakan dalam link nya adalah id setiap artikel.

Sekarang, kita buat script view.php nya. Di dalam script ini nanti kita akan buat bagian untuk menampilkan full isi artikelnya berdasarkan id artikel yang berasal dari parameter link, sekaligus bagian untuk menampilkan list komentar dan form untuk mengisi komentar.

view.php

<?php
// koneksi ke mysql
include "koneksi.php";

// membaca id artikel
$idArtikel = $_GET['idArtikel'];

// proses yang dilakukan setelah tombol submit komentar diklik
if ($_GET['act'] == "submit")
{
   // membaca data komentar dari form
   $nama = $_POST['nama'];
   $url = $_POST['url'];
   $komentar = $_POST['komentar'];
   $idArtikel = $_POST['idArtikel'];
   $tglKomentar = date("Y-m-d");
   
   // proses insert komentar ke database
   $query = "INSERT INTO komentar (idArtikel, commentAuthor, urlAuthor, comment, commentDate)
             VALUES ('$idArtikel', '$nama', '$url', '$komentar', '$tglKomentar')";
   $hasil = mysql_query($query);
}

// proses menampilkan detail artikel berdasarkan id artikel
$query = "SELECT * FROM artikel WHERE idArtikel = '$idArtikel'";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);

echo "<h1>".$data['title']."</h1>";
echo "<p>Tanggal publikasi: ".$data['datePub'].", Oleh: ".$data['author']."</p>";
echo "<p>".$data['content']."</p>";

// proses menampilkan komentar berdasarkan id artikelnya

echo "<h3>Komentar</h3>";

$query = "SELECT * FROM komentar WHERE idArtikel = '$idArtikel'";
$hasil = mysql_query($query);

if (mysql_num_rows($hasil) > 0)
{
   // jika ada komentar (jumlah data hasil query > 0), maka tampilkan komentarnya
   while ($data = mysql_fetch_array($hasil))
   {
      echo "<p><small>Dikirim oleh: ".$data['commentAuthor']." (<a href='".$data['urlAuthor']."'>".$data['urlAuthor']."</a>), Tanggal: ".$data['commentDate']."</small></p>";
      echo "<p>".$data['comment']."</p><hr>";
   }
}
// jika tidak ada komentar (jumlah data hasil query = 0), tampilkan keterangan belum ada komentar
else if (mysql_num_rows($hasil) == 0) echo "<p>Belum ada komentar.</p>";

// menampilkan form pengisian komentar

echo "<h3>Kirim Komentar</h3>";

echo "<form method='post' action='".$_SERVER['PHP_SELF']."?idArtikel=".$idArtikel."&act=submit'>";
echo "<table>";
echo "<tr><td>Nama Anda</td><td>:</td><td><input type='text' name='nama'></td></tr>";
echo "<tr><td>URL Anda</td><td>:</td><td><input type='text' name='url'></td></tr>";
echo "<tr><td>Komentar Anda</td><td>:</td><td><textarea name='komentar'></textarea></td></tr>";
echo "<tr><td></td><td></td><td><input type='submit' name='submit' value='Submit'><input type='hidden' name='idArtikel' value='".$idArtikel."'></td></tr>";
echo "</table>";
echo "</form>";

?>

Keterangan:
Perhatikan perintah berikut ini pada script di atas

// membaca id artikel
$idArtikel = $_GET['idArtikel'];

Perintah di atas digunakan untuk membaca id artikel berasal dari link yang ada di index.php nya maupun dari action form submit komentarnya. ID artikel ini nantinya digunakan query SQL untuk menampilkan detail artikel , menampilkan komentar berdasarkan ID artikel tersebut, maupun untuk query INSERT komentarnya.

Oya, mungkin ada yang bertanya mengapa bagian script untuk proses menyimpan komentar (INSERT komentar) yang ada di blok atau bagian

if ($_GET['act'] == "submit")
{
  ...
}

diletakkan di atas atau sebelum bagian script untuk menampilkan data komentarnya? Iya donk, hal ini dilakukan supaya komentar yang baru saja dikirim nantinya akan langsung tampil di daftar komentar yang telah masuk setelah tombol submit komentarnya diklik. Jika Anda letakkan bagian script untuk menyimpan komentar setelah bagian menampilkan daftar komentar, maka Anda harus merefresh halaman tersebut untuk melihat komentar yang baru saja dikirim, karena proses INSERT dilakukan setelah proses menampilkannya. Seharusnya kan INSERT dulu baru ditampilkan. Paham ya maksud saya? 🙂

Nah.. mudah bukan membuatnya? Selamat mencobanya ya. Kalau sukses, silakan mengembangkan sendiri sesuai imajinasi dan kreatifitas Anda. Good luck.

 

Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

One Comment

Leave a Reply