- Back to Home »
- bahan kuliah , java »
- PENGENALAN MVC
Monday, 10 June 2013
Pola MVC
Model-View-Controller adalah pola desain software yang
membantu anda secara logik memisahkan kode anda, membuatnya lebih reusable,
mudah dikelola (maintainable), dan membuat lebih baik pada umumnya. Model View
Controller dijelaskan pertama kali oleh grup penulis Gang of Four. Dean Helman
menulis (intisari dari white paper Objective Toolkit Pro):
"Paradigma
MVC adalah suatu cara memecah aplikasi atau cukup beberapa bagian antar muka
aplikasi ke dalam 3 bagian: model, view dan controller. MVC pada dasarnya
dibangun untuk memetakan aturan tradisional yaitu input, proses dan output ke
dalam GUI yang nyata."
Input -> Proses -> Output
Controller -> Model -> View
"Input user, pemodelan terhadap dunia luar/nyata, dan
tampilan visual ke user dipisahkan dan dihandel oleh objek model, objek view
dan objek controller. Controller mengipretesaikan input mouse dan keyboard dari
user dan memetakan aksi user ke dalam perintah-perintah yang dikirim ke objek
model dan/atau objek view untuk memberi efek terhadap perubahan yang sesuai.
Model mengatur satu atau lebih elemen data, merespon queri-queri dan merespon
instruksi-instruksi perubahan status. Bagian view mengatur area rectangular dari
tampilan dan bertanggung jawab untuk menyajikan data ke user melalui kombinasi
antara grafik dan text."
Setelah anda mengetahui konsep MVC, untuk lebih mendalami
penerapannya pada proses development, kita akan membuat aplikasi mulai dari
awal sekali. Latihan ini dibuat berkesinambungan antara satu latihan dengan latihan
yang lain.
Mengenali pola MVC
dalam Framework aplikasi berbasis web Ada 3 hal yang selalu dilakukan dalam membuat aplikasi
dengan struts (mvc):
• Membuat halaman JSP atau lainnya
(HTML, Velocity, Framemaker,dll) untuk menampilkan pesan atau tampilan ke user
(View)
• Membuat ActionForm class untuk
menangani logika aplikasi dan permintaan client (Model). Komponen Model
meliputi JavaBeans dan Scope, ActionForm Beans, System State Beans dan Business
Logic Beans.
• Membuat pemetaan (mapping) untuk
mengarahkan antara action dengan halaman view atau action lain (Controller).
Komponen Controller meliputi ActionServlet, Request Processor, Action Class,
Action Mapping
Menyiapkan aplikasi
project MVC
Tujuan section ini adalah menunjukkan cara membuat
project aplikasi web berbasis MVC.
Untuk aplikasi yang dibahas pada latihan kali ini kita
akan menggunakan Struts versi 1.2.9 built in pada IDE Netbeans.
Membuat project dengan Netbeans IDE
Langah-langkahnya:
- Membuat project web baru dengan nama jeni_struts
File
→ New Project, pilih category Web → Web Application, klik Next
Ketikkan
nama project, klik Next
Pilih
Framework Struts 1.2.9, lakukan konfigurasi secukupnya.
Klik
Finish
|
- Membuat file web.xml dalam folder WEB-INF dan
menambahkan kode berikut:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
|
Percobaan 3 : Membuat halaman Login
Tujuan section ini adalah membuat halaman Login dalam
aplikasi MVC. Section ini melanjutkan proejct pada section sebelumnya yaitu
project jeni_struts.
Langkah-langkahnya:
Tambahkan
link login dalam file index.jsp, seperti berikut :
<br>
<a
href="./Login.do">Login</a>
|
·
Membuat file JSP dengan nama LoginForm.jsp dan simpan di dalam
direktori WEB-INF/view_pages. Jika direktori view_pages belum ada
silahkan dibuat.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>Login</title>
</head>
<body>
<h1>Login Form</h1>
<form name="loginForm" action="Logon.do"
method="POST">
Username : <input type="text"
name="username" value="" size="30"
/><br>
Password : <input type="password"
name="password" value="" size="30"
/><br>
<input type="reset" value="Cancel"
name="cancel" />
<input type="submit" value="Login"
name="login" />
</form>
</body>
</html>
|
·
Kemuadian buat package dengan nama
jeni3.struts.user.actionform
·
Dalam package jeni3.struts.user.actionform kemudian kita buat class Action Form dengan nama LoginForm.
File
→ New File atau klik kanan SourcePackage - New File/Folder,
pilih
category Web, pilih Struts ActionForm Bean, klik Next
Ketikkan
nama class-nya, pilih Superclass, klik Finish
atau
klik kanan
SourcePackage - New Java Class,
masukkan nama class-nya, klik
Finish
|
Berikut kode pada class LoginForm :
package
jeni3.struts.user.actionform;
import
org.apache.struts.action.ActionForm;
/**
* @author mee_andto@yahoo.com
* @version 0.5
*/
public class LoginForm extends
ActionForm{
private String username;
private String password;
public String getUsername(){
return username;
}
public void setUsername(String
username){
this.username = username;
}
public String getPassword(){
return password;
}
public void setPassword(String
password){
this.password = password;
}
}
|
·
Tambahkan mapping untuk Form Bean dalam file struts-config.xml,
seperti kode berikut :
<form-beans>
<form-bean
name="loginForm" type="jeni3.struts.user.actionform.LoginForm"
/>
</form-beans>
|
·
Buat package dengan nama jeni3.struts.util
·
Dalam package jeni3.struts.util
itu, buat class Java dengan nama JENIConstants dengan isi
kode seperti berikut :
/**
* @author mee_andto@yahoo.com
* @version 0.5
*/
package jeni3.struts.util;
public class JENIConstants {
public final static String
RETURN_SUCCESS = "success";
public final static String
RETURN_INPUT = "input";
public final static String
RETURN_FAILURE = "failure";
public static String USER_SESSION =
"UserContainer";
}
|
·
Membuat package dengan nama jeni3.struts.user.action.
·
Dalam package jeni3.struts.user.action,
kemudian kita buat class Action dengan nama LoginAction.
Berikut kode pada class LoginAction :
package jeni3.struts.user.action;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
jeni3.struts.user.actionform.LoginForm;
import
jeni3.struts.util.JENIConstants;
import org.apache.struts.action.*;
/**
* @author mee_andto@yahoo.com
* @version 0.5
*/
public class LoginAction extends
Action{
public ActionForward
execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
LoginForm lf = (LoginForm)form;
if (isInvalid(lf.getUsername()))
return (mapping.findForward(JENIConstants.RETURN_INPUT));
if (isInvalid(lf.getPassword()))
return (mapping.findForward(JENIConstants.RETURN_INPUT));
return
(mapping.findForward(JENIConstants.RETURN_SUCCESS));
}
public boolean isInvalid(String
value){
return (value == null ||
value.length() == 0);
}
}
|
·
Tambahkan action mapping dalam file struts-config.xml, seperti kode berikut
:
<action path="/Login"
forward="/WEB-INF/view_pages/LoginForm.jsp"/>
<action name="loginForm"
path="/Login"
scope="request"
type="jeni3.struts.user.action.LoginAction">
<forward
name="success"
path="/WEB-INF/view_pages/Success.jsp"/>
<forward name="input"
path="/WEB-INF/view_pages/LoginForm.jsp"/>
</action>
|
·
Dalam folder view_pages, buat
file JSP dengan nama Success.jsp. Isikan tulisan
<h1>Success</h1>.
|
·
Kemudian Run → Run (Main) Project