Modul Web Programming II UBSI
Modul Web Programming II UBSI
WEB PROGRAMMING II
Disusun Oleh:
Segala puji syukur kepada Tuhan Yang Maha Esa karena berkat rahmatNya penulisan
modul Mata Kuliah Web Programming II dapat terselesaikan dengan baik. Modul ini disusun
untuk memenuhi kebutuhan mahasiswa dalam mata kuliah Web Programming II yang
disajikan dalam bentuk praktikum dan diharapkan dapat membekali mahasiswa dalam
memahami Pembuatan web dengan menggunakan Framework Codeigniter.
Seperti layaknya sebuah modul, maka pembahasan dimulai dengan menjelaskan target
pembelajaran yang hendak dicapai. Dengan demikian pengguna modul ini secara mandiri
dapat mengukur tingkat ketuntasan yang dicapainya.
Penulis menyadari sepenuhnya bahwa modul ini tentu memiliki banyak kekurangan.
Untuk itu penulis dengan lapang dada menerima masukan dan kritik yang konstruktif dari
berbagai pihak demi kesempurnaannya di masa yang akan datang. Semoga modul ini dapat
bermanfaat bagi para pembaca.
Tim Penulis
ii
DAFTAR ISI
iv
PERTEMUAN 1
PENJELASAN KONTRAK KULIAH, PENEGASAN TUGAS
Deskripsi Pembelajaran
Pada bab ini dijelaskan bagaimana proses pembelajaran berlangsung setiap pertemuannya
yaitu mahasiswa diarahkan untuk mandiri dengan diberikan tugas individu di setiap
pertemuan yang mana tugas tersebut berupa mengimpplementasikan dan mengerjakan tiap
materi dan latihan yang ada pada pertemuan berikutnya. Sehingga pada saatnya pertemuan
tersebut berlangsung, mahasiswa sudah mengetahui materi yang ada dan bisa fokus
berdiskusi pada bagian materi yang masih kurang paham.
Tujuan Pembelajaran
Pada bab ini diharapkan mahasiswa dapat memahami kontrak perkuliahan yang harus diikuti
dan jenis tugas yang akan diberikan selama satu semester ke depan.
Tugas Pertemuan 1
a. Mahasiswa mengerjakan dan materi yang ada di pertemuan 2 yaitu installasi
Codeigniter dan mengerjakan contoh 1 yang ada pada modul halaman 3-4 dan
halaman 7.
b. Demonstrasikan dan kumpulkan hasilnya di pertemuan selanjutnya.
2
PERTEMUAN 2
PENGENALAN CODE IGNITER
Deskripsi Pembelajaran
Pada bab ini akan dibahas tentang framework dan jenis-jenisnya, codeigniter, pemasangan
software yang dibutuhkan, cara memasang dan menggunakan codeigniter, struktur dari
codeigniter, file konfigurasi codeigniter, kontroler standar, dan latihan perkenalan.
Tujuan Pembelajaran
Pada bab ini diharapkan mahasiswa dapat memahami materi-materi fundamental yang
diperlukan sebelum mempelajari framework codeigniter, yaitu bagaimana cara melakukan
installing perangkat-perangkat lunak yang diperlukan untuk dapat bekerja dengan codeigniter
seperti PHP, web server, database server, dan framework codeigniter itu sendiri. Mahasiswa
juga diharapkan dapat memahami pola desain atau arsitektur dari Model-View-Controller
(MVC), yang merupakan syarat mutlak dalam proses pengembangan aplikasi menggunakan
codeigniter.
Web Application Framework (WAF), atau sering disingkat web framework, adalah
Suatu kumpulan kode berupa pustaka (library) dan alat (tool) yang dipadukan sedemikian
rupa menjadi kerangka kerja (framework) guna memudahkan dan mempercepat proses
pengembangan aplikasi.
✓ Codeigniter
✓ Yii
✓ Slim framework
✓ Zend framework
✓ Laravel
✓ Symfony
✓ CakePHP
✓ Phalcon
✓ Kohana
3
✓ FuelPHP, dll
2.2 Codeigniter
Codeigniter adalah framework web utnuk bahasa pemrograman PHP, yang dibuat oleh
Rick Ellis pada tahun 2006, penemu dan pendiri EllisLab (www.ellislab.com). EllisLab
merupakan suatu tim kerja yang berdiri pada tahun 2002 yang bergerak di bidang pembuatan
software dan tool untuk para pengembang web. Sejak tahun 2014 sampai sekarang , EllisLab
telah menyerahkan hak kepemilikan codeigniter ke British columbia Institue of Technology
(BCIT) saat ini situs resmi codeigniter adalah www.codeigniter.com.
b. Text Editor yaitu notepad++, sublime text, atom, visual studio code, dll
c. Codeigniter https://codeigniter.com/
d. Web Browser (Mozila Firefox, google chrome, IE, Safari, UCBrowser, Opera, dll).
Semua software yang dibutuhkan diatas dapat anda download melalui link berikut:
https://drive.google.com/open?id=1RrGuGgMBiGRc_Qa8N905yA7w0LotrkNc
4
2.4 Instalasi Codeigniter
a. Download Package codeigniter pada situ resminya yang sudah disebutkan di atas.
b. Saat ini versi stabil dari codeigniter adalah 4.0.3
Sumber: www.tutorialpedia.net
Sumber: www.tutorialpedia.net
Gambar 2. Mengubah Nama Folder Root
5
e. Setelah itu, sekarang coba akses folder tersebut melalui browser dengan mengetikkan
url http://localhost/pustaka-booking. jangan lupa menyalakan XAMPP terlebih
dahulu.
Sumber: www.tutorialpedia.net
f. Jika sudah tampil halaman Welcome Codeigniter, itu artinya anda telah berhasil
melakukan instalasi codeigniter.
6
Sumber: www.tutorialpedia.net
Pertama kali kita fokus pada folder application/config di dalam folder config ini
terdapat file-file konfigurasi utama dan pertama kali untuk memudahkan pembuatan dan
pengembangan semua file yang akan dibuat dan semua berawal dari file routes.php Apabila
kita buka file tersebut, maka kita akan menemukan default_controller yang telah terisi
dengan nama “welcome”, yang mana default_controller ini berfungsi ketika user tidak
melakukan atau memasukkan apapun pada URL browser, maka secara otomatis mencari
controller dengan nama “welcome”. (lihat gambar 5).
Sumber: www.tutorialpedia.net
7
Controller Welcome itu sendiri bisa anda temukan pada folder application/controllers.
Pada file welcome_controller tersebut terdapat fungsi index yang gunanya meload bagian
view atau memanggil halaman views dengan nama welcome_messages sebagai berikut.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see https://codeigniter.com/user_guide/general/urls.html
*/
public function index()
{
$this->load->view('welcome_message');
}
}
Sekarang lihat pada bagian views yang terletak pada application/views. Pada folder
view tersebut terdapat file dengan nama welcome_message. Pada bagian inilah semua html
dan css akan diletakkan yang nantinya akan ditampilkan ke pengunjung.
<?php
defined('BASEPATH') or exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to CodeIgniter</title>
<style type="text/css">
::selection {
8
background-color: #E13300;
color: white;
}
::-moz-selection {
background-color: #E13300;
color: white;
}
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#body {
margin: 0 15px 0 15px;
}
p.footer {
9
text-align: right;
font-size: 11px;
border-top: 1px solid #D0D0D0;
line-height: 32px;
padding: 0 10px 0 10px;
margin: 20px 0 0 0;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
</style>
</head>
<body>
<div id="container">
<h1>Welcome to CodeIgniter!</h1>
<div id="body">
<p>The page you are looking at is being generated dynamically by C
odeIgniter.</p>
<p>If you would like to edit this page you'll find it located at:<
/p>
<code>application/views/welcome_message.php</code>
<p>If you are exploring CodeIgniter for the very first time, you s
hould start by reading the <a href="user_guide/">User Guide</a>.</p>
</div>
</body>
</html>
10
Contoh menampilkan Biodata
<?php
class Contoh1 extends CI_Controller
{
public function index()
{
echo "<h1>Perkenalkan</h1>";
echo"Nama saya Imam Nawawi
Saya tingga di daerah Ciputat
olah raga yang saya sukai adalah
Bulutangkis";
}
}
Tugas Pertemuan 2
11
PERTEMUAN 3
MODEL, VIEW, CONTROLLER
Deskripsi Pembelajaran
Pembelajaran pertemuan ini meliputi tentang pengertian, maksud dan konsep daripada MVC
disertai contoh penggunaan mulai dari controller saja, kemudian controller dengan view, dan
contoh menggunakan controller, view, dan model. Pada pertemuan ini juga dijelaskan tentang
aturan dalam membuat MVC, menentukan controller standar default, menghilangkan
index.php, pembuatan file .htaccess dan bagaimana mekanisme pengiriman nilai antara
Model, view dan controller.
Tujuan Pembelajaran
Pada bab ini diharapkan mahasiswa dapat memahami secara detail tentang pembuatan dan
penggunaan komponen model, view, controller yang merupakan kunci utama dalam
menggunakan framework codeigniter.
MVC adalah teknik atau konsep yang memisahkan komponen utama menjadi tiga
komponen yaitu model, view dan controller.
a. Model
Model adalah kelas yang merepresentasikan atau memodelkan tipe data yang akan
digunakan oleh aplikasi. Model juga dapat didefinisakn sebagai bagian penanganan yang
berhubungan dengan pengolahan atau manipulasi database. seperti misalnya mengambil data
dari database, menginput dan pengolahan database lainnya. semua intruksi atau fungsi yang
berhubung dengan pengolahan database di letakkan di dalam model. Sebagai contoh, jika
ingin membuat aplikasi untuk menghitung luas dan keliling lingkaran, maka dapat
memodelkan objek lingkaran sebagai kelas model.
12
Sebagai catatan, Semua model harus disimpan di dalam folder application\models
b. View
View merupakan bagian yang menangani halaman user interface atau halaman yang
muncul pada user(pada browser). tampilan dari user interface di kumpulkan pada view untuk
memisahkannya dengan controller dan model sehingga memudahkan web designer dalam
melakukan pengembangan tampilan halaman website.
c. Controller
Controller merupakan kumpulan intruksi aksi yang menghubungkan model dan view,
jadi user tidak akan berhubungan dengan model secara langsung, intinya data yang tersimpan
di database (model) di ambil oleh controller dan kemudian controller pula yang menampilkan
nya ke view. Jadi controller lah yang mengolah intruksi.
Dari penjelasan tentang model view dan controller di atas dapat disimpulkan bahwa
controller sebagai penghubung view dan model. misalnya pada aplikasi yang menampilkan
data dengan menggunakan metode konsep mvc, controller memanggil intruksi pada model
yang mengambil data pada database, kemudian controller yang meneruskannya pada view
untuk ditampilkan. jadi jelas sudah dan sangat mudah dalam pengembangan aplikasi dengan
cara mvc ini karena web designer atau front-end developer tidak perlu lagi berhubungan
dengan controller, dia hanya perlu berhubungan dengan view untuk mendesign tampilann
aplikasi, karena back-end developer yang menangani bagian controller dan modelnya. Jadi
pembagian tugas pun menjadi mudah dan pengembangan aplikasi dapat dilakukan dengan
cepat dan terstruktur.
<?php
class Latihan1 extends CI_Controller
{
public function index()
{
echo "Selamat Datang.. selamat belajar Web Programming";
<?php
class Model_latihan1 extends CI_Model
{
//membuat variable untuk menampung nilai
public $nilai1, $nilai2, $hasil;
//method penjumlahan
public function jumlah($n1 = null, $n2 = null)
{
14
$this->nilai1 = $nil1;
$this->nilai2 = $nil2;
$this->hasil = $this->nilai1 + $this->nilai2;
return $this->hasil;
}
}
Ubah controller Latihan1 yang sebelumnya sudah dibuat sehingga menjadi seperti berikut:
<?php
class Latihan1 extends CI_Controller
{
public function index()
{
echo "Selamat Datang.. selamat belajar Web Programming";
//$this->load->view('view-latihan1');
}
localhost/pustaka-booking/index.php/latihan1/penjumlahan/2/6
<html>
<head>
<title>Latihan 1</title>
</head>
<body>
15
Halo Kawan.. Yuk kita belajar web programming..!!!<br>
Nilai 1 = <?= $nilai1; ?>
Nilai 2 = <?= $nilai2; ?>
ini hasil dari pemodelan dengan methode penjumlahan yaitu <?=
$nilai1 . " + " . $nilai2 . " = " . $hasil; ?>
</body>
</html>
Ubah controller Latihan1 yang sebelumnya sudah dibuat sehingga menjadi seperti berikut:
<?php
class Latihan1 extends CI_Controller
{
public function index()
{
echo "Selamat Datang.. selamat belajar Web Programming";
//$this->load->view('view-latihan1');
}
$data['nilai1'] = $n1;
$data['nilai2'] = $n2;
$data['hasil'] = $this->Model_latihan1->jumlah($n1, $n2);
$this->load->view('view-latihan1', $data);
}
}
localhost/pustaka-booking/index.php/latihan1/penjumlahan/2/6
16
3.2 Menetukan Kontroler Standar (Default)
Controller standar (default) adalah controller yang akan dipanggil secara otomatis ketika
user tidak menyertakan nama controller di dalam URI.
http://localhost/pustaka-booking/index.php
pada contoh permintaan di atas, kita tidak menyertakan nama controller yang akan dipanggil
(segmen pertama). Permintaan tersebut akan memanggil controller standar yang sudah
didefinisikan oleh codeigniter, dan akan memberikan hasil seperti pada gambar 3 pada
pertemuan 2:
Controller standar dapat ditentukan sendiri sesaui dengan keinginan, yaitu dengan cara
melakukan konfigurasi pada file routes.php yang terletak pada folder application\config\.
cari baris code berikut:
$route['default_controller'] = 'welcome';
Ubah kata welcome dengan nama controller yang diinginkan untuk dijadikan controller
standar
Dalam rangka pengamanan web site, biasanya seorang web developer akan melakukan
berbagai trik untuk dapat mengamankan web miliknya. Ada yang dibuatkan sistem sandi
yang diubah secara berkala, ada yang menggunakan sistem sandi dengan teknik kriptografi
yaitu mengenkrip sandi sedemikian rupa agar tidak mudah dipecahkan oleh pihak yang tidak
bertanggung jawab, ada juga yang menggunakan trik kamuplase pengaksesan file, dan lain
lain. Berikut ini adalah salah satu trik untuk mengelabuhi pihak yang tidak bertanggung
jawab agar tidak mudah untuk melakukan pencurian atau penggunaan data yang merugikan
yaitu dengan cara menghilangkan index.php pada url codeigniter. cara nya buka config.php
yang terletak pada folder application/config/, kemudian cari pengaturan
$config[‘index_page] seperti di bawah ini.
$config['index_page'] = 'index.php';
17
Kemudian hapus index.php pada pengaturan sehingga menjadi
$config['index_page'] = '';
Setelah menghapus index, selanjutnya adalah membuat file .htaccess pada direktori
root codeigniter. Caranya buat file baru dengan nama .htaccess tanpa diberi extensi, karena
.htaccess merupakan file yang tidak berekstensi. Diawali dengan tanda titik ( . ).
File pustaka-booking/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Simpan dan sekarang coba akses di web. Di sini untuk contoh dalam rangka mencoba
apakah sudah berhasil atau belum menghilangkan index pada codeigniter, kita akan coba
mengakses method penjumlahan yang sudah ada pada controller Latihan1.php tanpa
menyertakan kata index.php pada URL.
Jika biasanya untuk mengakses method dalam kontroler Latihan1 diatas harus dengan
mengetikkan
http://localhost/pustaka-booking/index.php/latihan1/penjumlahan/4/6
maka sekarang tidak perlu, melainkan bisa langsung mengakses alamat url di atas tanpa
menyertakan kata index.php
http://localhost/pustaka-booking/ latihan1/penjumlahan/4/6
18
3.4 Aturan merancang Model, View, dan Controller
a. Model
Secara umum perancangan model dapat dibuat menggunakan aturan berikut:
1) Model harus memiliki atribut yang dapat mewakili element tertentu.
2) Model seharusnya berisi kode kode yang menangani proses bisnis untuk data
bersangkutan, misalnya untuk melakukan proses validasi data.
3) Model boleh berisi kode kode yang dugunakan untuk memanipulasi data,
misalnya untuk menambah baris data baru, mengubah baris data, dan menghapus
baris data pada sebuah tabel yang terdapat dalam database.
4) Model seharusnya tidak berisi kode kode yang berkaitan langsung dengan
permintaan yang dilakukan oleh user melalu URL (tidak berisi $_GET maupun
$_POST). Pekerjaan seperti ini seharusnya dilakukan oleh controller.
5) Model seharusnya tidak berisi kode kode yang berkaitan dengan presentasi
(tampilan) halaman web yang akan disajikan ke hadapan user. Pekerjaan
semacam ini seharusnya dilakukan oleh view.
b. View
Berikut ini aturan yang dapat digunakan untuk merancang view.
1) View harus berisi kode kode yang bersifat presentasional, biasanya berupa kode
HTML. View juga dapat berisi perintah perintah PHP sederhana yang masih
berkaitan dengan proses pembuatan tampilna, misalnya untuk menampilkan data
yang dihasilkan oleh model tertentu.
2) View seharusnya tidak berisi kode PHP yang melakukan akses data secara
langsung ke database. Pekerjaan semacam ini sebaiknya dilakukan oleh model.
3) View seharunsnya menghindari kode PHP yang mengakses secara langsung
permintaan dari user (tidak berisi $_GET maupun $_POST). Tugas ini sebaiknya
didelegasikan ke controller
c. Controller
Berikut ini aturan yang dapat digunakan untuk merancang controller.
1) Controller boleh mengakses $_GET, $_POST, dan variabel variabel PHP lainnya
yang berkaitan dengan permintaan user.
19
2) Controller boleh membuat objek (instance) dari kelas kelas model dan
mengarahkan ke view (jika model bersangkutan menghasilkan data yang perlu
ditampilkan ke user)
3) Controller seharusnya tidak berisi kode kode yang mengakses data secara
langsung dari database. Tugas seperti ini sebaiknya dilakukan oleh model. Dan
controller tinggal menggunakannya saja.
4) Controller seharusnya tidak berisi kode kode HTML yang diperlukan untuk
tujuan presentasi. Tugas ini sebaiknya dilakukan oleh view.
Untuk mengirimkan nilai dari controller ke view, anda dapat mengirimkannya dengan
menggunakan bantuan array. Jadi data yang akan diparsing kita masukkan ke array.
Buatlah sebuah view baru beri nama view-form-matakuliah.php kemudian simpan dalam
forlder Application/views/ dan ketik script berikut:
<html>
<head>
<title>Form Input Matakuliah</title>
</head>
<body>
<center>
<form action="<?= base_url('matakuliah/cetak'); ?>"
method="post">
<table>
<tr>
<th colspan="3">
Form Input Data Mata Kuliah
</th>
</tr>
<tr>
<td colspan="3">
20
<hr>
</td>
</tr>
<tr>
<th>Kode MTK</th>
<th>:</th>
<td>
<input type="text" name="kode" id="kode">
</td>
</tr>
<tr>
<th>Nama MTK</th>
<td>:</td>
<td>
<input type="text" name="nama" id="nama">
</td>
</tr>
<tr>
<th>SKS</th>
<td>:</td>
<td>
<select name="sks" id="sks">
<option value="">Pilih SKS</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
21
Script di atas akan membentuk sebuah tampilan form input data yang akan di submit
kemudian di proses ke sebuah controller. Untuk kita perlu membuat controller terlebih dahulu
beri nama Matakuliah.php kemudian simpan dalam folder Application/controllers/ lalu
ketiklah script berikut ini:
<?php
class Matakuliah extends CI_Controller
{
$this->load->view('view-form-matakuliah');
}
$this->load->view('view-data-matakuliah', $data);
}
}
Dalam controller di atas, data yang diinput pada form input matakuliah di post kan dan di
masukan ke dalam variabel yang bertipe array yang diberi nama $data dan variable array ini
memiliki 3 komponen array yaitu kode, nama, sks. Kemudian nilai dari element-element
array tadi akan dikirimkan kembali ke view dengan perintah $this->load->view(‘view-data-
matakuliah’, $data). jadi kita perlu membuat sebuah view baru lagi beri nama view-data-
matakuliah.php kemudian simpan dalam folder Application/views/ dan ketiklah script ini:
<html>
<head>
<title>Tampil Data Matakuliah</title>
</head>
22
<body>
<center>
<table>
<tr>
<th colspan="3">
Tampil Data Mata Kuliah
</th>
</tr>
<tr>
<td colspan="3">
<hr>
</td>
</tr>
<tr>
<th>Kode MTK</th>
<th>:</th>
<td>
<?= $kode; ?>
</td>
</tr>
<tr>
<td>Nama MTK</td>
<td>:</td>
<td>
<?= $nama; ?>
</td>
</tr>
<tr>
<td>SKS</td>
<td>:</td>
<td>
<?= $sks; ?>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<a href="<?= base_url('matakuliah');
?>">Kembali</a>
</td>
</tr>
</table>
</center>
23
</body>
</html>
Tugas pertemuan 3
24
PERTEMUAN 4
MEMBUAT TEMPLATE (TEMPLATING) WEB SEDERHANA
Deskripsi Pembelajaran
Pertemuan 4 berisi tentang pembahasan dalam membuat template sederhana yang dinamis
dengan membagi satu file view index.php menjadi beberapa file view. Kemudian ada
pembahasan tentang pengaturan base_url dan konfigurasi yang berkaitan dengan url.
Tujuan Pembelajaran
Pada pertemuan ini, mahasiswa diharapkan mampu membuat template sederhana. Mahasiswa
juga diharapkan mampu membuat template web dinamis, yaitu dengan cara membuat
halaman yang dipecah-pecah agar dapat dengan mudah untuk me-load halaman-halaman
tersebut sesuai dengan keinginan.
Buatlah sebuah kontroler yang akan digunakan untuk menampilkan view. Sebagai contoh,
buatlah kontroler Web.php lalu simpan di application/controllers/Web.php.
<?php
defined(‘BASEPATH’) or exit (‘no direct script access allowed’);
function __construct(){
parent::__construct();
}
25
$this->load->view(‘v_footer’,$data);
}
Kemudian buatlah 3 buah file view beri nama v_header.php, v_index.php, dan
v_footer.php lalu simpan dalam folder application/views/ kemudian ketik script berikut:
v_header.php
<!DOCTYPE html>
<html>
<head>
<meta charset=”utf-8”>
<title>Web Prog II | Merancang Template sederhana dengan
codeigniter</title>
<link rel=”stylesheet” type=”text/css” href=”<?php echo
base_url() ?>assets/css/stylebuku.css”>
</head>
<body>
<div id=”wrapper”>
<header>
<hgroup>
<h1>RentalBuku.net</h1>
<h3>Membuat Template Sederhana dengan
CodeIgniter</h3>
</hgroup>
<nav>
<ul>
<li><a href=”<?php echo
base_url().’index.php/web’ ?>”>Home</a></li>
<li><a href=”<?php echo
base_url().’index.php/web/about’ ?>”>About</a></li>
</ul>
</nav>
<div class=”clear”></div>
</header>
v_index.php
<section>
<h1><?php echo $judul ?></h1>
<p align=’justify’>Pada pengertian codeigniter di atas
tadi di jelaskan bahwa codeigniter menggunakan metode MVC. Apa itu
26
MVC? Kita juga harus mengetahui apa itu MVC sebelum masuk dan lebih
jauh dalam belajar codeigniter.</p>
<p>MVC adalah teknik atau konsep yang memisahkan
komponen utama menjadi tiga komponen yaitu model, view dan
controller.</p>
<ol type=”a”>
<li>Model</li>
<p align=’justify’>Model adalah kelas yang merepresentasikan atau
memodelkan tipe data yang akan digunakan oleh aplikasi. Model juga
dapat didefinisakn sebagai bagian penanganan yang berhubungan dengan
pengolahan atau manipulasi database. Seperti misalnya mengambil data
dari database, menginput dan pengolahan database lainnya. Semua
intruksi atau fungsi yang berhubung dengan pengolahan database di
letakkan di dalam model. Sebagai contoh, jika ingin membuat aplikasi
untuk menghitung luas dan keliling lingkaran, maka dapat memodelkan
objek lingkaran sebagai kelas model.</p>
<p align=’justify’>Sebagai catatan, Semua model harus disimpan di
dalam folder application\models</p>
<li>View</li>
<p align=’justify’>View merupakan bagian yang menangani halaman user
interface atau halaman yang muncul pada user(pada browser). Tampilan
dari user interface di kumpulkan pada view untuk memisahkannya
dengan controller dan model sehingga memudahkan web designer dalam
melakukan pengembangan tampilan halaman website.</p>
<li>Controller</li>
<p align=’justify’>Controller merupakan kumpulan intruksi aksi yang
menghubungkan model dan view, jadi user tidak akan berhubungan
dengan model secara langsung, intinya data yang tersimpan di
database (model) di ambil oleh controller dan kemudian controller
pula yang menampilkan nya ke view. Jadi controller lah yang mengolah
intruksi.</p>
<p align=’justify’>Dari penjelasan tentang model view dan controller
di atas dapat di simpulkan bahwa controller sebagai penghubung view
dan model. Misalnya pada aplikasi yang menampilkan data dengan
menggunakan metode konsep mvc, controller memanggil intruksi pada
model yang mengambil data pada database, kemudian controller yang
meneruskannya pada view untuk di tampilkan. Jadi jelas sudah dan
sangat mudah dalam pengembangan aplikasi dengan cara mvc ini karena
web designer atau front-end developer tidak perlu lagi berhubungan
dengan controller, dia hanya perlu berhubungan dengan view untuk
mendesign tampilann aplikasi, karena back-end developer yang
27
menangani bagian controller dan modelnya. Jadi pembagian tugas pun
menjadi mudah dan pengembangan aplikasi dapat di lakukan dengan
cepat dan terstruktur.</p>
</section>
V_footer.php
<footer>
<a href=”http://www.RentalBuku.com”>RentalBuku</a>
</footer>
</div>
</body>
</html>
Kemudian buatlah stylebuku.css untuk membuat tampilan lebih bagus dan simpan di dalam
folder root seperti berikut: pustaka-boooking/assets/css/
body{
background: #eee;
color: #333;
font-family: sans-serif;
font-size:15px;
}
#wrapper{
background: #fff;
width: 1100px;
margin: 20px auto;
}
#wrapper header{
background: #232323;
padding: 20px;
}
28
float: right;
margin-top: 50px;
}
.clear{
clear: both;
}
footer{
background: #232323;
padding: 20px;
}
footer a{
color: #fff;
text-decoration: none;
}
section{
padding: 20px;
}
Setelah membuat file-file di atas. sebelum di jalankan melalui browser, terlebih dahulu perlu
dilakukan seting base_url( ) untuk memudahkan dalam menghubungkan file view dengan file
css nya.
29
4.2 Seting base_url () pada codeigniter
Untuk melakukan seting base_url( ), dapat dilakukan melalui file config.php yang ada di
dalam application/config/config.php. buka file tersebut lalu cari baris sintak seperti berikut:
$config['base_url'] = '';
Hal tersebut di atas dikarenakan base_url( ) sudah terlebih dahulu di seting menjadi
“localhost/pustaka-booking”. Ketika base_url( ) sudah diseting atau diubah dari bentuk
default menjadi seperti di atas, maka perlu juga dilakukan pengaktifan helper url. Hal ini
dapat dilakukan dengan cara menambahkan script load helper pada controller Web.php yang
sudah dibuat pada bagian construct.
<?php
defined('BASEPATH') or exit ('no direct script access allowed');
function __construct(){
parent::__construct();
$this->load->helper('url');
}
Atau bisa juga melalu file autoload.php yang ada di dalam folder application/config/
kemudian cari baris sintak seperti di bawah
$autoload['helper'] = array();
$autoload['helper'] = array('url');
http://localhost/pustaka-booking/web
31
Demikian tampilan web sederhana sudah berhasil dibuat pada codeigniter. Template yang
dibuat di atas merupakan template dinamis. Maksudnya tampilan header dan footer tidak
akan berubah namun bagian konten bisa berubah-ubah.
Contoh untuk membuat halaman lainnya yaitu akan dibuat halam v_about.php. Yang
mana link untuk menuju halaman about sudah dibuat sebelumnya pada file v_header.php.
Link yang sudah dibuat yaitu Home diseting untuk menuju atau mengakses method index()
dan About diseting menuju atau mengakses methode about()
<li><a href="<?php echo base_url().'index.php/web' ?>">Home</a></li>
<li><a href="<?php echo
base_url().'index.php/web/about' ?>">About</a></li>
Sekarang buatlah file view lagi dan beri nama v_about.php dan simpan di
application/views/v_about.php
<section>
<h1><?php echo $judul ?></h1>
32
<h4>Nama</h4>
<ul type="disc">
<li>Nama Depan : Imam</li>
<li>Nama Belakang : Nawawi</li>
</ul>
<br>
<h4>Alamat</h4>
<ul type="none">
<li> Jalan Ciledug Raya No. 168 Pesanggrahan</li>
</ul>
<h4>Tempat Lahir</h4>
<ul type="none">
<li>Cirebon</li>
</ul>
Kemudian tambahkan method baru yaitu method about() pada controller Web.php di bawah
method index()
public function about()
{
$data['judul'] = "Halaman About";
$this->load->view('v_header', $data);
$this->load->view('v_about', $data);
$this->load->view('v_footer', $data);
}
Selanjutnya jalankan kembali pada browser dan klik pada menu About atau bisa langsung
mengakses ke method about.
http://localhost/pustaka-booking/web/about
33
Tugas pertemuan 4
34
PERTEMUAN 5
MEMBUAT FORM VALIDASI PADA CODEIGNITER
Deskripsi Pembelajaran
Pembahasan yang ada pada pertemuan ini adalah tentang pembuatan validasi untuk
memasukkan data ke dalam database dengan menggunakan library form_validasi.
Tujuan Pembelajaran
Pada pertemuan ini, mahasiswa diharapkan mampu memahami dan membuat form untuk
input data dengan disertai validasi. Agar dalam memasukkan data ke database menjadi lebih
akurat dan tidak terjadi kesalahan. Mahasiswa juga diharapkan memahami penggunaan
library untuk form validasi.
Pada pertemuan ini mahasiswa diharapkan dapat memahami tentang validasi data dan
bagaimana membuat form validasi data pada codeigniter dalam penginputan data. Seperti
misalnya dalam menentukan form, apa saja yang wajib untuk diisi, form dengan format input
tertentu, membuat konfirmasi password dan lainnya.
Pada saat membuat dan menangani form, proses validasi data merupakan bagian yang
sangat penting untuk diperhatikan. Validasi data diperlukan untuk menjaga keabsahan dari
data yang dikirim oleh user ke dalam aplikasi
35
d. Proses ini akan diulang sampai semua data yang diminta di dalam form diisi dengan
benar.
Proses pemeriksaan data yang dikirim oleh user di dalam form dilakukan di dalam
kontroler, demikian juga dengan pembuatan aturan (rule) dari datanya.
$this->load->library(‘form_validation’);
Atau bisa juga dilakukan melalui file autoload yang ada dalam folder
application/config/autoload.php
$autoload[‘libraries’] = array();
<?php
class Matakuliah extends CI_Controller
{
$this->load->view('view-form-matakuliah');
}
36
$this->form_validation->set_rules('kode', 'Kode Matakuliah',
'required|min_length[3]', [
'required' => 'Kode Matakuliah Harus diisi',
'min_lenght' => 'Kode terlalu pendek'
]);
if ($this->form_validation->run() != true) {
$this->load->view('view-form-matakuliah');
} else {
$data = [
'kode' => $this->input->post('kode'),
'nama' => $this->input->post('nama'),
'sks' => $this->input->post('sks')
];
$this->load->view('view-data-matakuliah', $data);
}
}
}
Pada controller Matakuliah di atas terlihat membuat rules dari form validasi. Rule nya berupa
required dan min_length[3] yang artinya jika requiredm maka harus diisi. Sedangkan
min_length[3] maka minimal diisi 3 digit.
untuk selengkapnya tentang membuat form validation pada codeigniter anda dapat
membacanya pada user_guide yang sudah di sediakan oleh codeigniter pada project CI anda.
http://localhost/malasngoding/user_guide/libraries/form_validation.html#the-form
37
Tugas pertemuan 5
38
PERTEMUAN 6
STUDI KASUS PUSTAKA-BOOKING
Deskripsi Pembelajaran
Pertemuan ini membahas bagaimana persiapan untuk membuat sebuah aplikasi web. Dari
mulai Analisa kebutuhan pengguna dan sistem, desain dan pembuatan database, dan
pembuatan model yang diperlukan untuk dapat menambah, mengubaha, membaca, dan
menghapus data pada database.
Tujuan Pembelajaran
Pada pertemuan ini mahasiswa diharapkan dapat memahami persiapan dasar untuk memulai
sebuah projek kasus. Mahasiswa juga diharapkan mampu memahami desain dan pembuatan
database, koneksi database dan membuta model untuk Create Read Update Delete (CRUD)
data untuk membuat aplikasi pustaka-booking.
Aplikasi pustaka booking adalah aplikasi berbasis web yang dibuat untuk booking
sebuah buku untuk dipinjam. Tujuan dibuatkannya aplikasi ini agar memudahkan para
pengguna dalam mencari buku dan ingin meminjam buku tersebut. Jadi sebelum di datang ke
perpustakaan dan meminjam sebuah buku. Pengguna bisa mencari terlebih dahulu buku yang
akan dipinjam, untuk memastikan bahwa di perpustakaan yang akan dia kunjungi benar
bahwa buku tersebut tersedia.
Alur logika sistem booking pustaka ini yaitu seseorang yang ingin melakukan booking
diharuskan mendaftar menjadi anggota terlebih dahulu, selanjutnya ketika sudah menjadi
39
anggota, baru dapat melakukan booking terhadap buku yang akan dipinjam. Setelah
melakukan booking, anggota diharuskan mengambil buku yang telah dibooking dengan cara
datang langsung ke perpustakaan dalam waktu 1x24 jam. Kemudian konfirmasi ke petugas
atau admin untuk diambilkan buku yang telah dibooking berdasarkan bukti booking melalui
aplikasi.
Kebutuhan user:
1. Admin
a. Seorang admin dapat login ke dalam aplikasi pustaka-booking
b. Seorang admin dapat menambah, melihat, mengubah, dan menghapus, data buku
pada aplikasi pustaka-booking.
c. Seorang admin dapat melihat data booking dan melanjutkan proses booking
sampai buku dipinjam.
d. Seorang admin dapat memproses pengembalian buku yang sudah selesai dipinjam.
2. Pengunjung
a. Pengunjung dapat melihat-lihat data buku yang ada pada palikasi pustaka-booking
b. Pengunjung dapat melakukan registrasi untuk menjadi anggota pustaka-booking
c. Pengunjung dapat memberikan komentar melalui buu tamu
3. Anggota
a. Anggota dapat login ke dalam sistem aplikasi pustaka-booking.
b. Anggota dapat melakukan booking terhadap buku yang ada pada aplikasi pustaka-
booking
c. Anggota dapat mencetak bukti booking buku untuk dibawa ketika akan
mengambil buku yang dibooking.
Kebutuhan sistem:
a. Sistem akan melakukan validasi username dan password ketika ada seorang user yang
melakukan login
b. Sistem juga melakukan validasi data buku dan anggota yang akan diinput ke dalam
database
40
c. Sistem akan memblokir dan memberikan notif apabila ada seorang pengunjung yang
meng-klik tombol booking tanpa melakukan login terlebih dahulu.
d. Sistem akan menghapus secara otomatis data booking yang sudah lewat dari 1 x 24
jam
e. Sistem dapat mengkalkulasi denda yang harus dibayarkan ketika ada anggota yang
terlambat mengembalikan buku.
f. Sistem dapat menampilkan buku yang dicari oleh user berdasarkan kriteria pencarian.
Pengaturan base url adalah pengaturan URL dasar dalam sebuah project aplikasi yang
dibuat dengan menggunakan codeigniter. Pengaturan base url di codeigniter terdapat di dalam
file config.php di dalam folder project codeigniter.
pustaka-booking/application/config/config.php
Helper dan Library bisa dibilang seperti perpusatakaan coding dengan fungsi-fungsi
yang berbeda dan memiliki kegunaan masing-masing. Tinggal memanggil dan
menggunakannya saja. Kita juga bisa membuat helper atau library kita sendiri di codeigniter
untuk memudahkan pekerjaan kita.
Di tahap ini kita akan men-load atau membuka beberapa library dan helper codeigniter
yang kita butuhkan dalam pembuatan aplikasi pustaka-booking ini. Untuk menjalankan atau
membuka library dan helper secara otomatis di codeiginter, kita bisa mengaturnya dalam file
autoload.php dalam folder application/config/autoload.php.
Pustaka-booking/application/config/autoload.php
41
Library yang akan kita load secara otomatis adalah database, session dan
form_validation.
Cari sintak
$autoload['libraries'] = array();
$autoload['helper'] = array();
Kemudian tambahkan “url” (karena kita hanya membutuhkan helper url disini). Maka
akan menjadi seperti berikut.
$autoload['helper'] = array('url');
Proses autoload library dan helper selesai. Selanjutnya kita akan membuat database
untuk aplikasi pustaka-booking dan melakukan konfigurasi database pada codeigniter.
Berikut adalah gambaran struktur database yang akan kita buat untuk aplikasi pustaka-
booking ini.
Buat sebuah database baru dengan nama “pustaka” kemudian buatlah table-table seperti
berikut:
a. Tabel User (user)
43
6.4 Membuat Koneksi Database Codeigniter dengan MySQL
Sebelum melakukan seting konfigurasi pada file database, terlebih dahulu harus
disiapkan databasenya. Agar bisa langsung dipraktekkan.
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
44
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Kemudian masukkan username, password, dan nama database, untuk password jika
tidak ada maka bisa dibiarkan kosong. Sehingga akan menjadi.
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'pustaka',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
45
6.5 Membuat Model untuk CRUD
Pada tahap ini akan dibuat fungsi-fungsi yang bisa gunakan berulang kali, tanpa harus
repot banyak-banyak membuat fungsi pada model. contohnya untuk insert data ke database,
hanya buat satu fungsi untuk insert data ke database. Dan bisa kita gunakan secara berulang-
ulang kali. Begitu juga dengan fungsi edit, hapus dan update data pada database.
Buat 2 buah file model dengan nama ModelUser.php dan ModelBuku.php. perlu
diperhatikan untuk Penamaan Controller dan Model harus diawali dengan huruf besar di
codeigniter 3. Memang tidak masalah jika dibuat dengan nama kecil, tetapi akan menyalahi
aturan penggunaan codeigniter yang benar dan akan terjadi trouble saat diupload dihosting.
ModelUser.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
ModelBuku.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
47
//manajemen kategori
public function getKategori()
{
return $this->db->get('kategori');
}
Tugas pertemuan 6
49
PERTEMUAN 7
REVIEW MATERI
Untuk mengetahui sejauh mana pemahaman yang sudah anda dapat tentang materi dasar
MVC dari pertemuan 1 sampai pertemuan 6, maka di pertemuan 7 ini dibuatlah sebuah studi
kasus yang harus anda selesaikan. Dengan konsep MVC yang sudah dijelaskan di pertemuan
1 s/d 6. Dari membuat tampilan input sampai menampilkan hasil submit dari tampilan input
tersebut. Berikut studi kasis yang harus anda selesaikan:
1. Ada sebuah toko sepatu yang ingin dibuatkan program untuk menghitung otomatis dari
transaksi penjualan sepatunya yang mana harga sepatu ditentukan berdasarkan merk
dari sepatu tersebut.
2. Buatlah tampilan form input transaksi di point 1 meliputi input nama pembeli
menggunakan text, no hp menggunakan text, merk sepatu berupa pilihan combo/select
berisi Nike, Adidas, Kickers, Eiger, Bucherri. Masing-masing memiliki harga sesuai
urutan yaitu 375000, 300000, 250000, 275000, 400000., ukuran sepatu berupa
combo/select juga berisi pilihan ukuran dari no 32 s/d nomor 44. Dan terakhir terdapat
tombol submit untuk memproses inputan tersebut.
3. Buatlah sebuah controller dan model untuk memproses inputan form sehingga hasilnya
di tampilkan ke file view yang berisi hasil dari proses submit dari form input.
4. Pada tampilan hasil, buatlah link untuk kembali menuju file input form pada point 2
Tugas pertemuan 7
50
PERTEMUAN 8
UJIAN TENGAH SEMESTER
51
PERTEMUAN 9
MEMBUAT FORM LOGIN DAN PESAN NOTIFIKASI
Deskripsi Pembelajaran
Pertemuan 9 ini berisi pembahasan tentang bagaimana membuat halaman login dan halaman
beranda admin, membuat sebuah pesan notifikasi dan implementasi penerapan framework css
dari bootstrap.
Tujuan Pembelajaran
Pada pertemuan ini mahasiswa diharapkan mampu membuat form Login dengan enkripsi
password MD5 dan memahami pembuatan notifikasi kesalahan dalam inputan form.
Pembaca juga diharapkan mampu memahami dan membuat halaman index untuk admin
dengan menerapkan framework css dari bootstrap.
Halaman login akan kita buat di halaman utama pada saat aplikasi pustaka-booking
bagian admin diakses.
Form login akan kita buat pada controller Autentifikasi. Controller ini akan kita jadikan
controller default. Cara untuk mengaturnya sudah dijelaskan di pertemuan-pertemuan awal.
52
Kembali ke pembuatan form login. Untuk membuatnya kita akan menggunakan
tampilan form login yang ada di template sb admin 2. Untuk itu sekarang coba kembali ke
folder hasil extract template sb admin 2, kemudian cari file login.html kemudian buka file
login tersebut bisa menggunakan web browser atau menggunakan editor php atau html yang
sedang kamu gunakan. Ketika sudah terbuka, copy isi script dari file login tersebut kemudian
buat file view yang baru pada projek kamu dengan nama login.php simpan dalam folder
Application/views/admin lalu paste. Maka hasilnya seperti berikut:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
53
<!-- Custom styles for this template-->
<link href="css/sb-admin-2.min.css" rel="stylesheet">
</head>
<body class="bg-gradient-primary">
<div class="container">
54
<label class="custom-control-label"
for="customCheck">Remember Me</label>
</div>
</div>
<a href="index.html" class="btn btn-primary btn-
user btn-block">
Login
</a>
<hr>
<a href="index.html" class="btn btn-google btn-
user btn-block">
<i class="fab fa-google fa-fw"></i> Login with
Google
</a>
<a href="index.html" class="btn btn-facebook
btn-user btn-block">
<i class="fab fa-facebook-f fa-fw"></i> Login
with Facebook
</a>
</form>
<hr>
<div class="text-center">
<a class="small" href="forgot-
password.html">Forgot Password?</a>
</div>
<div class="text-center">
<a class="small" href="register.html">Create an
Account!</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Tampilan script di atas dibagi menjadi 3 file view syaitu aute_header.php, login.php, dan
aute_footer.php. script bagian atas sampai tanda merah dijadikan file aute_header.php
simpan dalam folder application/views/templates, script bagian tengah dijadikan file
login.php simpan dalam folde application/views/autentifikasi, dan script bagian dari tanda
merah ke bawah dijadikan file aute_footer.php simpan di dalam folder
application/views/templates. Selanjutnya sesuaikan scriptnya menjadi seperti di bawah:
aute_header.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
56
<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,30
0i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
</head>
<body class="bg-gradient-primary">
login.php
<div class="container">
<div class="col-lg-7">
57
<div class="form-group">
<input type="password"
class="form-control form-control-user" id="password"
placeholder="Password" name="password">
<?= form_error('password',
'<small class="text-danger pl-3">', '</small>'); ?>
</div>
<button type="submit" class="btn
btn-primary btn-user btn-block">
Masuk
</button>
</form>
<hr>
<div class="text-center">
<a class="small" href="<?=
base_url('autentifikasi/lupaPassword'); ?>">Lupa Password?</a>
</div>
<div class="text-center">
<a class="small" href="<?=
base_url('autentifikasi/registrasi'); ?>">Daftar Member!</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
aute_footer.php
<!-- Bootstrap core JavaScript-->
<script src="<?= base_url('assets/');
?>vendor/jquery/jquery.min.js"></script>
<script src="<?= base_url('assets/');
?>vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
58
<!-- Core plugin JavaScript-->
<script src="<?= base_url('assets/'); ?>vendor/jquery-
easing/jquery.easing.min.js"></script>
</body>
</html>
Setelah selesai membuat tampilan form login, seperti yang sudah disinggung di atas. Kita
akan membuat controller Autentifikasi.php.
<?php
$this->session->set_userdata($data);
if ($user['role_id'] == 1) {
redirect('admin');
} else {
if ($user['image'] == 'default.jpg') {
60
$this->session->set_flashdata('pesan',
'<div class="alert alert-info alert-message" role="alert">Silahkan
Ubah Profile Anda untuk Ubah Photo Profil</div>');
}
redirect('user');
}
} else {
$this->session->set_flashdata('pesan', '<div
class="alert alert-danger alert-message" role="alert">Password
salah!!</div>');
redirect('autentifikasi');
}
} else {
$this->session->set_flashdata('pesan', '<div
class="alert alert-danger alert-message" role="alert">User belum
diaktifasi!!</div>');
redirect('autentifikasi');
}
} else {
$this->session->set_flashdata('pesan', '<div
class="alert alert-danger alert-message" role="alert">Email tidak
terdaftar!!</div>');
redirect('autentifikasi');
}
}
Sebelum melihat hasilnya, ubah pengaturan controller default terlebih dahulu yang sebelum
controller welcome ubah mejadi controller autentifikasi.
61
Untuk melihat hasilnya silahkan ketik URL seperti ini localhost/pustaka-booking/, maka
hasilnya seperti dibawah ini:
Halaman admin adalah halaman backend yang digunakan untuk mengelola data-data master
seperti buku, kategori buku dll. Unutk membuatnya kita akan melibatkan controller
autentifikasi.php
Dalam pembuatan halaman admin, template yang digunakan tetep template dari sb admin 2.
Untuk itu coba kita buka index.html dari sb admin 2 menggunakan editor yang kamu miliki.
Selanjutnya copy isi script dari index.html, kemudian buat view baru dalam folder
Application/views/admin/ beri nama index.php lalu paste scriptnya. Selanjutnya file index
ini akan dipecah menjadi 5 file view yaitu: header.php, index.php, footer.php,
sidebar.php, dan topbar.php. jadi isi dari file index.php yang baru saja di buat, disesuaikan
dengan 5 file di bawah ini:
header.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
62
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
</head>
<body id="page-top">
index.php
63
<div class="card border-left-danger shadow h-100 py-2 bg-
primary">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-md font-weight-bold text-white text-
uppercase mb-1">Jumlah Anggota</div>
<div class="h1 mb-0 font-weight-bold text-white"><?=
$this->ModelUser->getUserWhere(['role_id' => 1])->num_rows();
?></div>
</div>
<div class="col-auto">
<a href="<?= base_url('user/anggota'); ?>"><i
class="fas fa-users fa-3x text-warning"></i></a>
</div>
</div>
</div>
</div>
</div>
65
$totaldibooking = $this->ModelBuku-
>total('dibooking', $where);
echo $totaldibooking;
?>
</div>
</div>
<div class="col-auto">
<a href="<?= base_url('user'); ?>"><i class="fas fa-
shopping-cart fa-3x text-danger"></i></a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- end row ux-->
</div>
<!-- end of row table-->
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
footer.php
</div>
68
<!-- End of Content Wrapper -->
</div>
<!-- End of Page Wrapper -->
<script>
$('.custom-file-input').on('change', function() {
let fileName = $(this).val().split('\\').pop();
$(this).next('.custom-file-
label').addClass("selected").html(fileName);
});
$(document).ready(function() {
$("#table-datatable").dataTable();
});
$('.alert-message').alert().delay(3500).slideUp('slow');
</script>
</body>
</html>
sidebar.php
<!-- Sidebar -->
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-
dark accordion" id="accordionSidebar">
70
<hr class="sidebar-divider">
</ul>
<!-- End of Sidebar -- >
topbar.php
71
<!-- Content Wrapper -->
<div id="content-wrapper" class="d-flex flex-column">
</ul>
</nav>
<!-- End of Topbar -->
Setelah membuat file view pecahan dari tampilan admin, maka selanjutnya kita harus
membuat controller Admin.php simpan dalam folder Application/controllers lalu buatlah
scriptnya seperti berikut:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
73
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('templates/topbar', $data);
$this->load->view('admin/index', $data);
$this->load->view('templates/footer');
}
}
Tugas pertemuan 8
74
PERTEMUAN 10
MEMBUAT FORM REGISTRASI USER
Deskripsi Pembelajaran
Berisi pembahasan tentang pembuatan helper, jalamn registrasi anggota, halaman my profile
dan mengubah profile. Dipertemuan ini juga dibahas aturan penamaan dan penggunaan
helper.
Dalam kasus ini, sementara form registrasi bisa diakses melalui halaman login dengan link
registrasi user. Dikarenakan pada materi web programming 2 ini pembahasannya belum
sampai membuat halaman front-end. Yaitu halaman member dan pengunjung.
Pembahasannya akan ada pada meteri web programming 3 di semester selanjutnya. Jika
sudah sampai halaman front-end, barulah link unutk mengakses form registrasi akan
diletakkan pada bagian frontend.
Tujuan Pembelajaran
Pada pertemuan ini mahasiswa diharapkan dapat memahami konsep registrasi dan membuat
form input registrasi. Mahasiswa juga diharapkan memahami bagaimana membuat helper
sendiri dan bagaimana cara penggunaanya.
File helper ini dibuat untuk membuat pengecekan status login dari user. Karena akan
digunakan disetiap form, agar lebih efektif maka dibuatlah helper. Aturan penamaan file
helper ini harus diakhiri dengan kata helper contoh booking_helper.php,
pustaka_helper.php dan lain-lain. Ketika helper ini akan digunakan atau di load,
pemanggilannya cukup kata depannya saja. Seperti contoh helper diatas yaitu diload booking
dan pustaka tanpa menyertakan kata _helper nya.
Buatlah file baru beri nama pustaka_helper.php kemudian simpan dalam folder
application/helpers dan berikut script dari pustaka_helper.php:
<?php
75
function cek_login()
{
$ci = get_instance();
if (!$ci->session->userdata('email')) {
$ci->session->set_flashdata('pesan', '<div class="alert
alert-danger" role="alert">Akses ditolak. Anda belum login!!
</div>');
redirect('autentifikasi');
} else {
$role_id = $ci->session->userdata('role_id');
}
}
Dari tampilan script di atas, terlihat ada duan function yaitu cek_login() untuk memastikan
sudah login atau belum.
Selanjutnya buat file view blok.php dan gagal.php kedua file ini digunakan untuk
menampilkan tampilan gagal dan akses di blok. Untuk membuatnya kita bisa menggunakan
template yang sudah disediakan oleh sb admin 2. Cari file 404.html kemudian buka dengan
edior lalu copy isi scriptnya dan paste pada file blok.php dan file gagal.php. selanjutnya
samakan scriptnya seperti berikut:
blok.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
76
<link href="<?= base_url('assets/');?>vendor/fontawesome-
free/css/all.min.css" rel="stylesheet" type="text/css">
<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,30
0i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
</head>
<body id="page-top">
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
77
</div>
<!-- End of Content Wrapper -->
</div>
<!-- End of Page Wrapper -->
78
<script src="<?=
base_url('assets/');?>vendor/bootstrap/js/bootstrap.bundle.min.js"><
/script>
</body>
</html>
gagal.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
79
<link href="<?= base_url('assets/'); ?>css/sb-admin-2.min.css"
rel="stylesheet">
</head>
<body id="page-top">
</d iv>
<!-- /.contai n er-fluid -->
</div>
<!--End of Main Content -->
</div>
<!--End of Content Wrapper -->
</div>
<!--End of Page Wrap per -->
80
<!-- Bootstrap core JavaScript -->
<script src="<?= base_url('assets/');
?>vendor/jquery/jquery.min .js"></script>
<script src="<?= base_url('assets/');
?>vendor/bootstrap/js/bootstrap.bundle.min.j s"></script>
</body>
</html>
Selanjutnya tambahkan method untuk mengontrol blok.php dan gagal php di atas dalam
controller autentifikasi.php berikut scriptnya:
public function blok()
{
$this->load->view('autentifikasi/blok');
}
Setelah membuat tampilan-tampilan blok dan gagal. Barulah membuat tampilan registrasi.
Buatlah view baru beri nama registrasi.php kemudian simpan dalam folder
Application/views/autentifikasi lalu buka file view login.php copy semua script login dan
paste pada file registrasi.php. Selanjutnya tambahkan inputan sehingga hasilnya seperti
berikut:
81
<div class="container">
</div>
Selanjutnya setelah membuat view registrasi. Kita tambahkan method pada controller
autentifikasi. Nama methodnya registrasi() seperti berikut:
$this->session->set_flashdata('pesan', '<div
class="alert alert-success alert-message" role="alert">Selamat!!
akun member anda sudah dibuat. Silahkan Aktivasi Akun anda</div>');
redirect('autentifikasi');
}
}
Setelah controller dibuat, selanjutnya buatlah sebuah model baru beri nama ModelUser.php
kemudian simpan dalam folder Application/models/ lalu buatlah script di bawah:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
Halaman my profile ini akan di tampilkan setelah login. Link unutk mengaksesnya berada di
pojok kanan atas tampilan halaman utama admin.
Buatlah controller baru beri nama User.php kemudian simpan dalam folder
Application/controlles/ lalu buatlah script berikut:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('templates/topbar', $data);
$this->load->view('user/index', $data);
$this->load->view('templates/footer');
}
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('templates/topbar', $data);
$this->load->view('user/anggota', $data);
$this->load->view('templates/footer');
}
87
if ($this->form_validation->run() == false) {
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('templates/topbar', $data);
$this->load->view('user/ubah-profile', $data);
$this->load->view('templates/footer');
} else {
$nama = $this->input->post('nama', true);
$email = $this->input->post('email', true);
if ($upload_image) {
$config['upload_path'] = './assets/img/profile/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '3000';
$config['max_width'] = '1024';
$config['max_height'] = '1000';
$config['file_name'] = 'pro' . time();
$this->load->library('upload', $config);
if ($this->upload->do_upload('image')) {
$gambar_lama = $data['user']['image'];
if ($gambar_lama != 'default.jpg') {
unlink(FCPATH . 'assets/img/profile/' .
$gambar_lama);
}
$gambar_baru = $this->upload->data('file_name');
$this->db->set('image', $gambar_baru);
} else { }
}
$this->db->set('nama', $nama);
$this->db->where('email', $email);
$this->db->update('user');
$this->session->set_flashdata('pesan', '<div
class="alert alert-success alert-message" role="alert">Profil
Berhasil diubah </div>');
88
redirect('user');
}
}
}
kemudian setelah membuat controller, selanjutnya kita buat tampilan (view ) dari my profile
dan ubah profile.
Buatlah file view baru beri nama index.php dan ubah-profile.php lalu simpan dalam folder
Application/views/user/ kemudian buatlah script berikut:
Index.php
<div class="row">
<div class="col-lg-6 justify-content-x">
<?= $this->session->flashdata('pesan'); ?>
</div>
</div>
<div class="card mb-3" style="max-width: 540px;">
<div class="row no-gutters">
<div class="col-md-4">
<img src="<?= base_url('assets/img/profile/') .
$user['image']; ?>" class="card-img" alt="...">
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title"><?= $user['nama'];
?></h5>
<p class="card-text"><?= $user['email']; ?></p>
<p class="card-text"><small class="text-
muted">Jadi member sejak: <br><b><?= date('d F Y',
$user['tanggal_input']); ?></b></small></p>
</div>
<div class="btn btn-info ml-3 my-3">
<a href="<?= base_url('user/ubahprofil'); ?>"
class="text text-white"><i class="fas fa-user-edit"></i> Ubah
Profil</a>
</div>
</div>
89
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
ubah-profile.php
<div class="row">
<div class="col-lg-9">
<?= form_open_multipart('user/ubahprofil'); ?>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-
label">Email</label>
<div class="col-sm-10">
<input type="text" class="form-control"
id="email" name="email" value="<?= $user['email']; ?>" readonly>
</div>
</div>
<div class="form-group row">
<label for="nama" class="col-sm-2 col-form-
label">Nama Lengkap</label>
<div class="col-sm-10">
<input type="text" class="form-control"
id="nama" name="nama" value="<?= $user['nama']; ?>">
<?= form_error('nama', '<small class="text-
danger pl-3">', '</small>'); ?>
</div>
</div>
<div class="form-group row">
<div class="col-sm-2">Gambar</div>
<div class="col-sm-10">
<div class="row">
<div class="col-sm-3">
90
<img src="<?=
base_url('assets/img/profile/') . $user['image']; ?>" class="img-
thumbnail" alt="">
</div>
<div class="col-sm-9">
<div class="custom-file">
<input type="file" class="custom-
file-input" id="image" name="image">
<label class="custom-file-label"
for="image">Pilih file</label>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
91
Tugas pertemuan 10
92
PERTEMUAN 11
MEMBUAT KATEGORI BUKU
Deskripsi Pembelajaran
Berisi pembahasan tentang pembuatan menmbah data, menampilkan data, mengubah data,
dan menghapus data kategori buku.
Tujuan Pembelajaran
Pada pertemuan ini mahasiswa diharapkan dapat memahami konsep create, read, update, dan
delete. Untuk memanipulasi sebuah data pada database
Berdasarkan tampilan di atas, berarti pertama kita buat tampilan data kategori buku.
Buatlah file view baru beri nama kategori.php kemudian simpan dalam folder
Application/views/buku lalu buatlah script berikut
<?php
$a = 1;
foreach ($kategori as $k) { ?>
<tr>
<th scope="row"><?= $a++; ?></th>
<td><?= $k['kategori']; ?></td>
<td>
<a href="<?=
base_url('buku/ubahBuku/').$k['id'];?>" class="badge badge-info"><i
class="fas fa-edit"></i> Ubah</a>
<a href="<?=
base_url('buku/hapusbuku/').$k['id'];?>" onclick="return
confirm('Kamu yakin akan menghapus <?= $judul.' '.$k['kategori'];?>
?');" class="badge badge-danger"><i class="fas fa-trash"></i>
Hapus</a>
</td>
</tr>
<?php } ?>
</tbody>
94
</table>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
Selanjutnya setelah view dibuat, maka kita buat function untuk menampilkan data kategori
hapus data kategori dalam controller Buku.php berikut script dari function kategori() dan
hapusKategori()
$this->form_validation->set_rules('kategori', 'Kategori',
'required', [
'required' => 'Judul Buku harus diisi'
]);
if ($this->form_validation->run() == false) {
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('templates/topbar', $data);
$this->load->view('buku/kategori', $data);
$this->load->view('templates/footer');
} else {
$data = [
'kategori' => $this->input->post('kategori')
96
];
$this->ModelBuku->simpanKategori($data);
redirect('buku/kategori');
}
}
Tugas 10
97
PERTEMUAN 12
MEMBUAT CRUD DATA BUKU
Deskripsi Pembelajaran
Pertemuan ini membahas tentang pembuatan form tambah data buku dan tampilan data buku
yang sudah masuk dalam database, kemudian membahas tentang pembuatan modelbuku.php
untuk pemetaan data dari database, dan membuat form ubah data serta hapus data buku.
Dalam kasus ini pembuatan CRUD data-data buku, disesuaikan dengan gambaran
perancangan database di pertemuan sebelumnya. Data-data buku yang akan disimpan adalah
data id buku, judul buku, pengarang, penerbit, tahun terbit, isbn, jumlah buku, lokasi, gambar
dan tanggal input.
Tujuan Pembelajaran
Pada pertemuan ini mahasiswa diharapkan dapat memahami dan membuat aplikasi CRUD
untuk data-data master.
Langkah pertama akan dibuatkan file untuk menampilkan data buku. Yaitu controller
buku.php dengan beberapa method untuk tampil, simpan, ubah, dan hapus data.
Buatlah controller baru beri nama Buku.php lalu simpan dalam folder
Application/controllers dan buatlah script seperti di bawah ini:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
$this->form_validation->set_rules('judul_buku', 'Judul
Buku', 'required|min_length[3]', [
'required' => 'Judul Buku harus diisi',
'min_length' => 'Judul buku terlalu pendek'
]);
$this->form_validation->set_rules('id_kategori', 'Kategori',
'required', [
'required' => 'Nama pengarang harus diisi',
]);
$this->form_validation->set_rules('pengarang', 'Nama
Pengarang', 'required|min_length[3]', [
'required' => 'Nama pengarang harus diisi',
'min_length' => 'Nama pengarang terlalu pendek'
]);
$this->form_validation->set_rules('penerbit', 'Nama
Penerbit', 'required|min_length[3]', [
'required' => 'Nama penerbit harus diisi',
'min_length' => 'Nama penerbit terlalu pendek'
]);
$this->form_validation->set_rules('tahun', 'Tahun Terbit',
'required|min_length[3]|max_length[4]|numeric', [
'required' => 'Tahun terbit harus diisi',
'min_length' => 'Tahun terbit terlalu pendek',
'max_length' => 'Tahun terbit terlalu panjang',
'numeric' => 'Hanya boleh diisi angka'
]);
$this->form_validation->set_rules('isbn', 'Nomor ISBN',
'required|min_length[3]|numeric', [
'required' => 'Nama ISBN harus diisi',
'min_length' => 'Nama ISBN terlalu pendek',
'numeric' => 'Yang anda masukan bukan angka'
99
]);
$this->form_validation->set_rules('stok', 'Stok',
'required|numeric', [
'required' => 'Stok harus diisi',
'numeric' => 'Yang anda masukan bukan angka'
]);
$this->load->library('upload', $config);
if ($this->form_validation->run() == false) {
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('templates/topbar', $data);
$this->load->view('buku/index', $data);
$this->load->view('templates/footer');
} else {
if ($this->upload->do_upload('image')) {
$image = $this->upload->data();
$gambar = $image['file_name'];
} else {
$gambar = '';
}
$data = [
'judul_buku' => $this->input->post('judul_buku',
true),
'id_kategori' => $this->input->post('id_kategori',
true),
'pengarang' => $this->input->post('pengarang',
true),
'penerbit' => $this->input->post('penerbit', true),
'tahun_terbit' => $this->input->post('tahun', true),
'isbn' => $this->input->post('isbn', true),
'stok' => $this->input->post('stok', true),
100
'dipinjam' => 0,
'dibooking' => 0,
'image' => $gambar
];
$this->ModelBuku->simpanBuku($data);
redirect('buku');
}
}
}
Setelah membuat controller buku, selanjutnya kita buat model buku untuk memodelkan data
buku dari tabel buku yang nanti ditampilkan pada view index.php dari tampilan buku.
Buatlah model baru dengan nama ModelBuku.php simpan dalam folder
Application/models/ kemudian buatlah script berikut:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
//manajemen kategori
public function getKategori()
{
return $this->db->get('kategori');
}
//join
public function joinKategoriBuku($where)
102
{
$this->db->select('buku.id_kategori,kategori.kategori');
$this->db->from('buku');
$this->db->join('kategori','kategori.id =
buku.id_kategori');
$this->db->where($where);
return $this->db->get();
}
}
Selanjutnya buatlah index.php untuk tampilan data buku disimpan dalam folder
application/views/buku lalu buatlah script berikut:
<?php
$a = 1;
foreach ($buku as $b) { ?>
<tr>
<th scope="row"><?= $a++; ?></th>
<td><?= $b['judul_buku']; ?></td>
<td><?= $b['pengarang']; ?></td>
<td><?= $b['penerbit']; ?></td>
<td><?= $b['tahun_terbit']; ?></td>
<td><?= $b['isbn']; ?></td>
<td><?= $b['stok']; ?></td>
<td><?= $b['dipinjam']; ?></td>
<td><?= $b['dibooking']; ?></td>
<td>
<picture>
<source srcset=""
type="image/svg+xml">
<img src="<?=
base_url('assets/img/upload/') . $b['image'];?>" class="img-fluid
img-thumbnail" alt="...">
</picture></td>
<td>
<a href="<?=
base_url('buku/ubahBuku/').$b['id'];?>" class="badge badge-info"><i
class="fas fa-edit"></i> Ubah</a>
<a href="<?=
base_url('buku/hapusbuku/').$b['id'];?>" onclick="return
confirm('Kamu yakin akan menghapus <?= $judul.'
'.$b['judul_buku'];?> ?');" class="badge badge-danger"><i class="fas
fa-trash"></i> Hapus</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
104
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
105
<input type="text" class="form-control form-
control-user" id="pengarang" name="pengarang" placeholder="Masukkan
nama pengarang">
</div>
<div class="form-group">
<input type="text" class="form-control form-
control-user" id="penerbit" name="penerbit" placeholder="Masukkan
nama penerbit">
</div>
<div class="form-group">
<select name="tahun" class="form-control
form-control-user">
<option value="">Pilih Tahun</option>
<?php
for ($i=date('Y'); $i > 1000 ; $i--) {
?>
<option value="<?= $i;?>"><?=
$i;?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<input type="text" class="form-control form-
control-user" id="isbn" name="isbn" placeholder="Masukkan ISBN">
</div>
<div class="form-group">
<input type="text" class="form-control form-
control-user" id="stok" name="stok" placeholder="Masukkan nominal
stok">
</div>
<div class="form-group">
<input type="file" class="form-control form-
control-user" id="image" name="image">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary"
data-dismiss="modal"><i class="fas fa-ban"></i> Close</button>
<button type="submit" class="btn btn-primary"><i
class="fas fa-plus-circle"></i> Tambah</button>
</div>
</form>
106
</div>
</div>
</div>
<!-- End of Modal Tambah Mneu -->
Sekarang coba kita klik pada menu data buku. Maka halaman akan diarahkan ke
method/function index(). Dan data buku pun berhasil ditampilkan.
Untuk mengubah data buku, akan kita buat sebuah form baru lagi pada function ubahbuku()
di controller Buku.php. seperti yang telah kita arahkan pada tombol ubah di data buku.
$this->form_validation->set_rules('judul_buku', 'Judul
Buku', 'required|min_length[3]', [
'required' => 'Judul Buku harus diisi',
'min_length' => 'Judul buku terlalu pendek'
]);
$this->form_validation->set_rules('id_kategori', 'Kategori',
'required', [
'required' => 'Nama pengarang harus diisi',
]);
$this->form_validation->set_rules('pengarang', 'Nama
Pengarang', 'required|min_length[3]', [
'required' => 'Nama pengarang harus diisi',
'min_length' => 'Nama pengarang terlalu pendek'
]);
$this->form_validation->set_rules('penerbit', 'Nama
Penerbit', 'required|min_length[3]', [
'required' => 'Nama penerbit harus diisi',
'min_length' => 'Nama penerbit terlalu pendek'
]);
$this->form_validation->set_rules('tahun', 'Tahun Terbit',
'required|min_length[3]|max_length[4]|numeric', [
'required' => 'Tahun terbit harus diisi',
'min_length' => 'Tahun terbit terlalu pendek',
'max_length' => 'Tahun terbit terlalu panjang',
'numeric' => 'Hanya boleh diisi angka'
]);
$this->form_validation->set_rules('isbn', 'Nomor ISBN',
'required|min_length[3]|numeric', [
'required' => 'Nama ISBN harus diisi',
'min_length' => 'Nama ISBN terlalu pendek',
'numeric' => 'Yang anda masukan bukan angka'
]);
$this->form_validation->set_rules('stok', 'Stok',
'required|numeric', [
'required' => 'Stok harus diisi',
'numeric' => 'Yang anda masukan bukan angka'
108
]);
if ($this->form_validation->run() == false) {
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('templates/topbar', $data);
$this->load->view('buku/ubah_buku', $data);
$this->load->view('templates/footer');
} else {
if ($this->upload->do_upload('image')) {
$image = $this->upload->data();
unlink('assets/img/upload/' . $this->input-
>post('old_pict', TRUE));
$gambar = $image['file_name'];
} else {
$gambar = $this->input->post('old_pict', TRUE);
}
$data = [
'judul_buku' => $this->input->post('judul_buku',
true),
'id_kategori' => $this->input->post('id_kategori',
true),
'pengarang' => $this->input->post('pengarang',
true),
'penerbit' => $this->input->post('penerbit', true),
'tahun_terbit' => $this->input->post('tahun', true),
'isbn' => $this->input->post('isbn', true),
'stok' => $this->input->post('stok', true),
'image' => $gambar
];
109
$this->ModelBuku->updateBuku($data, ['id' => $this-
>input->post('id')]);
redirect('buku');
}
}
Sekarang kita akan mencoba mengubah/mengedit salah satu data buku. Klik pada tombol
edit. Lalu ubah yang dibutuhkan kemudian simpan/update
Sesuai dengan link yang sudah kita tentukan pada tombol hapus di table data
buku seperti di atas.
Untuk aksi dari penghapusan data buku kita akan membuatnya di function/method
hapusbuku() dalam controller Buku.php. Buat sebuah method baru dengan nama
hapusbuku() di controller Buku.php.
Sekarang untuk mencobanya, bisa klik tombol hapus pada buku yang ingin di hapus. Maka
data bukupun terhapus.
110
PERTEMUAN 13-15
PRESENTASI PROJEK
111
PERTEMUAN 16
UJIAN AKHIR SEMESTER
112
DAFTAR PUSTAKA
Hadi, Diki Alfarabi. E-book Belajar Cepat CodeIgniter Lengkap dengan Studi Kasus
Membuat Aplikasi Rental Mobil.
Rahajo, Budi. Belajar Otodidak Framework CodeIgniter Teknik Pemrograman Web dengan
PHP 7 dan Framework CodeIgniter 3. Bandung. Informatika
113