Minggu, 21 Desember 2025

error

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

0 komentar:

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Press Release Distribution