Anda di halaman 1dari 41

MODUL DASAR CODEIGNITER

MATA KULIAH PEMROGRAMAN WEB


FAKULTAS ILMU KOMPUTER
SISTEM INFORMASI
2018
PART I – MARI BERKENALAN

Pada bulan juli 2013, EllisLab mengumumkan bahwa mereka mencari pemilik baru untuk
Codeigniter karena internal mereka sendiri tidak memiliki cukup fokus untuk terus
mengembangkan Codeigniter. Akhirnya pada bulan Oktober 2014, kepemilikan Codeigniter
berpindah tangan kepada British Columbia Institute of Technology, salah satu sekolah tinggi
teknologi di Kanada.
Setelah hampir lima bulan lamanya sejak peralihan kepemilikan, BCIT akhirnya merilis
Codeigniter 3.0 Dan berikut adalah perubahan codeigniter 2 menjadi codeigniter 3 :
• Codeigniter 3 memerlukan PHP versi 5.1.6 atau di atasnya.
• Penamaan Model, Controller di Codeigniter 3 harus di awali huruf besar.
• Driver databasenya kini memiliki refactoring yang lebih luas. Sekarang default database
driver nya menggunakan mysqli, tidak lagi menggunakan mysql.
• Penambahan user agent Windows 7, 8, 8.1, 10, Android, Blackberry, iOS.
• Update perbaikan di mimes.php
• Update penulisan class dengan PHP 5 style
• Pindah path halaman error di application/view/errors
• Pindah Log Class di application/core
• Update perbaikan di beberapa Library dan Helper
• Perbaikan file dokumentasi

Codeigniter => Sebuah Framework PHP yang bersifat open source dan menggunakan konsep
MVC (Model, View, Controller). Codeigniter biasa di singkat CI , bertujuan memudahkan
developer untuk membuat aplikasi web dengan cepat dan mudah. Codeigniter dirilis pada 28
Februari 2006. Versi terakhir adalah 3.1.9 dan bisa di download di www.codeigniter/download.
Codeigniter ditulis dengan Bahasa pemrograman PHP .

Framework secara sederhana dapat diartikan kumpulan dari fungsi-fungsi/prosedur-prosedur


dan class-class untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih
mempermudah dan mempercepat pekerjaan seorang programer, tanpa harus membuat fungsi
atau class dari awal.
Ada beberapa alasan mengapa menggunakan Framework :
1. Mempercepat dan mempermudah pembangunan sebuah aplikasi web.
2. Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam
sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)
3. Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita
tidak perlu membangun dari awal (misalnya validasi, pagination, pengaturan session, dll)
4. Lebih bebas dalam pengembangan.

Contoh Framework PHP : CI, Laravel, YII, ZendFramework, CakePHP. dll

Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan
aplikasi web, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang
membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi
kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu
aplikasi yaitu :

Model => Model merupakan bagian penanganan yang berhubungan dengan pengolahan atau
manipulasi database. Seperti misalnya pengambilan data dari database, menginput dan
pengolahan database lainnya. Semua intruksi yang berhubungan dengan pengolahan database
diletakkan di dalam model.
View => View merupakan bagian yang menangani halaman user interface atau halaman yang
muncul pada user. Tampilan dari user interface dikumpulkan pada view untuk memisahkannya
dengan controller dan model sehingga memudahkan web desaigner dalam melakukan
pengembangan tampilan halaman website.
Controller => Controller merupakan kumpulan instruksi aksi yang menghubungkan model dan
view, jadi user tidak akan berhubungan dengan model secara langsung, intinya dari view
kemudian controller yang mengolah instruksi.
1. Browser menrequest ke Controller.
2. Controller akan menerima request dan akan
memproses apa yang di request oleh Browser.
3. Jika Browser merequest yang berhubungan
dengan database untuk manipulasi data (insert,
update, delete, search) maka Controller akan
memerintah kan model untuk melakukan
proses tersebut. Setelah itu Controller
memerintah View untuk menampilkan request
tersebut dalam bentuk HTML.

Kelebihan Codeigniter

• Open Source
• Performa sangat cepat
• Konfigurasi yang mudah
• Banyak Komunitas dan Pengguna
• Dokumentasi yang lengkap
• Banyak Fitur seperti Helper, Library, dll
• Kemudahan dalam penggunaan
• Keamanan yang cukup baik
• Dll
PART II – Instalation & Configuration

Instalation

Untuk membuat website dengan CodeIgniter kita harus mendownload versi terbaru CodeIgniter,
pada saat pembuatan modul ini CodeIgniter sudah mencapai Versi 3.1.9

Hasil download CodeIgniter yang ada dalam format file zip, harus diextract dulu, kemudian file
yang sudah di extract disimpan dalam sebuah folder di aplikasi XAMPP tepatnya
dalam folder c:\xampp\htdocs.

Proses extract file CodeIgniter

Setelah mengektrak codeigniter lalu rename folder “CodeIgniter-3.1.9” menjadi “latihan_ci”


Lalu pindahkan folder “latihan_ci” ke c:\xampp\htdocs\.

Lihat gambar disamping.

Folder latihan_ci
Sampai langkah ini, proses Instalasi CodeIgniter sudah selesai, namun ada beberapa konfigurasi
lain yang harus kita lakukan, untuk saat ini kita bisa uji Codeigniter apakah sudah bisa digunakan.
Pastikan bahwa service Apache sebagai webserver sudah di aktifkan di XAMPP.

Service Apache Aktif

Jika service apache sudah aktif, saatnya untuk mencoba CodeIgniter melalui browser, buka
browser anda dan ketikkan di browser : http://localhost/latihan_ci

Jika proses pembuatan folder dan copy CodeIgniter berhasil akan muncul di browser tampilan
berikut ini

Halaman Welcome CodeIgniter


Configuration

Ada beberapa konfigurasi yang dapat dilakukan sebelum bekerja lebih jauh dengan CodeIgniter,
untuk melakukan konfigurasi berarti melakukan editing di beberapa file. Gunakan Editor untuk
mengedit file file tersebut, Seperti aplikasi Sublime Text, Notepad++. Dll

Kita mulai konfigurasi dengan membuka Aplikasi Editor Sublime Text agar mempermudah
mengedit file-file codeigniter maka terlebih dahulu pilih menu File > Open Folder, kemudian
pilih folder latihan_ci yang berada di c:\xampp\htdocs\.

Folder latihan_ci di Sublime Text


Setelah berhasil membuka folder latihan_ci di Sublime Text, kita memulai melakukan
konfigurasi, perhatikan beberapa folder yang ada, anda klik folder application lalu didalam
folder application ini ada folder config, folder config ini berisi beberapa file yang akan kita
konfigurasi. Diantaranya adalah: autoload.php, config.php, database.php dan lain lain. Berikut
beberapa file yang kita lakukan konfigurasi

Config.php

Buka folder config yang ada dan kita lakukan konfigurasi pada file config.php pertama kali
dengan cara double klik file config.php pada Sublime Text.

Pada file config.php lakukan perubahan bagian base url pada baris ke 26, sebelum di konfigurasi
seperti ini

$config['base_url'] = '';
Dirubah menjadi
$config['base_url'] = 'http://localhost/latihan_ci/';
Bagian ini berfungsi untuk memberikan informasi url project kita, atau jika sudah memiliki
domain base url ini di isi dengan alamat domain.

Config.php di Sublime Text

autoload.php

autoload.php berfungsi sebagai pemanggil beberapa library yang ada pada Codeigniter, seperti
url, form dan lain lain. Dengan cara yang sama dengan konfigurasi config.php, maka lakukan
editing pada file autoload.php bagian helper pada baris:

$autoload['helper'] = array();

Dirubah menjadi

$autoload['helper'] = array(‘url’);

Config.php di Sublime Text


PART III – Model, View dan Controllers

MVC adalah sebuah konsep yang membagi suatu pengembangan aplikasi menjadi 3 bagian
komponen logika yakni Model, View dan Controller. Jadi proses dasarnya, Model
menghantarkan Data dari Database sehingga dapat di kelola oleh Controller kedalam View,
sehingga View dapat menampilkan Data yang sudah dan akan di proses.
Codeigniter memiliki 3 folder, 1 Folder Model, 1 Folder View dan 1 Folder Controllers seperti
gambar di bawah ini.

Folder Controllers

Folder Models

Folder Views
Controllers

Secara default setelah installasi CodeIgniter terdapat satu Controllers bawaan yaitu Controllers
Welcome.php. Controller Welcome.php yang ada pada CodeIgniter berfungsi untuk
menampilkan halaman Welcome di CodeIgniter. Aturan penulisan controller tersebut dengan
menuliskan class di ikuti nama Controllers extends CI_Controller, seperti gambar dibawah ini.

Script Controllers Welcome.php

Models

Pada codeigniter yang sudah kita install tadi, terdapat folder models yang nantinya file-file
model yang kita buat disimpan di folder tersebut. Namun folder Models tersebut belum terdapat
file-file models.

Views

Folder views yang terdapat di codeigniter berisi sebuah file bernama welcome_message.php.
welcome_message.php merupakan file views bawaan codeigniter.
Membuat Controllers Baru

Untuk latihan, kita akan coba buat controllers kita sendiri, kita akan buat controller dengan
nama “Home” disimpan di folder Controllers, Kemudian kita ketik script dibawah ini.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends CI_Controller {

public function index()


{
echo "Saat ini kita sedang berada pada Controllers Home";
}
}
?>

Setelah script ini jadi kita panggil melalui browser dengan mengetikan url

localhost/latihan_ci/index.php/home

Gambar hasil script Controllers Home

Menambahkan Function

Dalam sebuah Controllers kita bisa membuat beberapa fungsi, sebagai contoh kita
tambahkan pada Controllers Home.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends CI_Controller {

public function index()


{
echo "Saat ini kita sedang berada pada Controllers Home";
}
public function codeigniter()
{
echo "Saat ini kita sedang berada pada Controllers Home dan Function
codeigniter";
}
}
?>

Bagian script yang ditebalkan adalah function yang baru kita buat, untuk memanggil function
yang baru kita buat dengan mengetik nama function setelah nama controllers, dalam
contoh nama controller adalah Home dan nama function adalah codeigniter, sehingga di
browser url kita ketik sebagai berikut :

localhost/latihan_ci/index.php/home/codeigniter

Gambar hasil function codeigniter

Sebagai latihan tambahan kita buat sebuah function baru dalam Controllers yang sama,
seperti script berikut.

public function bootstrap()


{
echo "Saat ini kita sedang berada pada Controllers Home dan Function
bootstrap";
}

Sesuai dengan aturan cara pemanggilan function dalam Controllers, adalah dengan memanggil
Controllers terlebih dahulu kemudian di ikuti dengan nama functionnya, sekarang kita punya
dua function yang kita buat tadi dalam Controllers Home, untuk memanggil function terakhir
yang kita buat yaitu function bootsrap maka url nya seperti berikut ini.

localhost/latihan_ci/index.php/home/bootstrap

hasil yang di dapat adalah seperti gambar berikut:


Gambar hasil function bootstrap
Hasil lengkap script Controllers Home adalah sebagai berikut:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends CI_Controller {

public function index()


{
echo "Saat ini kita sedang berada pada Controllers Home";
}

public function codeigniter()


{
echo "Saat ini kita sedang berada pada Controllers Home dan Function
codeigniter";
}

public function bootstrap()


{
echo "Saat ini kita sedang berada pada Controllers Home dan Function bootstrap ";
}

}
?>
Membuat Views

View merupakan halaman website yang biasanya dibuat dengan script HTML, namun untuk
pemberian nama file menggunakan format php, jika kita membuat view dengan nama
halaman_home maka pada saat penyimpanan file kita menyimpan dengan extentsi php
sehingga nama file menjadi halaman_home.php

Untuk membuat sebuah halaman view kita harus menyimpan file tersebut dalam folder
views dalam susunan folder project CodeIgniter.

Untuk membuat views kita kembali pada editor Sublime Text, klik folder views lalu klik menu
File > New File

Pembuatan file baru di Sublime Text

Setelah file baru dibuat, ketikan script berikut pada halaman editor Sublime Text. kemudian
save dengan nama “halaman_home.php”.

<!DOCTYPE html>
<head>
<title>View Belajar Code Igniter</title>
</head>
<body>
<h2>Kita sedang belajar membuat view di CodeIgniter</h2>
<h4>Sebuah view dipanggil dengan script di controller</br>
$this->load->view('namaView')</br></br>
contoh:</br>
$this->load->view('halaman_home')</br></h4>
</body>
</html>
Setelah membuat sebuah view, agar view tersebut bisa ditampikan diperlukan sebuah
controller untuk memanggil halaman view halaman_home.php yang sudah dibuat.

Masih menggunakan editor Sublime Text, bukalah kembali Controllers yang sudah di buat
sebelumnya yang bernama “Home.php” yang terletak pada folders
C:\xampp\htdocs\latihan_ci\application\controllers dan buat satu function baru di
Controllers Home.php bernama Function menampilkan_view.
Untuk memanggil sebuah view, kita harus menuliskan script
$this->load->view('namaview');
Contoh:
$this->load->view('halaman_home');

Seperti script dibawah ini :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends CI_Controller {

public function index()


{
echo "Saat ini kita sedang berada pada Controllers Home";
}

public function codeigniter()


{
echo "Saat ini kita sedang berada pada Controllers Home dan Function
codeigniter";
}

public function bootstrap()


{
echo "Saat ini kita sedang berada pada Controllers Home dan Function bootstrap";
}

public function menampilkan_view()


{
$this->load->view('halaman_home');
}
}
?>

Untuk menampilkan view tersebut di halaman browser sama dengan cara memanggil sebuah
controller yang sudah pelajari, seperti URL berikut ini.

localhost/latihan_ci/index.php/home/menampilkan_view
Gambar : Halaman View

Cara kerja sebuah controller untuk memanggil view sehingga muncul dibrowser, bisa
dilihat pada gambar berikut.

Controller: Home.php

View: halaman_home.php

Browser: Menampilkan View


Gambar : Ilustrasi pemanggilan view
Models

Model berfungsi sebagai pengolah data dalam CodeIgniter, dalam model ini berisi class dan
fungsi untuk memanipulasi database seperti insert, update, delete dan search. Dalam
penggunaannya nanti, model banyak berhubungan dengan perintah perintah Query.

Karena dalam penggunaan model menggunakan database, 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: siakad dan nama table:
tbl_mahasiswa.

Membuat Database

Struktur table mahasiswa sebagai berikut:

Field Type dan lebar Keterangan


nim Varchar(10) Primary Key
nama Varchar(40)
alamat Varchar(40)
handphone Varchar(12)

Buka kembali XAMPP lalu aktifkan service mysql seperti gambar dibawah ini.

Setelah service mysql aktif lalu buka phpmyadmin melalui browser dengan mengetikan URL
http://localhost/phpmyadmin

Setelah phpmyadmin aktif, klik pada tab Databases, anda akan mendapatkan halaman seperti
gambar berikut:
Gambar Halaman Database

Pada halaman database ini buat database baru dengan mengetikkan nama database dalam
Text Field database kemudian klik tombol Create, perhatikan contoh gambar

Gambar : Membuat database


baru

Setelah proses pembuatan database selesai, kita akan mendapatkan sebuah database baru sudah
dibuat dan list database yang ada pada phpmyadmin bisa kita lihat pada bagian kiri dari halaman
phpmyadmin.

Gambar : Database siakad telah dibuat


Membuat Table

Untuk membuat table melalui phpmyadmin, anda tinggal klik nama database yang berada di
sebelah kiri seperti pada gambar diatas, kemudian klik pada nama database, untuk memastikan
bahwa table yang akan dibuat berada dalam database yang kita inginkan.

Setelah anda klik nama database di bagian kiri halaman phpmyadmin, akan muncul halaman
untuk membuat table baru di bagian kanan halaman, kemudian isikan nama table serta
jumlah kolom kemudian klik tombol Go.

Gambar : Membuat table baru


Untuk latihan, kita membuat table tbl_mahasiswa dengan jumlah kolom 4, seperti yang
terlihat pada gambar.

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:

Gambar: Membuat Table tbl_mahasiswa


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 siakad

Gambar : Table tbl_mahasiswa

Mengisi Data Table

Setelah table terbentuk, saatnya untuk mengisikan data, phpMyadmin secara visual
menyediakan form untuk pengisian data.

Klik pada nama Table yang ada pada bagian kiri halaman phpMyadmin contoh pada latihan
kita adalah table tbl_mahasiswa, lalu klik tab Insert yang berada pada bagian atas
phpMyAdmin.

Gambar : Tab Insert 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.

Gambar : Pengisian data pada phpMyAdmin

Melihat Data

Untuk melihat data yang sudah di inputkan, anda klik tab Browse pada halaman phpMyAdmin.

Gambar : Tab Browse untuk melihat data


Sebenarnya semua aktifitas yang kita lakukan dihalaman phpMyadmin semua juga bisa lalukan
dengan memberikan perintah perintah SQL pada tab SQL. Namun untuk memudahkan, kita
cukup menggunakan media visual pada phpMyAdmin.

Sampai disini kita selesai membuat database dan table latihan kita, saatnya kita
kembali pada pembahasan Models CodeIgniter.

Latihan awal kita dengan adalah untuk menampilkan data yang ada pada database
pada halaman website melalui CodeIgniter.

Ada tiga jenis file yang harus kita siapkan yaitu: Model, View dan Controller atau yang kita
kenal dengan MVC

Mengatur Konfigurasi database

Sebelum kita lanjutkan pembahasan model, karena model sangat berhubungan dengan database
maka sebaiknya kita lakukan kongfigurasi database. Konfigurasi kita lakukan pada file
database.php yang ada dalam folder application/config

Buka file database.php dengan editor Sublime Text, kemudian lakukan editing seperti berikut
ini.

'hostname' => 'localhost',

'username' => 'root',

'password' => '',

'database' => 'siakad',

Dalam editor akan terlihat seperti gambar berikut:

Gambar script database.php

Konfigurasi diatas berikan informasi tentang database yang akan digunakan, pastikan nama
database sudah sama dengan database yang dibuat dalam phpMyadmin.
Load Library database

Langkah berikutnya adalah kita juga harus meload Library database dalam file autoload.php,
file autoload.php berada pada folder application/config, buka lagi dengan editor file tersebut
dan lakukan editing seperti script di bawah.

$autoload['libraries'] = array('database');

Membuat Model

Masih menggunakan editor, kita buat sebuah model yang berhubungan dengan menampilkan
data, file model yang dibuat disimpan dalam folder application/models.

kita akan membuat file baru dengan nama MdlMahasiswa.php


<?php defined('BASEPATH') OR exit('No direct script access allowed');
class MdlMahasiswa extends CI_Model {
function tampilData()
{
return $this->db->get('tbl_mahasiswa');
}
}
?>

Bagian script ini menunjukan nama table yang akan di tampikan

return $this->db->get('tbl_mahasiswa');

potongan script diatas sama artinya dengan query select * from t b l _ mahasiswa yang
berfungsi untuk menampilkan seluruh data mahasiswa.

simpan model yang sudah anda buat, berikutnya kita buat sebuah View untuk menampilkan
data yang sudah di query didalam model.
Membuat View

Seperti yang sudah kita ketahui bahwa view digunakan untuk menampilan data yang
sudah di olah didalam model. Untuk latihan sederhana ini kita tampilkan data dengan cara
sederhana saja.

Buka editor anda dan pastikan anda membuka folder application/views karena dalam
folder inilah semua jenis file view disimpan. Kemudian buat file baru dengan nama
view_mahasiswa.php
<?php foreach ($daftar_mahasiswa->result() as $row)
{
echo "Nim : "; echo $row->nim; echo "</br>";
echo "Nama : "; echo $row->nama; echo "</br>";
echo "Alamat : "; echo $row->alamat; echo "</br>";
echo "Handphone : "; echo $row->handphone; echo "<hr/>";
}
?>

foreach ($daftar_mahasiswa->result() as $row)

Script diatas berfungsi untuk membaca data yang sudah di query di model kemudian
ditampilkan pada view.

Membuat Controller
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Mahasiswa extends CI_Controller {
public function index()
{
echo 'Daftar Mahasiswa';
echo '</br>';
$this->load->model('MdlMahasiswa');
$data['daftar_mahasiswa'] = $this->MdlMahasiswa->tampilData();
$this->load->view('view_mahasiswa',$data);
}
}
?>

Keterangan Script :

$this->load->model('MdlMahasiswa');

Bagian dari script adalah memanggil model yang sudah dibuat

$data['daftar_mahasiswa'] = $this-> MdlMahasiswa ->tampilData();


Untuk memanggil function tampilData, hasil dari data yang diload disimpan dalam bentuk
array $data.
$this->load->view('view_mahasiswa',$data);

Untuk meload data yang ada dari array $data kemudian ditampilkan kedalam view.
Sampai disini kita sudah selesai mempelajari bagaimana cara menampilkan data di
CodeIgniter, untuk menguji hasil yang sudah kita kerjakan tadi, silahkan ketik url di bawah ini
di browser.
localhost/latihan_ci/index.php/mahasiswa
PART IV – CRUD

CRUD singkatan dari Create, Read, Update, Delete, CRUD sangat berhubungan erat dengan
database, sehingga penting untuk mempelajarinya jika kita akan banyak berhungan dengan
aplikasi database.
Sebelumnya kita sudah belajar membuat aplikasi untuk menampilkan data, dalam latihan
CRUD ini kita akan lanjutkan sampai kita bisa membuat CRUD yang lengkap.
Sama seperti aplikasi untuk menampilkan (Read) data, kita memerlukan file Controller, Model
dan View serta database, untuk database kita tetap menggunakan database siakad serta table
tbl_mahasiswa yang sudah kita buat sebelumnya. Untuk pengaturan konfigurasi seperti
konfigurasi database tetap sama ketika kita membuat aplikasi menampilkan data.

Berikut langkah langkah untuk membuat CRUD

Langkah 1. Membuat Controller

Buat Controller b a r u d e n g a n n a m a ControlMahasiswa, d a n kita akan menambahkan


function tambah_mahasiswa(), lalu ketiklah script di bawah ini :
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class ControlMahasiswa extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('ModelMahasiswa');
}
public function index()
{
//Tampilkan data
$data['mahasiswa'] = $this->ModelMahasiswa->tampilData();
$this->load->view('ViewMahasiswa/lihat_data',$data);
}
function tambah_mahasiswa()
{
if(isset($_POST['submit'])) {
// proses input
$this->ModelMahasiswa->tambah_data();
redirect('ControlMahasiswa');
}
else {
$this->load->view('ViewMahasiswa/form_tambah');
}
}
}
?>
Keterangan script

function tambah_mahasiswa()

Script diatas berfungsi untuk membuat sebuah function baru dalam controller
ControlMahasiswa, dalam satu controller bisa dibuat beberapa function.

if(isset($_POST['submit'])) {

// proses input

$this->ModelMahasiswa->tambah_data();

redirect('ControlMahasiswa');

else {

$this->load->view('ViewMahasiswa/form_tambah');

}
Pada script diatas, sebelum penyimpanan data, kita lakukan pengujian apakah button Submit
di klik, if(isset($_POST['submit'])).

Lalu proses berikutnya adalah meload model “ModelMahasiswa” serta function


“tambah_data “ kedalam Controller,

$this->load->model('ModelMahasiswa');

$this-> ModelMahasiswa ->tambah_data();

Kemudian jika proses tambah data berhasil, aplikasi di redirect ke halaman Tabel
Mahasiswa, melalui controller “ControlMahasiswa”.

redirect('ControlMahasiswa');
aktifitas yang lain adalah, artinya jika tombol submit tidak di klik, maka aplikasi akan meload
view form_tambah yang berada dalam folder ViewMahasiswa.
$this->load >view('ViewMahasiswa/form_tambah');
Langkah 2. Membuat View

View yang akan kita buat saat ini disusun tampilannya dalam bentuk table, dengan tujuan
agar lebih rapi, sebelum membuat view ini kita buat sebuah folder baru didalam folder views,
agar semua view yang berhubungan dengan aplikasi tersusun dalam satu folder saja. Beri nama
folder tersebut dengan nama ViewMahasiswa.

Gambar Folder ViewMahasiswa dilihat dari editor Sublime Text dan Windows Explorer

Setelah Folder ViewMahasiswa dibuat dalam folder Views, masih menggunakan editor, kita
membuat sebuah halaman yang berfungsi untuk melihat data mahasiswa, halaman ini kita beri
nama “lihat_data.php”. Halaman ini dibuat dalam bentuk table untuk menampilkan data lebih
rapi, berikut script lihat_data.php :

<html>
<H3>Daftar mahasiswa</H3>
<?php echo anchor('ControlMahasiswa/tambah_mahasiswa','Tambah Data'); ?>
<table>
<tr>
<td>No</td>
<td>NM</td>
<td>Nama Mahasiswa</td>
<td>Alamat</td>
<td>Handphone</td>
<td colspan="2">Aksi</td>
</tr>
<?php
$no=1; foreach ($mahasiswa->result() as $r) {
echo "
<tr>
<td>$no</td>
<td>$r->nim</td>
<td>$r->nama</td>
<td>$r->alamat</td>
<td>$r->handphone</td>
<td>".anchor('ControlMahasiswa/edit_mahasiswa/'.$r->nim,'Edit')."</td>
<td>".anchor('ControlMahasiswa/delete_mahasiswa/'.$r-
>nim,'Delete')."</td>
</tr>";
$no++;
}
?>
</table>
</html>
Keterangan Script:

Bagian yang terpenting dari script tersebut adaalah:

Menyiapkan sebuah variable no dan diberi nilai awal = 1, sebagai nomor urut table.

$no=1;

Menampilkan semua isi table dengan perintah foreach agar bisa membaca seluruh isi table
dari awal sampai akhir.

foreach ($mahasiswa->result() as $r) {


Setiap field yang ada dalam table ditampilkan dengan pembacaan setiap record.

echo "<tr>
<td>$no</td>
<td>$r->nim</td>
<td>$r->nama</td>
<td>$r->alamat</td>
<td>$r->handphone</td>
Kemudian, dibuatkan link Edit dan Delete untuk proses edit dan hapus data.

<td>".anchor('ControlMahasiswa/edit_mahasiswa/'.$r->nim,'Edit')."</td>

<td>".anchor('ControlMahasiswa/delete_mahasiswa/'.$r->nim,'Delete')."</td>
Agar nilai variable nomor terus bertambah setelah pembacaan data serta pemberian
nomor pada data baru, maka perlu untuk menaikan nilai variable $no bertambah satu angka.

$no++;
Langkah ke 3. Membuat Form Input Data

Membuat form Input data berfungsi sebagai perantara penyimpanan data yang di inputkan ke
dalam database. Buat file baru dengan nama form_tambah.php lalu simpan di folders
ViewMahasiswa Berikut bentuk script yang kita perlukan:

<html>
<head>
<title>CRUD Mahasiswa</title>
</head>
<h3>Tambah Data Mahasiswa</h3>
<form action="<?php echo
base_url()?>index.php/ControlMahasiswa/tambah_mahasiswa" method="post">
<!--panggil controller dan functionnya-->
<table>
<tr>
<td>Nim</td>
<td><input type="text" name="nim" placeholder="Masukkan NIM"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" placeholder="Masukkan Nama"></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" placeholder="Masukkan Alamat"></td>
</tr>
<tr>
<td>Handphone</td>
<td><input type="text" name="handphone" placeholder="Masukkan
Handphone"></td>
</tr>
<tr>
<td colspan="2"><button type="submit"
name="submit">Simpan</button></td>
</tr>
</table>
</form>
</html>
Keterangan script:

Script diatas sama dengan script html biasa, hanya yang membedakan ada pada bagian
<form action="<?php echo base_url()?>index.php/ControlMahasiswa/tambah_mahasiswa"
method="post">
<!--panggil controller dan functionnya-->, berfungsi untuk memanggil controller dan
function untuk menambah data dalam bentuk url dengan method post.

Langkah ke 4. Membuat Form Edit Data

Form Edit data, hampir sama dengan form input data, hanya berbeda di beberapa bagian saja,
form ini akan di panggil jika link edit di klik pada halaman Tabel Mahasiswa.
Cara kerja form ini adalah menampilkan data yang diklik di link edit pada halaman data
mahasiwa kemudian user bisa merubah data yang ada pada form edit, kemudian klik tombol
Simpan untuk menyimpan data, setelah data disimpan halaman akan di redirect kehalaman
Tabel Mahasiswa.
Buat file baru dengan nama form_edit.php lalu simpan di folders ViewMahasiswa Berikut
bentuk script yang kita perlukan:

<html>
<head>
<title>CRUD Mahasiswa</title>
</head>
<h3>Edit Data Mahasiswa</h3>
<form action="<?php echo base_url()?>index.php/ControlMahasiswa/edit_mahasiswa/<?PHP echo
$this->uri->segment('3')?>" method="post">
<!--panggil controller dan functionnya-->
<table>
<tr>
<td>Nim</td>
<td><input type="text" name="nim" placeholder="Masukkan NIM" value="<?php echo
$mahasiswa['nim']?>"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" placeholder="Masukkan Nama" value="<?php echo
$mahasiswa['nama']?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" placeholder="Masukkan Alamat" value="<?php echo
$mahasiswa['alamat']?>"></td>
</tr>
<tr>
<td>Handphone</td>
<td><input type="text" name="handphone" placeholder="Masukkan Handphone"
value="<?php echo $mahasiswa['handphone']?>"></td>
</tr>
<tr>
<td colspan="2"><button type="submit" name="submit">Simpan</button></td>
</tr>
</table>
</form>
</html>

Keterangan Script

<?php echo base_url()?>index.php/ControlMahasiswa/edit_mahasiswa/<?PHP echo $this-


>uri->segment('3')?> Bagian ini berfungsi untuk memanggil function edit_mahasiswa dan
mengambil data Nim melalui uri (Uniform Resource Identifier) segment.
<tr>
<td>Nim</td>
<td><input type="text" name="nim" placeholder="Masukkan NIM"
value="<?php echo $mahasiswa['nim']?>"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" placeholder="Masukkan Nama"
value="<?php echo $mahasiswa['nama']?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" placeholder="Masukkan Alamat"
value="<?php echo $mahasiswa['alamat']?>"></td>
</tr>
<tr>
<td>Handphone</td>
<td><input type="text" name="handphone" placeholder="Masukkan
Handphone" value="<?php echo $mahasiswa['handphone']?>"></td>
</tr>
<tr>
<td colspan="2"><button type="submit" name="submit">Simpan</button></td>
</tr>

Bagian script ini berfungsi untuk menampilkan data kedalam form edit, setiap field record yang
ada akan dimunculkan data dari record database, sesuai dengan query yang di perintahkan
melalui model, contoh untuk menampilkan nama maka digunakan script berikut

<td><input type="text" name="nama" placeholder="Masukkan Nama" value="<?php echo


$mahasiswa['nama'] ?>"></td>

Hal yang sama dilakukan juga pada filed yang lain, seperti Alamat dan Nomor Handphone.

Langkah ke 5. Update Controller

Pada langkah 1 kita sudah membuat controller dengan function tambah_mahasiswa


namun kita memerlukan beberapa function lagi untuk melengkapi proses yang ada pada CRUD.
Buka kembali Controller ControlMahasiswa lalu Tambahkan script berikut dibawah function
tambah_mahasiswa

function edit_mahasiswa($nim)
{
if(isset($_POST['submit'])) {
$this->ModelMahasiswa->edit_data($nim);
redirect('ControlMahasiswa');
}
else {
$nim=$this->uri->segment(3);
//echo $nim;
$data['mahasiswa'] = $this->ModelMahasiswa->get_detail($nim)->row_array();
$this->load->view('ViewMahasiswa/form_edit',$data);
}
}

function delete_mahasiswa()
{
$nim=$this->uri->segment(3);
$this->ModelMahasiswa->delete_data($nim);
redirect('ControlMahasiswa');
}
Keterangan Script :

if(isset($_POST['submit'])) {
$this->ModelMahasiswa->edit_data($nim);
redirect('ControlMahasiswa');
}

Bagian script ini berfungsi untuk memanggil function edit_data yang berada dalam
ModelMahasiswa, script ini bekerja jiko tombol submit diklik. Jika proses edit dilakukan maka
halaman diredirect kehalaman Tabel Mahasiswa.

else {
$nim=$this->uri->segment(3);
//echo $nim;
$data['mahasiswa'] = $this->ModelMahasiswa->get_detail($nim)->row_array();
$this->load->view('ViewMahasiswa/form_edit',$data);
}
Bagian script diatas berfungsi untuk mengambil data detail mahasiswa, bagian script ini
$nim=$this->uri->segment(3); digunakan untuk nim Mahasiswa yang ada di uri segment(3).
$data['mahasiswa'] = $this->ModelMahasiswa->get_detail($nim)->row_array();
Digunakan untuk mengambil data detail mahasiswa berdasarkan nim yang diquery
datanya melalui model.

$this->load>view('ViewMahasiswa/form_edit',$data);

Kemudian data ditampilkan dalam form edit mahasiswa.

Script berikutnya berfungsi untuk menghapus data mahasiswa berdasarkan link delete di
halaman Tabel Mahasiswa.

function delete_mahasiswa()
{
$nim=$this->uri->segment(3);
$this->ModelMahasiswa->delete_data($nim);
redirect('ControlMahasiswa');
}
Sama dengan function edit mahasiwa, untuk mendapatkan data mahasiswa yang akan
dihapus maka data di baca dari uri segment, $nim=$this->uri->segment(3);

Kemudian dilakukan penghapusan data melalui function delete, setelah penghapusan selesai
halaman diredirect ke halaman daftar mahasiswa.

$this->ModelMahasiswa ->delete_data($nim);

redirect('ControlMahasiswa');

Sehingga script lengkap ControlMahasiswa.php menjadi seperti ini :


<?php defined('BASEPATH') OR exit('No direct script access allowed');
class ControlMahasiswa extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('ModelMahasiswa');
}

public function index()


{
//Tampilkan data
$data['mahasiswa'] = $this->ModelMahasiswa ->tampilData();
$this->load->view('ViewMahasiswa/lihat_data',$data);
}

function tambah_mahasiswa()
{
if(isset($_POST['submit'])) {
// proses input
$this->ModelMahasiswa->tambah_data();
redirect('ControlMahasiswa');
}
else {
$this->load->view('ViewMahasiswa/form_tambah');
}
}
function edit_mahasiswa($nim)
{
if(isset($_POST['submit'])) {
$this->ModelMahasiswa->edit_data($nim);
redirect('ControlMahasiswa');
}
else {
$nim=$this->uri->segment(3);
//echo $nim;
$data['mahasiswa'] = $this->ModelMahasiswa->get_detail($nim)->row_array();
$this->load->view('ViewMahasiswa/form_edit',$data);
}
}

function delete_mahasiswa()
{
$nim=$this->uri->segment(3);
$this->ModelMahasiswa->delete_data($nim);
redirect('ControlMahasiswa');
}
}
?>

Langkah 6. Membuat Model

Model yang kita terdiri dari beberapa function untuk mengolah data mahasiswa didalam aplikasi
CRUD. Buatlah file baru dengan nama ModelMahasiswa.php. Berikut script
ModelMahasiswa.php .

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ModelMahasiswa extends CI_Model {
function tampilData()
{
return $this->db->get('tbl_mahasiswa');
}
//Tambah Data
function tambah_data()
{
$data=array(
'nim' => $this->input->post('nim'),
'nama' => $this->input->post('nama'),
'alamat' => $this->input->post('alamat'),
'handphone' => $this->input->post('handphone')
);

$this->db->insert('tbl_mahasiswa', $data);
}

//Edit Data
function edit_data($nim)
{
$data=array(
'nim' => $this->input->post('nim'),
'nama' => $this->input->post('nama'),
'alamat' => $this->input->post('alamat'),
'handphone' => $this->input->post('handphone')
);

$this->db->where('nim',$nim);
$this->db->update('tbl_mahasiswa', $data);
}

//Ambil Data
function get_detail($nim)
{
$param = array('nim' => $nim);
return $this->db->get_where('tbl_mahasiswa',$param);
}

//Hapus Data
function delete_data($nim)
{
$this->db->where('nim',$nim);
$this->db->delete('tbl_mahasiswa');
}
}
?>
Keterangan Script:
function tampilData()
{
return $this->db->get('mahasiswa');
}

Function tampilData ini berfungsi untuk menampilkan data mahasiswa dengan perintah
return $this->db->get('mahasiswa');
function tambah_data()
{
$data=array(
'nim' => $this->input->post('nim'),
'nama' => $this->input->post('nama'),
'alamat' => $this->input->post('alamat'),
'handphone' => $this->input->post('handphone')
);
$this->db->insert('mahasiswa', $data);
}

Function tambah_data() berfungsi untuk menambahkan data kedalam table mahasiswa, data
yang akan di tambahkan disimpan dulu dalam array, dengan nama array $data.

$data=array(
'nim' => $this->input->post('nim'),
'nama' => $this->input->post('nama'),
'alamat' => $this->input->post('alamat'),
'handphone' => $this->input->post('handphone'));

Kemudian data yang dinputkan melalui form tambah data ditampung dalam array kemudian
dilakukan proses insert data mahasiswa dengan perintah $this->db->insert('mahasiswa',
$data);

function edit_data($nim) {
$data=array(
'nim' => $this->input->post('nim'),
'nama' => $this->input->post('nama'),
'alamat' => $this->input->post('alamat'),
'handphone' => $this->input->post('handphone')
);
$this->db->where('nim', $nim);
$this->db->update('mahasiswa', $data);
Function edit_data prosesnya hampir sama dengan function tambah_data yaitu dengan
menyimpan data ke dalam array.

Kemudian data diquery apakah data nim sama sengan nim yang ada dalam form edit
data dengan perintah this->db->where('nim', $nim);
Script berikutnya adalah query untuk mengupdate data kedalam table, dengan perintah
$this->db->update('mahasiswa', $data);
function get_detail($nim) {
$param = array('nim' => $nim);
return $this->db->get_where('mahasiswa',$param);
}

Bagian script diatas berfungsi untuk melakukan query ambil data mahasiswa berdasarkan nim
mahasiswa.

function delete($nim) {
$this->db->where('nim',$nim);
$this->db->delete('mahasiswa');
}

Script diatas berfungsi untuk melalukan penghapusan data dimana data nim harus sesuai
dengan variabel $nim dengan perintah $this->db->where('nim',$nim); lalu dilakukan
penghapusan data dengan perintah $this->db->delete('mahasiswa');
Berikut screenshot aplikasi CRUD mahasiswa, dimulai dengan mengakses url
http://localhost/latihan_ci/index.php/ControlMahasiswa

Gambar : Halaman Tabel Mahasiwa

Jika di klik link Tambah Data, maka akan mucul form untuk menambah data
mahasiswa

Gambar : Form Tambah Data Mahasiswa


Jika selesai penambahan data dan tombol simpan di klik maka, data akan disimpan dan
halaman diredirect ke halaman Tabel Mahasiswa.
Proses edit data mahasiswa bisa dilakukan jika dilakukan klik pada link edit di data mahasiswa
yang akan diedit. Data detail mahasiswa akan ditampilkan dan lakukan edit data mahasiswa
seperlunya, kemudian klik tombol simpan. Setelah proses simpan selesai halaman kembali
diredirect ke halaman Tabel Mahasiswa.

Gambar : Form Edit Data Mahasiswa

Proses untuk hapus data mahasiswa dilakukan dengan cara mengklik link delete dihalaman
Tabel Mahasiswa.
Demikian keseluruhan proses pembuatan aplikasi CRUD pada CodeIgniter.

Anda mungkin juga menyukai