berkenalan dengan codigniter

Apa itu CodeIgniter ?

CodeIgniter adalah sebuah web framework yang dikembangkan oleh Rick Ellis dari Ellis Lab. CodeIgniter dirancang untuk menjadi sebuah web framework yang ringan dan mudah untuk digunakan. Bahkan pengakuan dari Rasmus Lerdorf, pencipta bahasa pemrograman PHP, mengatakan bahwa CodeIgniter merupakan web framework mudah dan handal.

Sebelum mencoba CodeIgniter, perlu diketahui istilah web framework itu sendiri. Menurut Microsoft Computer Dictionary, web adalah sekumpulan dokumen yang saling terhubung dalam sistem hypertext yang penggunanya akan menjelajahi web melalui halaman beranda. Sedangkan framework adalah desain struktur dasar yang dapatd digundakan kembali (reusebale) yang terdiri dari abstract class dan concrete class di pemrograman berorientasi objek.

Menurut dokumentasi CodeIgniter, CodeIgniter merupakan toolkit bagi orang yang ingin membangun aplikasi web menggunakan PHP. Tujuannya adalah membuat pengembangan proyek menjadi lebidh cepat dibandingkan dengan menulis kode dari awal (scratch). CodeIgniter menyediakan kumpulan library untuk tugas – tugas yang sering dilakukan (commonly needed task) dan sangat mudah undtuk mengakses library yang tersedia di CodeIgniter. Dengan menggunakan CodeIgniter, kita cukup fokus pada pengembangan projek dan meminimalisir jumlah kode yang akan ditulis.

Sebagai web framework yang populer yang menggunakan bahasa pemrograman PHP, CodeIgniter mempunyai berbagai keunggulan seperti yang disebutkan di dokumentasinya:

Free, karena berada dibawah lisensi open source mirip Apache/BSD, kita dapat melakukan apapun dengan CodeIgniter. Lisensi lengkapnya dapat dilihat di halaman dokumentasi
Light Weight, sistem inti CodeIgniter memerlukan library yang sedikit. Berbeda sekali dengan framework lainnya yang membutuhkan banyak sumber daya tambahan. Library tambahan akan digunakan ketika request secara dinamis, membuat sistem yang dibangun menjadi efisien dan cukup cepat
Fast, menurut dokumentasi, performa yang dimiliki CodeIgniter terbukti cepat setelah dibandingkan dengan web framework lainnya
Menggunakan kaidah M-V-C, Dengan menggunakan Model-View-Controller, kita dapat memisahkan bagian logic dan presentation dari aplikasi yang kita bangun. Hal ini tentu sangat cocok dan bagus untuk proyek yang memfokuskan desainer fokus pada template file dan programmer fokus pada pembangunan logic dari aplikasi yang dibangun
Menghasilkan URL yang bersih, URL yang dihasilkan oleh CodeIgniter bersih dan ramah terhadap mesin pencari. CodeIgniter menggunakan pendekatan segment-based dibandingkan dengan query string yang biasa digunakan oleh programmer yang tidak menggunakan web framework.

Packs a Punch, CodeIgniter hadir dengan berbagai library yang akan membantu tugas – tugas di pengembangan web yang sudah umum dan sering dilakukan seperti mengakses database, mengirim email, validasi data dari form, mengelola session, manipulasi gambar, bekerja dengan XML-RPC dan masih banyak lagi
Extensible, kita dapat menambahkan library atau helper yang kita ciptakan sendiri ke dalam CodeIgniter. Selain itu kita dapat juga menambahkan fitur lewat class extension atau system hooks.
Thoroughly Documented, hampir semua fitur, library, dan helper yang ada di CodeIgniter telah terdokumentasi dengan lengkap dan tersusun dengan baik. Ketika mendapatkan unduhan CodeIgniter, dokumentasinya sudah tersedia dan siap digunakan
Mempunyai komunitas yang ramah, komunitas CodeIgniter sangat ramah dan siap membantu pengguna CodeIgniter pemula atau yang sudah mahir. Komunitasnya dapat ditemui di : http://codeigniter.com/forums/

Untuk mendukung pengembangan aplikasi yang kokoh, Code Igniter memiliki fitur – fitur
seperti berikut:

  1. Model-View-Controller Based System
  2. PHP 4 Compatible
  3. Sangat ringan
  4. Fitur lengkap untuk beberapa engine database.
  5. Active Record
  6. Form dan validasi data
  7. Keamanan dan XSS filtering
  8. Session Management
  9. Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, dan Mail) dan lainnya
  10. Image Manipulation Library (cropping, resizing, rotating, dsb.). Mendukung GD, ImageMagick, dan NetPBM
  11. File Uploading Class
  12. FTP Class
  13. Localization
  14. Pagination
  15. Data Encryption
  16. Benchmarking
  17. Full Page Caching
  18. Error Logging
  19. Application Profiling
  20. Scaffolding
  21. Calendaring Class
  22. User Agent Class
  23. Zip Encoding Class 24. Template Engine Class 25. Trackback Class
  24. XML-RPC Library
  25. Unit testing class
  26. Search-engine friendly URLs
  27. URI routing yang fleksibel
  28. Mendukung hooks, class extension dan plugins
  29. Pustaka helper yang lengkap

 

Cara Kerja CodeIgniter

Untuk melengkapi pemahaman mengenai CodeIgniter, berikut terdapat sebuah diagram yang menjelaskan bagaimana CodeIgniter bekerja:

 

cara kerja codeigniter

 

Berikut adalah penjelasan cara kerja Code Igniter:

  1. index.php bertindak sebagai controller terdepan, dan menginisialisasi resource yang diperlukan untuk menjalankan Code Igniter.
  2. Router memeriksa HTTP request untuk menentukan apa yang harus dikerjakan.
  3. Jika cache file ada, maka akan ditampilkan langsung, dengan melewati eksekusi normal sistem
  4. Sebelum memuat controller, HTTP request akan memeriksa apa yang disubmit user dan memfilternya untuk keamanan.
  5. Controller memuat model, core libraries, plugin, helper, dan resource lainnya untuk memproses permintaan tertentu
  6. View ditampilkan di browser sesuai proses yang dikerjakan controller. Jika caching dijalankan, view akan di-cache terlebih dahulu agar dapat ditampilkan di request selanjutnya