Detail Artikel

Detail Artikel

Tentu! Berikut adalah langkah-langkah lengkap dengan SQL untuk database, fungsi tambahan untuk mengedit, memperbarui, menghapus data, serta menampilkan data yang sudah ada. Saya akan menyediakan semua bagian yang diperlukan sesuai permintaan Anda.

1. SQL Database

Struktur tabel yang digunakan di database:

sql
CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, class VARCHAR(50) NOT NULL, address TEXT NOT NULL );

2. Model (StudentModel.php)

Model ini akan menangani operasi database seperti mengambil data, menyimpan, memperbarui, menghapus, dan menghapus semua data.

Buat atau perbarui file app/Models/StudentModel.php:

php
<?php namespace App\Models; use CodeIgniter\Model; class StudentModel extends Model { protected $table = 'students'; protected $primaryKey = 'id'; protected $allowedFields = ['name', 'class', 'address']; // Tidak menggunakan timestamps protected $useTimestamps = false; }

3. Controller (StudentController.php)

Controller ini akan menangani logika untuk menampilkan data, mengedit data, memperbarui data, menghapus data, dan menghapus semua data.

Buat atau perbarui file app/Controllers/StudentController.php:

php
<?php namespace App\Controllers; use App\Models\StudentModel; class StudentController extends BaseController { // Menampilkan halaman tambah data public function index() { return view('add_data'); } // Menyimpan data siswa baru public function save() { $studentModel = new StudentModel(); // Menyimpan data langsung ke database $data = [ 'name' => $this->request->getPost('name'), 'class' => $this->request->getPost('class'), 'address' => $this->request->getPost('address') ]; // Simpan data $studentModel->save($data); // Redirect ke halaman utama setelah berhasil return redirect()->to('/students')->with('message', 'Data berhasil disimpan'); } // Menampilkan semua data siswa public function show() { $studentModel = new StudentModel(); $data['students'] = $studentModel->findAll(); return view('view_data', $data); } // Menampilkan form edit data siswa public function edit($id) { $studentModel = new StudentModel(); $data['student'] = $studentModel->find($id); return view('edit_data', $data); } // Memperbarui data siswa public function update($id) { $studentModel = new StudentModel(); $data = [ 'name' => $this->request->getPost('name'), 'class' => $this->request->getPost('class'), 'address' => $this->request->getPost('address') ]; $studentModel->update($id, $data); return redirect()->to('/students')->with('message', 'Data berhasil diperbarui'); } // Menghapus data siswa berdasarkan ID public function delete($id) { $studentModel = new StudentModel(); $studentModel->delete($id); return redirect()->to('/students')->with('message', 'Data berhasil dihapus'); } // Menghapus semua data siswa public function truncate() { $studentModel = new StudentModel(); $studentModel->truncate(); return redirect()->to('/students')->with('message', 'Semua data berhasil dihapus'); } }

4. View (add_data.php)

Form untuk memasukkan data siswa baru.

Buat file app/Views/add_data.php:

php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tambah Data Siswa</title> </head> <body> <h1>Tambah Data Siswa</h1> <!-- Menampilkan pesan sukses jika ada --> <?php if (session()->getFlashdata('message')): ?> <p><?= session()->getFlashdata('message') ?></p> <?php endif; ?> <!-- Form Input Data --> <form action="/student/save" method="POST"> <?= csrf_field() ?> <label for="name">Nama Siswa</label><br> <input type="text" id="name" name="name" value="<?= old('name') ?>"><br> <label for="class">Kelas</label><br> <input type="text" id="class" name="class" value="<?= old('class') ?>"><br> <label for="address">Alamat</label><br> <textarea id="address" name="address"><?= old('address') ?></textarea><br> <button type="submit">Simpan</button> </form> </body> </html>

5. View (view_data.php)

Tampilan untuk melihat daftar siswa dengan aksi untuk edit dan hapus.

Buat file app/Views/view_data.php:

php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Daftar Data Siswa</title> </head> <body> <h1>Daftar Data Siswa</h1> <!-- Menampilkan pesan sukses jika ada --> <?php if (session()->getFlashdata('message')): ?> <p><?= session()->getFlashdata('message') ?></p> <?php endif; ?> <a href="/student">Tambah Data Siswa</a> <a href="/student/truncate">Hapus Semua Data</a> <table border="1"> <tr> <th>Nama</th> <th>Kelas</th> <th>Alamat</th> <th>Aksi</th> </tr> <?php foreach ($students as $student): ?> <tr> <td><?= $student['name'] ?></td> <td><?= $student['class'] ?></td> <td><?= $student['address'] ?></td> <td> <a href="/student/edit/<?= $student['id'] ?>">Edit</a> | <a href="/student/delete/<?= $student['id'] ?>" onclick="return confirm('Apakah Anda yakin ingin menghapus data ini?')">Hapus</a> </td> </tr> <?php endforeach; ?> </table> </body> </html>

6. View (edit_data.php)

Form untuk mengedit data siswa.

Buat file app/Views/edit_data.php:

php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Edit Data Siswa</title> </head> <body> <h1>Edit Data Siswa</h1> <form action="/student/update/<?= $student['id'] ?>" method="POST"> <?= csrf_field() ?> <label for="name">Nama Siswa</label><br> <input type="text" id="name" name="name" value="<?= $student['name'] ?>"><br> <label for="class">Kelas</label><br> <input type="text" id="class" name="class" value="<?= $student['class'] ?>"><br> <label for="address">Alamat</label><br> <textarea id="address" name="address"><?= $student['address'] ?></textarea><br> <button type="submit">Perbarui</button> </form> </body> </html>

7. Routes (Routes.php)

Tambah rute untuk menampilkan data, mengedit data, memperbarui data, menghapus data, dan menghapus semua data.

Buka app/Config/Routes.php dan tambahkan rute berikut:

php
$routes->get('/student', 'StudentController::index'); $routes->post('/student/save', 'StudentController::save'); $routes->get('/students', 'StudentController::show'); $routes->get('/student/edit/(:num)', 'StudentController::edit/$1'); $routes->post('/student/update/(:num)', 'StudentController::update/$1'); $routes->get('/student/delete/(:num)', 'StudentController::delete/$1'); $routes->get('/student/truncate', 'StudentController::truncate');

Penjelasan:

  • Model: StudentModel menangani operasi database (menambah, mengedit, memperbarui, menghapus, dan menghapus semua data).
  • Controller: StudentController menangani logika untuk menambah, mengedit, memperbarui, menghapus data, dan menampilkan daftar data.
  • Views:
    • add_data.php untuk menambahkan data siswa.
    • view_data.php untuk menampilkan daftar siswa dengan opsi edit dan hapus.
    • edit_data.php untuk mengedit data siswa.
  • Routes: Mengatur URL dan mengarahkan ke controller yang sesuai.

Dengan pengaturan ini, Anda dapat menambahkan, mengedit, memperbarui, menghapus satu data, menghapus semua data siswa, serta menampilkan semua data siswa di aplikasi Anda.


CI4