Tutorial Create, Update dan Delete (CRUD) Menggunakan Hash Table Pada Java Servlet
Seperti pada judulnya kita akan membuat CRUD menggunakan hast table pada java servlet
berikut adalah tahapannya :
1. Jalankan netbean
2. Klik file - new project - categories : java - project : java aplication
3. Kemudian klik tombol next seperti gambar dibawah ini :
4.ketik nama project yang anda inginkan
5.kemudian klik tombol finish
setelah tahap pembuatan project selesai, tahap selanjutnya adalah scripting atau pembuatan code untuk CRUD.
pada tahap ini pertama kita akan membuat form login dan berikut adalah script untuk membuat halaman login :
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Yuhando
*/
@WebServlet(urlPatterns = {"/UTS"})
public class Login extends HttpServlet {
final String VALID_NAME = "YuhandoCharlilio";
final String PASSWORD = "005131121105";
final String CODE_VALID = "YuhandoCharlilio";
String sesslog;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true); //buat cek session
if (request.getParameter("logout") != null) {
session.removeAttribute("login");
response.sendRedirect("Login"); //redirect ke alamat login
}
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
//form login
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Login</title>");
out.println("</head>");
out.println("<body>");
//ambil parameter user dan password
String username = request.getParameter("username");
String password = request.getParameter("password");
String login = request.getParameter("login");
boolean valid = false;
if (login == null) {
out.println("<h1 align='center'>Login</h1>"
+ "<form name='login' action='' method='POST'>"
+ "<table align='center'>"
+ "<tr>"
+ "<td>Username</td>"
+ "<td> : </td>"
+ "<td><input type='text' name='username'/></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Password</td>"
+ "<td> : </td>"
+ "<td><input type='password' name='password'/></td>"
+ "</tr>"
+ "<tr align='right'>"
+ "<td colspan='3'><input type='submit' value='Login' name='login'/> "
+ "<input type='reset' value='Reset' name='reset'/></td>"
+ "</table>"
+ "</form>");
} else {
if ((username.equalsIgnoreCase(VALID_NAME)) && (password.equalsIgnoreCase(PASSWORD))) {
valid = true;
}
if (username.equals("") || password.equals("")){
out.println("<script>alert('Silahkan Isi Username dan Password!');document.location.href=''</script>");
}else if (!valid) {
out.println("<script>alert('Username atau Password Salah!');document.location.href=''</script>");
return;
}
sesslog = "123";
session.setAttribute("login", username);
//link ke halaman content
out.println("<script>alert('Selamat Datang " + session.getAttribute("login") + "!');document.location.href='Home'</script>");
}
out.println("</body>");
out.println("</html>");
out.close();
}
} // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
setelah proses scripting selesai jalankan file trus dengan cara klik kanan nama_file.java kemudian klik run file setelah itu tampilan form login akan tampil pada browser seperti pada gambari berikut ini :
Setelah membuat form login tahap selanjutnya adalah membuat form input dan tampilan gridnya berikut adalah scriptnya :
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Yuhando
*/
@WebServlet(urlPatterns = {"/Home"})
public class Home extends HttpServlet {
private Hashtable data = new Hashtable();
private String nimnya, namanya, jknya, jklaki, jkperem, tempatnya, tanggalnya, goldarnya, jurusannya, jrsA, jrsB, alamatnya, telpnya, emailnya;
int jumlahData = 0;
class dataL {
String NIM, Nama, JK, TempatLahir, TanggalLahir, GolDarah, Jurusan, Alamat, Telp, Email;
dataL(String nim, String nama, String jk, String tmptlhr, String tgl, String goldar, String jurus, String almt, String tel, String mail) {
NIM = nim;
Nama = nama;
JK = jk;
TempatLahir = tmptlhr;
TanggalLahir = tgl;
GolDarah = goldar;
Jurusan = jurus;
Alamat = almt;
Telp = tel;
Email = mail;
}
}
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true); //buat cek session
if (request.getParameter("logout") != null) {
session.removeAttribute("login");
response.sendRedirect("Login"); //redirect ke alamat login
}
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
String delete = request.getParameter("del");
String update = request.getParameter("upd");
if(delete != null){
Enumeration en = data.keys();
Integer idnya = Integer.parseInt(delete);
data.remove(idnya);
}
if(update != null){
Enumeration en = data.keys();
Integer idnya = Integer.parseInt(update);
Home.dataL listnya = (Home.dataL) data.get(idnya);
nimnya = listnya.NIM;
namanya = listnya.Nama;
jknya = listnya.JK;
tempatnya = listnya.TempatLahir;
tanggalnya = listnya.TanggalLahir;
goldarnya = listnya.GolDarah;
alamatnya = listnya.Alamat;
telpnya = listnya.Telp;
emailnya = listnya.Email;
jurusannya = listnya.Jurusan;
if(jknya.equalsIgnoreCase("Laki-laki")){
jklaki = "checked='checked'";
jkperem = "";
}else if(jknya.equalsIgnoreCase("Perempuan")){
jklaki = "";
jkperem = "checked='checked'";
}else{
jklaki = "";
jkperem = "";
}
if(jurusannya.equalsIgnoreCase("TI")){
jrsA = "checked='checked'";
jrsB = "";
}else if(jurusannya.equalsIgnoreCase("SI")){
jrsA = "";
jrsB = "checked='checked'";
}else{
jrsA = "";
jrsB = "";
}
}else{
nimnya = "";
namanya = "";
jknya = "";
tempatnya = "";
tanggalnya = "";
goldarnya = "";
jurusannya = "";
alamatnya = "";
telpnya = "";
emailnya = "";
}
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Form Input Data</title>");
out.println("</head>");
out.println("<body>");
out.println("<form action='secretServlet' method='POST'>"
+ "<p><a href='?logout'>Logout</a></form>");
out.println("<h1>Form Input Data</h1>");
out.println("<form name='Simpan' method='POST'>");
out.println("<table>"
+ "<tr>"
+ "<td>NIM*</td>"
+"<td> : </td>"
+"<td><input type='text' name='nim' value='" + nimnya + "'/></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Nama*</td>"
+ "<td> : </td>"
+ "<td><input type='text' name='nama' value='" + namanya + "'/></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Jenis Kelamin*</td>"
+ "<td> : </td>"
+ "<td><input type='radio' name='JenisKelamin' value='L' " + jklaki + "/>Laki-laki"
+ "<input type='radio' name='JenisKelamin' value='P' " + jkperem + "/>Perempuan</td>"
+ "</tr>"
+ "<tr>"
+ "<td>Tempat, Tanggal Lahir*</td>"
+ "<td> : </td>"
+ "<td><input type='text' name='tempatlahir' value='" + tempatnya + "'/>"
+ "<input type='text' name='tgllahir' value='" + tanggalnya + "'/></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Golongan Darah</td>"
+ "<td> : </td>"
+ "<td><select name='goldarah'>"
+ "<option value='" + goldarnya + "' selected>" + goldarnya + "</option>"
+ "<option value='A' selected> A </option>"
+ "<option value='B' selected> B </option>"
+ "<option value='AB' selected> AB </option>"
+ "<option value='O' selected> O </option>"
+ "</select></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Jurusan*<br><h5>(**pilih salah satu</h5></td>"
+ "<td> : </td>"
+ "<td><input type='checkbox' name='Jurusan' value='TI'" + jrsA + ">TI"
+ "<input type='checkbox' name='Jurusan' value='SI'" + jrsB + ">SI</td>"
+ "</tr>"
+ "<tr>"
+ "<tr>"
+ "<td>Alamat*</td>"
+ "<td> : </td>"
+ "<td><textarea name='alamat'>" + alamatnya + "</textarea></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Telepon</td>"
+ "<td> : </td>"
+ "<td><input type='text' name='tel' value='" + telpnya + "'/></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Email*</td>"
+ "<td> : </td>"
+ "<td><input type='email' name='surat' value='" + emailnya + "'/></td>"
+ "</tr>"
+ "<tr>"
+ "<td colspan='3' align='right'><input type='submit' value='Simpan' name='Simpan'/>"
+ "<input type='reset' value='Reset' name='Reset'/></td>"
+"</tr>");
out.println("</table>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
String jkString = null;
String jrsString = null;
String Simpan = request.getParameter("Simpan");
String nim = request.getParameter("nim");
String nama = request.getParameter("nama");
String jk = request.getParameter("JenisKelamin");
String tmplhr = request.getParameter("tempatlahir");
String tgl = request.getParameter("tgllahir");
String goldarah = request.getParameter("goldarah");
String jurusan = request.getParameter("Jurusan");
String alamat = request.getParameter("alamat");
String tel = request.getParameter("tel");
String mail = request.getParameter("surat");
out.println("<br><br>");
out.println("<table border='1' width='1000px'"
+ "<tr>"
+ "<td align='center'>No</td>"
+ "<td align='center'>NIM</td>"
+ "<td align='center'>Nama</td>"
+ "<td align='center'>Jenis Kelamin</td>"
+ "<td align='center'>Tempat, Tanggal Lahir</td>"
+ "<td align='center'>Golongan Darah</td>"
+ "<td align='center'>Jurusan</td>"
+ "<td align='center'>Alamat</td>"
+ "<td align='center'>Telepon</td>"
+ "<td align='center'>Email</td>"
+ "<td colspan=2 align='center'>Action</td>"
+ "</tr>");
if(Simpan != null){
if(nim.equals("")){
out.print("<script>alert('NIM tidak boleh kosong!')</script>");
}else if(nama.equals("")){
out.print("<script>alert('Nama tidak boleh kosong!')</script>");
}else if(jk.equals("")){
out.print("<script>alert('Jenis Kelamin tidak boleh kosong!')</script>");
}else if(tmplhr.equals("")){
out.print("<script>alert('Tempat Lahir tidak boleh kosong!')</script>");
}else if(tgl.equals("")){
out.print("<script>alert('Tanggal lahir tidak boleh kosong!')</script>");
}else if(jurusan.equals("")){
out.print("<script>alert('Jurusan tidak boleh kosong!')</script>");
}else if(alamat.equals("")){
out.print("<script>alert('Alamat tidak boleh kosong!')</script>");
}else if(mail.equals("")){
out.print("<script>alert('Email tidak boleh kosong!')</script>");
}
if(jk.contains("P")){
jkString = "Perempuan";
}else{
jkString = "Laki-laki";
}
if(jurusan.contains("TI")){
jrsString = "Teknik Informatika";
}else{
jrsString = "Sistem Informasi";
}
final Home.dataL LIST[]={
new Home.dataL(nim, nama, jkString, tmplhr, tgl, goldarah, jrsString, alamat, tel, mail)
};
for (int i = 0; i < LIST.length; i++) {
jumlahData +=1;
if(update != null){
data.put(Integer.valueOf(update), LIST[i]);
}else{
data.put(new Integer(jumlahData), LIST[i]);
}
}
}
Enumeration en = data.keys();
while (en.hasMoreElements()){
Integer key = (Integer) en.nextElement();
Home.dataL itemnya = (Home.dataL) data.get(key);
String id_mahasiswa = key.toString();
String urlUpdate = "Home?upd=" + id_mahasiswa;
urlUpdate = response.encodeURL(urlUpdate);
String urlDelete = "Home?del=" + id_mahasiswa;
urlDelete = response.encodeURL(urlDelete);
out.println("<tr>");
out.println("<td align='center'>" + id_mahasiswa + "</td>");
out.println("<td align='center'>" + itemnya.NIM + "</td>");
out.println("<td align='center'>" + itemnya.Nama + "</td>");
out.println("<td align='center'>" + itemnya.JK + "</td>");
out.println("<td align='center'>" + itemnya.TempatLahir + ", " + itemnya.TanggalLahir + "</td>");
out.println("<td align='center'>" + itemnya.GolDarah + "</td>");
out.println("<td align='center'>" + itemnya.Jurusan + "</td>");
out.println("<td align='center'>" + itemnya.Alamat + "</td>");
out.println("<td align='center'>" + itemnya.Telp + "</td>");
out.println("<td align='center'>" + itemnya.Email + "</td>");
out.println("<td align='center'><a href='" + urlDelete + "'>Delete</a></td>");
out.println("<td align='center'><a href='" + urlUpdate + "'>Edit</a></td></tr>");
}
out.println("</table>");
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Setelah selesai scipting jalankan filenya dan berikut adalah tampilan form input beserta gridnya :
Sekian tutorial CURD menggunakan hast table pada java servlet, mohon maaf bila ada banyak kekurangan pada pembuatan tutorial ini, see u next time :D



