Yogiswara Blog's

Copy Paste and Learning some Thinks

MVC ( Model – View – Controller )

leave a comment »

Buat yang baru terjun ke dunia programming, mungkin belum banyak tau tentang konsep pemrograman MVC – Model View Controller. Kalo ada yang pernah mendengar konsep pemrograman OOP, nah ini beda jenis dengan itu, sudah beda bidangya.

Kalo OOP lebih menekankan bagaimana sebuah kode program ditulis sebagai sebuah objek yang memiliki atribut2 dan fungsinya, maka MVC ini cakupannya diatas itu, yakni mengatur arsitektur sebuah aplikasi. Umumnya aplikasi yang dibangun dengan konsep MVC adalah aplikasi yang cukup besar, karena salah satu keuntungan dari MVC itu adalah kemudahan maintenance, dan pengembangan aplikasi tersebut.

Konsep MVC  :

Secara sederhana konsep MVC terdiri dari tiga bagian yaitu bagian Model, bagian View dan bagian Controller. Didalam website dinamis setidaknya terdiri dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi dan cara menampilkan halaman wesite. 3 hal tersebut direpresentasikan dengan MVC yaitu model untuk basis data, view untuk cara menampilkan halaman website dan controller untuk logika aplikasi.

1. Model

Merepresantiskan struktur data dari website yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks atau 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.

2. 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.

3. 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.

berikut sekilas ulasan dan contoh  CI :

Jadi 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.

Versi Praktisinya … he he
Sebelum lanjut ke MVC itu sendiri ada baiknya kamu tahu bagaimana sebenernya alur program itu berjalan di konsep pemrograman MVC framework  CodeIgniter. Alur itu seperti di gambar berikut :

mvc

  1. index.php berfungsi sebagai controller depan, mnginisialisasi basic resource yang dibutuhkah untuk menjalankan CI.
  2. Router menganalisa HTTP request untuk menentukan apa yang harus dilakukan dengan HTTP request itu.
  3. Jika file cache masih ada , maka akan dikirim langsung ke browser, tanpa melewati eksekusi normal sistem.
  4. Keamanan, sebelum controller aplikasi di panggil, HTTP request dan data yang dikirim user, di filter untuk alasan keamanan.
  5. Controller memanggil model, librari inti , plugin, helper, dan resource lainnya yang di butuhkan untuk memroses request tertentu.
  6. View yang sudah diproses, dikirim ke browser sebagai hasil yang terlihat. Jika status caching ON, view akan disimpan di cache, jadi jika ada request yang sama, view itu bisa ditampilkan lagi.

Sekarang kita masuk ke bahasan MVC. MVC itu sendiri adalah konsep pemrograman yang memisahkan pemrograman logic aplikasi dengan presentasinya. Singkatnya, memungkinkan halaman web kamu berisi sedikit sekali skrip PHP karena file presentasi terpisah dengan file skrip PHP. Dan CodeIgniter adalah salah satu framework PHP yang berbasis MVC.

* Model mewakili struktur data kamu. Umumnya kelas model kamu akan berisi fungsi – fungsi yang akan membantu kamu untuk mengambil, insert, dan update data di database kamu.

* View adalah informasi yang disajikan ke user. Sebuah view normalnya adalah sebuah halaman web, namun di CI sebuah view bisa juga menjadi bagian halaman seperti header atau footer. Bisa juga menjadi berbagai jenis “halaman” yang lain.

* Controller berfungsi sebagai penengah antara Model, View dan resource lain yang dibutuhkan untuk memroses HTTP request dan memproduksi sebuah halaman web.

Berikut adalah satu controller dengan function default menampilkan data dari table AA_PRODUCTS yang diambil oleh model temp_model.

File Model

<?php
class temp_model extends Model {
function temp_model()
{
parent::Model();
}
function getProducts()
{
return $this->db->query(“SELECT * FROM AA_PRODUCTS”);
}
}
?>

File Controller

<?php
class class_temp extends Controller {
function class_temp() {
parent::Controller();
$this->load->model(‘temp_model’);
}
function index() {
$query = $this->temp_model->getProducts();
$data[‘que’] = $query->result();
$data[‘numrows’] = $query->num_rows;
$this->load->view(‘view_temp’,$data);
}
}

File View

<?
foreach($que as $row){
echo “”.$row->NAME;
}
?>

Dikutip Dari :  www.kuliahit.com

Written by yogiswara

14/05/2011 at 11:52

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: