02-05. Modul Codeigniter Dasar
02-05. Modul Codeigniter Dasar
DAFTAR ISI
DAFTAR ISI ................................................................................................1
BAGIAN I INTRODUCTION ........................................................................2
Definisi Codeigniter ............................................................................. 2
Definisi Framework ............................................................................... 3
Struktur File Codeigniter 4 ................................................................... 3
Model View Controller ........................................................................ 4
Cara Kerja ............................................................................................ 5
Mengapa Codeigniter? ...................................................................... 5
BAGIAN II INSTALATION & CONFIGURATION .........................................6
Instalasi Secara Manual ...................................................................... 6
Instalasi Menggunakan Composer .................................................... 9
Configurasi pertama kali................................................................... 14
BAGIAN III MENGENAL MVC ................................................................. 15
Controller ............................................................................................ 15
Models ................................................................................................ 16
Views ................................................................................................... 16
Membuat Controllers ........................................................................ 17
Membuat View .................................................................................. 20
Membuat Models .............................................................................. 27
Membuat Database ...................................................................... 28
Membuat Table ............................................................................. 29
Mengisi Data dalam Tabel ............................................................ 30
Melihat data yang sudah di input ................................................ 32
Konfigurasi Database di Codeigniter 4 ........................................ 32
Membuat Model ............................................................................ 33
Menambahkan Function di Controller ......................................... 33
Menampilkan Data dengan membuat view .............................. 34
BAGIAN IV MEMBUAT CRUD .................................................................. 36
Langkah 1. Membuat Read (Tampil Data) ..................................... 36
Langkah 2. Membuat Create (Tambah Data) ............................... 39
Langkah 3. Membuat Update (Edit Data) ...................................... 41
Langkah 4. Membuat Delete (Hapus Data) ................................... 44
1
•••
BAGIAN I INTRODUCTION
Pada bulan juli 2013, EllisLab mengumumkan Definisi Codeigniter
bahwa mereka mencari pemilik baru untuk
Codeigniter karena internal mereka sendiri tidak Sebuah Framework PHP
memiliki cukup fokus untuk terus yang bersifat open source
mengembangkan Codeigniter. Akhirnya pada dan menggunakan konsep
bulan Oktober 2014, kepemilikan Codeigniter MVC (Model, View,
berpindah tangan kepada British Columbia Controller). Codeigniter
Institute of Technology, salah satu sekolah tinggi biasa disingkat CI
teknologi di Kanada. tujuannya memudahkan
developer untuk membuat
Setelah hampir lima bulan lamanya sejak aplikasi web dengan
peralihan kepemilikan, BCIT akhirnya merilis cepat dan mudah.
Codeigniter 3.0. Berkat perkembangan teknologi Codeigniter dirilis pada 28
yang cepat, Codeigniter dipaksa melakukan Februari 2006. Versi terakhir
perubahan besar-besaran maka lahir lah versi pada saat modul ini dibuat
baru yaitu versi 4.0 adalah 4.1.4 dan bisa di
download di
Codeigniter sendiri memberikan 3 pilihan yaitu : www.codeigniter/downloa
Codeigniter 2, Codeigniter 3 dan Codeigniter 4 d . Codeigniter ditulis
dengan Bahasa
Codeigniter 2 merupakan versi legacy (lama), Pemograman PHP.
Codeigniter 3 merupakan versi terbaru dari
Codeigniter, sedangkan Codeigniter 4
merupakan versi masa depan Codeigniter.
Definisi Codeigniter
2
•••
Definisi Framework
APP
Directory app adalah tempat semua kode aplikasi anda berada, hadir
dengan struktur direktori default yang bekerja dengan baik untuk banyak
aplikasi. Terdapat beberapa folder didalamnya :
/app
/Config Menyimpan file konfigurasi
/Controllers Controllers menentukan aliran program
/Database Menyimpan migrasi database
/Filters Menyimpan kelas filter yang dapat dijalankan sebelum dan sesudah
controllers
/Helpers Helpers menyimpan koleksi fungsi standalone
/Language Dukungan multi bahasa
/Libraries Dukungan kelas dan fungsi
/Models Model bekerja dengan database
/ThirdParty Pustaka pihak ketiga yang dapat digunakan dalam aplikasi
/Views Tampilan HTML yang ditampilkan ke klien.
SYSTEM
Directory system menyimpan file-file yang membentuk kerangka itu
sendiri. File dalam direktori sistem tidak boleh dimodifikasi.
3
•••
PUBLIC
Directory public menyimpan bagian yang dapat diakses browser.
Biasanya berisi halaman HTML atau tambahan seperti CSS, Javascript dll
WRITABLE
Directory writable menyimpan direktori apapun yang mungkin perlu ditulis
selama pengembangan. Termasuk menyimpan file cache, log dan setiap
unggahan yang dikirim pengguna.
TEST
Directory test ini diatur untuk menyimpan file pengujian anda
DOCS
Directory docs ini menyimpan Salinan lokal panduan pengguna CI 4
4
•••
Cara Kerja
Mengapa Codeigniter?
1. Open Source
2. Performa sangat cepat
3. Konfigurasi yang mudah
4. Banyak Komunitas dan Pengguna
5. Terdapat dokumentasi penggunaan
6. Banyak Fitur seperti Helper, Library dll
7. Kemudahan dalam penggunaan
8. Keamanan yang cukup baik
9. dlll
Baca User Guide dari Codeigniter 4 untuk mengenal lebih jauh lagi
Panduan Offline :
https://github.com/codeigniter4/userguide/archive/v4.1.4.zip
5
•••
6
•••
Rename menjadi
Jika sudah aktif, sekarang coba buka web browser dan buka alamat
http://localhost/latihan_ci4/public/.
7
•••
Namun jika tampil seperti ini, maka ada beberapa Langkah yg harus
dilakukan.
Rename menjadi
Buka file .env menggunakan editor yg tersedia. Lalu rubah baris ke 17 dari
# CI_ENVIRONMENT = production menjadi CI_ENVIRONMENT =
development
Langkah kedua, buka aplikasi xampp, lalu pilih tombol Config, lalu pilih
PHP (php.ini)
8
•••
;extension=intl
// ubah menjadi
extension=intl
;extension=mbstring
// ubah menjadi
extension=mbstring
dan seterusnya. Lalu simpan, ctrl + s.
9
•••
10
•••
11
•••
12
•••
cd latihan_ci4
13
•••
localhost:8080
14
•••
Folder Controllers
Folder Models
Folder Views
Controller
15
•••
Models
Pada Codeigniter yang sudah kita install tadi, terdapat folder models yang
nantinya file-file model yang kita buat disimpan difolder tersebut. Namun
folder models tersebut belum terdapat file-file models.
Views
16
•••
Pada bagian ini akan membahas mengenai implementasi mvc lebih lanjut,
dari mulai membuat controller baru, menambahkan fungsi dalam
controller, membuat views, membuat models dan database beserta table-
tabel.
Membuat Controllers
Cara Pertama
Cara Kedua
Untuk latihan, kita akan coba buat controller kita sendiri, kita akan buat
controller dengan nama “Latihan.php” disimpan di folder Controller,
Kemudian kita ketik script dibawah ini.
<?php
namespace App\Controllers;
class Latihan extends BaseController
{
public function index()
{
echo "Saat ini kita sedang berada pada Controllers Latihan";
}
} 17
?>
•••
Setelah script ini jadi kita panggil melalui browser dengan mengetikan url
localhost:8080/latihan
<?php
namespace App\Controllers;
class Latihan extends BaseController
{
public function index()
{
echo "Saat ini kita sedang berada pada Controllers Latihan";
}
}
?>
Setelah script ini jadi kita panggil melalui browser dengan mengetikan url
localhost/latihan_ci/public/latihan
18
•••
localhost:8080/latihan
localhost/latihan_ci/public/latihan
<?php
namespace App\Controllers;
class Latihan extends BaseController
{
public function index()
{
echo "Saat ini kita sedang berada pada Controllers Latihan";
}
}
?>
function yang baru kita buat dengan mengetik nama function setelah
nama Controller. Dalam contoh nama Controller adalah Latihan dan
nama function adalah codeigniter, sehingga di browser url kita ketik
sebagai berikut :
localhost:8080/latihan/codeigniter
localhost/latihan_ci/public/latihan/codeigniter
19
•••
Membuat View
20
•••
}
?>
localhost/latihan_ci/public/latihan/menampilkan_view
21
•••
<!doctype html>
<html lang="en">
<head>
<!-- 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.5.0/cs
s/bootstrap.min.css" integrity="sha384-
9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dK
Gj7Sk" crossorigin="anonymous">
<title>Halaman Tampil Banyak View</title>
</head>
<body>
22
•••
}
?>
23
•••
localhost/latihan_ci/public/latihan/tampil_view (Menggunakan
Apache XAMPP)
24
•••
<?= $this->renderSection('isi')?>
<script src="https://code.jquery.com/jquery-
3.5.1.slim.min.js" integrity="sha384-
DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+Or
CXaRkfj" crossorigin="anonymous"></script>
25
•••
<script
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/u
md/popper.min.js" integrity="sha384-
Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvo
xMfooAo" crossorigin="anonymous"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/j
s/bootstrap.min.js" integrity="sha384-
OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh
/kR0JKI" crossorigin="anonymous"></script>
</body>
</html>
26
•••
Membuat Models
Model juga dibuat untuk memperoleh data dari database. Hal baru dari
codeigniter 4 adalah model terdapat pada directory app/models dan
ditulis sebagai extends dari fille Model (System/Model.php).
Contoh Model :
<?php namespace App\Models;
use CodeIgniter\Model;
class LatihanModel extends Model
{
Sebagai bahan latihan kita, kita akan buat dulu sebuah database dan
table menggunakan phpmyadmin. Untuk latihan ini kita membuat satu
database dan satu table saja. Nama database: db_latihan dan nama
table: tbl_mahasiswa.
27
•••
Buka kembali XAMPP lalu aktifkan service mysql seperti gambar dibawah
ini
Setelah service mysql aktif lalu buka phpMyAdmin melalui browser dengan
mengetikkan URL localhost/phpMyAdmin
Membuat Database
28
•••
Membuat Table
29
•••
Isikanlah seluruh kolom atau field yang sudah kita susun lengkap dengan
jumlah kolom beserta lebar kolomnnya, untuk menentukan primary key
sebuah table, anda klik pada bagian index, kemudian pilih PRIMARY,
pastikan anda memilih primary key sesuai dengan yang sudah di
rencanakan. Untuk table ini kita membuat table tbl_mahasiswa.
Setelah semua kolom sudah diisikan, klik tombol save. Ilustrasi gambar bisa
dilihat pada gambar berikut
Jika proses ini selesai, anda akan melihat di bagian kiri halaman
phpMyAdmin sudah ada table baru yang kita buat yaitu table
tbl_mahasiswa yang berada dalam database db_latihan
30
•••
latihan kita adalah table tbl_mahasiswa, lalu klik tab Insert yang berada
pada bagian atas phpMyAdmin.
Akan muncul halaman pengisian data dan isikan data sample yang di
inginkan, sebagai contoh disini kita memasukan 2 sample data. lalu klik
tombol Go untuk menyimpan data yang sudah di inputkan, perhatikan
contoh pada gambar.
31
•••
Untuk melihat data yang sudah di inputkan, anda klik menu Browse pada
halaman phpMyAdmin nanti akan muncul.
Sampai disini kita selesai membuat database dan table latihan kita,
saatnya kita kembali pada pembahasan Models CodeIgniter.
database.default.hostname = localhost
database.default.database = db_latihan
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
database.default.DBPrefix =
32
•••
Membuat Model
namespace App\Models;
use CodeIgniter\Model;
<?php
namespace App\Controllers;
use App\Models\LatihanModel;
class Latihan extends BaseController
{
protected $latihanmodel;
public function __construct()
{
$this->latihanmodel = new LatihanModel();
}
33
•••
<?php
foreach ($mahasiswa as $key) : ?>
NIM : <?php echo $key['nim']; ?><br>
Nama : <?php echo $key['nama']; ?><br>
Alamat :<?php echo $key['alamat']; ?><br>
Handphone : <?php echo $key['no_hp']; ?><br>
<hr>
<?php endforeach; ?>
34
•••
localhost/latihan_ci/public/latihan/menampilkan_view
35
•••
<?php
namespace App\Controllers;
use App\Models\MahasiswaModel;
class Mahasiswa extends BaseController
{
protected $mahasiswamodel;
public function __construct()
{
$this->mahasiswamodel = new MahasiswaModel();
}
public function index()
{
$mahasiswa = $this->mahasiswamodel->findAll();
$data = [
'title' => 'Data Mahasiswa',
'mahasiswa' => $mahasiswa
];
echo view('mahasiswa/data_mahasiswa', $data);
}
}
36
•••
c. Buatlah folder baru pada views dengan nama template dan buat file
baru dengan nama template.php. kemudian ketiklah script berikut ini.
<!doctype html>
<html lang="en">
<head>
<!-- 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://cdn.jsdelivr.net/npm/[email protected]/dist/css/boo
tstrap.min.css" integrity="sha384-
F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3Ahi
U" crossorigin="anonymous">
<title>Aplikasi CRUD</title>
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-
dark">
<div class="container-fluid">
<a class="navbar-brand" href="#"></a>
<button class="navbar-toggler" type="button" data-bs-
toggle="collapse" data-bs-target="#navbarCollapse" aria-
controls="navbarCollapse" aria-expanded="false" aria-
label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page"
href="#">Home</a>
</li>
</ul>
</div>
</div>
</nav>
<?= $this->renderSection('isi')?>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
crossorigin="anonymous"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/twitter-
bootstrap/5.1.1/js/bootstrap.min.js"></script>
</body>
</html>
d. Setelah memiliki file template selanjutnya kita buat file content/isi nya.
Buatlah folder baru pada views dengan nama mahasiswa dan buat file
baru dengan nama data_mahasiswa.php kemudian ketiklah script berikut
ini.
37
•••
Dengan tahap diatas kita telah selesai membuat Read, kita bisa ujicoba
hasilnya dengan mengakses url :
//jika dijalankan melalui Local Development Server
localhost:8080/mahasiswa
//jika dijalankan melalui Apache Server
localhost/latihan_ci/public/mahasiswa
38
•••
<?php
namespace App\Models;
use CodeIgniter\Model;
class MahasiswaModel extends Model
{
protected $table = 'tbl_mahasiswa';
protected $allowedFields = ['nim', 'nama', 'alamat',
'no_hp'];
}
<?php
namespace App\Controllers;
use App\Models\MahasiswaModel;
class Mahasiswa extends BaseController
{
protected $mahasiswamodel;
public function __construct()
{
$this->mahasiswamodel = new MahasiswaModel();
}
public function index()
{
$mahasiswa = $this->mahasiswamodel->findAll();
$data = [
'title' => 'Data Mahasiswa',
'mahasiswa' => $mahasiswa
];
echo view('mahasiswa/data_mahasiswa', $data);
}
public function tambah()
{
$data = [
'title' => 'Tambah Data Mahasiswa',
];
echo view('mahasiswa/form_tambah', $data);
}
public function simpan()
{
$this->mahasiswamodel->save([
'nim' => $this->request->getVar('nim'),
'nama' => $this->request->getVar('nama'),
'alamat' => $this->request->getVar('alamat'),
'no_hp' => $this->request->getVar('no_hp')
]);
return redirect()->to('mahasiswa');
}
}
39
•••
40
•••
41
•••
$this->mahasiswamodel->update_data($data, $id_mhs);
return redirect()->to('mahasiswa');
}
}
42
•••
Dengan tahap diatas kita telah selesai membuat Update, kita bisa
ujicoba hasilnya dengan mengakses url :
//jika dijalankan melalui Local Development Server
localhost:8080/mahasiswa/edit
//jika dijalankan melalui Apache Server
localhost/latihan_ci/public/mahasiswa/edit
43
•••
<?php
namespace App\Models;
use CodeIgniter\Model;
class MahasiswaModel extends Model
{
//read
protected $table = 'tbl_mahasiswa';
protected $primaryKey = 'id';
protected $allowedFields = ['nim', 'nama', 'alamat',
'no_hp'];
<?php
namespace App\Controllers;
use App\Models\MahasiswaModel;
class Mahasiswa extends BaseController
{
protected $mahasiswamodel;
public function __construct()
{
$this->mahasiswamodel = new MahasiswaModel();
}
public function index()
{
$mahasiswa = $this->mahasiswamodel->findAll();
$data = [
'title' => 'Data Mahasiswa',
'mahasiswa' => $mahasiswa
];
echo view('mahasiswa/data_mahasiswa', $data);
}
44
•••
$this->mahasiswamodel->update_data($data, $id_mhs);
return redirect()->to('mahasiswa');
}
public function delete($id_mhs)
{
$this->mahasiswamodel->delete_data($id_mhs);
return redirect()->to('mahasiswa');
}
}
Dengan tahap diatas kita telah selesai membuat Delete, kita bisa ujicoba
hasilnya dengan mengakses url :
//jika dijalankan melalui Local Development Server
localhost:8080/mahasiswa
//jika dijalankan melalui Apache Server
localhost/latihan_ci/public/mahasiswa
kemudian hapus salah satu data dengan mengklik tombol hapus.
45