Anda di halaman 1dari 33

Tutorial CRUD CodeIgniter 4 Lengkap Untuk Pemula

Tutorial CodeIgniter 4 : Beberapa Bulan lalu ramainya sebuah topik pembahasan
untuk framework codeigniter 4 di Indonesia, sebagai user CodeIgniter seperti saya
tentunya penasaran untuk mencoba framework yang masih anget ini.

CodeIgniter muncul versi terbaru yaitu versi 4, cukup banyak hal yang berubah dari segi
bentuk kode bagi saya seperti penambahan namespace, use dan sebagainya pada fitur
yang dibawa php versi 7 , meskipun saya juga merupakan user baru dari codeigniter 4
ini dan masih perlu sama-sama belajar untuk CI 4 ini.

" Nah langsung aja kita ketopik utama "

Berikut Tutorial basic crud codeIgniter 4 semoga gak bosan ya ngikutin sampe
akhir ya hehehe, cekidot :

Tutorial basic CRUD CodeIgniter 4

Hal-hal apa saja yg akan di pelajari pada tutorial basic CRUD CodeIgniter 4 ini yaitu
sebagai berikut :

1. Pengenalan CodeIgniter 4

2. Cara Installasi CodeIgniter 4

3. Membuat Aplikasi CRUD Sederhana dengan CodeIgniter 4, berikut hal-hal yang


dipelajari :

 Melihat konsep menampilkan data view ( Read )


 Mengkoneksikan CodeIgniter 4 dengan Database
 Menampilkan data dari database ke view dengan tampilan Bootstrap 4 ( Read )
 Melakukan Insert data ( Create )
 Melakukan Update data ( Update )
 Melakukan Delete data ( Delete )

Masuk Ke tutorial :

Pengenalan CodeIgniter 4

CodeIgniter merupakan salah satu Framework PHP untuk membangun aplikasi berbasis
web, yang bersifat open source yang menggunakan metode MVC ( Model, View,
Controller). Framework Codeigniter dibuat dengan tujuan yang sama dengan framework
lain yaitu membantu mempermudah kan developer atau programmer dalam
membangun sebuah aplikasi berbasis web, tanpa harus build dan coding dari awal.

MVC adalah teknik atau konsep yang memisahkan komponen utama menjadi 3 bagian :

 Model
Model merupakan bagian penanganan yang berhubungan atau manipulasi data
dengan database, misal mengambil data dari database, dan proses crud atau
intruksi yang berhubungan dengan database diletakan di dalam model.
 View
View merupakan bagian penanganan interface atau antarmuka web, yang
muncul kepada user, dengan memisahkan controller dengan model dapat
memudahkan programmer untuk melakukan suatu pengembangan web pada
tampilan halaman suatu website.
 Controller
Controller merupakan bagian instruksi aksi yang menghubungkan model dan
view, jadi controller ini kumpulan instruksi aksi yang berfungsi sebagai jembatan
dari model dan view.

Spesifikasi yang dibutuhkan CodeIgniter 4 : Menurut dokumentasi resmi CodeIgniter, CI


4 membutuhkan dan menggunakan spesifikasi PHP >= 7.2 , bila anda masih
menggunakan PHP < 7.2 disarankan untuk melakukan Update.

Installasi CodeIgniter 4

untuk menginstall CodeIgniter 4 dapat dilakukan dengan 2 cara, yaitu dengan manual
download dari web codeigniter dan instalasi dengan melalui composer.

1. Installasi Manual
Untuk Installasi Manual pada CodeIgniter 4,  sebenarnya persis dengan cara
menginstall CodeIgniter 3, dengan mendownload file CodeIgniter ke website nya
yaitu : https://codeigniter.com/ yang versi 4.0.2 atau langsung saja ke link
berikut : https://github.com/codeigniter4/framework/archive/v4.0.2.zip, lalu extrack
file CodeIgniter anda ke web server anda, misal xampp ke dalam folder htdocs.

Xampp Windows : C:/xampp/htdocs

Lampp Linux : ~/opt/lampp/htdocs

2. Installasi Melalui Composer


Nah CodeIgniter 4 bisa diinstall melalui composer, Composer merupakan
Dependency Manager untuk PHP. Untuk dapat melakukan installasi CodeIgniter
4 menggunakan composer, anda harus menginstall composer dahulu dikomputer
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 pada link berikut :

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 terinstall dengan baik maka ada terlihat versi composer nya
seperti berikut :

untuk langkah penginstallannya, silahkan buka terminal/ command prompt


berikut beralih ke folder xampp/htdocs untuk windows :

cd ../../xampp/htdocs

untuk versi linux dengan Lampp :

cd /opt/lampp/htdocs

setelah masuk folder htdocs, pada terminal atau command prompt anda,
langsung ketikan perintah untuk menginstall CodeIgniter 4 yaitu :

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

Atau seperti gambar berikut :


lalu setelah itu masuk ke folder belajar-ci dengan perintah berikut :

cd belajar-ci

dan ketikan perintah berikut untuk menjalankan file codeigniternya:

php spark serve


  

 
 

lalu buka web browser anda dan ketik url :http://localhost:8080

atau seperti gambar berikut :


Membuat aplikasi pertama dengan CodeIgniter 4

Pada CodeIgniter 4, mengambil konsep yang sama dengan CodeIgniter 3 yang


menggunakan konsep MVC ( Model View Controller ), kita bisa lihat struktur folder pada
CodeIgniter 4 sebagai berikut :

dan nah sebenernya codeigniter 4 memiliki struktur hampir sama dengan codeigniter 3 :

 Anda bisa membuka folder app yang dulunya bernama application. Di dalamnya


Anda tetap bisa membuat Controller, Model, View, Library, Helper, Third Party
dan lain-lain.
 Folder system dari segi penamaan tidak berubah, yg berisi tentang modul
system CodeIgniter 4 itu sendiri.
 Public. Folder ini berisi file penting yaitu index.php. Mirip dengan Framework
Laravel, file ini yang berfungsi untuk menjalankan aplikasi.
 Env. Di sini Anda bisa mengatur database (CI 3 adanya di config/database.php),
production / development, base_url, session, dan lain-lain.
 Spark. Mirip artisan pada Framework Laravel yang bisa digunakan jika Anda
membutuhkan sesuatu semisal menjalankan aplikasi.

# step 1 (pertama ) Cara menampilkan view pada CI 4 :

Nah pada step ini yang kita lakukan pertama adalah bagaimana cara controller
menampilkan view pada CI 4 :

1. buatlah sebuah controller dengan nama Halo.php pada


folder app/Controllers lalu isi file tersebut dengan code berikut :

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

class Halo extends Controller


{
public function index()
{
$data['title'] = 'Hallo Dunia !';
$data['msg'] = 'Selamat datang di CodeIgniter 4';
echo view('halo_view',$data);
}

}
2. lalu buatlah sebuah view dengan nama halo_view.php pada folder app/Views lalu
kita coba isi html nya dengan kode berikut :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?= $title;?></title>
</head>
<body>
<h1><?= $msg;?></h1>
</body>
</html>
kemudian cek hasil kerja kita, dengan buka browser dan buka url berikut :

http://localhost:8080/halo

jika berjalan maka terlihat seperti gambar berikut :

     

 # step 2 kedua yaitu mengetahui cara menghubungkan database pada


CodeIgniter 4 :

untuk membuat koneksi database, tentu kita akan buat database terlebih dahulu, buat
db dengan nama ci4_barang dan buat table barang :
  

 
 

Lalu membuat koneksi database dengan codeigniter, ada 2 cara :

Cara 1 dengan konfigurasi file Database.php pada folder


file app/Config/Database.php

Buka file Database.php lalu edit isi kode array, 'username',


'password', dan 'database' seperti versi pendahulunya, CI 3 :

public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root', // isi username
'password' => '', // isi password bila ada
'database' => 'ci4_barang', // ubah dbname
'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 2 Dengan env yg terdapat pada folder root :

cara ini cara ke 2 selain cara yang diatas, untuk mengkoneksikan database ke
codeigniter 4 :

temukan kode berikut :

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi
lalu ubah dengan menghilangkan tanda # atau comment, dan isi seperti biasa
username, password dan dbname nya :

database.default.hostname = localhost
database.default.database = ci4_barang
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
note : pada tutorial ini saya menggunakan cara ke 1 untuk membuat koneksi
database .

" Mulai Langkah-langkah CRUD "

#step 3 cara menampilkan data view dari database (READ)

pada step  ke 3 lakukan isi data table barang anda yang tadi anda buat dengan
menginsert table barang nya dengan mengeksekusi query tersebut :

INSERT INTO `barang` (`id_barang`, `nama_barang`, `qty`, `harga_beli`,


`harga_jual`)
VALUES (NULL, 'Bola Voli', '12', '80000', '120000');
atau isinya seperti ini pada phpmyadmin :
  

setelah table barang ada data nya,lalu anda ikuti langkah berikut :

1. Buat sebuah file model Barang_model.php pada folder app/Models, kemudian


ketikan kode berikut :

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

class Barang_model extends Model


{
protected $table = 'barang';

public function getBarang($id = false)


{
if($id === false){
return $this->findAll();
}else{
return $this->getWhere(['id_barang' => $id]);
}
}

}
model berikut mempunyai 1 fungsi yaitu :
1. menampilkan data tabel barang, dengan function getBarang() dengan
parameter $id
2. jika  parameter $id === false atau parameter tsb diartikan jika $id sama dengan
salah atau $id tidak bernilai/not value, maka table barang akan ditampilkan
semua dengan fungsi findAll()
3. lalu else nya jika $id != false, atau memiliki nilai atau value, maka kembalikan
data berdasarkan id_barang = $id dengan fungsi getWhere()

pada kode $table = 'barang'; menunjukan bahwa model ini menggunakan


table barang, pada database.

2. Buat sebuah Controller yaitu Barang.php pada folder app/Controllers kemudian


ketik kode berikut :

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

class Barang extends Controller


{
public function index()
{
$model = new Barang_model;
$data['title'] = 'Data Barang';
$data['getBarang'] = $model->getBarang();
echo view('header_view', $data);
echo view('barang_view', $data);
echo view('footer_view', $data);
}
}
pada controller kita menggunakan use App\Models\Barang_model; untuk memanggil
class model pada file model yg kita buat sebelumnya

pada function index() ada beberapa isi sebagai berikut :

$model = new Barang_model;


kode diatas untuk memanggil semua function pada class model Barang_model.php

$data['title'] = 'Data Barang';


kode diatas untuk membuat title dinamis pada tampilan websitenya.

$data['getBarang'] = $model->getBarang();
Kode tersebut berfungsi untuk memanggil function getBarang() yg terdapat pada
model Barang_model.php
selanjutnya kode view()

echo view('header_view', $data);


echo view('barang_view', $data);
echo view('footer_view', $data);
nah pada fungsi view di controller kita memakai 3 buah view
yaitu header_view, barang_view, dan footer_view :

1. header_view nanti berisi tentang  navigasi pada tag html


2. barang_view berisi tentang table barang pada html
3. dan footer_view berisi bagian footer bawah website

3. Lalu terakhir buat lah sebuah file view header_view.php, barang_view.php,


dan footer_view.php , nah pada tampilannya kita menggunakan bootstrap 4
sebagai tampilan utamanya agar terlihat lebih rapih dan bagus  :

disini kita tidak download file Bootstrapnya melainkan via online CDN jadi siapkan
internet untuk mengikuti tutorial nya

berikut adalah kode header_view.php :

<!doctype html>
<html lang="en">
<head>
<title><?= $title;?></title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-
fit=no">

<!-- Bootstrap CSS -->


<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-
ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-sm navbar-dark bg-info">
<div class="container">
<a class="navbar-brand" href="<?= base_url();?>">Data Barang Toko
Codekop</a>
<button class="navbar-toggler d-lg-none" type="button" data-
toggle="collapse" data-target="#collapsibleNavId" aria-controls="collapsibleNavId"
aria-expanded="false" aria-label="Toggle navigation"></button>
</div>
</nav>
berikut untuk kode footer_view.php :

<!-- Optional JavaScript -->


<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-
q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-
UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
crossorigin="anonymous"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-
JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
</body>
</html>
dan untuk barang_view.php berfungsi untuk menampikan data barang berikut
kodenya :

<div class="container pt-5">


<a href="<?= base_url('barang/tambah');?>" class="btn btn-success mb-2">Tambah
Data</a>
<div class="card">
<div class="card-header bg-info text-white">
<h4 class="card-title">Data Barang</h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>No.</th>
<th>Nama Barang</th>
<th>Qty</th>
<th>Harga Beli</th>
<th>Harga Jual</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php $no=1; foreach($getBarang as $isi){?>
<tr>
<td><?= $no;?></td>
<td><?= $isi['nama_barang'];?></td>
<td><?= $isi['qty'];?></td>
<td>Rp<?= number_format($isi['harga_beli']);?>,-
</td>
<td>Rp<?= number_format($isi['harga_jual']);?>,-
</td>
<td>
<a href="<?= base_url('barang/edit/'.
$isi['id_barang']);?>"
class="btn btn-success">
Edit</a>
<a href="<?= base_url('barang/hapus/'.
$isi['id_barang']);?>"
onclick="javascript:return confirm('Apakah
ingin menghapus data barang ?')"
class="btn btn-danger">
Hapus</a>

</td>
</tr>
<?php $no++;}?>
</tbody>

</table>
</div>
</div>
</div>
</div>
Kemudian Coba testing project kita ke url :

http://localhost:8080/barang

hasilnya seperti gambar berikut :


  

 
 

" Ayo berjuang, kita telah memasuki langkah Create, Update, Delete dengan CI
4 "

# step ke 4 (empat) membuat Create data pada tabel barang :

1. step pertama masih kita gunakan file Controller Barang.php, pada


folder app/Controllers, pada step ini kita membuat fungsi baru untuk menampilkan
tambah data barang, berikut kode Barang.php ketika ditambahkan fungsi baru
yaitu function tambah() :

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

class Barang extends Controller


{
public function index()
{
$model = new Barang_model;
$data['title'] = 'Data Barang';
$data['getBarang'] = $model->getBarang();
echo view('header_view', $data);
echo view('barang_view', $data);
echo view('footer_view', $data);
}

public function tambah()


{
$data['title'] = 'Tambah Data Barang';
echo view('header_view', $data);
echo view('tambah_view', $data);
echo view('footer_view', $data);
}
}
2. step 2 lalu sekarang buat file tambah_view pada folder app/Views dengan isi
kode berikut :

<div class="container p-5">


<a href="<?= base_url('barang');?>" class="btn btn-secondary mb-2">Kembali</a>
<div class="card">
<div class="card-header bg-info text-white">
<h4 class="card-title">Tambah Data Barang</h4>
</div>
<div class="card-body">
<form method="post" action="<?= base_url('barang/add');?>">
<div class="form-group">
<label for="">Nama Barang</label>
<input type="text" name="nama" class="form-control" required>
</div>
<div class="form-group">
<label for="">Qty</label>
<input type="number" name="qty" class="form-control" required>
</div>
<div class="form-group">
<label for="">Harga Beli</label>
<input type="number" name="beli" class="form-control"
required>
</div>
<div class="form-group">
<label for="">Harga Jual</label>
<input type="number" name="jual" class="form-control"
required>
</div>
<button class="btn btn-success">Tambah Data</button>
</form>

</div>
</div>
</div>
3. step 3 lalu membuat function add() untuk insert data kedalam database, dengan
cara kita ke file Controller Barang.php :

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

class Barang extends Controller


{
public function index()
{
$model = new Barang_model;
$data['title'] = 'Data Barang';
$data['getBarang'] = $model->getBarang();
echo view('header_view', $data);
echo view('barang_view', $data);
echo view('footer_view', $data);
}

public function tambah()


{
$data['title'] = 'Tambah Data Barang';
echo view('header_view', $data);
echo view('tambah_view', $data);
echo view('footer_view', $data);
}

public function add()


{
$model = new Barang_model;
$data = array(
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'harga_beli' => $this->request->getPost('beli'),
'harga_jual' => $this->request->getPost('jual')
);
$model->saveBarang($data);
echo '<script>
alert("Sukses Tambah Data Barang");
window.location="'.base_url('barang').'"
</script>';

}
}
 4. lalu step 4 buat function saveBarang() untuk fungsi insert data ke db pada
Model Barang_model.php , di folder app/Models :

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

class Barang_model extends Model


{
protected $table = 'barang';

public function getBarang($id = false)


{
if($id === false){
return $this->findAll();
}else{
return $this->getWhere(['id_barang' => $id]);
}
}

public function saveBarang($data)


{
$builder = $this->db->table($this->table);
return $builder->insert($data);
}

}
Setelah selesai, kita coba testing untuk tambah data barangnya yang memiliki tampilan
berikut :
Lalu kita ujicoba insert data barangnya :

  

 
 

Jika Berhasil data akan bertambah :


  

" Wow, Gak sadar sudah bisa create barang, ayo berjuang ke langkah
berikutnya "

#step 5 (kelima) Membuat Update / Edit Pada Tabel barang :

pada step ke 5 ini kita akan belajar membuat update / edit tabel barang pada
CodeIgniter 4 

1. step pertama tetap kita gunakan file Controller Barang.php, pada


folder app/Controllers, pada step ini kita membuat fungsi baru untuk menampilkan
edit data barang, berikut kode Barang.php ketika ditambahkan fungsi baru
yaitu function edit() :

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

class Barang extends Controller


{
public function index()
{
$model = new Barang_model;
$data['title'] = 'Data Barang';
$data['getBarang'] = $model->getBarang();
echo view('header_view', $data);
echo view('barang_view', $data);
echo view('footer_view', $data);
}

public function tambah()


{
$data['title'] = 'Tambah Data Barang';
echo view('header_view', $data);
echo view('tambah_view', $data);
echo view('footer_view', $data);
}

public function add()


{
$model = new Barang_model;
$data = array(
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'harga_beli' => $this->request->getPost('beli'),
'harga_jual' => $this->request->getPost('jual')
);
$model->saveBarang($data);
echo '<script>
alert("Sukses Tambah Data Barang");
window.location="'.base_url('barang').'"
</script>';

public function edit($id)


{
$model = new Barang_model;
$getBarang = $model->getBarang($id)->getRow();
if(isset($getBarang))
{
$data['barang'] = $getBarang;
$data['title'] = 'Edit '.$getBarang->nama_barang;

echo view('header_view', $data);


echo view('edit_view', $data);
echo view('footer_view', $data);

}else{

echo '<script>
alert("ID barang '.$id.' Tidak ditemukan");
window.location="'.base_url('barang').'"
</script>';
}
}
}
pada function edit($id) berfungsi untuk menampilkan data pada form edit barang nanti.

 disini kita buat parameter if isset $getBarang, yang artinya jika parameter $id /
atau id_barang valid maka dapat diedit,
 lalu sebaliknya jika tidak valid maka url itu akan melempar kembali ke home,
data barang, karena id barang tidak ditemukan.

note : logika edit data ini saya gunakan untuk mencegah orang yang memodifikasi
tangkapan id pada url.

2. step kedua lalu kita akan buat view edit_view.php, untuk tampilan editnya pada
folder app/Views dan isi kode berikut :

<div class="container p-5">


<a href="<?= base_url('barang');?>" class="btn btn-secondary mb-2">Kembali</a>
<div class="card">
<div class="card-header bg-info text-white">
<h4 class="card-title">Edit Barang : <?= $barang->nama_barang;?></h4>
</div>
<div class="card-body">
<form method="post" action="<?= base_url('barang/update');?>">
<div class="form-group">
<label for="">Nama Barang</label>
<input type="text" value="<?= $barang->nama_barang;?>"
name="nama" required class="form-control">
</div>
<div class="form-group">
<label for="">Qty</label>
<input type="number" value="<?= $barang->qty;?>" name="qty"
required class="form-control">
</div>
<div class="form-group">
<label for="">Harga Beli</label>
<input type="number" value="<?= $barang->harga_beli;?>"
name="beli" required class="form-control">
</div>
<div class="form-group">
<label for="">Harga Jual</label>
<input type="number" value="<?= $barang->harga_jual;?>"
name="jual" required class="form-control">
</div>
<input type="hidden" value="<?= $barang->id_barang;?>"
name="id_barang">
<button class="btn btn-success">Edit Data</button>
</form>

</div>
</div>
</div>
3. step 3 lalu membuat function update() untuk update data kedalam database,
dengan cara kita ke file Controller Barang.php :

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

class Barang extends Controller


{
public function index()
{
$model = new Barang_model;
$data['title'] = 'Data Barang';
$data['getBarang'] = $model->getBarang();
echo view('header_view', $data);
echo view('barang_view', $data);
echo view('footer_view', $data);
}

public function tambah()


{
$data['title'] = 'Tambah Data Barang';
echo view('header_view', $data);
echo view('tambah_view', $data);
echo view('footer_view', $data);
}

public function add()


{
$model = new Barang_model;
$data = array(
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'harga_beli' => $this->request->getPost('beli'),
'harga_jual' => $this->request->getPost('jual')
);
$model->saveBarang($data);
echo '<script>
alert("Sukses Tambah Data Barang");
window.location="'.base_url('barang').'"
</script>';

public function edit($id)


{
$model = new Barang_model;
$getBarang = $model->getBarang($id)->getRow();
if(isset($getBarang))
{
$data['barang'] = $getBarang;
$data['title'] = 'Edit '.$getBarang->nama_barang;

echo view('header_view', $data);


echo view('edit_view', $data);
echo view('footer_view', $data);

}else{

echo '<script>
alert("ID barang '.$id.' Tidak ditemukan");
window.location="'.base_url('barang').'"
</script>';
}
}

public function update()


{
$model = new Barang_model;
$id = $this->request->getPost('id_barang');
$data = array(
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'harga_beli' => $this->request->getPost('beli'),
'harga_jual' => $this->request->getPost('jual')
);
$model->editBarang($data,$id);
echo '<script>
alert("Sukses Edit Data Barang");
window.location="'.base_url('barang').'"
</script>';

}
4. lalu step 4 buat function editBarang() untuk fungsi update data ke db pada
Model Barang_model.php , di folder app/Models :

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

class Barang_model extends Model


{
protected $table = 'barang';

public function getBarang($id = false)


{
if($id === false){
return $this->findAll();
}else{
return $this->getWhere(['id_barang' => $id]);
}
}

public function saveBarang($data)


{
$builder = $this->db->table($this->table);
return $builder->insert($data);
}

public function editBarang($data,$id)


{
$builder = $this->db->table($this->table);
$builder->where('id_barang', $id);
return $builder->update($data);
}

}
Setelah selesai, kita coba testing edit data barangnya yang memiliki tampilan berikut
dengan edit nama barang Bola Voli  dan ganti dengan Bola Kaki :

lalu jika berhasil diupdate, akan berganti nama barangnya :


  

 
 

" Yosh !! kita telah berjuang sampai sini, gass ke langkah terakhir "

#step ke 6 lalu kita buat delete / hapus pada tabel barang :

1. step pertama tetap kita gunakan file Controller Barang.php, pada


folder app/Controllers, pada step ini kita membuat fungsi baru untuk menghapus
barang pada db, berikut kode Barang.php ketika ditambahkan fungsi baru
yaitu function hapus() :

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

class Barang extends Controller


{
public function index()
{
$model = new Barang_model;
$data['title'] = 'Data Barang';
$data['getBarang'] = $model->getBarang();
echo view('header_view', $data);
echo view('barang_view', $data);
echo view('footer_view', $data);
}
public function tambah()
{
$data['title'] = 'Tambah Data Barang';
echo view('header_view', $data);
echo view('tambah_view', $data);
echo view('footer_view', $data);
}

public function add()


{
$model = new Barang_model;
$data = array(
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'harga_beli' => $this->request->getPost('beli'),
'harga_jual' => $this->request->getPost('jual')
);
$model->saveBarang($data);
echo '<script>
alert("Sukses Tambah Data Barang");
window.location="'.base_url('barang').'"
</script>';

public function edit($id)


{
$model = new Barang_model;
$getBarang = $model->getBarang($id)->getRow();
if(isset($getBarang))
{
$data['barang'] = $getBarang;
$data['title'] = 'Edit '.$getBarang->nama_barang;

echo view('header_view', $data);


echo view('edit_view', $data);
echo view('footer_view', $data);
}else{

echo '<script>
alert("ID barang '.$id.' Tidak ditemukan");
window.location="'.base_url('barang').'"
</script>';
}
}

public function update()


{
$model = new Barang_model;
$id = $this->request->getPost('id_barang');
$data = array(
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'harga_beli' => $this->request->getPost('beli'),
'harga_jual' => $this->request->getPost('jual')
);
$model->editBarang($data,$id);
echo '<script>
alert("Sukses Edit Data Barang");
window.location="'.base_url('barang').'"
</script>';
}

public function hapus($id)


{
$model = new Barang_model;
$getBarang = $model->getBarang($id)->getRow();
if(isset($getBarang))
{
$model->hapusBarang($id);
echo '<script>
alert("Hapus Data Barang Sukses");
window.location="'.base_url('barang').'"
</script>';

}else{
echo '<script>
alert("Hapus Gagal !, ID barang '.$id.' Tidak ditemukan");
window.location="'.base_url('barang').'"
</script>';
}
}

}
pada function hapus($id) berfungsi untuk hapus data pada tabel barang.

 disini kita buat parameter if isset $getBarang, yang artinya jika parameter $id /
atau id_barang valid maka dapat dihapus,
 lalu sebaliknya jika tidak valid maka url itu akan melempar kembali ke home dan
gagal dihapus data barangnya, karena id barang tidak ditemukan.

note : logika hapus ini sama dengan edit data, ini saya gunakan untuk mencegah
orang yang memodifikasi tangkapan id pada url.

2. lalu step 2  buat function hapusBarang() untuk fungsi hapus data tabel pada


Model Barang_model.php , di folder app/Models :

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

class Barang_model extends Model


{
protected $table = 'barang';

public function getBarang($id = false)


{
if($id === false){
return $this->findAll();
}else{
return $this->getWhere(['id_barang' => $id]);
}
}

public function saveBarang($data)


{
$builder = $this->db->table($this->table);
return $builder->insert($data);
}

public function editBarang($data,$id)


{
$builder = $this->db->table($this->table);
$builder->where('id_barang', $id);
return $builder->update($data);
}

public function hapusBarang($id)


{
$builder = $this->db->table($this->table);
return $builder->delete(['id_barang' => $id]);
}

}
Horee, selesai, nah sekarang langkah terakhir kita coba testing hapus data nya yang
kita hapus disini nama barang Bola Basket :

Lalu jika sukses, nama barang Bola Basket, akan hilang :


  

Note :

Untuk mengganti halaman root utama atau default url


dari http://localhost:8080/barang, menjadi http://localhost:8080   anda dapat
mengubahnya dengan cara mengganti router controller default nya pada
folder app/Config/Routes.php lalu cari kode berikut :

$routes->get('/', 'Home::index');
dan ubah menjadi :

$routes->get('/', 'Barang::index');
Lalu buka browser pada url :

http://localhost:8080/

Selesai ..

" Selamat kita telah menyelesaikan Tutorial CRUD CodeIgniter 4 Lengkap


Untuk Pemula "

Akhir kata :

Pembahasan ini untuk tutorial lengkap crud CI4 untuk pemula, dimulai dari pengenalan
apa itu CodeIgniter 4, sampai membuat Aplikasi Crud sederhana dengan menggunakan
Bootstrap, dan mengkoneksikan dengan database.

Anda mungkin juga menyukai