Lompat ke isi

MVC: Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
EmausBot (bicara | kontrib)
k Bot: Migrasi 34 pranala interwiki, karena telah disediakan oleh Wikidata pada item d:Q44860
k Suntingan Rahmadiani rehan (bicara) dibatalkan ke versi terakhir oleh Georgetop14
Tag: Pengembalian
 
(39 revisi perantara oleh 29 pengguna tidak ditampilkan)
Baris 1: Baris 1:
{{refimprove}}
[[Berkas:ModelViewControllerDiagram2.svg|right|thumb|400px|Konsep Model-View-Controller]]
[[Berkas:ModelViewControllerDiagram2.svg|ka|jmpl|400px|Konsep Model-View-Controller]]
'''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.<ref name="pwp"/> 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]].<ref name="ittelkom">{{cite web
'''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 [[Kerangka kerja aplikasi web|kerangka kerja]] (''framework'') dalam [[aplikasi]] [[web]] adalah berbasis [[arsitektur]] MVC.<ref name="pwp">{{cite web|url=http://www.prowebpro.com/articles/mvc.html|title=MVC (Model View Controller)|last=|first=prowebpro|authorlink=prowebpro|accessdate=2010-07-31}}</ref> 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]].<ref name="ittelkom">{{cite web|url=http://www.ittelkom.ac.id/library/index.php?view=article&catid=20:informatika&id=518:model-view-controller-mvc&option=com_content&Itemid=15|title=Model View Controller|first=ittelkom|last=|authorlink=ittelkom|accessdate=2010-07-31|archive-date=2018-02-23|archive-url=https://web.archive.org/web/20180223221708/http://www.ittelkom.ac.id/library/index.php?view=article&catid=20:informatika&id=518:model-view-controller-mvc&option=com_content&Itemid=15|dead-url=yes}}</ref>
|url=http://www.ittelkom.ac.id/library/index.php?view=article&catid=20:informatika&id=518:model-view-controller-mvc&option=com_content&Itemid=15
|title= Model View Controller
|first=ittelkom
|last=
|authorlink=ittelkom
|accessdate=2010-07-31
}}</ref>


== Sejarah MVC ==
== Sejarah ==
Model View Controller pertama sekali dipublikasikan oleh [[peneliti]] [[XEROX PARC]] yang bekerja dalam pembuatan [[bahasa pemrograman]] [[Smalltalk]] sekitar [[tahun]] [[1970]]-[[1980]].<ref name="pwp">{{cite web
Model View Controller pertama sekali dipublikasikan oleh [[peneliti]] [[Xerox PARC|XEROX PARC]] yang bekerja dalam pembuatan [[bahasa pemrograman]] [[Smalltalk]] sekitar [[tahun]] 1970–1980.
|url=http://www.prowebpro.com/articles/mvc.html
|title=MVC (Model View Controller)
|first=prowebpro
|last=
|authorlink=prowebpro
|accessdate=2010-07-31
}}</ref>


== Bagian dari MVC ==
== Bagian ==
# '''Model''', 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.
# '''Model''', Model mewakili [[struktur data]]. Model merupakan bagian yang bertugas untuk mengatur, menyiapkan, memanipulasi, dan mengorganisir data (biasanya dari [[basis data]]). Tugas yang ia lakukan meliputi memasukkan data ke basis data, pembaruan data, menghapus data, dan lain-lain. Model menjalankan tugasnya berdasarkan instruksi dari controller.
# '''View''', View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa [[halaman]] web.
# '''View''', View merupakan bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa [[halaman]] web.
# '''Controller''', Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu [[data]] dan mengirimkannya ke halaman web.<ref name="ittelkom">{{cite web
# '''Controller''', Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu [[data]] dan mengirimkannya ke halaman web.
|url=http://www.phpkode.co.cc/artikel.php?id=2
|title= Apa itu MVC pada framework ?
|first=phpcode
|last=
|authorlink=phpcode
|accessdate=2010-07-31
}}</ref>


Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang [[pemrograman berorientasi objek]] (''Object Oriented Programming'').<ref name="ittelkom"/>
Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang [[pemrograman berorientasi objek]] (''Object-oriented programming'').<ref name="ittelkom"/>


== Jenis MVC pada website ==
== Jenis ==
* '''Server Side MVC''', Server Side MVC biasa terjadi pada aplikasi web [[tradisional]], yang tidak melibatkan ''client side'' seperti [[Javascript]], [[Java applet]], [[Adobe Flash|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''.<ref name="ittelkom"/>
* '''Server Side MVC''', Server Side MVC biasa terjadi pada aplikasi web [[tradisional]], yang tidak melibatkan ''client side'' seperti [[JavaScript]], [[Java applet]], [[Adobe Flash|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''.<ref name="ittelkom"/>
* '''Mixed Client Side and Server Side MVC''', Pada Mixed Client Side and Server Side MVC 1 client tidak menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan Server Side MVC, arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1. 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.<ref name="ittelkom"/>
* '''Mixed Client Side and Server Side MVC''', pada Mixed Client Side and Server Side MVC 1, client tidak menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan Server Side MVC, arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1. 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.<ref name="ittelkom"/>
* '''Rich Internet Application MVC''', Application MVC Rich Internet Application (RIA) disebut juga dengan nama ''Fat Client'', merupakan aplikasi web yang memiliki kemampuan dan fungsi hampir seperti aplikasi [[desktop]]. RIA pada sisi client, memiliki [[mesin]] untuk mengambil data yang berada pada server, sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.<ref name="ittelkom"/>
* '''Rich Internet Application MVC''', Application MVC Rich Internet Application (RIA) disebut juga dengan nama ''Fat Client'', merupakan aplikasi web yang memiliki kemampuan dan fungsi hampir seperti aplikasi [[desktop]]. RIA pada sisi client, memiliki [[mesin]] untuk mengambil data yang berada pada server, sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.<ref name="ittelkom"/>

== Kerangka kerja web yang berbasis MVC ==
* [[Laravel]]
* [[Symfony]]
* [[Ruby on Rails]]
* [[CodeIgniter]]
* [[CakePHP]]
* [[Yii]]


== Referensi ==
== Referensi ==

Revisi terkini sejak 24 Mei 2022 14.36

Konsep Model-View-Controller

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 kerangka kerja (framework) dalam aplikasi web adalah berbasis arsitektur MVC.[1] 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.[2]

Model View Controller pertama sekali dipublikasikan oleh peneliti XEROX PARC yang bekerja dalam pembuatan bahasa pemrograman Smalltalk sekitar tahun 1970–1980.

  1. Model, Model mewakili struktur data. Model merupakan bagian yang bertugas untuk mengatur, menyiapkan, memanipulasi, dan mengorganisir data (biasanya dari basis data). Tugas yang ia lakukan meliputi memasukkan data ke basis data, pembaruan data, menghapus data, dan lain-lain. Model menjalankan tugasnya berdasarkan instruksi dari controller.
  2. View, View merupakan bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa halaman web.
  3. Controller, Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrograman berorientasi objek (Object-oriented programming).[2]

  • Server Side MVC, 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.[2]
  • Mixed Client Side and Server Side MVC, pada Mixed Client Side and Server Side MVC 1, client tidak menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan Server Side MVC, arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1. 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.[2]
  • Rich Internet Application MVC, Application MVC Rich Internet Application (RIA) disebut juga dengan nama Fat Client, merupakan aplikasi web yang memiliki kemampuan dan fungsi hampir seperti aplikasi desktop. RIA pada sisi client, memiliki mesin untuk mengambil data yang berada pada server, sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.[2]

Kerangka kerja web yang berbasis MVC

[sunting | sunting sumber]

Referensi

[sunting | sunting sumber]
  1. ^ "MVC (Model View Controller)". Diakses tanggal 2010-07-31. 
  2. ^ a b c d e "Model View Controller". Diarsipkan dari versi asli tanggal 2018-02-23. Diakses tanggal 2010-07-31.