• Tidak ada hasil yang ditemukan

Think Different [vokasi] Materi Pem. Web + Kisi UAS 11_Konsep MVC

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different [vokasi] Materi Pem. Web + Kisi UAS 11_Konsep MVC"

Copied!
10
0
0

Teks penuh

(1)

Konsep MVC

atau penulisan source code dalam pemrograman dari suatu aplikasi yang dibuat agar tampak lebih rapi, lebih mudah untuk dimaintain dan dikembangkan. MVC merupakan suatu konsep pemrograman yang juga banyak diterapkan oleh pengembang perangkat lunak. Dengan menerapkan MVC ketika membuat suatu aplikasi akan berguna pada kemudahan saat aplikasi tersebut memasuki fase maintenance. Proses pengembangan dan integrasi pun menjadi lebih mudah untuk dilakukan. Ide dasar dari MVC

sebenarnya sangat sederhana, yaitu mencoba untuk memisahkan antara

model, view, dan controller.

1.2 Tujuan

Penguasaan materi dalam modul ini dirancang agar mahasiswa mampu untuk :  Menjelaskan dan memahami tentang definisi dan konsep arsitektur MVC.  Menjelaskan dan memahami layer-layer dalam arsitektur MVC.

 Menjelaskan dan memahami kelebihan dan kekurangan arsitektur MVC pada Aplikasi.

 Menjelaskan dan memahami arsitektur MVC pada aplikasi dekstop dan aplikasi web.

 Mampu merancang aplikasi sederhana dengan konsep arsitektur MVC.

(2)

1.3 Definisi 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.

Model View Controller (MVC) pertama sekali didengungkan oleh peneliti XEROX PARAC yang bekerja dalam pembuatan bahasa pemograman Smalltalk sekitar tahun 1970-1980. Smalltalk adalah bahasa pemrograman murni berbasis object oriented, dan konsep MVC adalah fitur kunci utamanya.

Sebelum mengenal konsep MVC perhatikan gambar dibawah:

Gambar diatas akan memberikan ilustrasi

sederhana mengenai konsep arsitektur MVC.

Katakanlah besok adalah ulang tahun

saudara Anda. Anda akan memutuskan untuk membeli kue dan mengunjungi toko Bakery. Anda memesan ke pembuat kue (baker) untuk dibuatkan kue yang indah. Pembuat kue akan mengumpulkan semua bahan untuk membuat kue. Setelah mengumpulkan semua bahan, pembuat kue memutuskan bagaimana kue akan dibentuk dan memilih pan untuk mencetak kue yang tepat (mungkin persegi, lingkaran dll). Ketika sudah kue siap, pembuat kue merespon yaitu memberikan kembali kue ke anda. Dari ilustrasi ini bisa kita umpamakan anda sebagai view-nya tempat untuk request dan menerima hasil response dari suatu aplikasi, pembuat kue (baker) sebagai controller-nya yang akan memutuskan proses apa yang harus dilakukan ketika ada permintaan dari user sedangkan bahan baku kue, pan sebagai alat pencetak merupakan ilustrasi model yang langsung berhubungan dengan data yang diproses. Dalam membuat aplikasi apapun, bagian dalam kode yang sering mengalami perubahan adalah bagian user interface. User interface adalah bagian yang paling terlihat oleh pengguna dan merupakan tempat bagi pengguna berinteraksi dengan aplikasi. Business-logic yang rumit pada user-interface akan membuat pengubahan pada user interface menjadi lebih kompleks dan mudah terjadi kesalahan. Perubahan pada satu bagian memiliki potensi keterkaitan dengan keseluruhan aplikasi.

Pola arsitektur MVC menyediakan sebuah solusi terhadap permasalahan tersebut dengan membagi aplikasi menjadi bagian – bagian tersendiri yaitu Model, View dan Controller, yang memisahkan antara proses bisnis dengan tampilan yang mempunyai fokus terhadap

Gambar 11.1 Konsep MVC

Brawijaya University

2012

(3)

perubahan pada komponen model, maka komponen view tidak harus selalu dirubah/dirombak total, demikian juga sebaliknya.

2. Layer Utama pada Arsitektur MVC

Gambar 11.2 Arsitektur MVC

Ada tiga layer utama dalam arsitektur MVC, 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.

4. Controller merupakan bagian yang menjembatani model dan view.

Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Untuk memahami metode pengembangan aplikasi menggunakan arsitektur MVC diperlukan pengetahuan tentang pemrograman berorientasi objek (Object Oriented Programming).

2.1 Model

Pola arsitektur MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. 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. Dengan memilahnya sebagai bagian

(4)

terpisah, seperti penampungan data, serta proses manipulasi, terpisah dari bagian lain aplikasi terdapat beberapa kelebihan yang didapatkan antara lain:

 Pertama, membuat detail dari data dan operasinya dapat ditempatkan pada area yang ditentukan (Model) dibanding tersebar dalam keseluruhan lingkup aplikasi. Hal ini memberikan keuntungan dalam proses maintenance aplikasi.

 Kedua, dengan pemisahan total antara data dengan implementasi

interface, komponen model dapat digunakan kembali oleh aplikasi lain yang memiliki kegunaan yang hampir sama.

Setiap kali method / function dari suatu aplikasi butuh untuk melakukan akses ke dalam suatu data, maka function / method tersebut tidak langsung berinteaksi dengan sumber data 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.

2.2 View

Layer ini mengandung keseluruhan detail dari implementasi user interface. Disini, komponen grafis menyediakan representasi proses internal aplikasi dan menuntun alur interaksi user terhadap aplikasi. Tidak ada layer lain yang berinteraksi dengan user, hanya View. 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.

Penggunaan layer View memiliki beberapa kelebihan :

 Pertama, memudahkan pengabungan divisi desain dalam

development team. Divisi desain dapat berkonsentrasi pada style, look & feel, dan sebagainya, dalam aplikasi tanpa harus memperhatikan lebih pada detail yang lain.

 Kedua, memiliki layer View yang terpisah memungkinkan ketersediaan multiple interface dalam aplikasi. Jika inti dari aplikasi terletak pada bagian lain (dalam Model), multiple interfaces dapat dibuat (Swing, Web, Console), secara keseluruhan memiliki tampilan yang berbeda namun mengeksekusi komponen Model

sesuai fungsionalitas yang diharapkan.

2.3 Controller

Layer ini menyediakan detail alur program dan transisi layer, dan juga bertanggung jawab akan penampungan events yang dibuat oleh user dari

View dan melakukan update terhadap komponen Model menggunakan data yang dimasukkan oleh user.

(5)

process dari aplikasi yang dibangun. 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. Biasanya layer controller juga digunakan untuk mengatur ijin akses dan permission.

Controller merupakan penghubung antara Model dan View. Didalam

Controller inilah terdapat class dan fungsi-fungsi yang memproses permintaan dari View ke dalam struktur data di dalam Model. Controller

juga tidak boleh berisi kode untuk mengakses basis data. Tugas controller

adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan error, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input.

Kelebihan dalam penggunaan layer Controller secara terpisah:

 Pertama, dengan menggunakan komponen terpisah untuk menampung detail dari transisi layer, komponen view dapat didesain tanpa harus memperhatikan bagian lain secara berlebih. Hal ini memudahkan team pengembang multiple interface bekerja secara terpisah dari yang lain secara simultan. Interaksi antar komponen View terabstraksi dalam Controller.

 Kedua, dengan menggunakan layer terpisah yang melakukan logic dengan business logic.

3. Kelebihan dan Kekurangan Arsitektur MVC

3.1 Kelebihan Arsitektur MVC

Tujuan utama dari pola desain arsitektur MVC adalah pemisahan antara

business logic (proses bisnis) dengan view (tampilan). Model arsitektur ini akan memberikan perlindungan antara view yang menampilkan data di antarmuka pengguna dari bagaimana data tersebut sebenarnya diproses. Berikut beberapa keuntungan jika kita menggunakan konsep arsitektur MVC dalam membangun aplikasi:

 Ketika kita menggunakan arsitektur MVC akan memisahkan user interface dari logika bisnis, logika bisnis dari logika akses data. Jadi arsitektur MVC akan meningkatkan fleksibilitas, pemeliharaan dan skalabilitas.

 Keuntungan lain dari arsitektur MVC adalah penggunaan kembali (re-usable) komponen. Sebagai contoh jika kita ingin mengembangkan antarmuka pengguna berbasis dekstop dari pada antarmuka berbasis web browser, yang sudah lebih dahulu dikembangkan, dengan cara yang mudah dan cepat kita hanya

(6)

mengganti komponen UI. Semua komponen lain seperti akses logika bisnis, akses data dan model database tetap sama. Arsitektur berlapis memungkinkan untuk swap dan menggunakan kembali komponen sesuka hati.

 Arsitektur MVC akan membantu kita kerja lebih mudah dalam bentuk tim (team work) yang membutuhkan pembagian kerja yang jelas dan bisa meminimalkan ketergantungan antar anggota tim.

 Arsitektur MVC model memudahkan kita dalam me-maintain dan pengembangan aplikasi.

 Dalam Arsitektur MVC kita dapat membuat komponen yang berbeda dari aplikasi yang dapat kita kembangkan sendiri meskipun saat ini belum digunakan.

 Arsitektur MVC juga memungkinkan untuk mengkonfigurasi

berbagai tingkat keamanan untuk komponen yang berbeda. Jadi Arsitektur MVC membantu kita untuk mengamankan bagian komponen tertentu dan membuat komponen lainnya dapat diakses dari Internet.

 Arsitektur MVC juga membantu kita untuk menguji komponen secara bebas tidak tergantung dari kelas lain.

3.1 Kekurangan Arsitektur MVC

Berikut beberapa kekurangan jika kita menggunakan konsep arsitektur MVC dalam membangun aplikasi:

 Banyak layer yang dirancang sehingga akan menurunkan kemampuan aplikasi yang dirancang. Dalam hal ini pengaksesan data dalam layer view tidak efisien, karena harus melewati layer

controller dan layer model.

 Pengembangan aplikasi akan lebih lama karena banyak layer yang harus dibuat.

 Kompleksitas kode semakin tinggi, sehingga tidak cocok untuk aplikasi yang sederhana.

 Memungkinkan akan membutuhkan lebih banyak programmer.  Pengetahuan terhadap beberapa teknologi sangat dibutuhkan.

4. Arsitektur MVC pada Aplikasi

4.1 Aplikasi dekstop

(7)

Dalam aplikasi dekstop, arsitektur MVC akan menempatkan model, view

dan controller dalam satu komputer yang sama dengan pengguna. Aplikasi yang dirancang akan lebih mudah diimplementasikan. Secara umum konsep arsitektur MVC akan berjalan lancar jika diterapkan, hanya akan muncul kekurangan yang sama dengan kekurangan yang ada pada aplikasi dekstop secara umum jika dibandingkan dengan aplikasi web.

4.2 Aplikasi web

1. Server Side MVC, 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 11.4 Arsitektur Server-side MVC

2. Mixed Client Side and Server Side MVC, Pada Mixed Client Side and Server Side MVC 1 client menggunakan controller seperti Javascript, Java applet, flash dan lain-lain. Arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1.

(8)

Gambar 11.5 Arsitektur Mixed Client dan Server-side MVC

Pada Mixed Client Side and Server Side MVC 2, client menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan arsitektur MVC yang lain, arsitektur ini

memiliki tingkat kompleksitas yang paling tinggi karena lebih banyak komponen yang terlibat, sehingga membutuhkan sumber daya yang lebih besar pula. Untuk selanjutnya arsitektur ini disebut dengan Mixed MVC 2.

Gambar 11.6 Arsitektur Mixed MVC 2

(9)

Gambar 11.7 Arsitektur RIA MVC

(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.

2. Untuk menguasai konsep arsitektur MVC sangat dibutuhkan pemahaman tentang konsep pemodelan berorientasi objek. Jelaskan.

3. Apa keuntungan dan kekurangan jika perancangan aplikasi menggunakan model arsitektur MVC.

4. Apa yang membedakan penerapan model arsitektur MVC pada aplikasi dekstop dan aplikasi web.

5. Jelaskan beberapa jenis model arsitektur MVC pada web.

B. Tugas (Evaluasi mandiri)

Gambar

Gambar  diatas  akanmemberikan  ilustrasisederhana  mengenaikonsep  arsitektur  MVC.Katakanlah besokadalah  ulang  tahunsaudara Anda
Gambar 11.2 Arsitektur MVC
Gambar 11.4 Arsitektur Server-side MVC
Gambar 11.5 Arsitektur Mixed Client dan Server-side MVC
+2

Referensi

Dokumen terkait

Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC

Tujuannya adalah untuk membantu mengembangkan aplikasi web dengan model view controller (MVC) kemampuan dalam upaya.. untuk membuat pengembangan, pemeliharaan dan pengujian

berdasarkan dari pengujian yang telah di lakukan oleh peneliti, sistem dari aplikasi E-Tilang menggunakan metode MVC(Model View Controller)berjalan sesuai dengan yang

Framework CodeIgniter menggunakan konsep MVC (Model, View, Controller). Dengan mengunakan konsep MVC akan memiliki keuntungan yaitu pada pengembangan aplikasi yang berskala besar

Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan

Salah satunya adalah project MvcContrib yang menyediakan helper method Grid() untuk membuat sebuah tampilan grid dalam View dengan menerima parameter Model, dan

Laravel adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun dengan konsep Model View Controller (MVC). Konsep MVC merupakan suatu konsep yang

Implementasi E-Learning Berbasis Model View Controller (MVC) Pada Man 1 Pangkalan Balai Dengan Metode Prototyping Berbasis Web yang dihasilkan dapat menjadi