Anda di halaman 1dari 21

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-ViewController (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) 2) Kecepatan. Codeigniter merupakan salah satu framework PHP yang tercepat. 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) 3) 4) application/controllers. Direktori untuk menyimpan semua file-file controller yang diperlukan aplikasi. application/models. Direktori untuk menyimpan semua file-file model yang diperlukan aplikasi. application/views. Direktori untuk menyimpan semua file-file view yang diperlukan aplikasi.

Gambar 1. 3 Struktur Direktori (application) Framework Codeigniter

5) 6)

system/database. Direktori yang berisi file-file library untuk fungsi database. 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) 2) 3) XAMPP (Apache, MySQL, PHP) Framework Codeigniter 2.1.0 PHP Editor (Notepad ++, PHP Designer, Dreamweaver, dsb)

2.2 Setting Framework Codeigniter Untuk melakukan setting framework Codeigniter, lakukan langkah-langkah berikut : 1) 2) 3) 4) Install XAMPP Ekstrak file CodeIgniter_2.1.0.zip ke direktori xampp/htdocs Lakukan konfigurasi terhadap file config.php, autoload.php dan routes.php sesuai dengan keperluan. 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 langkahlangkah berikut ini : 1) Buatlah file percobaan.php dan simpan di direktori controllers. Berikut ini adalah kode sumber dari file 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); } }

2) Buatlah file v_percobaan.php dan simpan di direktori views. Berikut ini adalah kode sumber dari file v_percobaan.php :

<html> <head> <title>Percobaan View</title> </head> <body> <?php echo $pesan; ?> </body> </html>

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.

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

<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>

Kode 2. 1 Kode HTML Native untuk Menampilkan Tabel dan Data


$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);

Kode 2. 2 Kode Program untuk Menampilkan Tabel dan Data Library

Untuk menggunakan sebuah library, harus mencantumkan kode berikut :


$this->load->library('nama_library');

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.
<link href="http://localhost/trainingci/css/style.css" rel="stylesheet" type="text/css" />

Kode 2. 3 Kode HTML Native untuk Menyertakan File CSS


echo link_tag('css/style.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.

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 :
<?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){ } ?>

Kode 2. 5 Kode PHP Native untuk Mengambil Data


<?php $query = $this->db->get(barang); if($query->num_rows() > 0) { } ?>

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.

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

<?php echo $barang; ?>

Kode 2. 7 Kode Program File v_barang.php (view)

<?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(); } }

Kode 2. 8 Kode Program File barang_model.php (model)


<?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, } $no++;

$barang->stok);

$data['barang'] = $this->table->generate(); } $this->load->view('v_barang',$data);

Kode 2. 9 Kode Program File barang_model.php (model)

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