Siap 👍
Kita bikin menampilkan tabel buku dengan gaya OOP yang benar, rapi, dan mudah dipahami, tanpa loncat-loncat konsep.
Aku bagi jadi 4 langkah logis supaya nyambung dengan yang sudah kamu pelajari.
1️⃣ CLASS Buku (MODEL) – PENYEDIA DATA
Ini sudah OOP murni, tugasnya hanya urusan database, bukan HTML.
models/Buku.php
Salin kode
Php
class Buku {
private $conn;
private $table = "buku";
public function __construct($db){
$this->conn = $db;
}
// Ambil semua data buku
public function getAll(){
$query = "SELECT * FROM " . $this->table . " ORDER BY id DESC";
$stmt = mysqli_prepare($this->conn, $query);
mysqli_stmt_execute($stmt);
return mysqli_stmt_get_result($stmt);
}
}
📌 Catat penting
Class tidak echo HTML
Class hanya return data
2️⃣ FILE UTAMA (CONTROLLER SEDERHANA)
Di sinilah object dibuat dan dipakai
index.php
Salin kode
Php
require_once 'config/database.php';
require_once 'models/Buku.php';
$db = new Database();
$conn = $db->connect();
$buku = new Buku($conn);
$dataBuku = $buku->getAll();
📌 Sampai sini:
$dataBuku = hasil SELECT
Belum ada HTML sama sekali
3️⃣ TAMPILKAN DALAM TABEL HTML
Sekarang kita render data ke tabel
Salin kode
Html
<table border="1" cellpadding="8" cellspacing="0">
<thead>
<tr>
<th>No</th>
<th>Judul</th>
<th>Pengarang</th>
<th>Penerbit</th>
<th>Tahun</th>
</tr>
</thead>
<tbody>
<?php $no = 1; ?>
<?php while($row = mysqli_fetch_assoc($dataBuku)) : ?>
<tr>
<td><?= $no++; ?></td>
<td><?= htmlspecialchars($row['judul']); ?></td>
<td><?= htmlspecialchars($row['pengarang']); ?></td>
<td><?= htmlspecialchars($row['penerbit']); ?></td>
<td><?= htmlspecialchars($row['tahunterbit']); ?></td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
4️⃣ APA YANG TERJADI? (FLOW OTAK)
Salin kode
Text
Database class
↓
$conn (koneksi DB)
↓
Buku->getAll()
↓
mysqli_prepare + execute
↓
result set
↓
while + HTML table
5️⃣ KENAPA INI DISEBUT “GAYA OOP YANG BENAR”?
✔ Database logic di Model
✔ HTML di View
✔ Object dipakai di Controller
✔ Tidak ada query di HTML
✔ Mudah dikembangkan
6️⃣ KESALAHAN UMUM (HINDARI)
❌ Query di dalam <table>
❌ echo "<tr>" di class
❌ mysqli_query di view
❌ Campur logic & tampilan
7️⃣ VERSI LEBIH MODERN (OPSIONAL)
Kalau mau sedikit lebih OOP-friendly:
Method di Buku.php
Salin kode
Php
public function getAllArray(){
$data = [];
$result = $this->getAll();
while($row = mysqli_fetch_assoc($result)){
$data[] = $row;
}
return $data;
}
Pakai di view
Salin kode
Php
foreach($buku->getAllArray() as $row){
echo $row['judul'];
}
8️⃣ RINGKASAN SUPER SINGKAT
Bagian
Tugas
Database
Koneksi
Buku
Query
index.php
Panggil object
HTML
Tampilkan
🔥 NEXT STEP (TINGGAL PILIH)
Kalau mau lanjut, aku bisa bantu:
1️⃣ Tambah Edit & Delete di tabel
2️⃣ Integrasi ke AdminLTE
3️⃣ Pagination OOP
4️⃣ Ajax Load Table
5️⃣ MVC sederhana ala Laravel
Balas saja:
LANJUT EDIT & DELETE TABEL
Desember 21, 2025



0 komentar:
Posting Komentar