DEV Community

Ibnu Alboneh
Ibnu Alboneh

Posted on

Bagaimana cara saya membuat sebuah Website CRUD di PHP Codeigniter 4 dengan cepat

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;
Enter fullscreen mode Exit fullscreen mode

Langkah 3: Instalasi CodeIgniter 4

Selanjutnya, buat proyek CodeIgniter 4 menggunakan Composer dengan perintah berikut:

composer create-project codeigniter4/appstarter nama_proyek
Enter fullscreen mode Exit fullscreen mode

Masuk ke direktori proyek Anda:

cd nama_proyek
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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'];
}
Enter fullscreen mode Exit fullscreen mode

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');
}


Enter fullscreen mode Exit fullscreen mode

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>


Enter fullscreen mode Exit fullscreen mode
<!-- 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>

Enter fullscreen mode Exit fullscreen mode
<!-- 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>

Enter fullscreen mode Exit fullscreen mode

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');
Enter fullscreen mode Exit fullscreen mode

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)