Belajar PHP & MySQL #6: Operasi Read (Menampilkan Data)

Heru Iryanto
Heru Iryanto
Teacher, Content Creator and Full-Stack Developer

Di materi PHP MySQL kali ini, kita resmi memasuki kawasan pemrograman elit yang sering jadi soal syarat kelulusan ujian praktik sekolah (UKK): Operasi CRUD (Create, Read, Update, Delete).

Kita akan mulai dari huruf R (Read) - Membaca dan Menampilkan.

1️⃣ Sintaks Emas: mysqli_query

Di kelas MySQL murni, Anda mengetik SELECT * FROM tabel_buku langsung di terminal phpMyAdmin dan menekan Go. Di bahasa PHP, kita tidak bisa menekan Go. Kita meminta PHP tolong menekan tombol Go tersebut menggunakan fungsi gaib: mysqli_query().

Buat file baru bernama index_buku.php. Di file ini, kita akan membuat halaman Dashboard sederhana yang berisi tabel HTML.

Pastikan terlebih dahulu anda sudah membuat database db_perpustakaan dan tabel tabel_buku lalu mengisinya dengan beberapa data, jika belum silahkan ikuti materi sebelumnya: Membuat Database dan Tabel dan Operasi Insert dan Select.

2️⃣ Panggil Kabel, Jalankan SQL

Mari kita gabungkan kerangka HTML dengan logika PHP:

<?php
  // 1. Sertakan file jembatan kabel dari materi sebelumnya agar pintu database terbuka
  include 'koneksi.php';

  // 2. Tuliskan mantra MySQL mentah ke dalam variabel Teks (String) biasa
  $mantra_sql = "SELECT * FROM tabel_buku";

  // 3. EKSEKUSI! (Minta PHP menancapkan kabel $koneksi dan menembakkan $mantra_sql)
  // Hasil tangkapan datanya yang masih berbentuk 'Gumpalan Batu Besar' disimpan di $hasil
  $hasil = mysqli_query($koneksi, $mantra_sql);
?>

<!DOCTYPE html>
<html>
<head><title>Katalog Buku</title></head>
<body>

  <h2>Daftar Buku di Perpustakaan</h2>
  <table border="1" cellpadding="10">
    <tr>
        <th>No ID</th>
        <th>Judul Buku</th>
        <th>Nama Penulis</th>
        <th>Tahun Terbit</th>
    </tr>
    
    <!-- Area Perulangan PHP Dimulai -->
    <?php 
       // 4. Memecah 'Gumpalan Batu Besar' tadi menjadi barisan Array Asosiatif
       // Gunakan while-loop. Selama mesin mysqli_fetch_assoc masih menemukan baris data.. putar terus!
       
       while ( $baris_buku = mysqli_fetch_assoc($hasil) ) {
    ?>
       
       <!-- 5. Di tengah putaran ini, kita selipkan Tag Tabel HTML murni (tr, td) -->
       <tr>
           <td> <?php echo $baris_buku['id_buku']; ?> </td>
           <td> <?php echo $baris_buku['judul_buku']; ?> </td>           
           <td> <?php echo $baris_buku['nama_penulis']; ?> </td>
           <td> <?php echo $baris_buku['tahun_terbit']; ?> </td>
       </tr>
       
    <?php 
       } // Penutup kurung kurawal si while-loop!
    ?>
    <!-- Area Perulangan PHP Selesai -->

  </table>

</body>
</html>

3️⃣ Analisis Perulangan Campuran (PHP dalam HTML)

Kodingan di atas adalah seni “Spaghetti Code” klasik ala PHP. Mari kita bedah keajaibannya:

  1. mysqli_fetch_assoc($hasil): Tumpukan laci buku dari MySQL sangat berat dan tidak bisa dicetak langsung. Fungsi _assoc ini bertugas “Mengambil laci teratas, lalu melemparnya ke variabel $baris_buku (yang menjadi Array dengan label nama)”.
  2. Kekuatan While-Loop: Selama tabel laci masih memiliki tumpukan buku di bawahnya, ia akan terus berputar membuat Baris Tabel HTML baru (<tr>).
  3. Jika di database MySQL Anda ada 500 buku, kode HTML <tr> tersebut akan di-copy-paste ke layar pengunjung sebanyak 500 kali dalam satu detik! Inilah arti sebenarnya dari Web Dinamis.
  4. Perhatikan pemotongan kode PHP <?php } ?> di ujung bawah tabel. Ini penting untuk menutup penjepit perulangan kurung kurawal while().

(Jika Anda merasa gaya koding gabungan PHP-HTML ini memusingkan, jangan khawatir. 90% Programmer di awal kariernya juga frustrasi melihat ini. Anda hanya perlu membiasakan mata).

🗽 Kesimpulan

Cobalah jalankan http://localhost/belajar_php/perpustakaan/index_buku.php di browser. Tabel hitam-putih akan muncul membawa data utuh dari database MySQL Anda! (Tentu Anda bisa merias tabel ini nanti dengan memanggil class Bootstrap kesayangan Anda).

Data sudah berhasil ditarik ke layar (Read). Sekarang, bagaimana cara menambahkan buku baru dari halaman website Anda tanpa perlu masuk ke phpMyAdmin lagi? Mari kita bongkar trik penangkapan Form di materi Operasi Create (Menyimpan Data).