PHP Framework berbeda jika dibandingkan dengan CMS (Content Management System), meski sama-sama meringankan dalam pembuatan web. Jika menggunakan CMS, kita tidak perlu pusing menulis script. Semuanya telah dibuat menjadi Fix dan kita hanya perlu mengatur bagian content dan interfacenya saja. Tidak demikian dengan Framework. Membangun sebuah aplikasi web dengan menggunakan framework, kita tetap harus menuliskan kode perintah PHP sesuai dengan ruang lingkungan yang disediakan oleh framework.
Apa Itu Framework?
Sebenarnya apa sih yang disebut dengan framework itu?? Framework bisa diartikan sebagai alat yang digunakan untuk membantu pekerjaan. Karena untuk pembuatan website maka framework disini dapat diartikan sebagai alat yang dapat digunakan untuk mempermudah pembuatan website. Jika dengan CMS maka kita tinggal menjalankan saja tidak perlu lagi memikirkan untuk menulis kode program sendiri, tetapi tidak demikian dengan framework. Menggunakan framework kita masih harus menulis kode, bedanya kode-kode yang kita tulis harus menyesuaikan dengan lingkungan framework yang kita gunakan. Memang konsekuensinya kita harus belajar lagi lingkungan pengembangan berdasarkan framework yang kita gunakan, tetapi hal itu akan terbayar setelah kita menguasai dan bisa menggunakan framework tersebut.
Sebuah framework selain menyediakan lingkungan pengembangan sendiri sendiri juga menyediakan berbagai macam fungsi siap pakai yang bisa kita gunakan dalam pembautan wenbsite. Sehingga tidak perlu kaget jika akan banyak kode atau fungsi yang terlihat tidak seperti biasanya, karena fungsi fungsi tersebut merupakan fungsi bawaan framework dan bukan fungsi asli dari PHP. Fungsi tersebut terkadang merupakan pengembangan atau penyesuaian fungsi asli PHP agar lebih mudah digunakan atau agar lebih sesuai dengan kebutuhan pengguna.
CodeIgniter
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.
Kenapa CodeIgniter?
Ada banyak sekali framework PHP yang beredar di internet. Lantas kenapa kita memilih CodeIgniter bukan yang lain?? Berikut alasan-alasannya:
- Gratis.
CodeIgniter dilisensikan dibawah lisensi Apache/BSD style open source license, ini berarti kita dapat menggunakannya sesuai dengan keinginan kita.
- 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 PHP versi 5.
- 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.
- 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.
- 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.
- 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.
Fitur-Fitur CodeIgniter
Berikut fitur-fitur yang didukung oleh CodeIgniter :
- Sistem berbasis Model View Controller
- Kompatibel dengan PHP versi 4.
- Ringan dan Cepat.
- Terdapat dukungan untuk berbagai basis data.
- Mendukung Active Record Database.
- Mendukung form dan validasi data masukan.
- Keamanan dan XSS filtering.
- Tersedia pengaturan session.
- Tersedia class untuk mengirim email.
- Tersedia class untuk manipulasi gambar (cropping,resizing, rotate dan lain-lain).
- Tersedia class untuk upload file.
- Tersedia class yang mendukung transfer via FTP.
- Mendukung lokalisasi bahasa.
- Tersedia class untuk melakukan pagination (membuat tampilan perhalaman).
- Mendukung enkripsi data.
- Mendukung benchmarking.
- Mendukung caching.
- Pencatatan error yang terjadi.
- Tersedia class untuk membuat calendar.
- Tersedia class untuk mengetahui user agent, misalnya tipe browser dan sistem operasi yang digunakan pengunjung.
- Tersedia class untuk pembuatan template website.
- Tersedia class untuk membuat trackback.
- Tersedia pustaka untuk bekerja dengan XMP-RPC.
- Menghasilkan clean URL.
- URI routing yang felksibel.
- Mendukung hooks, ekstensi class dan plugin.
- Memiliki helper yang sangat banyak jumlahnya.
Model 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 menggunakan 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.
Ingin mengetahui lebih lengkap ? Silahkan lihat disini
sumber:http://www.kuliahit.com/article/24/Apa-itu-CodeIgniter-