Catatan Membuat Halaman Data Siswa
1. Membuat Database
Gunakan SQL berikut untuk membuat database dan tabel:
CREATE DATABASE sekolah; USE sekolah; CREATE TABLE siswa ( id INT AUTO_INCREMENT PRIMARY KEY, kode VARCHAR(50) NOT NULL, nama VARCHAR(100) NOT NULL, kelas VARCHAR(50) NOT NULL, jenis_kelamin ENUM('Laki-laki', 'Perempuan') NOT NULL ); INSERT INTO siswa (kode, nama, kelas, jenis_kelamin) VALUES ('S001', 'Ali', '10A', 'Laki-laki'), ('S002', 'Budi', '10B', 'Laki-laki'), ('S003', 'Cici', '10A', 'Perempuan');
2. Membuat Model
Buat file SiswaModel.php di folder app/Models/
:
<?php namespace App\Models; use CodeIgniter\Model; class SiswaModel extends Model { protected $table = 'siswa'; // Nama tabel protected $primaryKey = 'id'; // Kolom primary key protected $useAutoIncrement = true; // Primary key auto increment protected $allowedFields = ['kode', 'nama', 'kelas', 'jenis_kelamin']; // Kolom yang bisa diisi }
3. Membuat Controller
Buat file SiswaController.php di folder app/Controllers/
:
<?php namespace App\Controllers; use App\Models\SiswaModel; // Memuat model class SiswaController extends BaseController { public function index() { $siswaModel = new SiswaModel(); // Membuat instance model $data['siswa'] = $siswaModel->findAll(); // Mengambil semua data siswa return view('siswa/index', $data); // Menampilkan data ke view } }
4. Menambahkan Routes
Tambahkan route berikut di file app/Config/Routes.php
:
$routes->get('/siswa', 'SiswaController::index');
5. Membuat Halaman Views
Buat file index.php di folder app/Views/siswa/
:
<?= $this->extend('layout/page_layout') ?> <?= $this->section('content') ?>Data Siswa
Ekspor ke Excel <?php if (!empty($siswa)): ?> <?php foreach ($siswa as $row): ?> <?php endforeach; ?> <?php else: ?> <?php endif; ?>
ID | Kode | Nama | Kelas | Jenis Kelamin | Aksi |
---|---|---|---|---|---|
<?= $row['id'] ?> | <?= $row['kode'] ?> | <?= $row['nama'] ?> | <?= $row['kelas'] ?> | <?= $row['jenis_kelamin'] ?> | Edit | Hapus |
Tidak ada data |
6. Membuat Layout
Buat file page_layout.php di folder app/Views/layout/
:
<!DOCTYPE html> <?= $this->renderSection('content') ?>
Penjelasan Tambahan
- Model: Untuk berinteraksi dengan database.
- Controller: Mengontrol logika bisnis dan data yang akan dikirim ke view.
- Routes: Menentukan URL untuk fungsi tertentu di controller.
- View: Berisi tampilan antarmuka pengguna.
- Layout: Template HTML utama yang konsisten di seluruh halaman.
Komentar
Tuliskan Komentar Anda!