Design Pattern: MVC dan Work Flow CodeIgniter PHP Framework

MVC (Model-View-Control)

MVC merupakan salah satu konsep design pattern yang banyak digunakan. Konsep ini membagi jenis file program menjadi tiga bagian yaitu :

  • Model, merupakan suatu obyek yang berhubungan dengan data. Di bagian inilah berisi mulai dari bagaimana mengakses, mendapatkan sampai menulis data, records atau informasi baik berasal dari file system, database, atau pun yang lain yang bisa menjadi sumber data. Bagian ini yang bertanggung jawab untuk hal yang berhubungan dengan data.

  • View, merupakan bagian yang berperan untuk menampilkan informasi atau data kepada end user atau pengguna. Di bagian ini hanya terdapat komponen-komponen dari user interface dan tidak berisi logika dari sistem.

  • Controller, merupakan bagian utama yang berperan mengatur dari sistem. Controller berperan sebagai penghubung atau jembatan antara Model dan View. Di bagian ini terdapat logika aplikasi seperti bagaimana memvalidasi masukan user, mengatur alur kerja sistem dan lain-lain.

Mungkin gambar dibawah bisa memperjelas.

Bagi saya, konsep MVC ini memudahkan bagi kita dalam merancang, membuat dan merawat sebuah aplikasi. Bila terjadi kesalahan atau ada bagian yang ingin diubah, misal di View, kita tinggal mengubah bagian View-nya saja tanpa harus menyentuh bagian Controller atau Model.

CodeIgniter Framework

CodeIgniter merupakan salah satu contoh framework yang menerapkan konsep MVC. Framework ini merupakan framework untuk PHP dalam membuat aplikasi web. Konsep MVC pada CodeIgniter ini juga memudahkan dalam pembagian tugas untuk para developer (meskipun ga selalu). Bagian View biasanya dikerjakan oleh web template designer, Model dikerjakan oleh designer dataset dan programmer, dan Controller dikerjakan oleh programmer. Kenapa Model ga dikerjain DBA (Database Adminitrator) atau database designer sendiri?. Karena tidak semua database designer bisa membuat program dalam suatu bahasa pemrograman tertentu selain SQL. Flow chart application di CI (CodeIgniter).

Index.php merupakan front controller atau file yang berhubungan langsung dengan user. Saat pengguna membuka index.php dan melakukan request, akan dicek di Router alamat yang dimasukan oleh user tersebut. Bila ada pada cache data, maka akan langsung menuju ke Caching dan kembali lagi ke user. Bila di cache tidak ada maka diteruskan lagi ke Security untuk memvalidasi, menyaring dan mengamankan informasi yang dimasukan user (bila ada). Lalu dari security informasi tersebut dikirim ke Application Controller. Di Application Controller informasi dan data akan diolah. Bila diperlukan, Application Controller akan berhubungan dengan Model, Libraries, Helpers, Plugins atau skrip lainnya. Application Controller akan mengirimkan respon ke View untuk ditampilkan ke user. View akan dicache (simpan) di Cache bila berikutnya melakukan request yang sama. Sehingga mempercepat proses. Setelah dicache, maka akan ditampilkan informasi kepada user. Kurang lebih seperti itu penjelasan dari flow chart di atas.

* gambar dari:

http://codeigniter.com/user_guide/overview/appflow.html

http://geeks.netindonesia.net/photos/suhanto/images/65827/original.aspx


Related Contents


Leave a Reply