PEMROGRAMAN WEB BERBASIS FRAMEWORK LAPOR

PEMROGRAMAN WEB BERBASIS FRAMEWORK
LAPORAN BAB 3
“CARA KERJA MODEL VIEW CONTROLLER”

Oleh :
Nama : Meyla Yan Sari
Kelas : IK-2B
NIM : 3. 34. 13. 1. 10

PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2015

A. Pengertian Model View Controller (MVC)
Model View Controller (MVC) model pembuatan program yang menerapkan
arsitektur yang memisahkan proses, tampilan, dan bagian yang menghubungkan
antara proses dan tampilan. Pembuatan program yang enggunakan MVC ini
bisanya dikemas dalam kerangka kerja (framework). Sehingga pengembangan
aplikasi tinggak menggunakan kerangka kaerja yang sudah disediakan.
Framework


yii

mengimplementasikan

pola

desain

Model

View

Controller(MVC), yang diadopsi secara luas dalam pemograman web. MVC
bertujuan untuk memisahkan proses bisnis dari pertimbangan antarmuka user agar
para pengembangan bisa lebih mudah mengubah setiap bagian tanpa
mempengaruhi yang lain. Dalam MVC, model menggambarkan informasi (data)
dan proses bisnis. View(tampilan) berisi elemen antarmuka user seperti teks.
Formulir masukkan, semenntara controller mengatur komunikasi antarmodel dan
view.

B. Model
Model merupakan kelsa yang mendasari logika proses dalam aplikasi lunak dan
kelas yang terkait dengannya. Model adalah suatu objek yang tidak mengandung
informasi tentang user interface. Model juga suatu kelas yang berisi
metode/fungsi yang merupakan kumpulan dari proses proses.
Model adalah senuah instance dari model atau sebuah class yang menurunkan
model. Model digunakan untuk menyimpan data dari aturan bisnis yang relevan.
C. View
View, merupakan kumpulan dari kelas yang mewakili unsur unsur dalam
antarmuka user (semua hal user dapat melihat dan merespon pada layar, seperti
tombol, tampilan kotak, dan sebagainya)
Dalam view terdapat nama yang dipakai untuk mengidentifikasi file skrip
tampilan saat dipanggil lewat fungsi render. Nama view sama seperti nama file
skrip viewnya. Sebagai contoh, file view edit erujuk pada file skrip bernama
edit.php. untuk menrender view, controller menjalankan method controller :

:render() dengan nama view. Method tersebut akan mencari file view terkait di
dalam direktori protect/views/ControllerID
1. Layout
Layout adalah tata letak view yang khusus yang dipakai untuk mengatur

bentuk tampilan. Biasanya berisi bagian antarmuka dengan user yang umum
diantara beberapa view. Sebagai contoh, sebuah layout mungkin berisi sebuah
header dan sebuah footer serta menyyertakan tampilan isi diantaranya :
. . . . . . . . header disini . . . . . . . . . .

. . . . . . . . . footer disini. . . . . . . . . .
Dengan $content menyimpan hasil render view isi.
Layout secara implisit diterapkan saat memanggil menjalankan render ().
Secara default, skrip view proteced/view/layout/main.php dipakai sebagai
layout.
2. Widget
Widget adalah instance dari widget atau anak kelas dari widget. Widget
biasanya digunakan dalam skrip view untuk menghasilkan beberapa
antarmuka dengan user yang kompleks dan berdiri sendiri. Sebagai contoh,
widget kalender bisa dipakai untuk menyiapkan antarmuka kalender user yang
kompleks. Untuk menggunakan widget, lihat contoh skrip view berikut:
beginWidget(‘CactiveForm’. …… . .); ?>
. . .konten body yang dapat diungkapkan oleh widget. . .

Atau



3. View Sistem
View sistem merujuk pada tampilan yang dipakai oleh Yii untuk menampilkan
kesalahan dan pencatatan (logging) informasi. Sebagai contoh, ketika user
meminta ke controller ketika di controller tidak ada fungsi action maka view

system akan menampilkan kesalahan dengan exception. Yii menampilkan
exception menggunakan tampilan sistem tertentu.
D. Controller
Controller yang merupakan kelas yang menghubungkan model dan view dan
du=igunakan untuk berkomunikasi antara kelas dalam model dan view. Controller
memiliki action standar. Ketika permintaan user tidak menetapkan action mana
yang dijalankan adalah action standar. Bisanya action disalutkan bernama
actionIndex. Action default bisa diubah dengan mengeset ariable instan publik.
Controller: :defaultAction.
1. Route
Controller dan action diidefinisikan oleh ID. ID controller dalam format
Path/ke/xyz


sesuai

dengan

letak

file

kelas

controller

di

protectes/controller/path/ke/xyzController.php.xyz harus diganti dengan nama
sebenarnya (contoh, tcMhs pada protected/controller/TblMhsController.php).
ID action adalah nama metode action tanpa berlawanan action. Sebagai
contoh, jika kelas controller berisi sebuah metode bernama actioKhs. Id dari
action tersebut adalah khs. Permintaan user ke controller dan action tertentu
sesuai dengan aturan route. Route dibentuk dengan menggabungakan ID

controller dan ID action yang diisahkan dengan garis miring. Sebagai contoh,
route tblMhs/Khs merujuk ke TblMhsController dan action Khs. Dan secara
default, URL http://nama_host/index.php?r=TblMhs/Khs akan meminta
controlller dan action bus.
2. Instaniasi Controller
Instaniasi controller dibuat ketika CwebApplication menangani permintaan
yang masuk. Berdasarkan ID controler yang diberikan. Aplikasi akan
menentukan kelas controller apa dan dimana file kelas ditempatkan dengan
menggunakan aturan berikut :


Jika CwebApplication: :catcthAllRequest ditetapkan, controller akan
dibuat berdasarkan properti ini, dan ID controller yang ditetapkan

pengguna akan diabaikan. Ini dipakai terutama untuk menyimpan
aplikasi dalam pemeliharaan mode dan menampilkan halaman statis.


Jika ID ditentukan dalam CwebApplication: :controllerMap.
Konfigurasu controller terkait akan dipakai membuat r=turunan

controller.



Jika ID dalam format ‘Path/ke/abc’, nama kelas controller diasumsikan
adalah AbcController dan fle kelas terkait adalah
protected/controller/path/ke/AbcController.php.

3. Action
Seperti yang telah kita jelaska diatas, action dapat didefinisikan sebagai
metode yang nama namanya dimulai dengan jata action. Cara lebih lanjut
adalah dengan mendefinisikan kelas action dan meminta controller untuk
menurunkannya apabila diperlukan. Dengan demikian memeungkinkan
sebuah action untuk dipakai ulang. Dengan menulis action berbasis kelas, kita
dapat mengatur aplikasi gaya modular.
4. Action Parameter Binding
Semenjak versi 1.1.4 Yii telah menambah dukungan binding (pengikatan)
parameter action otomatis, yakni sebuah acton controller dapat didefinisikan
parameter yang nilainya akan secara otomatis diisi oleh Yii dari nilai $_GET.
Untuk mengilustrasikan bagaimana cara kerjanya. Mari kita asumsikan bahwa

kita perlu memuat sebuah action create pada publikasi controller. Action ini
memerlukan dua buah parameter.


Category : sebuah integer yang menunjukkan ID kategori ke beberapa
post baru yang akan dibuat.



Laguange : sebuah string yang mewakili kode bahasa pada publikasi
baru.

Perhatikan kode berikut ini untuk mendapatkan nilai yang diinginkan dari
parameter $_GET.
Class PublikasiController extends Controller
{

PUBLIC FUNCTION ACTIONcREATE()
{
IF (ISSET($_get[‘CATEGORY’]))

$category=(int)$_GET[‘category’];
Else
Throw new ChttpExtion (404, ‘invalid
request’);
If(isset ($_GET[‘laguange’]))
$laguange=$_GET[‘languange’];
Else
$languange=’en’;
// ... mulai koding disini ...
}
}

Sekarang dengan menggunakan fitur parameter action, kita bisa mendapatkan
hasil sama dengan cara lebih gampang:
Class PostController extends Controller
{
Public

function


actionCreate($category,

$languange=’en’)
{
$category=(int)$category;
//. . . mulai koding disini . . .

Perhatikan bahwa ketika menambahkan dua buah parameter kemetode action
ActionCreate. Nama parameter ini haruslah sama persis dengan nama yang ingin
didapatkan dari $_GET. Parameter $languange mengambil nilai default en apabila
ternyata user tidak memberikan nilai pada parameter. Karena $category tidak
memiliki nilai default, maka jika user tidak meberikan nilai pada parametter.
Karena $category di $_GET sebuah HttpException (kode kesalahan 400) akan
dikeluarkan secara otomatis. Ini daat dilakukan dengan PHP type hinting
(pemberian petunjuk jenis PHP) dengan menggunakan sintaks seperti pada skrip
berikut:
Class PublikasiController exetend controler

{
Public function actionCreate (array $categories)

{
//Yii akan memastikan $categories adalah sebuah
array
}
}

Tambahkan kata kunci array didepan $categories dalam deklarasi
parameter metode tersebut. Dengan melakukan demikian, jika $_GET
[categories’] adalah sebuah string sederhana, akan diubah menjadi sebuah
array yang terdiri dari string tersebut.
E. Alur kerja MVC
Diagram memperlihatkan alur kerja MVC sebuah aplikasi Yii saat menanganni
permintaan user. Untuk memperjelas antarmodul yang terdapat pada model view
controller seperti terlihat pada gambar 3.1

Gambar 3.1 Hubungan MVC Aplikasi



User melakukan permintaan dengan memanggil URL
http://localhost/test/index.php?r=site/login dan user web memberikan
responsi permintaan dengan menjalankan skrip bootstrap index.php.

Gambar. site login


Skrip bootstrap membuat sebuah index.php



Aplikasi mendapatkan rincian informasi permintaan user dari komponen
aplikasi bernama request.



Aplikasi menentukan controller dan aksi terdapat pada fungsi action yang
diminta dengan bantuan komponen aplikasi bernama urlManager. Dalam
contoh ini, controller adalahh site yang merujuk pada kelas siteController
dan aksi adalah login.php yang arti sebenarnya ditentukan oleh controller.



Aplikasi membuat instance controller yang diminta untuk melanjutkan
menangani permintaan user. Controller menentukan aksi login.php
merujuk pada sebuah metode bernama actionLogin dalam kelas controller.
Kemusian membuat dan menjelaskan filter {contoh kontrol akses,
pengukuran}terkait dengan aksi ini. Aksi dijalankan jika diizinkan oleh
filter.

Aksi membaca model LoginForm dengan parameter $model yang terdapat



pada controller dalam actionLogin diambil dari pernyataan :
$model->attribute~$_POST[‘LoginForm’];
Aksi menyiapkan view (tampilan) bernama login.php dengan model
LoginForm. View membaca dan menampilkan atribute model login.php.
View menjalankan beberapa widget dan view menyiapkan hasil yang dipasangkan
dalam layout (tata letak)
Berikutnya user menjalankan aplikasi url http://localhost/test seperti terlihat pada
gambar 3.2

Gambar 3.2 Menu Utama Test Aplikasi
User

memililh

menu

contact,

akan

mengubungkan

ke

url

http://localhost/test/index.php?r=site/contact, yang dipanggil lewat pernyataan.
$this->render(‘contact’, array (“model’ =>$model)). Aplikasi
akan memanggil tampilan formulir dari file /view/site/contact.php.
Hasilnya seperti pada gambar 3.3

Gambar 3.3 Formulir Contact
Kemudian ketika user memilih menu login, akan menghubungkan ke url
http://localhost/test/index.php?r=site/login, yang dipanggil lewat pernyataan :
$this

render

(‘login’,array(‘mpdel’=>$model)), aplikasi akan

memanggil tampilan formulir dari file/views/site/login.php. hasilnya
sebagai berikut :