Anda di halaman 1dari 32

CRUD (CREATE,READ,UPDATE,DELETE)

Sebelum kita mulai praktik, ada tahapan-tahapan yang mesti kita lakukan, yaitu:
a. Membuat dan Mengkonfigurasi Database
Silahkan buka localhost/phpmyadmin kemudian buat database dengan nama
ci4app jangan lupa aktifkan apache web server di control panel xampp terlebih
dahulu seperti gambar dibawah ini :

Kemudian kita buat database nya di localhost/phpmyadmin pada browser dan


buat database dengan nama ci4app.

Hingga database yang berhasil dibuat muncul di daftar database local kita.
Kemudian buat table product dengan cara ketik command berikut pada terminal
yang ada di:

Kemudian buat table mahasiswa dengan cara ketik command berikut pada
terminal VScode kita:
php spark migrate:create mahasiswa

Sekarang akan muncul file baru di folder app/Database/Migrations.


Lalu akan terbuat sebuah file didalam folder app/Database/Migrations, nama file
tersebut akan diakhiri dengan nama Mahasiswa, buka file tersebut, dan isi
dengan codenya seperti berikut ini :
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class Mahasiswa extends Migration
{
public function up()
{
//
}

public function down()


{
//
}
}

Silahkan kita modifikasi kode program di atas untuk function menjadi :


<?php

namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class Mahasiswa extends Migration


{
public function up()
{
$this->forge->addField([
'nim' => [
'type' => 'INT',
'constraint' => 11,
'unsigned' => true,
],
'nama' => [
'type' => 'VARCHAR',
'constraint' => '255',
],
'jurusan' => [
'type' => 'VARCHAR',
'constraint' => '255',
],

'jenis_kelamin' => [
'type' => 'ENUM',
'constraint' => "'pria','wanita'",
],
'no_telp' => [
'type' => 'VARCHAR',
'constraint' => '100',
],
'email' => [
'type' => 'VARCHAR',
'constraint' => '100',
],
'alamat' => [
'type' => 'VARCHAR',
'constraint' => '255',
],
'created_at' => [
'type' => 'DATETIME',
'null' => true,
],
'updated_at' => [
'type' => 'DATETIME',
'null' => true,
]
]);
$this->forge->addPrimaryKey('nim');
$this->forge->createTable('mahasiswa');
}

//--------------------------------------------------------------------

public function down()


{
$this->forge->dropTable('mahasiswa');
}
}

Perintah diatas digunakan untuk membuat sebuah tabel dengan nama


mahasiswa, yang berisi kolom antara lain :
nim (Integer – Auto Increment – Primary Key)
nama (Varchar 255)
jurusan (Varchar 255)
jenis_kelamin (Enum[‘pria’,’wanita’])
no_telp (Varchar 100)
email (Varchar 100)
alamat (Varchar 255)
created_at (Date Time)
updated_at (Date Time)

di Codeigniter 4, kita bisa membuat table secara manual atau melalui migration.
Fitur migration ini akan kita bahas lebih detail pada pertemuan selanjutnya.

Langkah selanjutnya kita akan Setting Codeigniter 4 kita ci4app agar dapat
terkoneksi dengan database yang telah buat sebelumnya dengan cara :
- didalam folder dari project codeigniter4 terdapat file dengan nama env
silahkan rename menjadi .env
berikutnya buka file .env tersebut dan edit code didalamnya, untuk konfigurasi
database berada pada line 52 – 56, hilangkan tanda # untuk mengaktifkan
konfigurasi tersebut.
database.default.hostname = localhost
database.default.database = ci4app
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
Keterangan :
 hostname adalah alamat server dari database
 database adalah nama database yang barusan kita buat, jadi kita isi
nilainya dengan nama pegawai
 username adalah nama user dari database dalam contoh ini adalah root
 password adalah password dari database dalam contoh ini saya biarkan
kosong, karena default dari password user root di xampp itu kosong
 DBDriver saya biasakan default yaitu MySQLi
Berikutnya kita akan menjalankan file migration untuk membuat tabel didatabase,
silahkan masuk ke project codeigniter anda melalui terminal, lalu jalankan
perintah :
php spark migrate

Seperti pada tampilan dibawah ini :

lalu tekan enter, jika proses berhasil maka tampilannya adalah sebagai berikut :
Silahkan di cek database pada phpmyadmin untuk melihat struktur table yang
telah dibuat melalui fitur migration yang ada pada codeigniter 4

Sampai tahap ini kita sudah berhasil untuk membuat database ci4app dan table
mahasiswa untuk menyimpan data data mahasiswa. Untuk mengisi data
mahasiswa nya bisa secara manual melalui phpmyadmin atau kita dapat
membuat Insert Dummy Data menggunakan Seeding yang telah disediakan oleh
Codeigniter 4.

Kita coba akan tambahkan dummy data didalam tabel mahasiswa menggunakan
fitur seeding, sehingga nanti saat kita belajar untuk menampilkan data
mahasiswa ke dalam bentuk tabel kita sudah memiliki beberapa data didalam
tabel tersebut, langkah – langkanya adalah sebagai berikut :

Silahkan masuk kedalam project codeigniter 4 anda, melalui terminal, lalu


jalankan perintah dibawah ini :
php spark make:seeder MahasiswaSeeder
lalu tekan enter, jika berhasil maka akan terbuat sebuah file dengan nama
MahasiswaSeeder.php didalam folder app\Database\Seeds\
buka file tersebut, lalu tuliskan code didalam file MahasiswaSeeder.php

<?php

namespace App\Database\Seeds;

use CodeIgniter\Database\Seeder;
use CodeIgniter\I18n\Time;

class MahasiswaSeeder extends Seeder


{
public function run()
{
$data = [
[
'nim' => 'C2055201001',
'nama' => 'Alexander Osten Prawara',
'jurusan' => 'Teknik Informatika',
'jenis_kelamin' => 'pria',
'no_telp' => '081234555678',
'email' => 'ostensadja@gmail.com',
'alamat' => 'Jl. Perkutut No. 51, Palangka
Raya',
'created_at' => Time::now()
],
[
'nim' => 'C2055201002',
'nama' => 'Budi',
'jurusan' => 'Teknik Informatika',
'jenis_kelamin' => 'pria',
'no_telp' => '08571234567',
'email' => 'budi@gmail.com',
'alamat' => 'Jl. G.Obos No. 77, Palangka
Raya',
'created_at' => Time::now()
],
[
'nim' => 'C2055201003',
'nama' => 'Avrilyne Odela Prawara',
'jurusan' => 'Sistem Informasi',
'jenis_kelamin' => 'wanita',
'no_telp' => '08122334455',
'email' => 'odela@gmail.com',
'alamat' => 'Jl. Rembulan No. 90, Palangka
Raya',
'created_at' => Time::now()
]
];
$this->db->table('mahasiswa')->insertBatch($data);
}
}

Keterangan :
dalam perintah diatas, kita menginsert 3 data mahasiswa dengan nama alexander
osten prawara, budi, dan Avrilyne Odela Prawara.

berikutnya kita akan jalankan perintah diatas untuk insert data mahasiswa tersebut
ke dalam tabel mahasiswa, silahkan masuk ke folder project codeigniter melalui
terminal, lalu jalankan perintah sebagai berikut ini :

yang perlu kita perhatikan adalah dibagian nama file yaitu MahasiswaSeeder
silahkan sesuaikan untuk bagian ini sesuaikan dengan nama file Seeder, lalu
tekan enter untuk menjalankan perintah tersebut.

Lalu silahkan cek untuk tabel mahasiswa, harusnya sudah berisi 3 data
mahasiswa yang kita insert melalui fitur seeder ini.
b. Membuat Model Mahasiswa
Sebelum kita memulai proses membuat CRUD, kita persiapkan dulu model yang
akan kita gunakan untuk berkomunikasi dengan tabel mahasiswa di database,
untuk langkah awal buat file model dengan nama MahasiswaModel.php, simpan
file tersebut didalam folder app/Models
lalu isi file MahasisaModel.php dengan code sebagai berikut :
<?php

namespace App\Models;

use CodeIgniter\Model;

class MahasiswaModel extends Model


{
protected $table = "mahasiswa";
protected $primaryKey = "nim";
protected $returnType = "object";
protected $useTimestamps = true;
protected $allowedFields = ['nim', 'nama', 'jurusan', 'jenis_kelamin',
'no_telp', 'email', 'alamat'];
}

Keterangan :
 untuk classnya kita beri nama yang sama dengan nama filenya yaitu
MahasiswaModel
 beberapa settingan yang kita tulis adalah :
o $table dengan nilai mahasiswa karena kita akan komunikasi dengan
tabel mahasiswa
o $primaryKey dengan nilai nim karena kolom nim merupakan
primary key dari tabel mahasiswa
o $returnType dengan nilai object karena kita ingin untuk return type
nanti berupa object
o $useTimestamps dengan nilai true karena kita akan mengisikan
kolom created_at (saat insert data), dan kolom updated_at (saat
update data)
o $allowedFields kita isikan nama kolom di tabel mahasiswa yang
boleh diinsert data

c. Membuat Controller Mahasiswa


Berikutnya kita akan membuat menu untuk menampilkan data mahasiswa,
langkah – langkahnya adalah sebagai berikut :

Buatlah sebuah controller dengan nama file Mahasiswa.php didalam folder


app/Controllers, dan isi dengan code seperti berikut ini :

<?php

namespace App\Controllers;

use App\Models\MahasiswaModel;

class Mahasiswa extends BaseController


{
protected $mahasiswa;

function __construct()
{
$this->mahasiswa = new MahasiswaModel();
}

public function index()


{
$data['pageTitle'] = 'Daftar Mahasiswa';
$data['mahasiswa'] = $this->mahasiswa->findAll();
return view('dashboard/mahasiswa', $data);
}
}

Kemudian edit kembali file routes.php kita yang ada pada folder
apps/config/routes.php dengan menambahkan :

$routes->get('/mahasiswa', 'Mahasiswa::index');

d. Membuat Halaman View Mahasiswa pada folder app/views/dashboard/


Pada pertemuan sebelumnya kita telah membuat layout dashboard-layout.php
pada pertemuan integrasi codeigniter 4 dan admin LTE, layout yang kita buat
sekarang merupakan section content untuk halaman dinamis daftar mahasiswa.
Berikut isi dari file view mahasiswa yang kita buat :

Mahasiswa.php
<?= $this->extend('layout/dashboard-layout'); ?>
<?= $this->section('content'); ?>

<!-- /.card-header -->


<div class="card-body">
<?php if (!empty(session()->getFlashdata('message'))) : ?>
<div class="alert alert-success alert-dismissible fade show"
role="alert">
<?php echo session()->getFlashdata('message'); ?>
<button type="button" class="close" data-dismiss="alert" aria-
label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<?php endif; ?>
<a href="<?= base_url('/mahasiswa/create'); ?>" class="btn btn-
primary">Tambah</a>
<hr />
<table class="table table-bordered">
<thead>
<tr>
<th>No</th>
<th>Nim</th>
<th>Nama</th>
<th>Jurusan</th>
<th>No Telp</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
foreach ($mahasiswa as $row) {
?>
<tr>
<td><?= $no++; ?></td>
<td><?= $row->nim; ?></td>
<td><?= $row->nama; ?></td>
<td><?= $row->jurusan; ?></td>
<td><?= $row->no_telp; ?></td>
<td>
<a title="View" href="<?=
base_url("mahasiswa/view/$row->nim"); ?>" class="btn btn-
info">view</a>
<a title="Edit" href="<?= base_url("mahasiswa/edit/$row-
>nim"); ?>" class="btn btn-info">Edit</a>
<a title="Delete" href="<?=
base_url("mahasiswa/delete/$row->nim") ?>" class="btn btn-danger"
onclick="return confirm('Apakah Anda yakin ingin menghapus data
?')">Delete</a>
</td>
</tr>
<?php
}
?>

</tbody>
</table>
</div>
<!-- /.card-body -->

<?= $this->endSection('content'); ?>

Kemudian selanjutnya kita lihat hasilnya pada browser dengan mengetikkan


http://localhost:8080/mahasiswa jangan lupa untuk mengaktifkan server
development local kita dan database server kita di xampp.. 

e. Membuat Fitur Create


Setelah dalam bagian sebelumnya kita telah menampilkan data mahasiswa,
berikutnya kita akan membuat fitur untuk menambahkan data mahasiswa, langkah
– langkahnya adalah sebagai berikut :
pada step awal kita bisa menambahkan routing untuk kebutuhan menampilkan
form tambah data baru, silahkan buka file dengan nama Routes.php didalam
folder app/Config
tambahkan code routing seperti berikut :
$routes->get('/mahasiswa/create', 'Mahasiswa::create');
$routes->get('/mahasiswa/store', 'Mahasiswa::store');

Kemudian buatlah form input data pada folder


app/views/dassboard/mahasiswa_create.php untuk isi kode programnya dapat
dilihat seperti dibawah ini :

mahasiswa_create.php
<?= $this->extend('layout/dashboard-layout'); ?>
<?= $this->section('content'); ?>
<div class="col-md-10">
<!-- general form elements -->
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">Tambah Data Mahasiswa</h3>
</div>

<!-- /.card-header -->


<!-- form start -->
<?php if (!empty(session()->getFlashdata('error'))) : ?>
<div class="alert alert-light alert-dismissible fade show"
role="alert">
<h4 class="alert-heading">Periksa Entrian Form</h4>
</hr />
<?php echo session()->getFlashdata('error'); ?>
<button type="button" class="close" data-dismiss="alert" aria-
label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<?php endif; ?>

<form class="form-horizontal" method="post" action="<?=


base_url('mahasiswa/store') ?>">
<?= csrf_field(); ?>
<div class="card-body">
<div class="form-group row">
<label for="nim" class="col-sm-2 col-form-
label">Nim</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="nim"
name="nim" placeholder="Nim" value="<?= old('nim'); ?>">
</div>
</div>

<div class="form-group row">


<label for="nama" class="col-sm-2 col-form-
label">Nama</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="nama"
name="nama" value="<?= old('nama'); ?>">
</div>
</div>

<div class="form-group row">


<label for="jurusan" class="col-sm-2 col-form-
label">Jurusan</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="jurusan"
name="jurusan" value="<?= old('jurusan'); ?>">
</div>
</div>

<div class="form-group row">


<label for="jenis_kelamin" class="col-sm-2 col-form-
label">Jenis Kelamin</label>
<div class="col-sm-6">
<select name="jenis_kelamin" class="form-control"
id="jenis_kelamin">
<option value="pria">Pria</option>
<option value="wanita">Wanita</option>
</select>
</div>
</div>

<div class="form-group row">


<label for="no_telp" class="col-sm-2 col-form-label">No
Telp</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="no_telp"
name="no_telp" value="<?= old('no_telp') ?>" />
</div>
</div>

<div class="form-group row">


<label for="email" class="col-sm-2 col-form-
label">Email</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="email"
name="email" value="<?= old('email') ?>" />
</div>
</div>
<div class="form-group row">
<label for="alamat" class="col-sm-2 col-form-
label">Alamat</label>
<div class="col-sm-10">
<textarea class="form-control" name="alamat"
id="alamat"><?= old('alamat') ?></textarea>
</div>
</div>

</div>
<!-- /.card-body -->
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>

</div>
<!-- /.card-footer -->
</form>

</div>
<!-- /.card -->
</div>
<?= $this->endSection('content'); ?>

Selanjutnya kita modifikasi controller Mahasiswa.php yang ada pada folder


app/controllers/Mahasiswa.php

Tambahkan method baru create() dan store() di bawah ini pada file controller
Mahasiswa.php yang sebelumnya sudah pernah kita buat

public function create()


{
$data['pageTitle'] = 'Input Data Mahasiswa';
return view('dashboard/mahasiswa_create', $data);
}

public function store()


{
if (!$this->validate([
'nim' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],

'nama' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],
'jurusan' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],

'jenis_kelamin' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],
'no_telp' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],
'email' => [
'rules' => 'required|valid_email',
'errors' => [
'required' => '{field} Harus diisi',
'valid_email' => 'Email Harus Valid'
]
],
'alamat' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],

])) {
session()->setFlashdata('error', $this->validator->listErrors());
return redirect()->back()->withInput();
}

$this->mahasiswa->insert([
'nim' => $this->request->getVar('nim'),
'nama' => $this->request->getVar('nama'),
'jurusan' => $this->request->getVar('jurusan'),
'jenis_kelamin' => $this->request->getVar('jenis_kelamin'),
'no_telp' => $this->request->getVar('no_telp'),
'email' => $this->request->getVar('email'),
'alamat' => $this->request->getVar('alamat')
]);
session()->setFlashdata('message', 'Tambah Data Mahasiswa
Berhasil');
return redirect()->to('/mahasiswa');
}
selanjutnya kita lihat hasilnya pada browser dengan mengetikkan
http://localhost:8080/mahasiswa/create jangan lupa untuk mengaktifkan server
development local kita dan database server kita di xampp agar dapat diakses
melalui browser..
setelah tampil form nya silahkan isi data mahasiswa yang ingin kita tambahkan,
sebagai contoh saya menambahkan data mahasiswa atas nama Andina lalu tekan
tombol simpan.

Jika sdh berhasil maka data mahasiswa tersebut akan tampil di table mahasiswa.

f. Membuat Fitur Edit


Setelah sebelumnya kita telah belajar mengenai bagaimana cara menampilkan
data mahasiswa, dan menambahkan data mahasiswa, berikutnya kita akan
membuat fitur yang digunakan untuk update/edit data mahasiswa, untuk proses
update data mahasiswa ini akan kita bagi 2 bagian antara lain :

 Membuat dan menampilkan form edit data mahasiswa, yang berisi data
mahasiswa yang akan diedit
 Membuat method baru pada controller Mahasiswa.php untuk proses
update data mahasiswa.
Membuat dan Menampilkan Form Edit Data Mahasiswa
Pada saat kita membuat menu untuk menampilkan data mahasiswa, pada file view
yang berada di folder app/views/dasboard/mahasiswa.php, perhatikan pada line
40 kita buat tombol untuk kebutuhan edit data mahasiswa

<a title="Edit" href="<?= base_url("mahasiswa/edit/$row->nim"); ?>" class="btn btn-


info">Edit</a>

jika kita melihat code untuk link diatas, ketika tombol edit di klik maka akan
mengakses url : base_url/mahasiswa/edit/data-nim-mahasiswa

Langkah awal kita buat routing terlebih dahulu, silahkan buka file Routes.php di
folder app/Config/Routes.php tambahkan routing sebagai berikut :
$routes->get('/mahasiswa/edit', 'Mahasiswa::edit');

Setelah proses pembuatan routing, berikutnya kita akan membuat method edit di
controller Mahasiswa, silahkan buka controller Mahasiswa.php, dan
buat/tambahkan method edit seperti berikut ini :

function edit($nim)
{
$dataMahasiswa = $this->mahasiswa->find($nim);
if (empty($dataMahasiswa)) {
throw new
\CodeIgniter\Exceptions\PageNotFoundException('Data Mahasiswa
Tidak ditemukan !');
}
$data['pageTitle'] = 'Edit Data Mahasiswa';
$data['mahasiswa'] = $dataMahasiswa;
return view('dashboard/mahasiswa_edit', $data);
}
Kemudian buatlah form edit data pada folder
app/views/dassboard/mahasiswa_edit.php untuk isi kode programnya dapat
dilihat seperti dibawah ini :
mahasiswa_edit.php
<?= $this->extend('layout/dashboard-layout'); ?>
<?= $this->section('content'); ?>
<div class="col-md-10">
<!-- general form elements -->
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">Edit Data Mahasiswa</h3>
</div>

<!-- /.card-header -->


<!-- form start -->
<?php if (!empty(session()->getFlashdata('error'))) : ?>
<div class="alert alert-light alert-dismissible fade show"
role="alert">
<h4 class="alert-heading">Periksa Entrian Form</h4>
</hr />
<?php echo session()->getFlashdata('error'); ?>
<button type="button" class="close" data-dismiss="alert" aria-
label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<?php endif; ?>

<form class="form-horizontal" method="post" action="<?=


base_url('mahasiswa/update/' . $mahasiswa->nim) ?>">
<?= csrf_field(); ?>
<div class="card-body">

<div class="form-group row">


<label for="nama" class="col-sm-2 col-form-
label">Nama</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="nama"
name="nama" value="<?= $mahasiswa->nama; ?>">
</div>
</div>

<div class="form-group row">


<label for="jurusan" class="col-sm-2 col-form-
label">Jurusan</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="jurusan"
name="jurusan" value="<?= $mahasiswa->jurusan; ?>">
</div>
</div>

<div class="form-group row">


<label for="jenis_kelamin" class="col-sm-2 col-form-
label">Jenis Kelamin</label>
<div class="col-sm-6">
<select name="jenis_kelamin" class="form-control"
id="jenis_kelamin">
<option value="pria" <?= ($mahasiswa->jenis_kelamin
== "pria" ? "selected" : ""); ?>>Pria</option>
<option value="wanita" <?= ($mahasiswa-
>jenis_kelamin == "wanita" ? "selected" : ""); ?>>Wanita</option>
</select>
</div>
</div>

<div class="form-group row">


<label for="no_telp" class="col-sm-2 col-form-label">No
Telp</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="no_telp"
name="no_telp" value="<?= $mahasiswa->no_telp; ?>" />
</div>
</div>

<div class="form-group row">


<label for="email" class="col-sm-2 col-form-
label">Email</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="email"
name="email" value="<?= $mahasiswa->email; ?>" />
</div>
</div>
<div class="form-group row">
<label for="alamat" class="col-sm-2 col-form-
label">Alamat</label>
<div class="col-sm-10">
<textarea class="form-control" name="alamat"
id="alamat"><?= $mahasiswa->alamat; ?></textarea>
</div>
</div>

</div>
<!-- /.card-body -->
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>

</div>
<!-- /.card-footer -->
</form>

</div>
<!-- /.card -->
</div>
<?= $this->endSection('content'); ?>

selanjutnya coba kita lihat hasilnya pada browser dengan mengetikkan


http://localhost:8080/mahasiswa , pilih mahasiswa mana yang akan diedit
datanya dengan mengklik tombol edit. jangan lupa untuk mengaktifkan server
development local kita dan database server kita di xampp agar dapat diakses
melalui browser..
Jika form edit sudah muncul seperti gambar dibawah ini maka kita sudah berhasil
untuk menampilkan data mana yang akat kita edit sesuai dengan pilihan kita.
Jika kita klik tombol simpan maka data akan gagal terupdate karena kita belum
menambahkan method untuk mengeksekusi proses update data yang akan kita
edit, maka silahkan kita tambahkan lagi method update() pada controller
Mahasiswa.php dengan kode program seperti dibawah ini :

public function update($nim)


{
if (!$this->validate([
'nama' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],
'jurusan' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],
'jenis_kelamin' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],
'no_telp' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],
'email' => [
'rules' => 'required|valid_email',
'errors' => [
'required' => '{field} Harus diisi',
'valid_email' => 'Email Harus Valid'
]
],
'alamat' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Harus diisi'
]
],

])) {
session()->setFlashdata('error', $this->validator->listErrors());
return redirect()->back();
}

$this->mahasiswa->update($nim, [
'nama' => $this->request->getVar('nama'),
'jurusan' => $this->request->getVar('jurusan'),
'jenis_kelamin' => $this->request->getVar('jenis_kelamin'),
'no_telp' => $this->request->getVar('no_telp'),
'email' => $this->request->getVar('email'),
'alamat' => $this->request->getVar('alamat')
]);
session()->setFlashdata('message', 'Update Data Mahasiswa
Berhasil');
return redirect()->to('/mahasiswa');
}

Jika sudah ulagi kembali langkah untuk memilih update data mahasiswa seperti
sebelumnya dan klik tombol simpan, jika sudah berhasil maka aka nada
pemberitahuan “Update Data Mahasiswa Berhasil” seperti gambar dibawah ini :
g. Membuat Fitur Delete
Pada saat kita membuat menu untuk menampilkan data mahasiswa, pada file view
yang berada di folder app/views/dasboard/mahasiswa.php, perhatikan pada line
41 kita sudah membuat tombol untuk kebutuhan delete data mahasiswa

<a title="Delete" href="<?= base_url("mahasiswa/delete/$row->nim") ?>" class="btn


btn-danger" onclick="return confirm('Apakah Anda yakin ingin menghapus data
?')">Delete</a>

jika kita melihat code untuk link diatas, ketika tombol delete di klik maka akan
mengakses url : base_url/mahasiswa/delete/data-nim-mahasiswa

Selanjutnya kita harus menambahkan method baru yaitu delete() untuk


mengakomodir proses penghapusan data yang ada pada table mahasiswa, cara
nya dengan kita mengedit file controller Mahasiswa.php yang sebelumnya sudah
pernah kita buat. Berikut isi method delete() yang akan kita tambahkan :

function delete($nim)
{
$dataMahasiswa = $this->mahasiswa->find($nim);
if (empty($dataMahasiswa)) {
throw new
\CodeIgniter\Exceptions\PageNotFoundException('Data Mahasiswa
Tidak ditemukan !');
}
$this->mahasiswa->delete($nim);
session()->setFlashdata('message', 'Delete Data Mahasiswa
Berhasil');
return redirect()->to('/mahasiswa');
}

selanjutnya kita lihat hasilnya pada browser dengan mengetikkan


http://localhost:8080/mahasiswa jangan lupa untuk mengaktifkan server
development local kita dan database server kita di xampp agar dapat diakses
melalui browser..
pilih mahasiswa mana yang akan dihapus dengan mengklik tombol delete

jika proses delete data selesai.. maka data akan hilang, dan terdapat notifikasi
bertuliskan “Delete Data Mahasiswa Berhasil”.
h. Membuat Fitur View Detail.
Pada saat kita membuat menu untuk menampilkan data mahasiswa, pada file view
yang berada di folder app/views/dasboard/mahasiswa.php, perhatikan pada line
39 kita sudah membuat tombol untuk kebutuhan view data detail mahasiswa

<a title="View" href="<?= base_url("mahasiswa/view/$row->nim"); ?>" class="btn btn-


info">view</a>

jika kita melihat code untuk link diatas, ketika tombol view di klik maka akan
mengakses url : base_url/mahasiswa/view/data-nim-mahasiswa

Selanjutnya kita harus menambahkan method baru yaitu view() untuk


mengakomodir proses pemanggilan data detail yang ada pada table mahasiswa,
cara nya dengan kita mengedit file controller Mahasiswa.php yang sebelumnya
sudah pernah kita buat. Berikut isi method view() yang akan kita tambahkan :
public function view($nim)
{
$dataMahasiswa = $this->mahasiswa->find($nim);
if (empty($dataMahasiswa)) {
throw new
\CodeIgniter\Exceptions\PageNotFoundException('Data Mahasiswa
Tidak ditemukan !');
}
$data['pageTitle'] = 'Data Mahasiswa';
$data['mahasiswa'] = $dataMahasiswa;
return view('dashboard/mahasiswa_view', $data);
}

Method di atas berfungsi untuk mengembalikan nilai data detail mahasiswa


berdasarkan nim yang kita pilih dan mengembalikan nilai ke halaman views
mahasiswa_view.php yang ada pada folder app/views.
Karena kita belum membuat file view tersebut,maka silahkan membuat halaman
views mahasiswa_view.php seperti kode dibawah ini :
mahasiswa_view.php
<?= $this->extend('layout/dashboard-layout'); ?>
<?= $this->section('content'); ?>
<div class="col-md-12">
<!-- general form elements -->
<section class="content">
<div class="container-fluid">
<div class="row">
<!-- /.card-header -->
<!-- form start -->
<div class="col-md-3">
<!-- Profile Image -->
<div class="card card-primary card-outline">
<div class="card-body box-profile">
<div class="text-center">
<img class="profile-user-img img-fluid img-circle"
src="../../dist/img/user4-128x128.jpg" alt="User profile picture">
</div>
<h3 class="profile-username text-center"><?=
$mahasiswa->nama; ?></h3>
<p class="text-muted text-center"><?= $mahasiswa-
>nim; ?><br><?= $mahasiswa->jurusan; ?></p>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<div class="col-md-9">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">About Me</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
<strong><i class="fas fa-book mr-1"></i>
Education</strong>
<p class="text-muted">
Jurusan <?= $mahasiswa->jurusan; ?> Pada
Sekolah Tinggi Manajemen dan Informatika
(STMIK) Palangkaraya
</p>
<hr>
<strong><i class="fas fa-mobile-alt mr-1"></i> No
Telp/HP</strong>
<p class="text-muted"><?= $mahasiswa->no_telp;
?></p>
<hr>
<strong><i class="fas fa-envelope mr-1"></i> Email</strong>
<p class="text-muted"><?= $mahasiswa->email; ?></p>
<hr>
<strong><i class="fas fa-map-marker-alt mr-1"></i>
Location</strong>
<p class="text-muted"><?= $mahasiswa->alamat;
?></p>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
</div>
<!-- /.card -->
</div>
</div>
<?= $this->endSection('content'); ?>

Simpan file tersebut di apps/view/dashboard/mahasiswa_vies.php

selanjutnya kita lihat hasilnya pada browser dengan mengetikkan


http://localhost:8080/mahasiswa jangan lupa untuk mengaktifkan server
development local kita dan database server kita di xampp agar dapat diakses
melalui browser..
pilih mahasiswa mana yang akan dilihat detailnya dengan mengklik tombol view

Kemudian aplikasi akan mengarahkan kita ke halaman


http://localhost:8080/mahasiswa/view/C2055201003 sesuai dengan base URL
record yang kita pilih, pada kesempatan ini saya ingin melihat data detail
mahasiswa bernama Avrilyne Odela Prawara seperti gambar dibawah ini. 
Sampai disini kita sudah selesai mempraktikan materi dasar
Create,Update,Read,dan Delete pada framework codeigniter 4. Semoga dapat
memahami dengan mudah dan menyenangkan… 

Anda mungkin juga menyukai