CodeIgniter merupakan salah satu dari sekian banyak framework PHP yang ada.
CodeIgniter dikembangkan oleh Rick Ellis (http://www.ellislab.com).
Tujuan dari pembuatan framework CodeIgniter ini menurut user manualnya
adalah untuk menghasilkan framework yang akan dapat digunakan untuk
pengembangan proyek pembuatan website secara lebih cepat dibandingkan
dengan pembuatan website dengan cara koding secara manual, dengan
menyediakan banyak sekali pustaka yang dibutuhkan dalam pembuatan
website, dengan antarmuka yang sederhana dan struktur logika untuk
mengakses pustaka yang dibutuhkan. CodeIgniter membiarkan kita untuk
memfokuskan diri pada pembuatan website dengan meminimalkan pembuatan
kode untuk berbagai tujuan pembuatan website.
1.3Kenapa CodeIgniter?
Ada banyak sekali framework PHP yang beredar di internet. Lantas kenap kita
memilih CodeIgniter bukan yang lain?? Berikut alasan-alasannya:
1. Gratis.
CodeIgniter dilisensikan dibawah lisensi Apache/BSD style open source
license, ini berarti kita dapat menggunakannya sesuai dengan keinginan
kita.
2. Berjalan di PHP versi 4 dan 5.
Sekarang ini PHP sudah mencapai versi ke 5, meskipun begitu masih
banyak orang yang tetap menggunakan PHP versi 4, oleh sebab itu
CodeIgniter dikembangkan agar tetap kompatibel dengan PHP versi 4 dan
dapat dijalankan pada PGP versi 5.
3. Ringan dan cepat.
Secara default CodeIgniter hanya berjalan dengan me load beberapa
pustaka saja, dengan demikian hanya membutuhkan resource yang
sedikit sehingga ringan dan cepat dijalankan. Pustaka-pustaka lain yang
nantinya akan digunakan bisa di load sesuai dengan kebutuhan.
4. Menggunakan MVC.
CodeIgniter menggunakan lingkungan pengembangan dengan metode
Model View Controller (MVC) yang membedakan antara logika dan
presentasi/tampilan, sehingga tugas bisa lebih mudah dipecah-pecah.
Ada bagian yang khusus membuat tampilan dan bagian yang membuat
core programnya.
5. Dokumentasi.
Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi
benar-benar dikembangkan atau tidak bisa dilihat dari dokumentasinya.
Dalam hal ini CodeIgniter sangat luar biasa, terdapat dokumentasi yang
sangat lengkap tentang semua hal yang ada dalam CodeIgniter. Mulai
dari langkah instalasi sampai dokumentasi fungsi-fungsi nya tersedia.
Adanya dokumentasi sangat memudahkan bagi pemula dalam
mempelajari lingkungan pengembangan website dengan CodeIgniter.
6. Pustaka yang lengkap.
CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk
berbagai kebutuhan, misalnya saja koneksi database, email, session dan
cookies, keamanan, manipulasi gambar dan banyak lagi.
1.4 Fitur-Fitur CodeIgniter
Berikut fitur-fitur yang didukung oleh CodeIgniter :
1. Sistem berbasis Model View Controller
2. Kompatibel dengan PHP versi 4.
3. Ringan dan Cepat.
4. Terdapat dukungan untuk berbagai basis data.
5. Mendukung Active Record Database.
6. Mendukung form dan validasi data masukan.
7. Keamanan dan XSS filtering.
8. Tersedia pengaturan session.
9. Tersedia class untuk mengirim email.
10.Tersedia class untuk manipulasi gambar (cropping,resizing, rotate dan
lain-lain).
11.Tersedia class untuk upload file.
12.Tersedia class yang mendukung transfer via FTP.
13.Mendukung lokalisasi bahasa.
14.Tersedia class untuk melakukan pagination (membuat tampilan
perhalaman).
15.Mendukung enkripsi data.
16.Mendukung benchmarking.
17.Mendukung caching.
18.Pencatatan error yang terjadi.
19.Tersedia class untuk membuat calendar.
20.Tersedia class untuk mengetahui user agent, misalnya tipe browser dan
sistem operasi yang digunakan pengunjung.
21.Tersedia class untuk pembuatan template website.
22.Tersedia class untuk membuat trackback.
23. Tersedia pustaka untuk bekerja dengan XMP-RPC.
24.Menghasilkan clean URL.
25.URI routing yang felksibel.
26.Mendukung hooks, ekstensi class dan plugin.
27.Memiliki helper yang sangat banyak jumlahnya.
1.5Model View Controller
Seperti sudah disebutkan di muka bahwa CodeIgniter menerapkan lingkungan
pengembangan dengan metode MVC (Model View Controller). MVC
memisahkan antara logika pembuatan kode dengan pembuatan template atau
tampilan website. Penggunaan MVC membuat pembuatan sebuah proyek
website menjadi lebih terstruktur dan lebih sederhana.
Secara sederhana konsep MVC terdiri dari tiga bagian yaitu bagian Model,
bagian View dan bagian Controller. Didalam website dinamis setidaknya terdiri
dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi dan cara
menampilkan halaman wesite. 3 hal tersebut direpresentasikan dengan MVC
yaitu model untuk basis data, view untuk cara menampilkan halaman website
dan controller untuk logika aplikasi.
1. Model
Merepresantiskan struktur data dari website yang bisa berupa basis data
maupun data lain, misalnya dalam bentuk file teks atau file xml. Biasanya
didalam model akan berisi class dan fungsi untuk mengambil, melakukan
update dan menghapus data website. Karena sebuah website biasanya
memnggunakan basis data dalam menyimpan data maka bagian Model
biasanya akan berhubungan dengan perintah-perintah query SQL.
Model bisa dibilang khusus digunakan untuk melakukan koneksi ke basis
data oleh karena itu logika-logika pemrograman yang berada didalam
model juga harus yang berhubungan dengan basis data. Misalnya saja
pemilihan kondisi tetapi untuk memilih melakukan query yang mana.
2. View
Merupakan informasi yang ditampilkan kepada pengunjung website.
Sebisa mungkin didalam View tidak berisi logika-logika kode tetapi hanya
berisi variabel-variabel yang berisi data yang siap ditampilkan. View bisa
dibilang adalah halaman website yang dibuat menggunakan HTML
dengan bantuan CSS atau JavaScript.
Didalam view jangan pernah ada kode untuk melakukan koneksi ke basis
data. View hanya dikhususkan untuk menampilkan data-data hasil dari
model dan controller.
3. Controller
Controller merupakan penghubung antara Model dan View. Didalam
Controller inilah terdapat class dan fungsi-fungsi yang memproses
permintaan dari View kedalam struktur data didalam Model.
Controller juga tidak boleh berisi kode untuk mengakses basis data.
Tugas controller adalah menyediakan berbagai variabel yang akan
ditampilkan di view, memanggil model untuk melakukan akses ke basis
data, menyediakan penanganan error, mengerjakan proses logika dari
aplikasi serta melakukan validasi atau cek terhadap input.
Jadi secara singkat urutan dari sebuah request adalah sebagai berikut : user
berhubungan dengan view, dimana didalam view inilah semua informasi
ditampilkan. Saat user melakukan permintaan atau request, misal klik tombol
maka request tersebut akan diproses oleh Controller. Apa yang harus dilakukan,
data apa yang diinginkan, apakah ingin melihat data, atau memasukan data atau
mungkin melakukan validasi data terlebih dahulu, semua diproses oleh
Controller. Kemudian Controller akan meminta Model untuk menyelesaikan
request, entah itu melakukan query atau apapun. Dari Model, data akan dikirim
kembali untuk di proses lebih lanjut di dalam Controller dan baru dari Controller
data akan ditampilkan di View.
Untuk lebih jauhnya tentang CodeIgniter hubungi saya di :
dedy@eng.ui.ac.id atau d3d13yanto@gmail.com