CodeIgniter adalah framework yang bekerja dengan menggunakan PHP (Hypertext Preprocessor). PHP sendiri adalah sebuah bahasa pemrograman yang banyak dipergunakan dalam pembuatan website dinamis. PHP adalah sebuah bahasa pemrograman berbasis web yang tergolong mudah dan free, telah dikembangkan sejak 15 tahun yang lalu dan dapat digunakan dalam sebagian besar webserver, misalnya webserver Apache, Lighttpd, nginx, dan lain-lain. Selain itu PHP juga dapat dipergunakan dalam aplikasi berbasis GUI (desktop).
Untuk lebih lengkapnya literatur tentang PHP dapat diperoleh pada beberapa website berikut :
1. http://en.wikipedia.org/wiki/PHP
2. http://gtk.php.net
3. http://httpd.apache.org/
4. http://nginx.org/
5. http://www.lighttpd.net/
1. http://en.wikipedia.org/wiki/PHP
2. http://gtk.php.net
3. http://httpd.apache.org/
4. http://nginx.org/
5. http://www.lighttpd.net/
PHP Framework dapat dijelaskan secara sederhana sebagai sebuah upaya untuk bekerja dengan kode-kode PHP di mana model yang sama dapat dibuat ke dalam bentuk method dan class. Dengan demikian, function menjadi bagian dari class.
Apakah CodeIgniter?
CodeIgniter adalah Framework PHP yang berjalan pada PHP 4 dan PHP 5. Tujuan utama dari CodeIgniter adalah untuk memudahkan programmer dalam mengembangkan aplikasi secara cepat tanpa harus melakukan pemrograman dari nol. Dengan demikian, programmer PHP yang telah memiliki dasar pemrograman, dapat bekerja lebih cepat menghasilkan aplikasi yang dibutuhkan.
Apakah MVC?
MVC (Model-View-Controller), adalah pola arsitektur yang dipergunakan pada kebanyakan bahasa pemrograman dan scripting, termasuk PHP.
Model – sebagai modul yang bekerja untuk menghubungkan aplikasi dengan database. Dalam hal ini Model diberi fungsi untuk membuat database, membaca database, memperbarui database, dan menghapus database (Create, Read, Update, Delete).
View – sebagai modul yag bekerja untuk menampilkan data melalui controller dan ditampilkan dalam bahasa HTML. Secara sederhana View dapat digambarkan sebagai setiap halaman web yang ditampilkan.
Controller – modul program yang bekerja untuk menangani request, memanipulasi model dan controller yang lain. Secara sederhana, Controller dapat diibaratkan sebagai pengatur lalu-lintas.
MVC Pattern
Penjelasannya adalah sebagai berikut :
1. Komputer (Browser) mengirimkan permintaan ke Controller.
2. Controller menghubungi Model, membuat permintaan.
3. Model akan memproses permintaan, kemudian mengembalikan data ke Controller.
4. Controller menganalisis hasil (jika membutuhkan banyak data, maka Controller akan membuat permintaan lain ke Model).
5. Data dikirim ke view yang kemudian akan diterjemahkan oleh webserver (contohnya Apache) dan akan dikembalikan/ditampilkan pada browser.
1. Komputer (Browser) mengirimkan permintaan ke Controller.
2. Controller menghubungi Model, membuat permintaan.
3. Model akan memproses permintaan, kemudian mengembalikan data ke Controller.
4. Controller menganalisis hasil (jika membutuhkan banyak data, maka Controller akan membuat permintaan lain ke Model).
5. Data dikirim ke view yang kemudian akan diterjemahkan oleh webserver (contohnya Apache) dan akan dikembalikan/ditampilkan pada browser.
Contoh pada halaman registrasi :
1. User membuka halaman registrasi, kemudian mengisi form yang disediakan dan mengklik tombol Submit.
2. Permintaan akan dikirimkan ke Controller, Controller akan meminta Model tentang identitas pengirim.
3. Model menganalisis data yang dikirimkan oleh pengguna. Jika pengguna telah menjadi member, maka data akan dianggap benar. Model akan mengirimkan pesan bahwa data diterima atau ditolak kepada Controller.
4. Controller selanjutnya akan menganalisis pesan yang datang dari Model (Diterima atau Ditolak), kemudian memutuskan langkah berikutnya.
5. Terakhir, Controller akan mengirimkan pesan kepada View. Dalam hal ini View menampilkan halaman sesuai dengan pesan dari Controller : halaman Selamat Datang, atau halaman Error.
1. User membuka halaman registrasi, kemudian mengisi form yang disediakan dan mengklik tombol Submit.
2. Permintaan akan dikirimkan ke Controller, Controller akan meminta Model tentang identitas pengirim.
3. Model menganalisis data yang dikirimkan oleh pengguna. Jika pengguna telah menjadi member, maka data akan dianggap benar. Model akan mengirimkan pesan bahwa data diterima atau ditolak kepada Controller.
4. Controller selanjutnya akan menganalisis pesan yang datang dari Model (Diterima atau Ditolak), kemudian memutuskan langkah berikutnya.
5. Terakhir, Controller akan mengirimkan pesan kepada View. Dalam hal ini View menampilkan halaman sesuai dengan pesan dari Controller : halaman Selamat Datang, atau halaman Error.
Mengapa Menggunakan CodeIgniter?
CodeIgniter menggunakan arsitektur MVC sehingga aplikasi dapat dikelola dengan cara yang lebih mudah dibandingkan dengan menggunakan pola procedural dengan function.
CodeIgniter sangat mudah untuk dipelajari dan terdokumentasikan dengan baik dan sangat mudah untuk dikembangkan dengan perintah extend.
CodeIgniter adalah sebuah framework PHP yang sangat ringan (2.1 MB termasuk dokumentasi). Bandingkan dengan framework PHP yang lain :
1. Zend Framework 1.10.2 Full – 24 MB
2. Symfony 1.4.3 – 5.1 MB
3. CakePHP 1.2.6 – 4.5 MB
4. Yii Framework – 4.2 MB
1. Zend Framework 1.10.2 Full – 24 MB
2. Symfony 1.4.3 – 5.1 MB
3. CakePHP 1.2.6 – 4.5 MB
4. Yii Framework – 4.2 MB
CodeIgniter adalah Framework PHP yang sangat cepat dibandingkan dengan framework yang lain. Proses instalasi sangat mudah, yang kita lakukan hanya unzip file source codenya, kemudian upload file-file tersebut ke host website, secara sederhana yang dilakukan hanya mengeset satu parameter dan selesai. Jika dibutuhkan lebih dari satu, maka lakukan perubahan terhadap variable-variabel config.
CodeIgniter tidak memiliki command line tool seperti pada CakePHP atau Symfony. Bagi programmer yang membutuhkan command line tool, dengan alasan dapat membuat model, view, controller dan hal-hal lain sekaligus. Akan tetapi tidak semua orang membutuhkan sebuah model atau sebuah view untuk controller.
Pertanyaan lain adalah “Mengapa harus membuat framework yang berukuran besar?”. Kebanyakan framework telah dilengkapi dengan library tambahan, seperti : autentikasi, captcha, currency, RSS feed, ajax, koneksi dengan webservice – Twitter, Flickr, dll.), Object Relation Mapper, dan lain-lain. Pada dasarnya sebuah project normal tidak membutuhkan tambahan apapun, cukup dengan apa yang dibutuhkan. Akan tetapi, jika kita membutuhkan tambahan sesuai dengan projek yang kita kerjakan, maka kita bisa mencari berbagai add-on yang dibutuhkan. CodeIgniter dan PHP Framework adalah Open Source, jadi kita dapat mencari add-on yang banyak tersedia secara gratis di internet. Banyak libraries, help, dan berbagai open source yang bisa diunduh.
Keuntungan lain dari CodeIgniter adalah membantu membangun link. Hal ini akan sangat bermanfaat ketika kita memindahkan satu projek dari satu domain ke domain yang lain. Biasanya programmer akan menggunakan alamat relatif.
Contoh link yang dibuat dengan CodeIgniter adalah 2 metoda berikut :
base_url() dan site_url()
base_url() dan site_url()
Kedua metode akan menghasilkan alamat URL pada aplikasi, akan tetapi terdapat perbedaan kecil di antara keduanya. Hasilnya adalah sebagai berikut :
domain.com/my_blog ; Dengan demikian, base_url() akan menghasilkan alamat URL absolut.
domain.com/my_blog ; Dengan demikian, base_url() akan menghasilkan alamat URL absolut.
CodeIgniter juga memiliki validasi library yang sangat baik, kita dapat melakukan validasi terhadap data dengan sangat mudah, sebelum melakukan operasi database.
Mengirim email akan menjadi sangat mudah. CodeIgniter memiliki class untuk email, dengan mudah kita dapat mengirim email dengan menggunakan kode berikut :
$this->email->to(“my_friend@example.com”);
$this->email->from(‘me@example.com’);
$this->email->subject(‘Hello from CodeIgniter’);
$this->email->message(‘This is my first email from CodeIgniter.’);
$this->email->send();
$this->email->to(“my_friend@example.com”);
$this->email->from(‘me@example.com’);
$this->email->subject(‘Hello from CodeIgniter’);
$this->email->message(‘This is my first email from CodeIgniter.’);
$this->email->send();
Sama halnya dengan mengirimkan attachment, cukup tuliskan kode berikut :
$this->email->attach(‘/relative/path/to/your/attachment.png’);
$this->email->attach(‘/relative/path/to/your/attachment.png’);
Demikian, beberapa keuntungan dari CodeIgniter.
Masih banyak keuntungan lain yang bisa kita dapatkan dari sebuah PHP framework
Masih banyak keuntungan lain yang bisa kita dapatkan dari sebuah PHP framework