Anda di halaman 1dari 9

Arsitektur Aplikasi dengan Metode

Model View Controller (MVC) pada Java Enterprise Edition (JEE)


Tugas Kelompok Mata Kuliah Object Oriented Programming (OOP) Kelas 14.1A.01

Anggota Kelompok
Aang Sutrsina 14000399 Sugih Hartono 14000398 Nasrun Hadi 14000396 Jajam Haerul Jaman 14000377 Nuraini 14000391

Januari 2011

Pendahuluan
Aplikasi yang dikembangkan sebagian besar berinteraksi dengan pengguna (user). Oleh karena itu memerlukan cara agar aplikasi yang bersangkutan dapat berkomunikasi dengan para penggunanya. Sarana komunikasi aplikasi dengan penggunanya pada umumnya menggunakan berbagai komponen antarmuka berbasis grafis GUI (Graphical User Interface). Pada pemrograman Java salah satu teknologi GUI yang sering digunakan adalah Java Foundation Class (JFC) Swing. Namun demikian, teknologi ini masih cukup merepotkan bila digunakan dikarenaka hasil perancangannya masih sulit untuk dipahami dan dipelihara bila terjadi kesalahan sulit untuk dilacak. Pada teknologi ini sering kali tidak dapat digunakan kembali (unreusable). Untuk lebih mengoptimalkan proses perancangan aplikasi yang berkomunikasi dengan pengguna (user) maka dilakukan pemisahan komponen-komponen antarmuka berbasis GUI dengan logika-logika bisnisnya (business logic). Beberapa pendekatan telah dilakukan untuk memisahkan aspe presentasi dengan logika bisnis milik aplikasi, salah satunya adalah MVC (Model View Controller). MVC merupakan salah satu pendekatan pemisahan komponen presentasi dan logika bisnis yang populer digunakan pada design pattern atau arsitektur aplikasi.

Model View Controller (MVC)


Model View Controller (MVC) adalah design pattern atau arsitektur yang digunakan dalam rekayasa perangkat lunak atau aplikasi yang dengan jelas memisahkan antara data (Model) dengan user interface atau tampilan (View). Penerapan MVC tidak terbatas pada aplikasi berbasis web. Penggunaan MVC terbukti sangat efektif dalam semua aplikasi. MVC pertama kali dirancang oleh Trygve Reenskaug dan dipublikasikan pertama kali oleh XEROX PARAC dan Smalltalk sekitar tahun 1970-1980. Implementasi dari gagasan MVC dituangkan dalam tulisan berjudul: Applications Programming in Smalltalk-80: How to Use Model-ViewController. Inti penemuan arsitektur MVC adalah pemisahan tampilan pengguna dari kendali asupan pengguna dan model informasi yang mendasarinya, seperti gambar di bawah ini:

Tampila n (View)

Kendali (Controller)

Model Informasi

Model MVC banyak digunakan karena memiliki banyak keuntungan dalam proses perancangan aplikasi. Beberapa keuntungan adalah: 1. Penggunaan ulang komponen-komponen antarmuka (user interface reusable component). 2. Kemampuan untuk mengembangkan aplikasi dengan antarmuka pengguna secara terpisah. 3. Kemampuan untuk melakukan pewarisan (inheritance) dari berbagai bagian yang berbeda pada suatu hierarki kelas. 4. Kemampuan untuk mendefinisikan kelas-kelas pengaturan tampilan (control style) yang menyediakan fitur-fitur umum secara terpisah dengan fitur-fitur yang akan ditampilkan oleh aplikasi yang dikembangkan. Dalam implementasinya model MVC memiliki tiga bagian yaitu, memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Setiap bagian dapat dijelaskan sebagai

berikut: 1. Data (Model) Pola MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Dengan memilahnya sebagai bagian terpisah, seperti penampungan data, persistence, serta proses manipulasi, terpisah dari bagian lain aplikasi. Terdapat beberapa kelebihan dalam pendekatan ini. 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 pemeliharaan aplikasi.

Kedua, dengan pemisahan total antara data dengan implementasi interface, komponen model dapat digunakan kembali oleh aplikasi lain yang memiliki kegunaan yang hampir sama. 2. Tampilan (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 pengguna, hanya View. Penggunaan layer View memiliki beberapa kelebihan: Pertama, memudahkan pengabungan divisi desain dalam development team. Divisi desain dapat berkonsentrasi pada style, look and feel, dan sebagainya, dalam aplikasi tanpa harus memperhatikan lebih pada detail yang lain. Dengan 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. 3. Cara pemprosesan (Controller) Terakhir, arsitektur MVC memiliki layer Controller. Layer ini menyediakan detail alur program dan transisi layer, dan juga bertanggungjawab akan penampungan events yang dibuat oleh user dari View dan melakukan update terhadap komponen Model menggunakan data yang dimasukkan oleh user. 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 update terhadap komponen Model, detail tersebut dihapus dari layer presentasi. Layer presentasi kembali pada fungsi utamanya untuk menampilkan data kepada user. Detail tentang bagaimana data dari user mengubah ketetapan aplikasi disembunyikan oleh Controller. Hal ini memisahkan dengan jelas antara presentation logic dengan business logic.

Java 2 Enterprise Edition (J2EE)


Java 2 Enterprise Edition (J2EE) merupakan teknologi Java yang dirancang untuk memberikan solusi pengembangan aplikasi web dalam skala enterprise (besar/komplek). Teknologi ini merupakan suatu kumpulan API (Application Programming Interface) untuk pengembangan aplikasi berbasis Java. J2EE telah dikembangkan ke versi Java EE 5 dengan tujuan pengembangan JEE 5 adalah menyediakan seperangkat API yang handal bagi pengembang aplikasi melalui, pengurangan waktu development, mengurangi tingkat kompleksitas tetapi dengan meningkatkan kinerja aplikasi. Keuntungan dalam pengembangan dengan menggunakan J2EE adalah: Pengembangan komponen daur hidup untuk memungkinkan pengembangan produk yang lebih efisien. Pengujian kompatibilitas Write Once, Run Anywhere yang menjamin solusi akan berjalan dimanapun J2EE diterapkan. Dukungan industri untuk J2EE menjamin pembeli dengan pilihanpilihan produk sehingga menghilangkan kuncian di satu vendor dan memungkinkan pembeli merakit solusi-solusi terbaik berbagai vendor. Wrap and Embrace vs. Rip and Replace; J2EE memungkinkan lingkungan yang dapat memperluas arsitektur, menjaga investasi sebelumnya dengan minimal disruption. Skalabilitas industri, layanan middleware kelas enterprise. J2EE menyediakan layanan lengkap ready-to-use seperti konektivitas basisdata, mesagging, manajemen transaksi dan sebagainya. Solusi yang aman, model keamanan J2EE menjamin integritas data enterprise. J2EE merupakan aplikasi yang terdistribusi ke banyak komponen yang saling bersinergi membentuk sutu kesatuan aplikasi. Bekerja dengan J2EE sama artinya bekerja dengan banyak komponen yang merangkai komponen-komponen tersebut sehingga tercipta aplikasi yang utuh. Komponen-komponen yang menyusun J2EE antara lain: Java Servlet, yaitu teknologi yang memungkinkan pengembang membuat obyek yang dapat berinteraksi dengan server. Kelas servlet dapat diakses dengan tata cara yang dikenal dengan model pemrograman request-response. JavaServer Pages (JSP), yaitu dokumen berbasis teks yang terdiri dari content statis, misalnya dalam HTML atau WML dan eleman JSP dinamis.

Java Servlet
Servlet adalah sebuah API dalam pemrograman java yang mempermudah para developer untuk menambahkan konten-konten dinamis dalam sebuah web server yang mengimplementasikan platform java. Konten yang dihasilkan dari Servlet API ini pada umumnya berupa HTML, tetapi tidak menutup kemungkinan untuk menghasilkan konten

XML dan konten-konten yang lain. Servlet sendiri dibuat untuk menandingi teknologi-teknologi konten web yang dinamis lainnya seperti PHP, CGI, ASP.NET. Servlet sebenarnya adalah sebuah object (class interface) yang menerima request, kemudian menggenerate response berdasarkan request yang diterima tadi. Sedangkan untuk spesifik HTTP, disediakan sub-class dari Servlet, yaitu HttpServlet yang didalamnya terdapat juga obyek untuk manajemen session. Sedangkan daur hidup dari sebuah Servlet sendiri ada 4 state yaitu: 1. Pada saat startup, class-class Servlet di load dalam Web Container. 2. Web Container kemudian memanggil method init(). Method ini yang bertugas menginisialisasi Servlet dan harus dipanggil sebelum Servlet melayani requests. Method init() ini hanya dipanggil sekali. Setelah method init() dipanggil, barulah Servlet bisa melayani requests. 3. Setiap request yang masuk dilayani dan ditangani oleh thread yang berbeda. Web Container memanggil method service() untuk setiap reqeust yang masuk. Method ini menetukan jenis request yang masuk, kemudian menentukan method mana yang akan menghandle request tersebut. 4. State terakhir adalah ketika Web Container memanggil method destroy(). Method ini menyerupai method init(), hanya dipanggil sekali, dan menandakan bahwa sudah tidak ada lagi layanan dari Servlet.

Implementasi MVC pada J2EE


Dalam pemrograman web menggunakan JSP dan Servlet terdapat 2 macam design pattern untuk implementasi pola Modeller-ViewererController yaitu Model 1 dan Model 2. Model 1 yaitu teknik pengembangan web yang semua fungsionalitas diserahkan kepada sebuah obyek. Sedangkan Model 2 memisahakan antara bagian bisnis dengan bagian presentasi. Model 2 ini sering dengan disebut (MVC). MVC 1: Page Centric Architecture Pada arsitektur ini, sebenarnya tidak ada perbedaan antara Viewer dengan Controller karena keduanya ditangani oleh sebuah file JSP yang sama. Hal ini dapat dilakukan karena pada dasarnya sebuah file JSP adalah sebuah servlet. Oleh karena itu JSP memiliki atribut-atribut yang sama dengan sebuah Servlet dan memiliki banyak kemudahan. Model diimplementasikan dengan bentuk Javabean.

MVC 2 : Servlet Centric Architecture Pada arsitektur ini sebuah servlet bertugas untuk menerima request dari web browser kemudian melakukan pemrosesan model berdasarkan request tersebut. Setelah itu servlet akan meminta file JSP untuk menangani tampilan dari data-data. Dengan arsitektur ini kita dapat melakukan pengembangan seperti layaknya kita melakukan pengembangan pada aplikasi Java seperti biasanya. JSP digunakan hanya untuk memudahkan desain tampilan. Prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. MVC merupakan pattern yang tidak dapat langsung dipetakan menjadi kode, MVC lebih merupakan suatu rancangan konseptual atau paradigma. Seiring dengan semakin banyaknya penggunaan client side scripting, ada 3 jenis MVC yang mungkin terjadi pada suatu aplikasi web yaitu:

Server Side MVC Server Side MVC biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side seperti Javascript, Java Applet, Flash, dll. Server Side MVC menyerahkan keseluruhan proses bisnis pada server, aplikasi pada sisi user hanya dapat menerima. MVC jenis ini terkadang disebut juga dengan nama Thin Client. 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. 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 engine untuk mengambil data yang berada pada server, sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.

Implementasi pola MVC pada web berbasis Java adalah dengan menggunakan servlet sebagai controller dan JSP sebagai viewer. Beberapa Method pada servlet terdiri dari: 1. doGet, adalah method yang diwarisi dari HttpServlet. Method ini dipanggil oleh container ketika Request GET diberikan pada Servlet khusus. Request GET dikirim oleh user, jika user ingin melihat keluaran dari Servlet. 2. doPost, adalah method yang diwarisi dari HttpServlet. Method ini dipanggil oleh container ketika Request POST diberikan pada Servlet khusus. Request POST dikirim oleh user, jika user ingin melihat keluaran dari Servlet. 3. getParamater, adalah method yang digunakan untuk memperoleh parameter tertentu dari sebuah halaman/class. 4. sendRedirect, parameter yang diambil adalah sebuah String mewakili path untuk target yang kita inginkan untuk pengalihan user. Memanggil method ini secara efektif memerintahkan browser untuk mengirim dalam HTTP request yang lain ke tujuan tertentu. 5. requestDispatcher, parameter string yang diambil dalam method ini adalah lokasi dari HTML, JSP, atau servlet yang ingin kita hubungkan dengan request. Sekali kita mempunyai sebuah pengontrol pada sebuah instance dari object RequestDispatcher membuatnya menjadi sebuah bagian dari respon servlet ke user.

Referensi
Nugroho, Adi. 2009. Rekayasa Perangkat Lunak Menggunakan UML dan Java. Yogyakarta: Penerbit Andi. Widiyanto, Nur. 2010. Membangun Aplikasi Java Enterprise dengan Arsitektur Model View Controller (MVC). Yogyakarta: Penerbit Andi. Wikipedia. MVC. http://id.wikipedia.org/wiki/MVC.

eNode. Model View Controller www.enode.com/x/markup/tutorial/mvc.html.

Pattern.

Permana, Satria. Java Servlet. http://satriapermana.wordpress.com/2007/06/13/java-servlet/. Males Koding. Design Pattern MVC Pada Pemrograman Web JSP/Servlet. http://maleskoding.wordpress.com/2009/04/23/design-pattern-mvcpada-pemrograman-web-jspservlet/. Rahman, Muhammad Aditia. Analisis Perbandingan modifikasi Smarty Template Engine dan Framework CakePHP pada Model View Controller (MVC) untuk Aplikasi Web. http://www.ittelkom.ac.id/library/index.php? view=article&catid=20%3Ainformatika&id=518%3Amodel-viewcontroller-mvc&option=com_content&Itemid=15.

Anda mungkin juga menyukai