Pengenalan Framework
Framework secara sederhana dapat diartikan kumpulan dari
fungsi/prosedur dan class untuk tujuan tertentu yang sudah siap
digunakan sehingga bisa lebih mempermudah dan mempercepat
pekerjaan seorang pemrograman, tanpa harus membuat fungsi atau class
dari awal.
b) Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah
framework (dengan syarat programmer mengikuti pola standar yang ada)
c) Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita tidak perlu
membangun dari awal (misalnya validasi, ORM, pagination, multiple database, scaffolding,
pengaturan session, error handling, dll
Pengenalan CodeIgniter
CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View,
Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter
memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan
dengan membuatnya dari awal. CodeIgniter dirilis pertama kali pada 28 Februari 2006. Versi stabil
terakhir 2.1.0 yang dirilis pada 28 November 2011.
Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain,
a) Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena
eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat
bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding
framework yang lain.
b) Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk menyesuaikan
dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan
mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
menggunakan codeigniter dengan setting standard, kamu hanya perlu merubah sedikit saja file
pada folder config.
c) Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi
dengan yang lain, baik itu bertanya atau teknologi terbaru.
d) Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide
yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.
Instalasi
Instalasi Code Igniter bisa kita lakukan hanya dengan empat Langkah :
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
1) Ketika request datang, maka .htaccess akan me-rewrite ke standard format dan melewatkan
ke index.php
2) FrontController memeriksa request berdasarkan URL, dan mencocokkan dengan default
maupun custom routes.
3) Jika cocok, maka Front Controller mengirim ke controller dengan action yang sesuai. Jika
benar, maka view dan layout akan dirender ke user jika diperlukan.
4) Jika tidak cocok, maka exception dan Error Controller akan dipanggil dan error Action akan
merender error message ke user.
2. application/config/config.php
beberapa config yang perlu dipelajari dan paling umum digunakan :
BASE URL adalah URL ke ROOT website, nantinya ini akan menjadi URL dasar yang nantinya bias kita
pakai. Untuk pemanfaatanya kita bahas lagi nanti. Untuk penamaanya jangan lupa diberikan slash
/ pada akhir URL. Jika ini tidak diatur maka CodeIgniter akan menebak protokol, domain dan Path
ke instalasi Anda. Jika ini tidak diatur maka CodeIgniter akan menebak protokol, domain dan Path ke
instalasi Anda.
$controller['base_url']= 'http://www.example.com/';
INDEX PAGE, digunakan untuk mendefinisikan file index.php Anda, kecuali kamu sudah berganti
nama untuk sesuatu yang lain. Jika kamu menggunakan mod_rewrite untuk menghapus halaman
mengatur variabel ini sehingga kosong.
$controller['index_page'] = 'index.php';
Dan banyak controller lainnya silahkan dipelajari, karena di setiap controller juga terdapat
keterangan yang mudah dipahami.
3. application/controller/autoload.php
CodeIgniter dilengkapi dengan fitur "Auto-Load" yang memungkinkan libraries, helpers, dan
models yang akan diinisialisasi secara otomatis setiap kali sistem berjalan. Jika kamu membutuhkan
sumber daya tertentu secara global di seluruh aplikasi Anda, kamu harus mempertimbangkan untuk
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
mengatur agar sumber daya tersebut AutoLoad/otomatis di load untuk kemudahan dalam ber-
coding juga.
4. application/controller/database.php
File yang digunakan untuk mengatur koneksi dan pengaturan antara website/aplikasi dengan
database. Cara settingnya dengan mengubah hostname, username, password, dan nama database
sesuaikan dengan pengaturan mysql anda.
Contoh :
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "db_ci";
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
1. View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian
ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk
menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung
terhadap bagian model.
2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert,
update, delete, search), menangani validasi dari bagian controller, namun tidak dapat
berhubungan langsung dengan bagian view.
3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian
view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan
apa yang akan diproses oleh aplikasi.
Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan
developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer
yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan
maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara
programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan.
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
1. Index.php berfungsi sebagai controller depan, menginisialisasi sumber daya dasar yang
dibutuhkan untuk menjalankan CodeIgniter.
2. Router ini mengkaji permintaan HTTP untuk menentukan apa yang harus dilakukan dengan
hal itu.
3. Jika file cache ada, itu dikirim langsung ke browser, melewati sistem eksekusi yang normal.
4. Keamanan. Sebelum pengontrol aplikasi dimuat, permintaan HTTP dan data user dikirimkan
disaring untuk keamanan.
5. Controller bertugas memanggil dan menjalankan models, Libraries, pembantu, dan setiap
sumber daya lain yang diperlukan untuk memproses permintaan khusus.
Akhirnya View di proses dan memberikan tampilan yang kemudian dikirim ke browser web
untuk dilihat. Jika caching diaktifkan, view pertama tama akan ke cache sehingga pada
permintaan berikutnya yang sama bisa langsung ke cache.
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
Controllers
Controller itu ibarat lem, yang menghubungkan dan meneruskan pekerjaan antara View dan
Modelnya. Berikut contoh URL website yang menggunakan framework CI, dan pahamilah :
http://example.com/pages/artikel/mempelajaricodeigniter
kita bisa membayangkan dari URL diatas, pages merupakan nama class Controller yang kita buat, lalu
artikel adalah methodnya dan mempelajaricodeigniter adalah argumentnya. Jadi ibarat perintah
kita ingin menampilkan halaman artikel dengan judul mempelajari code igniter. Nantinya pasti kamu
akan sangat sering dan terbiasa dengan URL seperti itu.
http://example.com/[controller-class]/[controller-method]/[arguments]
URL menjadi lebih mudah dan nantinya kita bisa rubah dengan bantuan dari framework CI ini url bisa
jadi lebih indah.. contohnya nanti kita bisa buat sendiri, sabar.. sekarang kita mulai dari hal yang
sederhana. contoh sederhana pemakaian contoler, ketikan kode di noepad dan simpan di folder
application/controllers/pages.php :
<?php
class Pages extends CI_Controller { //membuat class contoler bernama pages
public function tampil() //membuat method dengan nama index
{
echo hai, ayo kta belajar framework Code igniter!;
}
}
*Note : tidak direkomendasikan copy & paste script dari tutorial ini, dikarenakan perbedaan
character pada tanda petik. Script tidak akan jalan.
Penamaan nama file harus sama dengan nama class, dan penamaan nama class harus diawli huruf
capital. Setelah itu coba buka browser dan ketikkan url berikut :
http://localhost/webku/index.php/pages/tampil
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
views
Setelah Controler kita mempelajari view terlebih dahulu, karena kita bisa membuat web hanya
dengan controller dan view, langsung saja contohnya seperti ini, kita ingin membuat web dengan 2
halaman, home dan profil :
<html>
<head>
<title>Halaman awal</title>
</head>
<body>
<h1>Selamat dating, ini adalah halaman awal !.</h1>
</body>
</html>
Dan untuk profil.php silahkan buat sendiri, jangan lupa simpan di folder application/views/
<?php
class Pages extends CI_Controller {
function home(){ // membuat method bernama home
$this->load->view('home');
}
function profil() {
$this->load->view('profil');
}
}
$this->load->view('home'); => disini kita me load halaman home.php yang berada di folder
application/view/ yang kita buat, kita tidak perlu memberikan extensi .php cukup nama filenya saja.
selanjutnya buat folder bernama templates di folder view, kita juga bisa seperti ini :
<html>
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
<head>
<title><?php echo $title; ?></title>
</head>
<body>
Simpan sebagai header.php di folder application/view/templates
<hr>
Copyright @ 2012 <br>
Website by saefulloh Rifai
</body>
</html>
Simpan sebagai footer.php di folder application/view/templates
Dan kita tinggal buat isinya. Silahkan terserah mau buat apa, untuk contoh :
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
Models
Model adalah class yang berguna untuk mengatur hubungan dengan database, karan pasti kita akan
melakukan insert, update delete dll, dan dengan dibuatnya class / model ini kita tidak perlu brulang
ulang kembali menuliskan script tersebut. Akan tetapi model ini tidak harus ada semua terserah
programmer, karena di controllerpun sebenarnya bisa mengurusi data ke database tapi kalau kamu
ingin kemudahan model merupakan solusinya.
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function get10ArtikelTerbaru()
{
$query = $this->db->get('entries', 10);
return $query->result();
}
function tambahArtikel()
{
$this->judul = $_POST['judul'];
$this->isi = $_POST['isi'];
$this->tanggal = time();
$this->db->insert('entries', $this);
}
function update_entry()
{
$this->judul = $_POST['judul'];
$this->isi = $_POST['isi'];
$this->tanggal = time();
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
Simpan dengan nama m_artikel.php (seperti biasa, penamaan class sama dengan nama filenya)
untuk model folder penyimpanannya ada di application/models/
Mungkin bagi yang baru belajar CI ini terlihat script diatas terlihat asing, tapi seperti itulah di CI kita
memakai Active Record. Untuk active record detailnya kita bahas nanti, yang penting disini kamu
hanya harus tau apa itu model.
Dan dibawah contoh pemakaian model di controller. class Artikel extends CI_Controller {
function terbaru() {
$this->load->model('M_artikel');
$data['query'] = $this->M_artikel->get10ArtikelTerbaru();
Simpan di folder controller dengan namaartikel.php, ingat untuk mengatur database di file
controller/database.php. sekarang kita buat di viewnya :
<html>
<head><title><?php echo $title; ?></title></head>
<body>
<?php
foreach($query->result() as $row){
echo <h3> .$row[judul]. </h3>;
echo tanggal : .$row[tgl].. .$row[isi].<br>;
echo <hr>;
}
?>
</body>
</html>
Ok. Simpan dengan nama v_artikel.php di application/views
Silahkan dilihat hasilnya : http://localhost/webku/index.php/artikel/terbaru
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
Active Record
Untuk Memilih data dari database ( Select )
$this->db->get();
Contoh :
1) $query = $this->db->get('mytable');
// menghasilkan : SELECT * FROM mytable
2) $query = $this->db->get('mytable', 10, 20);
// menhasilkan : SELECT * FROM mytable LIMIT 20, 10
(limit ini untuk database mysql, di database lain bisa berbeda script)
Bisa dilihat diatas menghasilkan data untuk variable query yang bisa kita oleh seperti ini :
$query = $this->db->get('nama_tabel');
foreach ($query->result() as $baris) {
echo $baris->nama_field;
}
Fungsi result() digunakan untuk membuat objek atau array kosong jika salah, nanti akan dibahas
lebih dalam.
-------------------------------------------------------------------------------------------------------------------------------------
$this->db->get_where();
Digunakan untuk menyeleksi dan memberikan kondisi where, menggantikan get_where() pada versi
sebelumnya.
--------------------------------------------------------------------------------------------------------------------------------
$this->db->select();
Digunakan untuk menyeleksi satu atau bebrapa field saja pada suatu query.
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
$this->db->select_max('age');
$query = $this->db->get('members');
// Menghasilkan : SELECT MAX(age) as age FROM members
$this->db->select_max('age', 'member_age');
$query = $this->db->get('members');
// Menghasilkan : SELECT MAX(age) as member_age FROM members
------------------------------------------------------------------------------------------------------------------------------------
$this->db->select_min();
Digunakan untuk memberikan nilai miniimal suatu field, atau bebrapa field pada table tertentu, ,
cara penulisan dan pemakaiannya sama seperti select_max()
$this->db->select_avg();
Digunakan untuk menghitung nilai rata rata suatu field, cara penulisan dan pemakaiannya sama
seperti select_max()
$this->db->select_sum();
Digunakan untuk menghitung jumlah nilai dari suatu field, cara penulisan dan pemakaiannya sama
seperti select_max()
----------------------------------------------------------------------------------------------------------------------------------
$this->db->from();
Digunakan untuk memilih table yang akan di SELECT, sebenarnya kita bisa dan cukup memilih table
pada get() jadi semua terserah kamu ingin memakai yang mana.
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
-------------------------------------------------------------------------------------------------------------------------------------
-
$this->db->join();
Digunakan untuk menggabungkan beberapa table,
$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');
$query = $this->db->get();
// Menghasilkan : SELECT * FROM blogs JOIN comments ON comments.id = blogs.id
Jika kamu ingin memberikan penggabungan yang lain kamu bisa memberikan nilai pada parameter
ke 3 dengan nilai : left, right, outer, inner, left outer, and right outer.
-------------------------------------------------------------------------------------------------------------------------------------
-
$this->db->where();
Digunakan untuk memberikan kondisi Where pada penyeleksian table. Nilai/value yang digunakan
dalam fungsi ini juga otomastis fileter untuk wild character (Escaped automatically) jadi aman.
$this->db->where('name', $name);
// menhasilkan : WHERE name = 'Joe
Tapi jika kamu menggunakannya lebih dari Satu maka hasilnya menjadi Where AND
$this->db->where('name', $name);
$this->db->where('title', $title);
$this->db->where('status', $status);
// Menghasilkan : WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
Mudah bukan ?
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
------------------------------------------------------------------------------------------------------------------------------------
$this->db->or_where();
Digunakan untuk memberikan wher lebih dari satu dengan kondisi ATAU.
$this->db->where_in();
Bagi kamu yang sudah mempelajari SQL dengan detail dan dalam, pasti paham ini.
-------------------------------------------------------------------------------------------------------------------------------------
$this->db->like();
Digunakan membuat query dengan syarat Like atau seperti nilai yg diberikan.
$this->db->like('title', 'match');
$this->db->like('body', 'match');
// WHERE title LIKE '%match%' AND body LIKE '%match%
Atau mungkin kamu ingin membuat kuery dengan kondisi Like seperti ini :
------------------------------------------------------------------------------------------------------------------------------
$this->db->or_like();
Pemakaiannya sama seperti Like() or_like() digunakan untuk kondisi OR (atau) dengan like.
$this->db->like('title', 'match');
$this->db->or_like('body', $match);
// WHERE title LIKE '%match%' OR body LIKE '%match%'
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
--------------------------------------------------------------------------------------------------------------------------------
$this->db->group_by();
Digunakan untuk memberikan method group by.. atau kelompokan berdasarkan ..
$this->db->group_by(array("nama_field1", "nama_field2"));
// Menghasilkan : GROUP BY title, date,
Digunakan untuk
------------------------------------------------------------------------------------------------------------------------------
$this->db->order_by();
Digunakan untuk mengurutkan data berdasarkan nilai.
$this->db->order_by("title", "desc");
// Menghasilkan : ORDER BY title DESC
----------------------------------------------------------------------------------------------------------------------------------
$this->db->limit();
Digunakan untuk mebatasi jumlah baris yang akan ditampilkan dari hasil query
$this->db->limit(10);
// Produces: LIMIT 10
$this->db->limit(10, 20);
// menghasikan : LIMIT 20, 10 (di mysql, kalau database lain beda perintah)
--------------------------------------------------------------------------------------------------------------------------------
$this->db->count_all_results();
Digunakan untuk Menampilkan nilai dari jumlah baris hasil query, hampir sama dengan num_row().
echo $this->db->count_all_results('my_table');
// menghasilkan nilai integer, misalkan : 25
$this->db->like('title', 'match');
$this->db->from('my_table');
echo $this->db->count_all_results();
// menghasilkan nilai integer, karena ada kondisi misalkan jadi : 17
----------------------------------------------------------------------------------------------------------------------------
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
Result()
Fungsi ini mengembalikan hasil query sebagai array obyek, atau array kosong pada kegagalan. Biasanya kamu
akan menggunakan ini dalam sebuah loop foreach, seperti ini:
Contoh :
$query = $this->db->get(nama_tabel);
foreach ($query->result() as $row){
echo $row->field1;
echo $row->field2;
echo $row->field_n;
}
result_array()
Fungsinya sama seperti result() tapi fungsi ini menghasilkan array murni dari hasil query.
$query->num_rows()
Memberikan nilai balik berupa jumlah dari baris hasil eksekusi query.
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
$this->db->insert('mytable', $data);
// hasil : INSERT INTO mytable (title, name) VALUES ('My title', 'My name')
$this->db->insert_batch()
Anda juga bisa menambahkan beberapa data sekaligus dalam 1 perintah
dengan membuat nilainya ke dalam bentuk array. contoh :
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
$this->db->insert_batch('mytable', $data);
hasil querinya : INSERT INTO mytable (title, name, date) VALUES ('My title', 'My
name', 'My date'), ('Another title', 'Another name', 'Another date')
$this->db->set();
Digunakan untuk mengatur satu atau beberapa field dengan nilai yang akan di tambah ke table.
Funsi juga bisa berjalan di Update(), pemakaiannya sama.
$this->db->set('name', $name);
$this->db->set('title', $title);
$this->db->set('status', $status);
$this->db->insert('mytable');
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
hasil : UPDATE mytable SET title = '$title', name = '$name', date = '$date'
WHERE id = $id
Selain contoh diatas kamu jugab bisa mengedit data menggunakan tambahan fungsi
set() seperti contoh insert di atas.
Sedangkan contoh berikut, digunakan untuk menghapus suatu nilai pada bebrapa
tabel sekaligus dalam 1 perintah :
---------------------------------------------------------------------------------
$this->db->empty_table();
Digunakan Untuk Menghapus seluruh data di suatu tabel.
$this->db->empty_table('mytable');
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
---------------------------------------------------------------------------------
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com
Tutorial Framework CodeIgniter
$this->db->truncate();
Session
Autentikasi adalah suatu mekanisme untuk mengatur hak akses suatu halaman web, biasanya diawali
dengan adanya proses login. Dimana user diminta menginput user id dan password. Jika berhasil
login kamu berhak masuk ke suatu halaman, jika tidak..anda tidak akan bisa masuk ke halaman
tersebut
Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa mengambil
nilai yang tersimpan di server walaupun kita membuka halaman baru. Biasanya session akan hilang
jika kamu menutup browser.
Sebelum kamu menggunakan fungsi fungsi tentang session di CI kamu hrus memanggil library
session terlebih dahulu dengan cara :
$this->load->library('session');
Selanjutnya cara kita membuat atau memasukan nilai ke variabel sementara atau
session :
$this->session->set_userdata('some_name', 'some_value');
$this->session->set_userdata($newdata);
Setelah itu jika anda ingin mengambil atau memakai nilai dari session maka cara
memanggilnya seperti ini :
$session_id = $this->session->userdata('session_id');
Please hope to get some Error, cause its an opportunity for you to be Clever.
By : Saefulloh RifaI <> http://saefullohrifai.blogspot.com