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. Pada saat tulisan ini di buat, CodeIgniter telah mencapai pada Versi 2.1.3.
 
Framework secara sederhana dapat diartikan kumpulan dari fungsi-fungsi/prosedur-prosedur dan class-class untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih mempermudah dan mempercepat pekerjaan seorang programer, tanpa harus membuat fungsi atau class dari awal.

Ada beberapa alasan mengapa menggunakan Framework:
  • Mempercepat dan mempermudah pembangunan sebuah aplikasi web.
  • Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)
  • 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
  • Lebih bebas dalam pengembangan jika dibandingkan CMS
Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :
  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.

Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain,
  • 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.
  • 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 menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config.
  • Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
  • Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.
  • Dan banyak lagi yang lainnya.
Pada artikel kali ini kita akan membahas tentang cara instalasi dan konfigurasi Codeigniter pada server lokal. Sebelum menginstall Codeigniter pastikan server lokal anda telah berjalan dengan baik. Dalam hal ini penulis menggunakan xampp sebagai server lokal. Berikut adalah langkah-langkahnya :
  • Download Codeigniter di situs ini www.codeigniter.com.
  • Buat sebuah folder di dalam folder server lokal anda (jika menggunakan xampp folder diletakkan didalam folder htdocs, jika menggunakan yang lain silakan disesuaikan), beri nama folder tersebut misalnya codeigniter. Kemudian ekstrak file Codeigniter yang telah di download ke dalam folder yang telah kita buat tadi. 
  • Sekarang bukalah browser kesayangan anda dan jalankan CodeIgniter dengan mengetikkan http://localhost/codeigniter (sesuaikan dengan nama folder yang anda buat). Jika proses instalasi berhasil maka akan muncul halaman Welcome to CodeIgniter seperti berikut ini.
  • Langkah selanjutnya adalah melakukan beberapa konfigurasi pada file CodeIgniter anda. Buka file config.php yang ada di dalam folder application/config. Pada bagian $config[‘base_url’] berfungsi untuk menentukan alamat URL utama pada aplikasi. Anda dapat mengisikannya dengan localhost/codeigniter (sesuaikan nama folder seperti pada saat mengupload file CI ke server). Namun, pada CodeIgniter versi–versi terbaru (2.0 keatas) anda juga dapat mengosongkan saja bagian ini. Codeigniter akan secara otomatis mendeteksi base url aplikasi anda.
    |--------------------------------------------------------------------------
    | Base Site URL
    |--------------------------------------------------------------------------
    |
    | URL to your CodeIgniter root. Typically this will be your base URL,
    | WITH a trailing slash:
    |
    | http://example.com/
    |
    | If this is not set then CodeIgniter will guess the protocol, domain and
    | path to your installation.
    |
    */
    $config['base_url'] = '';
    
  • Selanjutnya buka file database.php pada folder application/config. File ini berfungsi untuk mengatur koneksi database pada aplikasi anda. Pada CodeIgniter, anda tidak perlu menuliskan script program dari awal dan memanggilnya berulang-ulang untuk melakukan koneksi database.
    $active_group = 'default';
    $active_record = TRUE;
    
    $db['default']['hostname'] = 'localhost';
    $db['default']['username'] = '';
    $db['default']['password'] = '';
    $db['default']['database'] = '';
    $db['default']['dbdriver'] = 'mysql';
    $db['default']['dbprefix'] = '';
    $db['default']['pconnect'] = TRUE;
    $db['default']['db_debug'] = TRUE;
    $db['default']['cache_on'] = FALSE;
    $db['default']['cachedir'] = '';
    $db['default']['char_set'] = 'utf8';
    $db['default']['dbcollat'] = 'utf8_general_ci';
    $db['default']['swap_pre'] = '';
    $db['default']['autoinit'] = TRUE;
    $db['default']['stricton'] = FALSE;
    
    • $db['default']['username'] = '';
      Isikan dengan nama user database anda
    • $db['default']['password'] = '';
      Isikan dengan password database anda
    • $db['default']['database'] = '';
      Isikan dengan nama database anda
    • $db['default']['dbdriver'] = 'mysql';
      Isikan dengan driver database yang akan anda gunakan
  • Selanjutnya buka file routes.php pada folder application/config. Kemudian pada bagian $route['default_controller'] anda dapat mengisikannya dengan file controller yang akan dijalankan secara default. Secara default akan bernilai welcome, yang berarti saat aplikasi pertama kali dijalankan (saat anda mengetikkan localhost/nama_folder_ci pada browser) maka aplikasi akan menjalankan file controller bernama welcome.php
    $route['default_controller'] = "welcome";
    $route['404_override'] = '';
    
Sebenarnya masih banyak file-file konfigurasi lainnya untuk lebih memudahkan anda dalam mendevelop sebuah aplikasi berbasis web. Namun penjelasan-penjelasan tersebut diatas adalah konfigurasi dasar yang paling umum.