Menambah menu Dosen dengan struts Pada artikel ini saya coba memanfaatkan skill exam jeni 3 yang sudah ada strutsnya, saya akan mencoba menambahkan menu Dosen, artikel ini juga kelanjutan dan artikel saya yan berjudul TRIK MENGERJAKAN SKILL EXAM JENI 3. Langkah-langkahnya sebagai berikut : Ok, Bikin dahulu table dosen : DDL dan DML seperti berikut : CREATE TABLE `dosen` ( `nidn` int(10) NOT NULL default '0', `nama` varchar(45) NOT NULL, `alamat` varchar(128) default '', `hp` varchar(15) default '', PRIMARY KEY (`nidn`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `dosen` VALUES (613036801,'Heru Krisdyantoro Hadi, S.Kom','Gombong','08156877777'); INSERT INTO `dosen` VALUES (613127802,'Hary Susanto, S.Kom','Karanganyar','08122222222');
Buka menu-left.jsp Rubahlah menjadi <%@taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
Layanan Kami
- Daftar Seminar
- Daftar Rekanan
- Daftar Dosen
- Daftar User
1
- Add New Seminar
- Modify Existing Seminar
- Add New Account
- Modify Existing Account
- Add New Company
- Modify Existing Company
- Add New Dosen
- Modify Existing Dosen
2
Langkah selanjutnya, buka file tiles-def.xml tambahkan seperti berikut : <definition name="accountListPage" extends="basicDefinition">
<definition name="dosenListPage" extends="basicDefinition">
Langkah selanjutnya, tambahkan coding pada struts-config.xml seperti berikut :
Kemudian buat folder dengan nama dosen dalam folder view_pages, dan dilanjutkan dengan membuat file dosenList.jsp didalamnya, codingnya adalah sebagai berikut : <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%> <%@taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
Daftar Dosen
<jsp:useBean id="dosenHelper" scope="session" class="jeni.struts.seminar.helper.DosenViewHelper" />
3
NIDN | Nama | Alamat | No HP | Action |
${dosen.nidn} | ${dosen.nama} | ${dosen.alamat} | ${dosen.hp} | Edit | Delete |
4
Langkah selanjutnya buat package jeni.struts.seminar.dao.dosen dan di dalamnya ada 2 files DosenDAO.java dan DosenMySQLDAO.java, coding untuk DosenDAO.java sebagai berikut : package jeni.struts.seminar.dao.dosen; import java.util.Collection; import jeni.struts.seminar.bean.Dosen; import jeni.struts.seminar.bean.User; public interface DosenDAO { Collection getDosenList(); } Dan coding DosenMySQLDAO.java sebagai berikut : package jeni.struts.seminar.dao.dosen; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Collection; import java.util.Vector; import jeni.struts.seminar.bean.Dosen; import jeni.struts.seminar.dao.MySQLDataAccessObject;
public class DosenMySQLDAO extends MySQLDataAccessObject implements DosenDAO{ private Collection dosenList; public Collection getDosenList() { Dosen dosen = null; 5
Connection conn = null; Statement stmt = null; ResultSet rs = null; String sql = "SELECT * FROM dosen"; Vector dosenList = new Vector(); try { conn = getConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while(rs.next()){ dosen = new Dosen(); dosen.setNidn(rs.getInt("nidn")); dosen.setNama(rs.getString("nama")); dosen.setAlamat(rs.getString("alamat")); dosen.setHp(rs.getString("hp")); dosenList.add(dosen); } return dosenList; } catch (SQLException e) { System.out.println("Error while executing select dosen query"); e.printStackTrace(); return null; }finally { releaseResources(conn, stmt,rs); } } }
6
Langkah selanjutnya buka DAOFactory.java yang terdapat di dalam package jeni.struts.seminar.dao dan modif codingnya seperti berikut : package jeni.struts.seminar.dao; import jeni.struts.seminar.dao.company.CompanyDAO; import jeni.struts.seminar.dao.company.CompanyMySQLDAO; import jeni.struts.seminar.dao.employee.EmployeeDAO; import jeni.struts.seminar.dao.employee.EmployeeMySQLDAO; import jeni.struts.seminar.dao.seminar.SeminarDAO; import jeni.struts.seminar.dao.seminar.SeminarMySQLDAO; import jeni.struts.seminar.dao.user.UserDAO; import jeni.struts.seminar.dao.user.UserMySQLDAO; import jeni.struts.seminar.dao.dosen.DosenDAO; import jeni.struts.seminar.dao.dosen.DosenMySQLDAO;
public class DAOFactory { public static UserDAO getUserDAOInstance(){ return new UserMySQLDAO(); }
public static SeminarDAO getSeminarDAOInstance() { return new SeminarMySQLDAO(); }
public static EmployeeDAO getEmployeeInstance() { return new EmployeeMySQLDAO(); }
public static CompanyDAO getCompanyDAOInstance() { 7
return new CompanyMySQLDAO(); }
public static DosenDAO getDosenDAOInstance() { return new DosenMySQLDAO(); } } Langkah berikutnya buatlah file Dosen.java pada package jeni.struts.seminar.bean, codingnya seperti berikut :
package jeni.struts.seminar.bean; public class Dosen { private int nidn; private String nama; private String alamat; private String hp; } Namun, pada langkah ini belum cukup, pendeklarasian variable nidn, nama, alamat, dan hp tidak cukup hanya begitu saja. Perlu diset and get, caranya : Blok keempat baris : private int nidn; private String nama; private String alamat; private String hp; kemudian klik kanan, refactore, EncapsulateFields sehingga muncul menu sebagai berikut :
8
Kemudian beri centang alias contreng pada semua field di atas, di atas terlihat baru hp yang sudah diget dan set, yang lain juga harus diset dan get semua kemudian next, kemudian perhatikan pada netbean pojok kiri bawah, ada tombol Do factoring, klik tombol Do Factoring tersebut sehingga coding Dosen.java lengkapnya seperti berikut : package jeni.struts.seminar.bean; public class Dosen {
private int nidn; private String nama; private String alamat; private String hp;
public int getNidn() { return nidn; }
9
public void setNidn(int nidn) { this.nidn = nidn; }
public String getNama() { return nama; }
public void setNama(String nama) { this.nama = nama; }
public String getAlamat() { return alamat; }
public void setAlamat(String alamat) { this.alamat = alamat; }
public String getHp() { return hp; }
public void setHp(String hp) { this.hp = hp; }
10
}
Langkah berikutnya, buat file DosenFacade.java yang diletakkan dalam package jeni.struts.seminar.facade dengan coding seperti berikut :
package jeni.struts.seminar.facade;
import java.util.Collection; import jeni.struts.seminar.bean.Dosen; import jeni.struts.seminar.dao.DAOFactory; import jeni.struts.seminar.dao.dosen.DosenDAO; public class DosenFacade {
public Collection getDosenList() { DosenDAO dao = DAOFactory.getDosenDAOInstance(); return dao.getDosenList(); } }
Langkah berikutnya lagi buat file DosenViewHelper.java di dalam package jeni.struts.seminar.helper yang codingnya seperti berikut : package jeni.struts.seminar.helper; import java.util.Collection; import java.util.Iterator; import jeni.struts.seminar.bean.Dosen; import jeni.struts.seminar.facade.DosenFacade; public class DosenViewHelper { private Collection dosenList;
11
private DosenFacade cFacade; private int nidn;
public DosenViewHelper() { cFacade = new DosenFacade(); }
public Collection getDosenList(){ dosenList = cFacade.getDosenList(); return dosenList; } public void setNidn(int nidn) { this.nidn = nidn; } public Dosen getDosen(){ if(nidn == 0) return null; Iterator it = dosenList.iterator();
while (it.hasNext()){ Dosen dosen = (Dosen)it.next(); if (dosen.getNidn() == nidn){ nidn = 0; return dosen; } }
12
nidn = 0; return null; } }
Dari sekian langkah, maka jika sudah selesai hasilnya seperti berikut :
Apa yang saya coba ini bisa dikembangkan sesuai dengan kebutuhan dari menu apa yang ditambahkan, tidak harus dosen, mungkin yang lain, misalnya guru, karyawan, siswa atau yang lain yang tentunya field-fieldnya menyesuaikan. Apa yang saya coba ini juga belum lengkap, saya baru mencoba sederhana saja, jadi bisa dikembangkan lagi. Selamat mencoba.
13