Codeigniter adalah salah satu framework untuk mengembangkan sebuah website yang sudah mengusung lingkungan pengembangan dengan metode MVC (Model View Controller).
MVC adalah sebuah istilah dalam software engineering untuk sebuah metode memisahkan bussiness logic (logika program) dengan pembuatan template atau tampilan website. Tujuan utamanya adalah untuk lebih menyederhanakan proses pembuatan website. Juga penggunaan MVC membuat pembuatan sebuah proyek website menjadi lebih terstruktur.
Secara Sederhana konsep Model-View-Controller terdiri dari tiga bagian utama, yaitu bagian Model, bagian View dan bagian Controller. Semua website, khususnya website dinamis, yang kontennya disimpan dalam sebuah database, pasti memiliki tiga aspek. Tiga hal pokok tersebut adalah database (basis data), bussiness logic (logika aplikasi/program) dan yang terakhir adalah bagaimana cara menampilkan halaman wesite. Tiga hal di atas diwakilkan atau direpresentasikan dalam konsep Model-View-Controller. Model untuk pengolahan database, view untuk menampilkan halaman kepada user, dan controller untuk menghubungkan keduanya. Controller ini berisi bussiness logic (logika aplikasi).
Model
Merepresentasikan struktur data dari website, yang biasanya berupa database (basis data) ataupun bentuk data yang lain. Bentuk data yang lain bisa berupa file teks ataupun 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.
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.
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.
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.
Semoga Artikel ini bermanfaat, jika ada kesalahan atau kritik silakan kirim melalui komentar.
Sumber: http://setoelkahfi.web.id/model-view-controller-pada-codeigniter-php-framework/