Memahami Pentingnya MVC Dalam Pemrograman dan Contohnya
Selama beberapa tahun ke belakang, istilah MVC ramai diperbincangkan di samping ketenaran beberapa framework untuk software atau web development.
Salah satu framework yang terkenal karena penggunaan MVC adalah Laravel.
Dengan begitu, konsep MVC adalah arsitektur yang hebat, tidak peduli apa pun bahasa pemrograman yang kamu gunakan untuk pengembangan program, misalnya PHP, JavaScript, Python, Ruby, dan bahasa pemrograman dan skrip lainnya.
MVC adalah konsep arsitektur program; seperti aplikasi atau website; yang terdiri dari tiga komponen logika yaitu Model, View, dan Controller.
Banyak yang berpendapat bahwa konsep MVC adalah strategi penting untuk mempercepat dan memperjelas proses pengembangan program.
Alhasil, sudah banyak aplikasi dan website yang dibangun dengan menerapkan konsep pengembangan ini.
Hal ini membuat banyak programmer, tak terkecuali programmer pemula, harus familiar dan menguasai jenis arsitektur kode program ini.
Nah melalui artikel ini, kamu bisa mulai memahami betapa pentingnya ketiga komponen arsitektur ini dan sekaligus contoh penerapannya dalam kode pemrograman.
Pengertian MVC
Pada dasarnya, MVC adalah sebuah framework dengan pola arsitektur yang memisahkan kode pemrograman menjadi tiga komponen logika utama, yaitu Model, View, dan Controller.
Ketiga komponen arsitektur tersebut dibangun untuk menangani aspek pengembangan bagian dari aplikasi tertentu.
MVC memisahkan logika pemrograman dan tampilan Graphical User Interfaces (GUI) aplikasi.
MVC adalah salah satu framework pengembangan web dan software yang populer dan paling sering digunakan untuk membantu mengembangkan aplikasi web serta aplikasi berbasis mobile.
Konsep MVC
-
Model
Komponen model berguna dalam menyimpan data dan logika program.
Data yang dimaksud disini mewakili data yang sedang ditransfer antara komponen View dengan Controller atau logika program lainnya.
Misalnya, objek Controller akan mengambil informasi pelanggan dari database.
Komponen Model akan memanipulasi data dan mengirimnya kembali ke database atau menggunakannya untuk membuat data yang sama.
Komponen Model ini menanggapi permintaan dari tampilan depan program dan juga menanggapi instruksi dari Controller untuk memperbarui kode bagian Model itu sendiri.
Komponen Model sebagai bagian penting dari MVC adalah level terendah dari pola logika pemrograman yang bertanggung jawab untuk maintaining data.
-
View
Komponen View adalah bagian dari aplikasi yang mewakili penyajian data dan menangani segala interaksi pengguna dengan aplikasi (user interface dan user experience).
Komponen View dibuat berdasarkan data yang dikumpulkan dari data model.
Logika View akan meminta Model untuk memberikan informasi sehingga View bisa mengirim tampilan output program ke pengguna.
Logika View juga merepresentasikan data dari charts, diagram, dan tabel.
Misalnya, setiap komponen View yang pelanggan minta akan menyertakan semua komponen UI seperti text box, drop down menu, dan lain sebagainya.
-
Controller
Controller adalah bagian dari aplikasi yang menangani interaksi pengguna dan menjembatani proses antara Model dan View.
Controller dapat dimisalkan seperti adanya input mouse dan keyboard dari pengguna lalu Controller menginformasikan ke komponen Model dan View untuk melakukan tugasnya sebagaimana mestinya.
Komponen Controller mengirim perintah ke Model untuk memperbarui statusnya, misalnya, menyimpan dokumen tertentu.
Controller juga mengirimkan perintah ke View untuk mengubah tampilan aplikasi misalnya scrolling dokumen tertentu.
Alur atau Cara Kerja MVC
Bila kita buat analogi mudahnya, arsitektur MVC adalah pola kode pemrograman yang memisahkan fungsi input, pemrosesan, dan output dari suatu aplikasi.
Ketiga komponen Model, View, dan Controller dibangun untuk menangani beberapa aspek pengembangan spesifik dari setiap pengembangan aplikasi mobile dan web.
Berikut ini cara kerja arsitektur Model, View, dan Controller selama pengembangan aplikasi.
- View menampilkan user interface aplikasi dan informasi lainnya ke pengguna.
- View menampung request informasi dari pengguna yang selanjutnya akan diajukan ke Controller.
- Controller menerima semua permintaan untuk aplikasi dari View.
- Controller menginstruksikan Model untuk menyiapkan informasi apa pun yang diminta dan diperlukan oleh View.
- Model mencari informasi yang dimaksud View lalu mengolah informasi tersebut di database.
- Jika Model sudah selesai mengelola informasi dengan bantuan logika-logika pemrograman, maka Model akan menyerahkan hasilnya ke Controller.
- View menggunakan data yang disiapkan oleh Controller untuk menghasilkan keluaran akhir.
Buat kamu yang masih bingung dengan penjelasan di atas karena terlalu teknis atau karena alasan lainnya, kami buat analogi MVC adalah seperti ini:
Bayangkan kamu akan mengendarai sebuah mobil (aplikasi).
Anggaplah mobil terdiri dari tiga bagian utama, yaitu sistem kemudi (view), mesin (controller), dan tangki bensin (model).
Jika kamu ingin mobil kamu bergerak, maka kamu harus mengoperasikan sistem kemudinya, misalnya men starter mobil.
Nah, mesin mobil mulai menjalankan prosedur pengaktifan mobil dengan mengecek ketersediaan bensin di tangki bahan bakar.
Jika bensin tersedia, maka tangki akan mengirimkannya ke mesin.
Dengan begitu, mesin punya tenaga untuk mengaktifkan mobil dan mobil siap untuk jalan.
Bagaimana, kira-kira jadi lebih mudah dipahami bukan?
Karakteristik MVC
Berdasarkan pengertian dan cara kerjanya, adapun karakteristik MVC adalah sebagai berikut.
- Proses pengujian program yang mudah dan minim masalah. MVC adalah framework yang sangat mudah untuk diuji, dapat dikembangkan, dan dapat diterapkan di kode pr0gram apapun.
- Untuk mengembangkan aplikasi web menggunakan pola Model-View-Controller, MVC akan menawarkan kontrol penuh atas HTML serta URL.
- Framework yang memanfaatkan fitur yang disediakan oleh ASP.NET, JSP, Django, dan sejenisnya.
- Sesuai dengan pengertian sebelumnya, MVC adalah komponen pemrograman yang memisahkan 3 logika: Model, View, Controller.
- Pola pengembangan aplikasi yang mendukung Test Driven Development (TDD).
Kelebihan MVC
-
Membuat Proses Pengembangan Aplikasi Lebih Cepat
Komponen Model-View-Controller mendukung proses pengembangan sistem yang cepat dan paralel.
Hal ini memungkinkan satu programmer dapat bekerja pada komponen View, sementara programmer lain dapat bekerja pada komponen Controller untuk membuat logika pemrograman aplikasi web.
Dengan demikian, aplikasi yang dikembangkan menggunakan logika Model, View, dan Controller dapat diselesaikan tiga kali lebih cepat daripada aplikasi yang dikembangkan menggunakan pola pengembangan lainnya.
-
Mendukung Teknik Pemrograman Asinkron
Arsitektur MVC adalah multi-purpose programming technique karena ia dapat berintegrasi dengan framework JavaScript.
Hal ini berarti bahwa aplikasi MVC dapat dibuat untuk bekerja dengan file PDF, browser untuk situs khusus, dan juga dengan widget desktop.
Komponen-komponen logika ini juga mendukung teknik asinkron yang mana membantu developer dapat mengembangkan aplikasi yang dimuat dengan sangat cepat.
-
Perubahan Kode Program Tertentu Tidak Mempengaruhi Keseluruhan Aplikasi
Dalam pengembangan aplikasi web apa pun, user interface cenderung lebih sering berubah.
Misalnya mengubah warna, font, layout layar, dan menambahkan pengaturan dukungan perangkat baru untuk mobile atau tablet.
Dengan komponen View, kamu bisa menambahkan tipe tampilan UI baru dengan sangat mudah dan lebih terstruktur.
Oleh karena itu, setiap perubahan dalam Model tidak akan mempengaruhi keseluruhan arsitektur.
-
Platform Pengembangan Web SEO Friendly
Platform MVC adalah salah satu arsitektur pengembangan yang mendukung pengembangan halaman web atau aplikasi web yang SEO friendly.
Dengan menggunakan platform ini, sangat mudah untuk mengembangkan situs yang SEO friendly untuk menghasilkan lebih banyak traffic kunjungan pengguna.
Arsitektur pengembangan ini umumnya digunakan dalam aplikasi Test Driven Development.
Selain itu, bahasa scripting seperti JavaScript dan jQuery dapat diintegrasikan dengan konsep MVC untuk mengembangkan aplikasi web yang punya banyak fitur.
Selain kelima kelebihan utama MVC di atas, berikut ini manfaat lain dari konsep Model-View-Controller.
- Maintaining kode mudah untuk pengembangan program lanjutan.
- Komponen Model dapat diuji secara terpisah dari pengguna.
- Framework yang dapat membantu kamu untuk menghindari kerumitan web atau software development.
- Arsitektur pemrograman yang hanya menggunakan pola Front Controller yang memproses permintaan aplikasi web melalui Controller tunggal.
- Menawarkan dukungan terbaik untuk pengembangan berbasis pengujian (Test Driven Development).
- Semua class dan object pada kode pemrograman akan terpisah satu sama lain sehingga kamu bisa menguji tiap komponen secara terpisah.
Contoh Penerapan MVC
Pada artikel ini, DomaiNesia juga berikan contoh MVC yang diterapkan dengan bahasa pemrograman dasar PHP. Kami beri contoh pembuatan form untuk fungsi login.
- Buatlah folder bernama Login di text editor yang kamu miliki.
- Buat file untuk komponen View bernama index.php yang berguna untuk menampilkan form yang akan digunakan untuk data pengguna Login. Patokannya file index.php ada di direktori
views/login/index.php
- Lalu salin source code di bawah ini.
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<center>
<div class="floating-box">
<form name="form1" method="post" action="login/run">
<label for="uname">User Name</label>
<input type="text" id="user_name" name="user_name"><br><br>
<label for="pwd">Password</label>
<input type="password" id="password" name="password"><br><br>
<input name="submit" type="submit" id="submit" value="Login"><br>
<p>New User <a href="signup.php">Register Here</a></p>
</center>
</body>
</html>
- Selanjutnya, buatlah file Controller PHP dengan nama login.php di folder Controller sehingga tujuan file controller login.php ada di controller/login.php. Salinlah source code berikut.
<?php
class Login extends Controller {
function __construct() {
parent::__construct();
Session::init();
}
function index() {
$this->view->render('login/index');
}
function run()
{
$this->model->run();
}
/* logging out the user */
function logout()
{
Session::destroy();
header('location: index');
exit;
}
}
- Terakhir, kamu buat file Model yang digunakan untuk proses mendaftarkan data ke database. Kamu bisa beri nama file
login_model.php
yang dibuat di bawah folder Models. models/login_model.php
<?php
class Login_Model extends Model
{
public function __construct()
{
parent::__construct();
Session::init();
}
public function run()
{
$user_name=$_POST['user_name'];
$password=md5($_POST['password']);
$res= $this->db->select("SELECT * FROM
register
WHERE username = '".$username."' AND password = '".$password."'");
$count = count($res);
if ($count > 0) {
Session::init();
Session::set('role', "user");
Session::set('loggedIn', true);
Session::set('user_name', $user_name);
Session::set('password', $res[0]['password']);
header('location: '.URL.'login/index');
}
else {
Session::set('loggedIn', false);
header('location: '.URL);
}
}
}
MVC Adalah Solusi Tepat Untuk Mengembang Program Dengan Efektif
Sederhananya, MVC adalah arsitektur software development yang mengurutkan konsep Model, View, dan Controller agar mudah dalam maintenance source code.
Komponen Model mencakup semua data dan logika pemrograman sekaligus database aplikasi.
Komponen View untuk menyajikan data kepada pengguna dan menangani segala interaksi pengguna dengan aplikasi.
Dan komponen Controller sebagai interface atau penghubung antara komponen Model dan View selama proses request user.
Karena pemahaman konsep arsitektur MVC adalah bagian dari penggunaan framework, penting halnya untuk belajar coding dengan memahami prinsip Object Oriented Programming atau OOP sehingga proses pengembangan aplikasi menjadi lebih terstruktur dan memudahkan kamu dalam melakukan pengembangan lanjutan nantinya.
MVC adalah pilihan strategi dan solusi yang tepat agar kamu bisa ngoding dengan lebih enjoy dan setuju dengan klaim coding is fun.