Jumat, 05 Desember 2014

JAWABAN UTS PEMROGRAMAN 2 - ERESHA WIKRAMA 2014

UTS kali ini membuat program form input data dengan komponen Text Box, Combo Box, Option Button dan Check Box. dengan jumlah field yang harus di input minimal 7, dilengkapi dengan validasi serta fitur hapus dan ubah untuk data yang sudah diinput. dan data tersebut ditampung dalam objek HashTable.


Alur Program

Alur program harus sesuai dengan gambar berikut :

Mukti Blog - Alur program UTS Java Eresha Wikrama

Oke untuk point point persyaratan programnya sudah cukup. Saya lanjutkan untuk pembuatan programnya. Saya membuat program ini menggunakan NetBeans IDE 8.0, untuk memulainya pastinya harus buka terlebih dahulu aplikasi NetBeans IDE 8.0, terus ikuti langkah selanjutnya di bawah ini :




Create Project Baru

- Pilih menu File, pilih New Project atau ketik (ctrl + shift + N);
- Pada tab Categories, pilih Java Web. lalu pada tab Projects, pilih Web Application. lalu Next>;
- Selanjutnya, isikan nama project, dalam hal ini saya beri nama utsMukti, lalu tentukan lokasi penyimpanan project dan pilih Next>;
- Pada Server and Settings, saya pilih Apache Tomcat 8.0.3.0 untuk servernya dan menggunakan Java EE 7 Web, lalu pilih Next>;
- Bagian Frameworks, saya tidak memilih atau mencentangnya, langsung saya pilih Finish, dan project sudah dibuat, dan selanjutnya developt.

Untuk developt selanjutnya, saya membuat 2 java class, yaitu loginServlet.java dan inputServlet.java. berikut penjelasannya :




loginServlet.java

import java.io.IOException;
import java.io.PrintWriter;
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;

/*
 * 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.
 */

/**
 *
 * @author mukti
 */
@WebServlet(urlPatterns = {"/utsMukti/"})
public class loginServlet extends HttpServlet {
    final String VALID_NAME = "mukti";
    final String PASSWORD = "005131121065";
    final String CODE_VALID = "mukti";
    String sesslog;
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        HttpSession session = request.getSession(true);
        if (request.getParameter("logout") != null) {
            session.removeAttribute("login");
            response.sendRedirect("loginServlet");
        }
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>loginServlet</title>");
            out.println("</head>");
            out.println("<body>");
            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'>loginServlet</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='loginServlet' name='login'/>&nbsp;"
                        + "<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);
                out.println("<script>alert('Selamat Datang " + session.getAttribute("login") + "!');document.location.href='inputServlet'</script>");
            }
            out.println("</body>");
            out.println("</html>");
            out.close();
        }
    }

}



inputServlet.java

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;

/*
 * 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.
 */

/**
 *
 * @author mukti
 */
@WebServlet(urlPatterns = {"/inputServlet"})
public class inputServlet extends HttpServlet {
    private Hashtable hashData = new  Hashtable();
    private String strNim, strNama, strJK, strLK, strPR, strTempat, strTanggal, strGD, strJurusan, strTI, strSI, strAlamat, strTlp, strEmail;
        int jumlahData = 0;
        class inputData {

            String NIM, Nama, JK, TempatLahir, TanggalLahir, GolDarah, Jurusan, Alamat, Telp, Email;
            
            inputData(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;
            }
        }
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            HttpSession session = request.getSession(true);
            if (request.getParameter("logout") != null) {
                session.removeAttribute("login");
                response.sendRedirect("loginServlet");
            }
            response.setContentType("text/html;charset=UTF-8");
            try (PrintWriter out = response.getWriter()) {
                String delete = request.getParameter("del");
                String update = request.getParameter("upd");
                if(delete != null){
                    Enumeration en = hashData.keys();
                    Integer id = Integer.parseInt(delete);
                    hashData.remove(id);
                }
                if(update != null){
                    Enumeration en = hashData.keys();
                    Integer id = Integer.parseInt(update);
                    inputServlet.inputData input = (inputServlet.inputData) hashData.get(id);
                    strNim = input.NIM;
                    strNama = input.Nama;
                    strJK = input.JK;
                    strTempat = input.TempatLahir;
                    strTanggal = input.TanggalLahir;
                    strGD = input.GolDarah;
                    strAlamat = input.Alamat;
                    strTlp = input.Telp;
                    strEmail = input.Email;
                    strJurusan = input.Jurusan;

                    if(strJK.equalsIgnoreCase("Laki-laki")){
                        strLK = "checked='checked'";
                        strPR = "";
                    }else if(strJK.equalsIgnoreCase("Perempuan")){
                        strLK = "";
                        strPR = "checked='checked'";
                    }else{
                        strLK = "";
                        strPR = "";
                    }
                    
                    if(strJurusan.equalsIgnoreCase("TI")){
                        strTI = "checked='checked'";
                        strSI = "";
                    }else if(strJurusan.equalsIgnoreCase("SI")){
                        strTI = "";
                        strSI = "checked='checked'";
                    }else{
                        strTI = "";
                        strSI = "";
                    }
                }else{
                    strNim = "";
                    strNama = "";
                    strJK = "";
                    strTempat = "";
                    strTanggal = "";
                    strGD = "";
                    strJurusan = "";
                    strAlamat = "";
                    strTlp = "";
                    strEmail = "";
                }

                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='" + strNim + "'/></td>"
                        + "</tr>"
                        + "<tr>"
                        + "<td>Nama*</td>"
                        + "<td> : </td>"
                        + "<td><input type='text' name='nama' value='" + strNama + "'/></td>"
                        + "</tr>"
                        + "<tr>"
                        + "<td>Jenis Kelamin*</td>"
                        + "<td> : </td>"
                        + "<td><input type='radio' name='JenisKelamin' value='L' " + strLK + "/>Laki-laki"
                        + "<input type='radio' name='JenisKelamin' value='P' " + strPR + "/>Perempuan</td>"
                        + "</tr>"
                        + "<tr>"
                        + "<td>Tempat, Tanggal Lahir*</td>"
                        + "<td> : </td>"
                        + "<td><input type='text' name='tempatlahir' value='" + strTempat + "'/>"
                        + "<input type='text' name='tgllahir' value='" + strTanggal + "'/></td>"
                        + "</tr>"
                        + "<tr>"
                        + "<td>Golongan Darah</td>"
                        + "<td> : </td>"
                        + "<td><select name='goldarah'>"
                        + "<option value='" + strGD + "' selected>" + strGD + "</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'" + strTI + ">TI"
                        + "<input type='checkbox' name='Jurusan' value='SI'" + strSI + ">SI</td>"
                        + "</tr>"
                        + "<tr>"
                        + "<tr>"
                        + "<td>Alamat*</td>"
                        + "<td> : </td>"
                        + "<td><textarea name='alamat'>" + strAlamat + "</textarea></td>"
                        + "</tr>"
                        + "<tr>"
                        + "<td>Telepon</td>"
                        + "<td> : </td>"
                        + "<td><input type='text' name='tel' value='" + strTlp + "'/></td>"
                        + "</tr>"
                        + "<tr>"
                        + "<td>Email*</td>"
                        + "<td> : </td>"
                        + "<td><input type='email' name='surat' value='" + strEmail + "'/></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 inputServlet.inputData data[]={
                        new inputServlet.inputData(nim, nama, jkString, tmplhr, tgl, goldarah, jrsString, alamat, tel, mail)
                    };
                    for (int i = 0; i < data.length; i++) {  
                        jumlahData +=1;
                        if(update != null){
                            hashData.put(Integer.valueOf(update), data[i]);
                        }else{
                            hashData.put(new Integer(jumlahData), data[i]);
                        }

                    }

                }

                Enumeration en = hashData.keys();
                while (en.hasMoreElements()){
                    Integer key = (Integer) en.nextElement();
                    inputServlet.inputData item = (inputServlet.inputData) hashData.get(key);   
                    String id_mahasiswa = key.toString();

                    String urlUpdate = "inputServlet?upd=" + id_mahasiswa;
                    urlUpdate = response.encodeURL(urlUpdate);
                    String urlDelete = "inputServlet?del=" + id_mahasiswa;
                    urlDelete = response.encodeURL(urlDelete);

                    out.println("<tr>");
                    out.println("<td align='center'>" + id_mahasiswa + "</td>");
                    out.println("<td align='center'>" + item.NIM + "</td>");
                    out.println("<td align='center'>" + item.Nama + "</td>");
                    out.println("<td align='center'>" + item.JK + "</td>");
                    out.println("<td align='center'>" + item.TempatLahir + ", " + item.TanggalLahir + "</td>");
                    out.println("<td align='center'>" + item.GolDarah + "</td>");
                    out.println("<td align='center'>" + item.Jurusan + "</td>");
                    out.println("<td align='center'>" + item.Alamat + "</td>");
                    out.println("<td align='center'>" + item.Telp + "</td>");
                    out.println("<td align='center'>" + item.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>");
            }
        }

}



Selanjutnya edit file web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <servlet>
        <servlet-name>loginServlet</servlet-name>
        <servlet-class>loginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>loginServlet</servlet-name>
        <url-pattern>/loginServlet</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>loginServlet</welcome-file>
    </welcome-file-list>
</web-app>



Sampai disini peroses pembuatan program selesai.

Semoga bermanfaat.

Salam,
Muhamad Mukti

Tidak ada komentar:

Posting Komentar

Untuk menyisipkan kode pendek, gunakan <i rel="code"> ... KODE ... </i>
Untuk menyisipkan kode panjang, gunakan <i rel="pre"> ... KODE ... </i>
Untuk menyisipkan gambar, gunakan <i rel="image"> ... URL GAMBAR ... </i>