/

Membuat Website Dinamis Menggunakan PHP dan MySQL

Post ini merupakan pengembangan dari tulisan sebelumnya mengenai bagaimana membuat website dinamis menggunakan PHP tanpa database yang bisa dibaca melalui tautan berikut ini.
Membuat Website Dinamis Menggunakan PHP Tanpa Database

Pada halaman tersebut terdapat kode seperti ini.

<?php if(isset($_GET["page"]) && $_GET["page"] === "about") { ?>

<html>
<head>
<title>About</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<!-- Konten Halaman About -->
</body>
</html>

<?php } else if(isset($_GET["page"]) && $_GET["page"] === "lainnya") { ?>

<html>
<head>
<title>Lainnya</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<!-- Konten Halaman Lainnya -->
</body>
</html>

<?php } else { ?>

<html>
<head>
<title>Halaman Utama</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<!-- Konten Halaman Utama -->
</body>
</html>

<?php } ?>

Kode di atas cocok untuk website ukuran kecil. Tapi untuk website ukuran besar dengan halaman yang sangat banyak, penggunaan kode di atas kurang efektif karena akan membutuhkan banyak sekali baris kode. Alternatifnya adalah dengan menyimpan data-data dari halaman-halaman seperti halaman about dan halaman lainnya (dari contoh kode di atas) pada sebuah database MySQL. Ketika hendak membuat halaman baru -jika kita menggunakan database- kita tidak perlu menyentuh kode-kode, tidak perlu menambah baris kode, cukup melakukan penambahan baris pada database. Cara ini lebih efektif dan banyak digunakan pada kebanyakan website dinamis.

Caranya gampang-gampang mudah. Sediakan dua hal utama yang yang wajib ada, yaitu minimal satu file dengan ekstensi php, misalnya index.php dan sebuah database MySQL.
Saya anggap database telah terbentuk dengan kondisi sebagai berikut.
server: localhost
username: user
password: pass
database: dbase
Untuk mempermudah pengelolaan MySQL, kita gunakan phpMyAdmin.

Buat tabel di database dan isi dengan kolom-kolom yang diperlukan
Database yang telah dibuat tidak bisa langsung digunakan tanpa ada tabel di dalamnya. Tabel berfungsi untuk menyimpan data-data yang akan ditampilkan di website. Pada tabel tersebut, buatlah minimal 5 kolom dan isi masing-masing kolom dengan nama id, url, judul, isi, dan tanggal. Anda boleh menambahkan kolom-kolom lain jika dibutuhkan.

Cara membuat tabel di database MySQL dan mengisinya dengan kolom-kolom yang diperlukan melalui phpMyAdmin adalah sebagai berikut.

  • Klik pada nama database.
  • Pada bagian Create table isi Name dengan post dan Number of columns dengan 5. Akhiri dengan klik tombol Go.
  • Isi pada kolom Name, Type, Length/Values, Default, dan A_I dengan aturan seperti yang tertera pada tabel berikut.
NameTypeLength/ValuesDefaultA_I
idINT3centang
url dan judulVARCHAR255
isiTEXT
tanggalTIMESTAMPCURRENT_TIMESTAMP

Ket:
Length/Values 3 pada id memiliki arti bahwa baris maksimal data yang bisa ditampilkan pada tabel sebanyak 999 baris. Kolom-kolom selain yang saya sebutkan di atas tidak perlu diubah.

Akhiri dengan tombol Save.

Menentukan kolom index
Setelah mengikuti langkah-langkah di atas dalam membuat tabel beserta kolom-kolomnya di sebuah database, yang perlu dilakukan berikutnya adalah mengatur salah satu kolom sebagai kolom index. Biasanya kolom yang dibuat untuk index adalah kolom id. Caranya adalah sebagai berikut.

  • Klik pada nama database, lanjutkan dengan klik pada nama tabel.
  • Klik pada menu Structure dan perhatikan di bagian bawah tabel ada link dengan nama Indexes, ketika kita klik link Indexes akan terbuka sebuah pesan No index defined!. Pada bagian sebelah kanan Create an index on terdapat kolom, isi dengan 1 dan akhiri dengan klik tombol Go.
  • Setelah klik tombol Go dari langkah sebelumnya akan muncul kotak dialog Add Index. Isi kolom Index type dengan PRIMARY dan Column dengan id. Akhiri dengan klik pada tombol Go.

Mengisi data pada tabel database
Tabel database MySQL telah selesai dibuat dan siap digunakan untuk menyimpan data-data website. Caranya cukup mudah. Pada halaman phpMyAdmin, Klik pada database -> tabel -> klik menu Insert. Isikan data-data pada kolom yang sesuai. Cukup mengisi kolom url, judul, dan isi. Kolom id dan tanggal biarkan kosong karena akan terisi secara otomatis. Akhiri dengan klik tombol Go.

Misal, kita ambil data dari dua halaman pada website dengan script yang telah disampaikan di muka yaitu halaman about dan lainnya. Setelah disisipkan akan jadi tabel seperti berikut.

id url judul isi tanggal
... about About <p>Konten halaman about.</p> ...
... lainnya Lainnya <p>Konten halaman lainnya.</p> ...

Proses pembuatan database sampai mengisikan data website selesai sampai di sini. Kolom-kolom bisa ditambah dan dikurangi disesuaikan dengan kebutuhan data yang ingin ditampilkan. Setiap ingin menambah data, cukup klik menu Insert dan isi kolom-kolom seperti yang telah dijelaskan.

Menghubungkan database MySQL dengan php
Langkah berikutnya adalah bagaimana kita bisa menampilkan data dari database MySQL pada halaman website melalui file php. Misal kita sudah mempunyai file index.php berisi script yang telah disampaikan pada awal halaman. File tersebut jika dijalankan akan menampilkan 3 halaman secara dinamis, yaitu halaman utama, halaman about, dan halaman lainnya. Sekarang kita buat agar ketika mengakses halaman about dan halaman lainnya, data yang ditampilkan berasal dari database MySQL. Berikut adalah langkah-langkahnya.

  • Buat koneksi antara file php dan data pada MySQL.
    Kodenya adalah sebagai berikut.
    $connection = mysqli_connect(server, username, password, database) or die(mysqli_error($connection));
  • Definisikan variabel-variabel untuk menampilkan data pada MySQL misalnya url, judul, isi, dan tanggal. Untuk mengambil data dari MySQL dan menampilkannya di file php kita gunakan kode mysqli_query dan mysqli_fetch_array. Secara lengkap kodenya adalah sebagai berikut.
    $url=$_GET['page'];
    $hasil = mysqli_query($connection, "SELECT *,DATE_FORMAT(tanggal, '%d/%m/%Y') as tgl FROM post WHERE url='$url'");
    $tampil_hasil = mysqli_fetch_array($hasil);
    $judul = $tampil_hasil['judul'];
    $isi = $tampil_hasil['isi'];
    $tanggal = $tampil_hasil['tgl'];
  • Tempatkan variabel $judul, $isi, dan $tanggal pada sebuah template html di tempat yang sesuai.

Jika kita terapkan pada kode yang telah disebutkan di muka, secara lengkap akan menjadi seperti berikut.

<?php $connection = mysqli_connect(localhost, user, pass, dbase) or die(mysqli_error($connection)); ?>

<?php if(isset($_GET["page"]) && $_GET["page"]) { ?>

<?php
$url=$_GET['page'];
$hasil = mysqli_query($connection, "SELECT *,DATE_FORMAT(tanggal, '%d/%m/%Y') as tgl FROM post WHERE url='$url'");
$tampil_hasil = mysqli_fetch_array($hasil);
$judul = $tampil_hasil['judul'];
$isi = $tampil_hasil['isi'];
$tanggal = $tampil_hasil['tgl'];
?>

<html>
<head>
<title><?php echo $judul ?></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1><?php echo $judul ?></h1>
<p>Dipostkan tanggal <?php echo $tanggal ?></p>
<?php echo $isi ?>
</body>
</html>

<?php } else { ?>

<html>
<head>
<title>Halaman Utama</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<!-- Konten Halaman Utama -->
</body>
</html>

<?php } ?>

Script di atas bisa menampilkan banyak halaman secara dinamis hanya dengan mengakses alamat dengan format berikut.
http://alamatwebsite.com/?page=url
Setiap mengganti url dengan karakter yang terdapat pada kolom url di database, isi halaman akan berganti disesuaikan dengan data yang terdapat pada database. Ketika ingin menambah halaman, cukup menambahkan baris pada database (menggunakan phpMyAdmin).

Oleh Opan
Dipostkan January 07, 2016
Seorang guru matematika yang hobi ngeblog dan menulis. Dari ketiganya terwujudlah website ini sebagai sarana berbagi pengetahuan yang saya miliki.

Demi menghargai hak kekayaan intelektual, mohon untuk tidak menyalin sebagian atau seluruh halaman web ini dengan cara apa pun untuk ditampilkan di halaman web lain atau diklaim sebagai karya milik Anda. Tindakan tersebut hanya akan merugikan diri Anda sendiri. Jika membutuhkan halaman ini dengan tujuan untuk digunakan sendiri, silakan unduh atau cetak secara langsung.