• Tidak ada hasil yang ditemukan

Think Different [vokasi] Materi Pem. Web + Kisi UAS 12_MVC pada PHP

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different [vokasi] Materi Pem. Web + Kisi UAS 12_MVC pada PHP"

Copied!
10
0
0

Teks penuh

(1)

MVC Pada PHP

2. Penerapan MVC pada PHP 2.1. Layer controller 2.2. Layer model 2.3. Layer view

3. MVC pada framework PHP

1. PENDAHULUAN

1.1 Pengantar

OOP (Object Oriented Programming) atau Pemorgraman Berbasis Objek telah berkembang pesat selaras dengan perkembangan PHP versi 5. Perkembangan PHP ke arah OOP mendorong perancangan web dengan php kearah model arsitektur MVC. Saat ini, arsitektur MVC adalah pola yang paling banyak digunakan untuk aplikasi web. Model ini yang awalnya digunakan untuk pertama kalinya di Smalltalk dan kemudian diadopsi dan dipopulerkan oleh

Java, saat ini ada lebih dari selusin kerangka (framework) web PHP berdasarkan pola MVC.

Model-View-Controller atau MVC adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework dalam aplikasi website adalah berbasis arsitektur MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.

1.2 Tujuan

Penguasaan materi dalam modul ini dirancang agar mahasiswa mampu untuk :  Menjelaskan dan memahami tentang definisi dan konsep penerapan

arsitektur MVC pada PHP.

 Penerapan masing-masing layer arsitektur MVC pada layer dengan contoh studi kasus.

 Menjelaskan dan memahami beberapa framework MVC dengan PHP.

(2)

1.3 Konsep penerapan arsitektur MVC pada web

Ada beberapa model penerapan Arsitektur MVC dalam perancangan aplikasi berbasis web. Model yang paling sederhana adalah model server side MVC. Model ini biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side seperti Javascript, Java applet, flash

dan lain-lain. Server Side MVC menyerahkan keseluruhan proses bisnis pada server, aplikasi pada sisi pengguna hanya dapat menerima. MVC jenis ini kadang-kadang disebut juga dengan nama thin client.

Gambar 12.1 Arsitektur MVC client-server

Php merupakan salah satu bahasa pemrograman yang banyak digunakan untuk mengembangkan web bisa kita terapkan dalam model server side MVC. Secara umum tetap ada tiga layer yang akan dirancang yaitu;

1. Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.

2. View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web atau dalam pemrograman kita kenal dengan halaman tempat interaksi antara manusia dan komputer (User Interface).

3. Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Gambar 12.2 Proses MVC

Dalam Sequence Diagram MVC berikut dapat diamati aliran data selama permintaan.

(3)

Gambar 12.3 Sequence Diagram MVC

2. Penerapan Arsitektur MVC pada PHP

Misal kita ingin membuat aplikasi web sederhana tentang data buku. Perancangan untuk kasus ini akan kita gunakan arsitektur MVC dengan php. Contoh aplikasi singkat ini memiliki struktur yang sederhana, menempatkan setiap modul MVC dalam satu folder:

Gambar 12.4 Struktur direktori Arsitektur MVC

2.1 Controller

Controller di sini berperan sebagai logic aspect dari suatu aplikasi / mengatur user flow. Controller akan merespon setiap inputan dari user

dengan melakukan pemanggilan terhadap model dan view yang sesuai sehingga request / permintaan dari user tersebut dapat terpenuhi dengan baik.

Kelas Controller yang kita rancang hanya memiliki satu fungsi dan konstruktor. Konstruktor akan membuat objek dari kelas model. Sesuai dengan diagram sequence diatas, ketika permintaan dilakukan, controller

memutuskan data yang diperlukan dari model. Kemudian memanggil kelas

(4)

bahwa controller tidak tahu apa-apa tentang database atau tentang

Untuk memanggil kelas controller, kita akan membuat file index.php.

// index.php file

include_once("controller/Controller.php");

$controller = new Controller(); $controller­>invoke();

2.2 Model dan Entity Class

(5)

tersebut melainkan harus melalui model terlebih dahulu. Dalam hal ini hanya model yang diijinkan untuk berinteraksi langsung dengan sumber data. Secara singkat, layer model ini menangani content dari aplikasi. Dalam contoh ini kita membuat model yang diwakili oleh 2 kelas: kelas "Model" dan kelas "Buku". Kelas "Buku" adalah kelas entitas. Kelas ini yang nantinya akan kita lempar ke view yang merupakan representasi data yang ada di model yang diambil dari database.

(6)

  $this­>description = $description;     }

}

2.3 View (presentation)

View atau layer presentasi bertanggung jawab untuk pemformatan data yang diterima dari model dalam sebuah bentuk yang bisa diakses kepada pengguna. Sebisa mungkin, didalam View tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. Di dalam view jangan pernah ada kode untuk melakukan koneksi ke basis data. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller.

Dalam contoh yang dipakai, ada dua view yang ditampilkan, satu untuk menampilkan satu buku dan yang lainnya untuk menampilkan sebuah daftar buku.

Contoh viewbook.php

<html>

<head></head>

<body>

<?php 

echo 'Title:' . $book­>title . '<br/>'; echo 'Author:' . $book­>author . '<br/>';

echo 'Description:' . $book­>description . '<br/>';

?>

</body> </html>

Contoh booklist.php

<html>

<head></head>

<body>

<table>

<tbody><tr><td>Title</td><td>Author</td><td>Description</td></ tr></tbody>

<?php 

(7)

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>

3. Arsitektur MVC pada framework PHP

Framework adalah sekumpulan fungsi, class, dan aturan-aturan. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework

bersifat menyeluruh mengatur bagaimana kita membangun aplikasi.

Framework memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security; umumnya telah disediakan oleh framework. Disamping itu dengan aturan-aturan yang jelas dan harus dipatuhi, aplikasi kita lebih solid, more readable, dan kolabarasi dalam tim dapat lebih mudah dilaksanakan.

Kita sebagai seorang software developer bisa dianalogikan sebagai seorang tukang bangunan. Apabila anda perhatikan, seorang tukang bangunan bisa membuat sebuah rumah. Tidak akan menjadi masalah bila hanya untuk membangun rumah dengan satu atau dua lantai. Tetapi akan menjadi masalah apabila dia mendapatkan pekerjaan untuk membangun sebuah gedung bertingkat. Permasalahan akan menjadi semakin komplek, makin banyak pekerja dan material yang dilibatkan, belum lagi dengan jadwal yang ketat. Kita pun seperti itu. Membangun aplikasi kecil tentu tidak menjadi masalah. Namun bagaimana bagaimana apabila aplikasi kecil kita tersebut dengan makin lama makin bertambah requirementnya sejalan dengan kebutuhan user. Di sini lah peran penting sebuah framework dalam membangun aplikasi.

(8)

Gambar 12.5 Framework PHP yang menetapkan pola MVC

Contoh Framework MVC pada PHP :

CakePHP yang bersifat open source ini juga mengadopsi konsep arsitektur MVC (Model View Controller) dan ORM (Object Relational Mapping), yang mendukung JavaScript, AJAX, RSS, Email dan XML yang sudah terintegrasi dalam core library-nya. Aplikasi ini bisa dijalankan di PHP4 maupun PHP5, serta mendukung berbagai

database populer seperti MySQL, SQLite, PostSQL, Oracle, MS SQL, dan DB 2. Dengan menggunakan modul tambahan seperti Security, Session, Access Control List (memungkinkan pengaturan user dan hak aksesnya dalam aplikasi yang kita kembangkan dengan sarana yang lebih mudah dipahami), Authentication memungkinkan kita membangun aplikasi dengan cepat dan mudah, serta Scaffolding

(fitur yang barangkali jarang dijumpai pada framework lain, fitur ini bisa mengenerate semua yang dibutuhkan untuk membuat aplikasi (create, read, update, delete) secara lengkap). Kekurangannya adalah pada bagian dokumentasi, dokumentasi yang disediakan kurang begitu bagus namun sudah lengkap. Struktur kerja MVC pada CakePHP yaitu, user melakukan request yang ditangani oleh

Controller, Controller memiliki banyak metode untuk menangani

request tersebut. Controller mengambil data pada database melalui

Model, Model tersebut memberikan data yang relevan ke dalam

Controller. Controller akan mengolah data dan memberikannya pada View (tampilan yang dipilih). View ini yang akan dilihat oleh

browser-nya.

Zend Framework merupakan pustaka berbasis PHP5 yang menggunakan arsitektur pemrograman Model-View-Controller

(MVC). Zend Framework dikembangkan oleh perorangan dari

(9)

Symfony Project merupakan framework yang ditujukan untuk PHP5, serta menganut Model MVC. Dukungan AJAX juga tersedia, dokumentasi cukup baik serta kompatibel terhadap berbagai sistem

database. Kekurangan dari Symfony adalah proses instalasi dan konfigurasi yang cukup rumit.

Canvas (web framework) merupakan web aplikasi framework yang bersifat open source, dapat dijalankan pada PHP 5, dapat mendukung konsep ORM, serta menganut Model View Controller. Menggunakan MySQL sebagai default database relasionalnya dan Smarty sebagai default template sistemnya, tapi tetap memungkinkan untuk menggunakan database dan template sistem yang lainnya.

CodeIgniter juga mendukung PHP4 dan PHP5, mengadopsi arsitektur MVC namun tidak mendukung konsep ORM. Modul siap pakai yang disediakan seperti Session Management, Email Sending, Image Manipulation Library, File Uploading, XML-RPC, Calendaring. Berbeda dengan CakePHP, CodeIgniter ini tersedia dokumentasi yang sangat banyak dan terorganisir dengan baik.

Prado merupakan framework yang berbasis komponen dan Event-Driven, dengan konsep yang mirip seperti pemrograman di ASP.Net dan Delphi yang mendukung pemakaian database populer. Komponen di Prado merupakan gabungan dari file spesifikasi dalam format XML, template HTML dan PHP class. Kekurangan dari Prado sendiri, hanya mendukung PHP 5 saja.

(10)

REFERENSI

Wikipedia (http://wikipedia.org/wiki/Model-View-Controller)

J. Deitel, Paul. 2007, Java How To Program, 6th Edition, Prentice Hall.

Matt Zandstra, 2010, PHP Objects, Patters and Practice, 3rd Edition, Apress.

PROPAGASI

A. Latihan dan Diskusi (Propagasi Vertikal dan Horizontal)

1. Jelaskan konsep arsitektur MVC pada web.

2. Jelaskan bagaimana php bisa diterapkan menggunakan konsep arsitektur MVC. 3. Apa yang dimaksud dengan framework?

4. Jelaskan keuntungan jika membuat aplikasi berdasarkan framework.

5. Berikan contoh beberapa framework menggunakan php selain yang ada dalam modul ini.

A. Tugas (Evaluasi mandiri)

1. Implementasikan contoh kode MVC dengan PHP yang ada pada bab 12 di modul ini.

Gambar

Gambar 12.1 Arsitektur MVC client-server
Gambar 12.3 Sequence Diagram MVC

Referensi

Dokumen terkait

kecenderungan bahwa cerpen-cerpen Pion Ratulolly mengungkapkan tragedi kehidupan dengan posisi estetika naratif yang memperhatikan titik-titik dramatik dalam setiap

Berdasarkan dari hasil analisis yang di- lakukan, maka dapat ditarik kesimpulan sebagai berikut: (1) pengawasan tidak berpe- ngaruh langsung melalui kinerja terhadap

Penelitian ini bertujuan untuk menganalisis: (1) untuk mengetahui pengelolaan panen dan pasca panen produk kopi beras di tingkat petani; (2) untuk mengetahui faktor-faktor

Pshysochemical Properties and Starch Granular Characteristics of Flour From Various Manihot Esculanta (Cassava) Genotypes.. The

Berdasarkan data curah hujan bulan Januari 2021 dari stasiun-stasiun BMKG dan pos-pos hujan kerjasama terpilih pada 15 Zona Musim (ZOM) di Bali dapat disajikan dalam

Untuk metode electrolysis uap temperatur tinggi, dipelajari melalui hasil melalui studi literatur yang ada pada IAEA-TECDOC-1236, atau secara teoritis,

Tujuan penelitian adalah mengkhaji distribusi dan area sel mukus di lapisan sel epitel usus tikus jantan Wistar (Rattus norvegicus). Sampel dibuat preparat

Kurikulum Standard Sekolah Rendah Pendidikan Islam tahap dua memberikan penekanan yang lebih mendalam kepada kemahiran membaca dan menghafaz al-Quran, membaca dan memahami