Model View Controller - Universitas...

23
Model View Controller Agi Putra Kharisma, S.T.,M.T.

Transcript of Model View Controller - Universitas...

Page 1: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Model View Controller

Agi Putra Kharisma, S.T.,M.T.

Page 2: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Architectural Pattern

• Konteks

• Latar Belakang

• Rumusan Masalah

• Solusi

Page 3: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Konteks

• Aplikasi menampilkan data dari sumber data (misal: basis data) kepada pengguna melalui antarmuka pengguna.

• Pengguna memanipulasi data melalui antarmuka pengguna untuk dieksekusi di sumber data.

Page 4: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Latar Belakang

• Data yang sama seringkali ditampilkan dalam format yang berbeda (misal: data daftar mahasiswa dalam format HTML, JSON, dan XML).

• Format/struktur data/antarmuka yang diberikan pada pengguna relatif sering berubah, akan tetapi struktur sumber data relatif jarang berubah.

• Merancang dan membuat antarmuka pengguna (misal: HTML) pada umumnya memerlukan keahlian khusus (misal: web designer).

Page 5: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Rumusan Masalah

Bagaimana membuat fungsionalitas antarmuka pengguna secara terpisah (modular) sehingga mudah dimodifikasi secara individual?

Page 6: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Solusi: MVC

Model View Controller memisahkan antara pemodelan domain, presentasi, dan aksi pengguna menjadi 3 kelas, yaitu:

- Model adalah domain pada aplikasi yang dibuat, dia mengatur perilaku dan data pada domain aplikasi.

- View mengatur representasi suatu resource/informasi.

- Controller menerjemahkan masukan/permintaan/request dari pengguna/klien, kemudian memberi informasi atau instruksi tentang apa yang harus dilakukan oleh model atau view.

Page 7: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan
Page 8: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan
Page 9: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

1. The Event is intercepted by the Controller. 2. The Controller evaluates the event and maps it to the appropriate handler in the Model. 3. The Model carries out the action or state change, and the result is returned to the

Controller. 4. The Controller determines the appropriate View to be displayed, and causes the

application to forward to that View. 5. The View, when loading, may retrieve data from the Model through a data interface, but

it is unable to execute actions (such as a database call) directly. 6. The View is displayed to the user.

http://msdn.microsoft.com/en-us/library/aa478961.aspx

Page 10: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

MVC yang mana?

• Istilah MVC banyak dijumpai, dengan konsepnya yang cukup bervariasi.

• Jika dilihat dari sejarah, maka istilah MVC berasal dari seorang programmer bernama Trygve Reenskaug pada tahun 1970-an.

Page 11: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Intinya adalah...?

• Kembali ke permasalahan yang ingin diselesaikan dengan MVC (lihat pada slide bagian awal).

• Tujuan utama bukan untuk menerapkan MVC secara ‘benar’, tetapi untuk menyelesaikan permasalahan yang seharusnya dapat diselesaikan oleh MVC.

• Jika masalah tersebut berhasil terselesaikan, SELESAI.

Page 12: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Studi Kasus

• Lihat kembali aplikasi daftar mahasiswa pada bahasan array yang lalu.

• Modifikasi aplikasi tersebut menggunakan MVC.

• Tambahkan fitur berupa representasi JSON, sehingga user agent dapat memilih representasi HTML atau JSON.

Page 13: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Alternatif MVC?

• MVP (Model View Presenter)

• MVVM (Model View ViewModel)

• MVA (Model View Adapter)

• HMVC (Hierarchical MVC)

• PAC (Presentation Abstraction Control)

• ...dsb

Page 14: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

FRAMEWORK

Page 15: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Apa itu framework?

• Framework merupakan salah satu teknik reuse berorientasi objek.

• Framework merupakan perancangan sistem yang dapat digunakan kembali (reusable design) yang direpresentasikan dalam bentuk kelas abstrak dan bagaimana mekanisme instances kelas tersebut berinteraksi. Perancangan tersebut dapat mencakup sistem secara keseluruhan maupun sebagian saja.

• Framework merupakan kerangka (skeleton) dari suatu aplikasi yang dapat dikostumisasi oleh pengembang perangkat lunak.

- Fayad, Mohamed E, et al. Building Application Frameworks

Page 16: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Kelebihan dan Kekurangan Framework

Kelebihan

• Modularitas

• Reusability

• Extensibility

• Inversion of Control, Hollywood Principle (“Don’t call us, we’ll call you”)

Kekurangan

• Learning curve

• Efisiensi

• Standarisasi

Page 21: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Latihan Mandiri

• Buat Framework PHP sederhana dengan mengikuti tutorial berikut ini:

Membangun Framework PHP Sederhana (oleh: Alex Xandra Albert Sim).

http://bertzzie.com/knowledge/framework-php/index.html

Page 23: Model View Controller - Universitas Brawijayablog.ub.ac.id/agungksukarno/files/2014/06/PW-20132014-09-MVC.pdf · Studi Kasus •Lihat kembali aplikasi daftar mahasiswa pada bahasan

Next

• Javascript & AJAX

Bahan bacaan:

Javascript: Sebuah Pembedahan (oleh: Alex Xandra Albert Sim)

http://bertzzie.com/knowledge/javascript/index.html