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
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)
: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 . . . . <?php echo $content; ?>
. . . 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: </php $this->beginWidget(‘CactiveForm’. …… . .); ?> . . .konten body yang dapat diungkapkan oleh widget. . . <?php $this->endWidget(); ?>
Atau
<? Php $this->widget (‘zii.widgets.grid,cgridView’, ….) ; ?>
3. View Sistem
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 :
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.
PUBLIC FUNCTION ACTIONcREATE() hasil sama dengan cara lebih gampang:
Class PostController extends Controller 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:
{
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
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,
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.
Gambar 3.3 Formulir Contact
Kemudian ketika user memilih menu login, akan menghubungkan ke url