Modul Model View Controller (MVC)
Modul Model View Controller (MVC)
A. Tujuan Pembelajaran
Melalui kegiatan pembelajaran dengan pendekatan saintifik dengan model
pedagoge genre, saintifik, dan PjBL, peserta didik dapat menganalisis,
menerapkan, merancang, membuat, dan menguji program aplikasi web berbasis
MVC dengan rasa ingin tahu, tanggung jawab, disiplin, dan kreatif
(integritas) selama proses pembelajaran dan bersikap jujur, percaya diri,
serta pantang menyerah.
B. Materi Pembelajaran
1. Definisi Model View Controller (MVC)
Model View Controller atau disingkat MVC adalah sebuah metode untuk membuat
sebuah aplikasi dengan memisahkan antara data (model) dari tampilan (view) dan
cara bagaimana memprosesnya (controller). Dalam implementasinya, kebanyakan
framework dalam aplikasi website berbasis arsitektur MVC. Dalam rekayasa
perangkat lunak, Model View Controller (MVC) adalah pola desain atau arsitektur
aplikasi yang dengan jelas memisahkan antara data (model) dengan user interface
atau tampilan (view). MVC memisahkan pengembangan aplikasi berdasarkan
komponen utama yang membangun sebuah aplikasi, seperti manipulasi data, user
interface, dan bagian yang menjadi pengontrol aplikasi.
Penggunaan MVC terbukti sangat efektif dalam semua aplikasi, tidak hanya
terbatas pada aplikasi berbasis web. MVC pertama kali dirancang oleh Trygve
Reenskaug dan dipublikasikan pertama kali oleh XEROX PARAC dan Smalltalk,
sekitar 1970-1980. Implementasi dari gagasan MVC dituangkan dalam tulisan
berjudul “Application Programming in Smalltalk-80: How to Use Model-View-
Controller”. Inti penemuan arsitektur MVC adalah pemisahan tampilan pengguna dari
kendali asupan pengguna, dan model informasi yang mendasarinya.
OOP (Object Oriented Programming) atau Pemrograman Berbasis Objek telah
berkembang pesat selaras dengan perkembangan PHP di versi 5. Sekarang ini,
banyak aplikasi perusahaan swasta maupun perusahaan pemerintah lebih memilih
menggunakan aplikasi website PHP dikarenakan memang aplikasi website sekarang
ini sangat kompleks.
Pada contoh di atas, class controller yang dipakai hanya mempunyai satu fungsi
dan konstruktor. Konstruktor menginstal sebuah class model dan ketika sebuah
permintaan dilakukan, controller memutuskan data mana yang dibutuhkan dari model.
Kemudian, controller memanggil class model untuk mengambil data. Setelah itu,
controller memanggil data yang datang dari model yang dilewatkan yang
berpasangan. Kode yang dipakai sangat sederhana. Perlu dicatat bahwa controller
tidak mengetahui apa pun dari database atau bagaimana halaman dihasilkan.
Perhatikan kode program berikut:
include_once (“model/Model.php”);
class Controller {
public $model;
public function contruct()
{
$this->model = new Model();
}
public function invoke()
{
if (!isset($_GET[‘book’]))
{
//no special book is requested, we’ll show a list of all available
books
$books = $this->model->getBookList();
include ‘view/booklist.php’;
}
else
{
//show the requested book
$book = $this->model->getBook($_GET[‘book’]);
include ‘view/viewbook.php’;
}
}
}
Dalam contoh yang kita pakai, model mewakili oleh dua class, yaitu class Model
dan class Book. Model tidak membutuhkan penyajian lain. Class Book adalah sebuah
class entitas. Class ini seharusnya diekspos ke layer view dan menyajikan format yang
dikirim oleh tampilan class Model. Dalam implementasi, pola MVC yang bagus hanya
class entitas yang harus diekspos oleh model, dan class entitas tersebut tidak
seharusnya membungkus logika bisnis apa pun. Class entitas mempunyai tujuan
utama untuk menyimpan data. Tergantung pada implementasi, objek entitas bisa
digantikan oleh potongan data XML atau JSON. Dalam contoh berikut, Anda dapat
melihat bagaimana model mengembalikan sebuah buku tertentu, atau sebuah daftar
semua buku yang tersedia.
Perhatikan contoh class Model berikut:
include_once(“model/Book.php”);
class Model {
public function getBookList()
{
// here goes some hardcoded values to simulate the database
return array (
“Jingle Book” => new Book (“Jungle Book”, “R. Kipling”, “A classic
book.”),
“Moonwalker” => new Book(“Moonwalker”, “J. Walker”, “”),
“PHP for Dummies” => new Book(“PHP for Dummies”, “Some Smart
Guy”, “”)
);
}
public function getBook($title)
{
// we use the previous function to get all the books and then we return
the requested one
// in a real life scenario this will be done through a db select command
$allBooks = $this->getBookList();
return $allBooks[$title];
}
}
c. View (presentasi)
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.
Layer presentasi (view) bertanggung jawab untuk pemformatan data yang
diterima dari model dalam sebuah bentuk yang bisa diakses oleh pengguna. Data bisa
datang dari model berupa objek sederhana (kadang-kadang disebut objek nilai),
struktur XML, dan JSON. View tidak seharusnya membuat bingung dengan
mekanisme template, tapi terkadang keduanya bekerja dengan cara yang sama dan
juga menangani permasalahan yang sama. Keduanya akan mengurangi
ketergantungan dari layer presentasi terhadap keseluruhan sisten dan memisahkan
unsur penyajian (HTML) dari kode.
Controller mengutus data dari model pada sebuah unsur view tertentu, biasanya
berhubungan dengan entitas utama di dalam model. Sebagai contoh, operasi “display
account” akan berhubungan dengan sebuah view “display account”. Layer view bisa
menggunakan sebuah sistem template untuk menghasilkan sebuah halaman HTML.
Mekanisme template bisa menggunakan kembali bagian tertentu dari halaman
header, menu, footer, list dan tabel, yaitu jika kita berbicara dalam konteks pola MVC.
Dalam contoh yang terpakai, view hanya berisi dua file, yaitu satu untuk menampilkan
satu buku, dan yang lainnya untuk menampilkan sebuah daftar buku.
Perhatikan kode program berikut:
//booklist.php
<html>
<head>
</head>
<body>
<table>
<tbody>
<tr>
<td>Title</td>
<td>Author</td>
<td>Description</td>
</tr>
</tbody>
<?php
foreach ($book as $title => $book)
{
echo ‘<tr><td><a href=’index.php?book=’ .book ->
title.’”>’.$book -> title.’</a></td><td>’.$book -> author.’ </td><td>’.$book ->
description.’</td></tr>’
}
?>
</table>
</body>
</html>
C. Latihan
D. Tugas Individu
1) Buatlah database agar tampilan di atas dapat dijalankan dengan baik !
2) Kemudian perbaikilah kode program pada Latihan di atas yang terdapat
tulisan Notice !
3) Silahkan di-screenshoot disertai dengan Nama Kalian dan Absennya pada
tampilan di localhost dan dikirimkan ke website online yang telah disediakan
oleh guru mapel !
E. Tugas Kelompok
Buatlah sebuah program aplikasi web dengan memanfaatkan Model View
Controller untuk memasukkan dan menampilkan data buku yang telah di-
inputkan !
F. Kesimpulan
Model View Controller (MVC) yang merupakan salah satu design pattern yang
sekarang banyak dipergunakan oleh berbagai framework merupakan salah satu
metode pengembangan aplikasi yang harus dikuasai. Dengan menggunakan MVC
perawatan sebuah program akan lebih mudah, mengingat semua bagian program
telah dipetakan dalam struktur yang jelas, sehingga pengubahan desain tidak
mengubah logic maupun data. Demikian pula pengubahan data akan terhindar dari
G. Daftar Pustaka
1) Naista, David. 2016. Bikin Framework PHP Sendiri dengan Teknik OOP dan
MVC. Yogyakarta: CV: Lokomedia.
2) Raditya, Nizar Rabbi. 2015. Konsep Dasar MVC (Model View
Controller).UNIKOM: S1 Sistem Informasi.
3) Wahyudi, Stephanus Eko. Sistem Pemrograman Model View Controller
(MVC). Informatika Universitas Ciputra, https://informatika.uc.ac.id
4) Wikipedia, Model-View-Controller, http://en.wikipedia.org/wiki/Model-view-
controller