MODUL 1 FRAMEWORK PHP CODE IGNITER
MODUL 1
FRAMEWORK PHP CODE IGNITER
DAFTAR ISI
BAGIAN I SEKILAS CODEIGNITER
Codeigniter adalah salah satu framework PHP yang bersifat open source dan
digunakan untuk membangun aplikasi web dinamis. Codeigniter termasuk
framework yang paling banyak digunakan saat ini karena kemudahan yang
ditawarkan oleh framework ini. Berdasarkan survey yang dilakukan oleh situs
www.phpframework.com pada tahun 2011, Codeigniter menempati
peringkat kedua.
Gambar 1. 1 Rangking Framework Codeigniter Versi Situs phpframework.com
Framework Codeigniter dibuat oleh Rick Ellis seorang musisi Rock yang
beralih menjadi programmer dan Codeigniter pertama kali dirilis pada tahun
2006. Versi terakhir yang dirilis pada tahun 20011 adalah versi 2.1.0.
1.1 Apa itu Framework
Framework adalah sebuah struktur konseptual dasar yang digunakan untuk
memecahkan sebuah permasalahan atau isu-isu kompleks pada
pengembangan aplikasi. Pada framework terdapat kumpulan fungsi dan kelas
yang siap untuk digunakan dalam pengembangan aplikasi. Fungsi dan kelas
yang ada pada framework biasanya merupakan fungsi dan kelas yang
seringkali digunakan dan diperlukan dalam pengembangan aplikasi sehingga
programmer tidak perlu lagi membuat fungsi dan kelas tersebut dari awal.
Sebagian besar framework yang ada saat ini mengadopsi model Model-View-
Controller (MVC).
1.2 Apa Keuntungan Menggunakan Framework
Salah satu alasan orang menggunakan framework dalam mengembangkan
aplikasi adalah karena kemudahan yang ditawarkan. Berikut ini adalah
beberapa keuntungan lain dalam penggunaan framework :
1) Menghemat Waktu Pengembangan. Framework biasanya
menyediakan library yang sering dibutuhkan dalam pengembangan
aplikasi sehingga programmer cukup fokus ke proses bisnis yang akan
dikerjakan.
2) Code Reuse. Dalam framework terdapat beberapa struktur standar
yang harus diikuti dan hal ini akan membuat programmer selalu
bekerja dalam sebuah standar yang disepakati dan dipahami
bersama. Standar ini dapat digunakan kembali pada proyek-proyek
lain.
3) Bantuan Komunitas. Untuk framework yang banyak digunakan, ada
banyak komunitas yang siap membantu jika ada permasalahan.
Keberadaan komunitas ini juga dapat membantu meningkatkan
pengembangan kemampuan pemrograman programmer.
4) Kumpulan Best Practice. Sebuah framework dapat dikatakan sebagai
kumpulan best practice yang sudah teruji. Secara tidak langsung,
penggunaan framework akan meningkatkan kualitas kode dari
aplikasi yang dibangun.
Jika mengacu kepada framework yang lebih spesifik, yaitu framework
Codeigniter yang digunakan pada buku ini, berikut adalah keunggulan
framework Codeigniter yang dapat menjadi pertimbangan :
1) Kecepatan. Codeigniter merupakan salah satu framework PHP yang
tercepat.
2) Mudah dalam Melakukan Modifikasi dan Adaptasi. Framework
Codeigniter tidak memerlukan spesifikasi server untuk
menjalankannya. Modifikasi aplikasi yang menggunakan framework
ini mudah dilakukan.
3) Dokumentasi Lengkap dan Jelas. Dokumentasi resmi yang selalu
diikutsertakan ketika mengunduh framework Codeigniter ini sangat
lengkap dan jelas. Semua hal yang diperlukan dalam mempelajari dan
memahami framework Codeigniter ini berada pada Dokumentasinya.
4) Learning Curve Rendah. Dalam mempelajari dan memahami
framework Codeigniter tidak memerlukan waktu dan usaha yang
lama. Setiap orang dengan berbagai tingkatan pengetahuan dan
keahlian akan sangat mudah dalam mempelajari framework
Codeigniter.
1.3 Konsep MVC
MVC merupakan singkatan dari Model View Controller. MVC sendiri
sebenarnya merupakan pola-pola perancangan atau dikenal dengan Design
Pattern yang memiliki design struktur pemisahan antara bisnis logic (proses),
data logic (penyimpanan data) dan presentation logic (antarmuka aplikasi).
Model MVC banyak diadopsi oleh framework yang ada saat ini. Berikut ini
adalah penjelasan detail mengenai MVC :
1) Model. Model adalah bagian yang berinteraksi langsung dengan
database. Kelas atau fungsi yang melakukan proses pembaharuan
data (update data), pengambilan data (load data), penyimpanan data
(store data) dan penghapusan data (delete data) terdapat pada
model.
2) View. View berhubungan erat dengan tampilan atau sesuatu yang
akan ditampilkan kepada pengguna aplikasi. Pada bagian ini
diharapkan untuk menghindari pemrosesan data. Pada Codeigniter
biasanya view berisi kode-kode untuk user interface (HTML, CSS dan
Javascript) dan variable-variabel yang berisi data yang siap untuk
ditampilkan (data yang berasal dari model dan controller).
3) Controller. Controller sendiri bertindak sebagai penghubung antara
Model dan View. Di Controller inilah binis logic diterapkan. Pada
Controller dimungkinkan terdapat pemrosesan data, validasi,
penanganan error, dsb.
Gambar 1. 2 Alur MVC
Untuk memahami cara kerja MVC, anda dapat melihat gambar 1.2 diatas.
Cara kerja MVC ini juga akan menjelaskan konsep Uniform Resource
Identifier (URI) yang ada pada framework Codeigniter. Jika menggunakan
framework Codeigniter, kita melihat URL seperti berikut :
http://www.situsku.com/index.php/barang/kategori/baju/xl 1 2 3 4 Segment 1 : Nama Kelas Controller Segment 2 : Nama fungsi atau method pada Kelas Controller Segment 3 : Parameter 1 Segment 4 : Parameter 2 Konsep URI pada framework Codeigniter menggunakan konsep URI dengan
pendekatan segment. Jika melihat URL diatas, berarti framework Codeigniter
akan melakukan pemanggilan method “kategori” yang ada pada kelas
“barang” dengan nilai parameter 1 yaitu “baju” dan nilai parameter 2 “xl”.
1.4 Struktur Direktori Framework Codeigniter
Berikut ini adalah penjelasan dan gambar struktur direktori framework
Codeigniter yang memperlihatkan dimana file Model, View dan Controller
disimpan dan memperlihatkan beberapa direktori penting yang menyimpan
file konfigurasi aplikasi dsb.
1) application/config. Berisi file-file konfigurasi yang perlu disesuaikan
dengan kebutuhan seperti koneksi database, helper dan library yang
akan di load.
2) application/controllers. Direktori untuk menyimpan semua file-file
controller yang diperlukan aplikasi.
3) application/models. Direktori untuk menyimpan semua file-file
model yang diperlukan aplikasi.
4) application/views. Direktori untuk menyimpan semua file-file view
yang diperlukan aplikasi.
Gambar 1. 3 Struktur Direktori (application) Framework Codeigniter
5) system/database. Direktori yang berisi file-file library untuk fungsi
database.
6) system/helpers. Direktori yang berisi file-file helper seperti Form
Helper, HTML Helper, Text Helper, dsb.
BAGIAN II DASAR-DASAR CODEIGNITER
Pada bagian ini akan dijelaskan apa-apa saja yang diperlukan untuk
mengembangkan aplikasi dengan menggunakan framework Codeigniter,
setting Codeigniter, mencoba membuat kode sederhana dan studi kasus
untuk melatih penggunaan helper dan library.
2.1 Kebutuhan
Berikut ini adalah kebutuhan yang diperlukan untuk menggunakan
framework Codeigniter :
1) XAMPP (Apache, MySQL, PHP)
2) Framework Codeigniter 2.1.0
3) PHP Editor (Notepad ++, PHP Designer, Dreamweaver, dsb)
2.2 Setting Framework Codeigniter
Untuk melakukan setting framework Codeigniter, lakukan langkah-langkah
berikut :
1) Install XAMPP
2) Ekstrak file CodeIgniter_2.1.0.zip ke direktori xampp/htdocs
3) Lakukan konfigurasi terhadap file config.php, autoload.php dan
routes.php sesuai dengan keperluan.
4) Lakukan testing dengan mengetikan alamat
http://localhost/trainingci pada address bar di browser.
Berikut ini adalah tampilan yang pada browser jika framework Codeigniter
telah berjalan dengan baik :
Gambar 2. 1 Tampilan Jika Konfigurasi Berhasil
Setelah konfigurasi selesai, kita dapat melakukan uji coba dengan membuat
file controller dan view sendiri, lalu eksekusi atau akses file controller
tersebut melalui browser. Untuk melakukan uji coba tersebut ikuti langkah-
langkah berikut ini :
1) Buatlah file percobaan.php dan simpan di direktori controllers.
Berikut ini adalah kode sumber dari file percobaan.php :
2) Buatlah file v_percobaan.php dan simpan di direktori views. Berikut
ini adalah kode sumber dari file v_percobaan.php :
<?php class Percobaan extends CI_Controller{ public function __construct() { parent::__construct(); } public function index() { $data['pesan'] = "Halo ini Codeigniter pertamaku !!"; $this->load->view('v_percobaan',$data); } }
Setelah kedua file diatas dibuat, maka lakukan eksekusi file terebut dengan
mengetikan alamat http://localhost/index.php/percobaan. Berikut tampilan
halaman hasil eksekusi kode diatas :
Gambar 2. 2 Tampilan Halaman Percobaan
Dalam menuliskan kode program, framework memiliki panduan dan bentuk
baku yang dapat dilihat pada dokumentasi Codeigniter (userguide) di menu
“Style Guide”. Aturan, standar dan aturan baku ini sangat penting jika sebuah
aplikasi dikembangkan secara bersama-sama atau dalam sebuah tim. Karena
dengan adanya standar tersebut, sebuah aplikasi yang dikembangkan akan
mudah untuk dikerjakan dan diperbaiki oleh siapapun yang meneruskan
pengembangan aplikasi tersebut.
<html> <head> <title>Percobaan View</title> </head> <body> <?php echo $pesan; ?> </body> </html>
2.3 Lebih Mudah dengan Library
Pembahasan mengenai library akan dilakukan pada saat pembuatan
controller yang memerlukan library tertentu agar lebih mudah dimengerti
dan dipahami karena langsung mempelajarinya melalui contoh. Library yang
akan digunakan pada studi kasus di buku ini adalah :
1) Cart Class
2) Email Class
3) File Uploading Class
4) Form Validation Class
5) HTML Table Class
6) Image Manipulation Class
7) Input Class
8) Pagination Class
9) Session Class
10) URI Class
Agar lebih memahami bagaimana sebuah library dapat mempermudah
programmer dalam membuat kode program, berikut adalah contoh kode
yang menggunakan library dan tidak menggunakan library. Contoh library
yang akan digunakan adalah library HTML Table Class. Gambar dibawah ini
adalah gambar yang akan ditampilkan dengan menggunakan HTML biasa dan
Library framework Codeigniter :
Gambar 2. 3 Contoh Tabel yang Akan Ditampilkan
Kode 2. 1 Kode HTML Native untuk Menampilkan Tabel dan Data
Kode 2. 2 Kode Program untuk Menampilkan Tabel dan Data Library
Untuk menggunakan sebuah library, harus mencantumkan kode berikut : $this->load->library('nama_library');
<table border="1"> <tr> <td>No</td> <td>Nama Barang</td> <td>Harga</td> <td>Stok</td> </tr> <tr> <td>1</td> <td>Tas</td> <td>Rp. 100.000</td> <td>5</td> </tr> <tr> <td>2</td> <td>Baju</td> <td>Rp. 80.000</td> <td>15</td> </tr> <tr> <td>3</td> <td>Sepatu <td>Rp. 150.000</td> <td>10</td> </tr> </table>
$this->load->library('table'); $tmpl = array ('table_open' => '<table border="1">'); $this->table->set_template($tmpl); $this->table->set_heading('No', 'Nama Barang', 'Harga','Stok'); $data = array( array('1', 'Tas', 'Rp. 100.000','5'), array('2', 'Baju', 'Rp. 80.000','15'), array('3', 'Sepatu', 'Rp. 150.000','10')
); $this->table->generate($data);
2.4 Lebih Mudah dengan Helper
Helper yang akan digunakan pada buku ini adalah helper yang sering
digunakan ketika mengembangkan aplikasi. Berikut adalah helper-helper
yang akan dibahas dan digunakan :
1) Form Helper
2) HTML Helper
3) URL Helper
4) Text dan String Helper (*Optional)
Seperti pada bagian library, pada bagian ini juga akan diberikan contoh
bagaimana menggunakan Helper dan penggunaan ini akan menunjukkan
bahwa sebuah Helper akan mempermudah pekerjaan dalam membuat kode
program.
Kode 2. 3 Kode HTML Native untuk Menyertakan File CSS
Kode 2. 4 Kode Program untuk Menyertakan File CSS dengan Helper
Untuk menggunakan sebuah helper, harus mencantumkan kode berikut : $this->load->library('nama_helper');
Jika ada banyak helper dan library yang selalu digunakan disetiap controller,
maka sebaiknya konfigurasi file autoload.php agak helper dan library
tersebut akan di load secara otomatis tanpa harus menuliskan perintah load
disetiap controller yang ada.
<link href="http://localhost/trainingci/css/style.css" rel="stylesheet" type="text/css" />
echo link_tag('css/style.css');
2.5 Lebih Mudah dengan ActiveRecord
ActiveRecord adalah sebuah library database yang memungkinkan kita untuk
melakukan penyimpanan data, modifikasi data dan penghapusan data
dengan menggunakan perintah yang sangat sederhana. Pada studi kasus di
buku ini, sebagaian besar file model akan menggunakan ActiveRecord.
Berikut ini adalah contoh penggunaan ActiveRecord :
Kode 2. 5 Kode PHP Native untuk Mengambil Data
Kode 2. 6 Kode Program untuk Mengambil Data dengan ActiveRecord
2.6 Bekerja dengan MVC
Sebelum melanjutkan ke materi studi kasus, pada bagian ini akan dicoba
untuk membuat aplikasi sederhana yang melibatkan Model-View-Controller
dengan mengikuti langkah-langkah berikut ini :
1) Buatlah database dengan nama trainingci.
2) Buatlah tabel barang sederhana yang memiliki struktur sbb :
kd_barang | varchar (5) | primary, nm_barang | varchar(20), harga
|int(12), stok | int(4).
3) Isi tabel tersebut dengan beberapa data.
<?php $conn = mysql_connect(‘localhost’,’root’,’123456’); mysql_select_db(‘trainingci’); $sql = “SELECT * FROM barang”; $result = mysql_query($sql); if(mysql_num_rows($result) > 0){
… }
?>
<?php $query = $this->db->get(‘barang’); if($query->num_rows() > 0)
{ }
?>
4) Buatlah model yang memiliki fungsi atau method untuk mengambil
data barang.
5) Buatlah halaman tampilan yang akan menampilkan data barang pada
sebuah tabel.
6) Buatlah controller yang memiliki fungsi atau method untuk
menampilkan data barang ke suatu halaman.
Agar langkah-langkah diatas dapat berjalan lancar, lakukanlah pengecekan
terhadap hal-hal berikut ini :
1) Konfigurasi database pada file database.php
(config/database.php)
2) Konfigurasi pada file autoload.php (config/autoload.php)
Solusi
Gambar 2. 4 Struktur Tabel Barang
Kode 2. 7 Kode Program File v_barang.php (view)
<?php echo $barang; ?>
Kode 2. 8 Kode Program File barang_model.php (model)
Kode 2. 9 Kode Program File barang_model.php (model)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Barang_model extends CI_Model { public function __construct() { parent::__construct(); } public function get_all_data() { return $this->db->get('barang')->result(); } }
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Barang extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('barang_model','mb'); $this->load->library('table'); } public function view_barang() { $data = $this->mb->get_all_data(); $tmpl = array ('table_open' => '<table border="1">'); $this->table->set_template($tmpl); $this->table->set_heading('No', 'Nama Barang', 'Harga','Stok'); $no = 1; foreach($data as $barang) { $this->table->add_row($no,$barang->nm_barang, $barang->harga, $barang->stok); $no++; } $data['barang'] = $this->table->generate(); $this->load->view('v_barang',$data); } }
2.7 Studi Kasus
Membuat Aplikasi Penjualan Buku Online. Berikut adalah detail dari Aplikasi
Penjualan Buku Online tersebut :
1) Halaman Depan
a. Menampilkan Informasi Buku yang dijual (Gambar, Judul dan
Harga)
b. Fitur Registrasi User
c. Fitur Pencarian
2) Halaman Administrator
a. Halaman Kelola User (Add, Edit, Delete, List)
b. Halaman Kelola Buku (Add, Edit, Delete, List)
c. Laporan (Tampil dan Cetak | Export to XLS dan Simpan ke
PDF)
3) Halaman User
a. Fitur Ubah Profile
b. Kelola Pemesanan dan Pembelian Buku
c. Cetak Pemesanan
2.8 Run Down
Hari ke – 1
1) Pengenalan Codeigniter
2) Installasi XAMPP, PHP Editor dan Konfigurasi Codeigniter
3) PHP Dasar
4) Penjelasan penggunaan Codeigniter
5) Membuat aplikasi sederhana sebagai latihan menggunakan
Codeigniter
6) Menjelaskan studi kasus training
7) Membuat struktur database studi kasus
8) Membuat design layout sementara
9) Menjelaskan hal-hal yang perlu diperhatikan pada pegembangan
aplikasi pada studi kasus
10) Tanya Jawab
Hari ke – 2 (Menyelesaikan Halaman Depan)
1) Membuat halaman registrasi user
2) Membuat halaman untuk menambah data buku
3) Membuat halaman untuk menampilkan buku
4) Membuat fasilitas pencarian
5) Membuat halaman untuk menambah, menghapus dan
memodifikasi data buku
6) Melakukan pengecekan terhadap data user
• Pengecekan terhadap username yang sama
• Pengecekan email
• Pengecekan no telp
7) Melakukan pengecekan terhadap data buku
• Tipe dan Ukuran File gambar yang diperbolehkan untuk
diupload.
• Validasi pada form tambah buku.
• Pengecekan terhadap judul buku yang sama.
Hari ke – 3 (Menyelesaikan Halaman Administrator)
1) Membuat Fungsi untuk Pengiriman Info Registrasi
2) Menambahkan Fitur Paging
3) Membuat halaman management user
4) Membuat halaman management buku
5) Membuat Authentikasi User dan Login
Hari ke - 4 (Menyelesaikan Halaman User)
1) Membuat halaman untuk menampilkan dan mengubah profile
2) Membuat fitur untuk pembelian (cart) pada halaman depan
3) Membuat halaman untuk menampilkan dan mengelola data
pemesanan atau pembelian
Hari ke - 5
1) Membuat Report dalam bentuk PDF, XLS
2) Contoh-contoh kode program selain studi kasus mengenai CHART,
AJAX, Advanced Email