Ingin belajar coding melalui video secara gratis?
Cek youtube channel saya => DI SINI!

Tutorial Lengkap Codeigniter 4 Untuk Pemula

Tutorial Lengkap Codeigniter 4 Untuk Pemula

Pada tutorial ini Anda akan belajar tentang:

1. Pengenalan Codeigniter 4

2. Instalasi Codeigniter 4 (Manual dan Composer)

3. Membuat Aplikasi sederhana dengan Codeigniter 4

4. Mengkoneksikan Codeigniter 4 dengan Database

5. Menampilkan data dari database ke view (READ)

6. Insert data ke database (CREATE)

7. Update data ke database (UPDATE)

8. Delete data ke database (DELETE)

(Step-by-Step)

Mari kita mulai.

 

#1. Pengenalan Codeigniter 4

Codeigniter merupakan framework PHP untuk membangun aplikasi berbasis web.

Codeigniter sendiri memberikan 3 pilihan. yaitu: Codeigniter 2, Codeigniter 3, dan Codeigniter 4.

Codeigniter 2 merupakan versi legacy dari Codeigniter, Codeigniter 3 merupakan versi terbaru dari Codeigniter, sedangkan Codeigniter 4 merupakan versi masa depan Codeigniter.

Codeigniter 2 dan Codeigniter 3 tidak memilki perbedaan yang signifikan, hanya saja ada beberapa fitur yang ditambahkan pada versi 3 dan dukungan terhadap PHP versi 5.6+.

Sedangkan Codeigniter 4, sangat berbeda dengan Codeigniter 2 dan Codeigniter 3.

Berkat perkembangan teknologi yang cepat, Codeigniter dipaksa melakukan perubahan besar-besaran.

Codeigniter 4 mendukung PHP versi 7.2+, jika web server Anda belum support PHP 7.2+, saya sarankan untuk mengupgrade versi PHP Anda.

Selain itu, Codeigniter 4 juga tidak dapat dijalankan jika web server Anda tidak mengaktifkan intl extention, php-json, php-mbstring, php-mysqlnd, dan php-xml.

Anda dapat mengeceknya di phpinfo, jika salah satu extention tersebut tidak aktif (disabled), silahkan aktifkan pada file php.ini.

Jika Anda menggunakan XAMPP, file php.ini terdapat pada folder:

C:/xampp/php

Sedangkan jika Anda menggunakan WampServer, file php.ini terdapat pada folder:

C:/wamp64/bin/php/php7.4.3

Pada tutorial ini saya menggunakan XAMPP.

Selain itu, Codeigniter 4 tidak memiliki file “index.php” pada root project, dan file “index.php” dipindahkan ke folder “public” dengan alasan keamanan.

Codeigniter 4 memudahkan web developer dengan penulisan kode program yang lebih singkat dan memberikan kemudahan dalam melacak error melalui mode “development”.

Tidak hanya itu, Codeigniter 4 juga memudahkan web developer untuk membuat RESTful API, yang dimana dibutuhkan library tambahan untuk membuat RESTful API pada Codeigniter 3.

Itulah yang membuat Codeigniter 4 menjadi semakin menarik.

Dapatkan diskon 75% paket hosting dan gratis domain + extra diskon 5% dengan menggunakan kupon: MFIKRI

Order Sekarang.!

 

#2. Instalasi Codeigniter 4

Untuk menginstal Codeigniter 4 dapat dilakukan dengan 2 cara yaitu: Instalasi manual dan Instalasi melalui composer.

Pada tutorial ini saya akan memberikan keduanya.

1. Instalasi Manual

Instalasi Codeigniter 4 secara manual, persis sama dengan menginstal Codeigniter 3.

Download file Codeigniter 4 pada link berikut, kemudian extract di web server Anda.

https://github.com/CodeIgniter4/framework/releases/tag/v4.0.2

Jika menggunakan WAMPSERVER, extract di folder:

C:/wamp64/www

Jika menggunakan XAMPP, extract di folder:

C:/xampp/htdocs

2. Instalasi Melalui Composer

Codeigniter 4 memungkinkan Anda untuk melakukan instalasi melalui composer.

Composer merupakan Dependency Manager untuk PHP, sama halnya dengan NPM pada node.js.

Untuk dapat melakukan instalasi codeigniter 4 menggunakan composer, Anda harus menginstal composer terlebih dahulu di computer Anda.

Jika Anda menggunakan windows, Anda dapat mendownload Composer-Setup.exe pada link berikut:

https://getcomposer.org/download/

Jika Anda menggunakan Linux/Unix/macOS, cek link berikut untuk info lebih lengkap:

https://getcomposer.org/doc/00-intro.md

Untuk memastikan apakah composer telah terinstal dengan baik di computer Anda, silahkan buka Terminal / Command Prompt dan ketikan perintah berikut:

composer –v

Jika composer terinstal dengan baik, maka akan terlihat seperti gambar berikut:

Selain itu, cek juga versi PHP Anda dengan menggunakan perintah:

php –v

Ini penting, jika versi php Anda dibawah PHP 7.2+, maka Anda tidak dapat menginstal Codeigniter 4 melalui composer.

Saya menggunakan PHP 7.3.7, jadi saya dapat menginstal Codeigniter 4 melalui composer.

Untuk menginstal Codeigniter 4 melalui composer, dapat dilakukan dengan mengetikan perintah berikut pada Terminal/ Command Prompt:

composer create-project codeigniter4/appstarter ci-project --no-dev

Anda harus menginstal codeigniter 4 di dalam root web server Anda.

Disini saya menggunakan XAMPP, jadi root web server saya adalah:

C:/xampp/htdocs

Anda dapat menggunakan perintah change directory (cd) pada terminal/ command prompt berikut untuk beralih ke folder “xampp/htdocs”:

cd ../../xampp/htdocs

Seperti gambar berikut:

Setelah Anda berada pada folder “xampp/htdocs” barulah Anda dapat mengintal Codeigniter 4 melalui composer.

Seperti gambar berikut:

Perintah diatas akan membuat sebuah folder “ci-project” pada “xampp/htdocs”.

Kemudian masuk ke folder “ci-project” dengan perintah berikut:

Setelah itu ketikan perintah berikut:

composer update --no-dev

Seperti gambar berikut:

Selesai.

Menginstal Codeigniter 4 melalui composer, mungkin terlihat rumit jika Anda belum terbiasa.

Akan tetapi, dengan memanfaatkan composer, Anda dapat dengan mudah menginstal paket dependensi yang Anda butuhkan dan Anda juga dapat mengupdate semua dependensi tersebut dengan mudah.

Untuk memastikan instalasi berhasil, ketikan perintah berikut pada Terminal / Command Prompt:

php spark serve

Seperti gambar berikut:

Kemudian buka browser Anda dan kunjungi url berikut:

http://localhost:8080

Jika instalasi berhasil, maka akan terlihat seperti gambar berikut:

 

#3. Membuat aplikasi pertama Codeigniter 4

Sama dengan konsep codeigniter 3, codeigniter 4 juga menganut desain patern MVC (Model-View-Controller).

Pada step ini, Anda akan belajar bagaimana menampilkan view dengan Codeigniter 4 dan Anda dapat melihat perbedaannya dengan Codeigniter 3.

1. Buat sebuah controller Hello.php pada folder “app/Controllers” seperti gambar berikut:

Kemudian ketikkan code berikut:

<?php namespace App\Controllers;
use CodeIgniter\Controller;

class Hello extends Controller
{
    public function index()
    {
        $data['title'] = "Hello World from Codeigniter 4";
        echo view('hello_view', $data);
    }

}

2. Setelah itu buat sebuah view hello_view.php pada folder “app/Views” seperti gambar berikut:

Kemudian ketikan code berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><?= $title; ?></title>
</head>
<body>
    <h2><?= $title; ?></h2>
</body>
</html>

Kemudian jalankan project Anda dengan perintah berikut pada terminal/command prompt:

php spark serve

Kemudian buka browser dan kunjungi URL berikut:

http://localhost:8080/hello

Jika berjalan dengan baik, maka akan terlihat seperti gambar berikut:

 

#4. Membuat koneksi ke database

Untuk membuat koneksi ke database, tentu saja Anda harus memiliki database terlebih dahulu.

Disini saya menggunakan MySQL sebagai DBMS (Database Management System).

Jika Anda menggunakan MySQL, Anda akan menyukai tutorial ini.

Buat sebuah database pada MySQL dengan mengeksekusi query berikut:

CREATE DATABASE pos_db;

Query diatas akan membuat sebuah database bernama pos_db.

Jika Anda masih bingung bagaimana membuat database pada MySQL, saya sarankan Anda untuk mempelajari Data Definition Language (DDL) pada MySQL.

Selanjutnya, buat table pada database pos_db dengan mengeksekusi query berikut:

CREATE TABLE product(
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
product_price INT
);

Query diatas akan membuat sebuah table bernama “product” dengan fields: product_id, product_name, dan product_price.

Jika Anda masih bingung bagaimana membuat table pada MySQL, saya sarankan Anda untuk mempelajari Data Manipulation Language (DML) pada MySQL.

Untuk  membuat koneksi ke database pada Codeigniter 4, terdapat dua cara yaitu: dengan file Database.php yang terdapat pada folder “app/Config” atau dengan file env yang terdapat pada root project.

Anda boleh memilih salah satu dari dua cara tersebut.

Cara I. Dengan file Database.php yang terdapat pada folder “app/Config”.

Buka file Database.php yang terdapat pada folder “app/Config”, kemudian temukan kode berikut:

public $default = [
        'DSN'      => '',
        'hostname' => 'localhost',
        'username' => '',
        'password' => '',
        'database' => '',
        'DBDriver' => 'MySQLi',
        'DBPrefix' => '',
        'pConnect' => false,
        'DBDebug'  => (ENVIRONMENT !== 'production'),
        'cacheOn'  => false,
        'cacheDir' => '',
        'charset'  => 'utf8',
        'DBCollat' => 'utf8_general_ci',
        'swapPre'  => '',
        'encrypt'  => false,
        'compress' => false,
        'strictOn' => false,
        'failover' => [],
        'port'     => 3306,
];

Kemudian atur menjadi seperti berikut:

public $default = [
        'DSN'      => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'pos_db',
        'DBDriver' => 'MySQLi',
        'DBPrefix' => '',
        'pConnect' => false,
        'DBDebug'  => (ENVIRONMENT !== 'production'),
        'cacheOn'  => false,
        'cacheDir' => '',
        'charset'  => 'utf8',
        'DBCollat' => 'utf8_general_ci',
        'swapPre'  => '',
        'encrypt'  => false,
        'compress' => false,
        'strictOn' => false,
        'failover' => [],
        'port'     => 3306,
];

Cara ini mirip dengan membuat koneksi ke database pada Codeigniter 3.

Cara II. Dengan file env yang terdapat pada root project

Selain cara diatas, ada lagi cara lain yang di sediakan oleh Codeigniter 4 untuk membuat koneksi ke database yaitu dengan file env yang terdapat pada root project.

Temukan file env pada root project, kemudian rename (ganti nama) menjadi .env dan open file tersebut.

Kemudian temukan kode berikut:

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi

Ubah menjadi seperti berikut:

database.default.hostname = localhost
database.default.database = pos_db
database.default.username = root
database.default.password = 
database.default.DBDriver = MySQLi

Selesai.

Pada tutorial ini, saya menggunakan cara ini untuk membuat koneksi ke database.

 

#5. Menampilkan data dari database ke view (READ)

Sebelum menampilkan data dari database ke view menggunakan Codeigniter 4, terlebih dahulu Anda harus memiliki data pada table “product” yang terdapat di database “pos_db”.

Anda dapat mengeksekusi query berikut untuk meng-insert data pada table “product”:

INSERT INTO product(product_name, product_price) 
VALUES ('Product 1', 20000),('Product 2', 30000);

Query diatas akan meng-insert dua record data pada table “product” yang terdapat pada database.

1. Buat sebuah file model “Product_model.php” pada folder “app/Models” kemudian ketikan kode berikut:

<?php namespace App\Models;
use CodeIgniter\Model;

class Product_model extends Model
{
    protected $table = 'product';
    
    public function getProduct($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['product_id' => $id]);
        }   
    }

}

Pada model “Product_model.php” diatas, terdapat satu fungsi yaitu:

function getProduct($id = false).

Dimana function tersebut membawa parameter $id yang secara default di set false.

Didalam function getProduct terdapat dua kondisi yaitu:

Jika $id sama dengan false, maka kembalikan nilai semua data yang terdapat pada table “product” dengan kode:

return $this->findAll();

Pada kode diatas, codeigniter langsung mengetahui table yang digunakan yaitu table “product” yang telah di set melalui kode berikut:

protected $table = 'product';

Selain itu, jika $id memiliki nilai/value, maka kembalikan data berdasarkan value $id dengan kode berikut:

return $this->getWhere(['product_id' => $id]);

Hal ini, berfungsi jika Anda membutuhkan data product berdasarkan id tertentu, Anda tidak perlu membuat function lagi.

Keren bukan?

2. Buat sebuah file controller “Product.php” pada folder “app/Controllers” kemudian ketikan kode berikut:

<?php namespace App\Controllers;

use CodeIgniter\Controller;
use App\Models\Product_model;

class Product extends Controller
{
    public function index()
    {
        $model = new Product_model();
        $data['product'] = $model->getProduct();
        echo view('product_view',$data);
    }
}

Pada Controller “Product.php”, kita memanggil model “Product_model.php” dengan kode berikut:

use App\Models\Product_model;

Dan pada controller “Product.php” tersebut terdapat satu fungsi, yaitu function index().

Pada function index, kita membuat instance dari model “Product_model.php” dengan kode berikut:

$model = new Product_model();

Dengan demikian, Anda dapat memanggil semua function yang terdapat pada model “Product_model.php” dari function index pada Controller.

Selanjunya, terdapat kode berikut:

$data['product'] = $model->getProduct();

Kode tersebut berfungsi untuk memanggil function getProduct() yang terdapat pada model “Product_model.php” dan menyimpannya dalam variable $data[‘product’].

Selanjutnya, data tersebut di kirim ke view “product_view” dengan kode berikut:

echo view('product_view',$data);

Kode tersebut berfungsi untuk memanggil sebuah view “product_view” yang akan kita buat, sekaligus membawa data yang terdapat pada variable $data.

3. Buat sebuah file view “product_view.php” pada folder “app/Views” kemudian ketikan kode berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Product List</title>
</head>
<body> 
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Price</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($product as $row):?>
            <tr>
                <td><?= $row['product_name'];?></td>
                <td><?= $row['product_price'];?></td>
            </tr>
        <?php endforeach;?>
        </tbody>
    </table>
</body>
</html>

Kemudian jalankan project Anda dengan perintah berikut pada Terminal / Command Prompt:

php spark serve

Seperti gambar berikut:

Kemudian buka browser Anda dan kunjungi URL berikut:

http://localhost:8080/product

Jika berjalan dengan baik, maka akan terlihat seperti gambar berikut:

 

#6. Insert data ke database (CREATE)

1. Buat sebuah file view lagi bernama “add_product_view.php” pada folder “app/Views” kemudian ketikan kode berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Add New Product</title>
</head>
<body>
    <form action="/product/save" method="post">
        <input type="text" name="product_name">
        <input type="text" name="product_price">
        <button type="submit">Save</button>
    </form>
</body>
</html>

Kode diatas, berfungsi untuk membuat sebuah form dengan method post yang terdiri dari dua input text yaitu: product_name, dan product_price.

2. Buka file controller “Product.php” pada folder “app/Controllers” kemudian ubah menjadi seperti berikut:

<?php namespace App\Controllers;

use CodeIgniter\Controller;
use App\Models\Product_model;

class Product extends Controller
{
    public function index()
    {
        $model = new Product_model();
        $data['product'] = $model->getProduct();
        echo view('product_view',$data);
    }

    public function add_new()
    {
        echo view('add_product_view');
    }

    public function save()
    {
        $model = new Product_model();
        $data = array(
            'product_name'  => $this->request->getPost('product_name'),
            'product_price' => $this->request->getPost('product_price'),
        );
        $model->saveProduct($data);
        return redirect()->to('/product');
    }
}

Pada Controller “Product.php” terdapat tambahan dua function yaitu: function add_new() dan function save().

Function add_new() berfungsi untuk menampilkan form input product, sedangkan function save() berfungsi untuk menyimpan data ke database yang kirimkan ke model.

3. Buka file model “Product_model.php” pada folder “app/Models” kemudian ubah menjadi seperti berikut:

<?php namespace App\Models;
use CodeIgniter\Model;

class Product_model extends Model
{
    protected $table = 'product';
    
    public function getProduct($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['product_id' => $id]);
        }   
    }

    public function saveProduct($data)
    {
        $query = $this->db->table($this->table)->insert($data);
        return $query;
    }
}

Pada Model “Product_model.php” terdapat tambahan satu function yaitu: function saveProduct() yang berfungsi untuk menyimpan data ke database.

Kemudian kembali ke browser, dan kunjungi URL berikut:

http://localhost:8080/product/add_new

Jika berjalan dengan baik, maka akan terlihat form seperti berikut:

Kemudian masukkan nama product dan price, lalu klik tombol save.

Disini saya memasukkan nama productnya = “Product 3” dan price = “4000”.

Jika berjalan dengan baik, maka akan terlihat seperti gambar berikut:

 

#7. Update data ke database (UDPATE)

1. Buka file view “product_view.php” pada folder “app/Views” kemudian ubah menjadi seperti berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Product List</title>
</head>
<body>
    <a href="/product/add_new">Add New</a>
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Price</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($product as $row):?>
            <tr>
                <td><?= $row['product_name'];?></td>
                <td><?= $row['product_price'];?></td>
                <td><a href="/product/edit/<?= $row['product_id'];?>">Edit</a></td>
            </tr>
        <?php endforeach;?>
        </tbody>
    </table>
</body>
</html>

2. Buka file Controller “Product.php” pada folder “app/Controllers” kemudian ubah menjadi seperti berikut:

<?php namespace App\Controllers;

use CodeIgniter\Controller;
use App\Models\Product_model;

class Product extends Controller
{
    public function index()
    {
        $model = new Product_model();
        $data['product'] = $model->getProduct();
        echo view('product_view',$data);
    }

    public function add_new()
    {
        echo view('add_product_view');
    }

    public function save()
    {
        $model = new Product_model();
        $data = array(
            'product_name'  => $this->request->getPost('product_name'),
            'product_price' => $this->request->getPost('product_price'),
        );
        $model->saveProduct($data);
        return redirect()->to('/product');
    }

    public function edit($id)
    {
        $model = new Product_model();
        $data['product'] = $model->getProduct($id)->getRow();
        echo view('edit_product_view', $data);
    }

    public function update()
    {
        $model = new Product_model();
        $id = $this->request->getPost('product_id');
        $data = array(
            'product_name'  => $this->request->getPost('product_name'),
            'product_price' => $this->request->getPost('product_price'),
        );
        $model->updateProduct($data, $id);
        return redirect()->to('/product');
    }
}

Pada Controller “Product.php” terdapat tambahan 2 function yaitu: function edit() dan function update().

Function edit() berfungsi untuk menampilkan data pada form, sedangkan function update() berfungsi untuk mengupdate data ke database melalui model.

3. Buat sebuah file view lagi bernama “edit_product_view.php” pada folder “app/Views” kemudian ketikan kode berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Edit Product</title>
</head>
<body>
    <form action="/product/update" method="post">
        <input type="text" name="product_name" value="<?= $product->product_name;?>">
        <input type="text" name="product_price" value="<?= $product->product_price;?>">
        <input type="hidden" name="product_id" value="<?= $product->product_id;?>">
        <button type="submit">Update</button>
    </form>
</body>
</html>

4. Buka file Model “Product_model.php” pada folder “app/Models” kemudian ubah menjadi seperti berikut:

<?php namespace App\Models;
use CodeIgniter\Model;

class Product_model extends Model
{
    protected $table = 'product';
    
    public function getProduct($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['product_id' => $id]);
        }   
    }

    public function saveProduct($data)
    {
        $query = $this->db->table($this->table)->insert($data);
        return $query;
    }

    public function updateProduct($data, $id)
    {
        $query = $this->db->table($this->table)->update($data, array('product_id' => $id));
        return $query;
    }
}

Pada model “Product_model.php” terdapat tambahan satu function yaitu: function updateProduct() yang berfungsi untuk mengupdate data ke database.

Kemudian kembali ke browser, dan kunjungi URL berikut:

http://localhost:8080/product

Jika berjalan dengan baik, maka akan terlihat form seperti berikut:

Klik salah satu dari link Edit, maka akan tampil form edit seperti berikut:

Ubah data yang ingin di edit, kemudian klik tombol “Update”.

Jika berjalan dengan baik, maka akan terlihat seperti gambar berikut:

 

#8. Delete data ke database (DELETE)

1. Buka file view “product_view.php” pada folder “app/Views” kemudian ubah menjadi seperti berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Product List</title>
</head>
<body>
    <a href="/product/add_new">Add New</a>
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Price</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($product as $row):?>
            <tr>
                <td><?= $row['product_name'];?></td>
                <td><?= $row['product_price'];?></td>
                <td>
                    <a href="/product/edit/<?= $row['product_id'];?>">Edit</a>
                    <a href="/product/delete/<?= $row['product_id'];?>">Delete</a>
                </td>
            </tr>
        <?php endforeach;?>
        </tbody>
    </table>
</body>
</html>

2. Buka file Controller “Product.php” pada folder “app/Controllers” kemudian ubah menjadi seperti berikut:

<?php namespace App\Controllers;

use CodeIgniter\Controller;
use App\Models\Product_model;

class Product extends Controller
{
    public function index()
    {
        $model = new Product_model();
        $data['product'] = $model->getProduct();
        echo view('product_view',$data);
    }

    public function add_new()
    {
        echo view('add_product_view');
    }

    public function save()
    {
        $model = new Product_model();
        $data = array(
            'product_name'  => $this->request->getPost('product_name'),
            'product_price' => $this->request->getPost('product_price'),
        );
        $model->saveProduct($data);
        return redirect()->to('/product');
    }

    public function edit($id)
    {
        $model = new Product_model();
        $data['product'] = $model->getProduct($id)->getRow();
        echo view('edit_product_view', $data);
    }

    public function update()
    {
        $model = new Product_model();
        $id = $this->request->getPost('product_id');
        $data = array(
            'product_name'  => $this->request->getPost('product_name'),
            'product_price' => $this->request->getPost('product_price'),
        );
        $model->updateProduct($data, $id);
        return redirect()->to('/product');
    }

    public function delete($id)
    {
        $model = new Product_model();
        $model->deleteProduct($id);
        return redirect()->to('/product');
    }
}

Pada Controller “Product.php” terdapat tambahan satu function yaitu: function delete() yang berfungsi untuk menghapus data ke database melalui model.

3. Buka file Model “Product_model.php” pada folder “app/Models” kemudian ubah menjadi seperti berikut:

<?php namespace App\Models;
use CodeIgniter\Model;

class Product_model extends Model
{
    protected $table = 'product';
    
    public function getProduct($id = false)
    {
        if($id === false){
            return $this->findAll();
        }else{
            return $this->getWhere(['product_id' => $id]);
        }   
    }

    public function saveProduct($data)
    {
        $query = $this->db->table($this->table)->insert($data);
        return $query;
    }

    public function updateProduct($data, $id)
    {
        $query = $this->db->table($this->table)->update($data, array('product_id' => $id));
        return $query;
    }

    public function deleteProduct($id)
    {
        $query = $this->db->table($this->table)->delete(array('product_id' => $id));
        return $query;
    } 
}

Pada model “Product_model.php” terdapat tambahan satu function yaitu: function deleteProduct() yang berfungsi untuk menghapus data ke database.

Kemudian kembali ke browser, dan kunjungi URL berikut:

http://localhost:8080/product

Jika berjalan dengan baik, maka akan terlihat form seperti berikut:

Kemudian klik salah satu dari link “Delete” untuk menghapus data ke database.

Related: Tutorial CRUD CodeIgniter 4 dengan Modal Bootstrap

Kesimpulan:

Pembahasan kali ini adalah tentang tutorial lengkap Codeigniter 4 untuk pemula.

Mulai dari pengenalan Codeigniter 4, instalasi codeigniter 4, membuat aplikasi sederhana menggunakan codeigniter 4, mengkoneksikan codeigniter 4 dengan database.

Tidak hanya itu, Anda juga telah belajar bagaimana membuat aplikasi CRUD (Create-Read-Updatee-Delete) sederhana menggunakan Codeigniter 4.

Jadi, Tunggu apalagi. Let’s Coding!

Dapatkan diskon 75% paket hosting dan gratis domain + extra diskon 5% dengan menggunakan kupon: MFIKRI

Order Sekarang.!

Dapatkan diskon 75% paket hosting dan gratis domain + extra diskon 5% dengan menggunakan kupon: MFIKRI

Order Sekarang.!
Download Source Code

Komentar (5)

Pancha, 24 August 2020 02:06 - Reply

Mass Kan di ci3 kita ngambil data dari ajax make this->input->post() Kan di ci4 kita ga bisa make itu lg.. Sedangkan di getvar hasilnya null gmn tu mass?

anjarzainal, 29 August 2020 10:40 - Reply

Apa perbedaan pengodingan antara CI3 dan CI4 bg ???

Naufal Aprilian, 21 September 2020 19:04 - Reply

Mantap

Fandi, 17 March 2021 09:24 - Reply

Assalamu'alaikum. Mas, ada tutorial crud CI4 dengan multiple tabel ataupun join tabel ga? Misal ada tabel pegawai (id, namapeg, kodejabatan, kodegolongan, dll), tabel jabatan (id, namajabatan) tabel pangkat/golongan (id, namagolongan). Ketiga tabel tsb berelasi dan bs diakses melalui 2 (dua view); View pertama menampilkan namapeg, namajabatan, namagolongan dll. View kedua menampilkan detail dari pegawai (menampilkan view pertama beserta tabel ke 4). Untuk tabel ke 4 mungkin bisa berisi history pendidikan ataupun yg lainnya. Begitulah kira² gambarannya. Semoga Mas Fikri bs membantu. Terima kasih.

Pairun Saklitunov, 01 June 2022 21:40 - Reply

bagaimana caranya menampilkan data dari 2 tabel yang berbeda didalam 1 view yang sama ya kak ? misal saya punya tabel siswa berisi data2 siswa dan tabel guru berisi data2 guru. saya ingin menampilkan kedua tabel tersebut pada 1 halaman (nantinya akan ditampilkan dalam tabel yang berbeda). dan kedua tabel tersebut tidak berhubungan sehingga tidak memiliki join sudah coba cari2 referensi di internet, sampe pusing beberapa hari berhenti disini :) semoga berkenan menjawab

Leave a Comment