CRUD adalah salah satu hal mendasar dalam pengembangan aplikasi web. Dengan menggunakan PHP CodeIgniter 4, Anda dapat dengan mudah membuat operasi CRUD dan terhubung ke database dengan cepat. Pada tutorial ini, saya akan memandu Anda langkah demi langkah untuk membuat CRUD sederhana dengan PHP CodeIgniter 4.
Langkah 1: Persiapan Awal
Pastikan Anda telah menginstal PHP, Composer, dan sudah menyiapkan lingkungan pengembangan untuk CodeIgniter 4. Jika belum, Anda dapat mengikuti petunjuk instalasi resmi di situs web CodeIgniter.
Langkah 2: Membuat Database
Mulailah dengan membuat database di server MySQL atau database lainnya yang Anda gunakan. Misalnya, kita akan membuat database dengan nama crud_example.
CREATE DATABASE crud_example;
Langkah 3: Instalasi CodeIgniter 4
Selanjutnya, buat proyek CodeIgniter 4 menggunakan Composer dengan perintah berikut:
composer create-project codeigniter4/appstarter nama_proyek
Masuk ke direktori proyek Anda:
cd nama_proyek
Langkah 4: Konfigurasi Database
Konfigurasi koneksi database di file .env
. Buka file .env
dan sesuaikan informasi koneksi database Anda:
database.default.hostname = localhost
database.default.database = crud_example
database.default.username = username_database
database.default.password = password_database
database.default.DBDriver = MySQLi
Langkah 5: Membuat Model
Buatlah model untuk mengelola data di dalam database. Misalnya, buat model dengan nama ProductModel
:
<?php
namespace App\Models;
use CodeIgniter\Model;
class ProductModel extends Model
{
protected $table = 'products';
protected $primaryKey = 'id';
protected $allowedFields = ['name', 'price', 'description'];
}
Langkah 6: Membuat Controller
Selanjutnya, buatlah controller untuk menangani permintaan pengguna dan menghubungkannya ke model yang sesuai. Misalnya, buatlah controller dengan nama ProductController
:
public function create()
{
return view('product/create');
}
public function store()
{
$model = new ProductModel();
$data = [
'name' => $this->request->getVar('name'),
'price' => $this->request->getVar('price'),
'description' => $this->request->getVar('description')
];
$model->insert($data);
return redirect()->to('/product');
}
public function edit($id)
{
$model = new ProductModel();
$data['product'] = $model->find($id);
return view('product/edit', $data);
}
public function update($id)
{
$model = new ProductModel();
$data = [
'name' => $this->request->getVar('name'),
'price' => $this->request->getVar('price'),
'description' => $this->request->getVar('description')
];
$model->update($id, $data);
return redirect()->to('/product');
}
public function delete($id)
{
$model = new ProductModel();
$model->delete($id);
return redirect()->to('/product');
}
Langkah 7: Membuat Tampilan
Terakhir, buat tampilan untuk menampilkan data dan mengelola CRUD. Misalnya, buat tampilan dengan nama index.php
, create.php
dan edit.php
di dalam folder views/product/
.
<!-- index.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Product List</title>
</head>
<body>
<h1>Product List</h1>
<a href="/product/create">Add Product</a>
<table border="1">
<tr>
<th>Name</th>
<th>Price</th>
<th>Description</th>
<th>Actions</th>
</tr>
<?php foreach ($products as $product): ?>
<tr>
<td><?= $product['name'] ?></td>
<td><?= $product['price'] ?></td>
<td><?= $product['description'] ?></td>
<td>
<a href="/product/edit/<?= $product['id'] ?>">Edit</a> |
<a href="/product/delete/<?= $product['id'] ?>" onclick="return confirm('Are you sure you want to delete this product?')">Delete</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
<!-- create.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Create Product</title>
</head>
<body>
<h1>Create Product</h1>
<form action="/product/store" method="post">
<label for="name">Name:</label><br>
<input type="text" id="name" name="name"><br>
<label for="price">Price:</label><br>
<input type="text" id="price" name="price"><br>
<label for="description">Description:</label><br>
<textarea id="description" name="description"></textarea><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
<!-- edit.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Edit Product</title>
</head>
<body>
<h1>Edit Product</h1>
<form action="/product/update/<?= $product['id'] ?>" method="post">
<label for="name">Name:</label><br>
<input type="text" id="name" name="name" value="<?= $product['name'] ?>"><br>
<label for="price">Price:</label><br>
<input type="text" id="price" name="price" value="<?= $product['price'] ?>"><br>
<label for="description">Description:</label><br>
<textarea id="description" name="description"><?= $product['description'] ?></textarea><br><br>
<input type="submit" value="Update">
</form>
</body>
</html>
Langkah 8: Pembaruan pada Route untuk Fungsi CRUD
Perbarui rute untuk setiap fungsi CRUD di dalam file app/Config/Routes.php
untuk menangani permintaan POST
dari formulir:
$routes->get('/product/create', 'ProductController::create');
$routes->post('/product/store', 'ProductController::store');
$routes->get('/product/edit/(:num)', 'ProductController::edit/$1');
$routes->post('/product/update/(:num)', 'ProductController::update/$1');
$routes->get('/product/delete/(:num)', 'ProductController::delete/$1');
Langkah 9: Uji Coba
Sekarang, and tinggal mencoba CRUD yang telah anda bikin, dengan menuliskan php spark serve
pada terminal/command line anda, sehingga server codeigniter 4 akan jalan.
Top comments (0)