Laman

4 Desember 2014

Java Servlet : Cara Input Data Tanpa Database Menggunakan Hash Table

Selamat malam semua!
Kali ini saya akan berbagi hal tentang pemrograman yang beberapa minggu lalu saya pelajari di kampus, juga sekedar untuk mengingat kembali apa yang telah saya pelajari. Materi yang saya dapatkan pada saat itu adalah java servlet. Masih bagian dasar, tapi menurut saya ini menarik dan saya wajib memberi tahu kepada kalian seberapa serunya ilmu ini.


Dalam seluruh bahasa pemrograman komputer, ada sebuah operasi yang merupakan inti pemrograman. Operasi tersebut adalah CRUD, yang merupakan singakatan dari Create (menciptakan/input data) , Read (membaca data) , Update (mengubah/edit data) dan Delete (menghapus data). Terkadang juga disebut SCRUD (Search, pencarian data). Kelima fungsi ini sangat berperan dalam pemrograman. Mungkin beberapa dari kita banyak yang tidak mengetahui bahwa kita sering mengoperasikan SCRUD dalam kegiatan sehari-hari di internet. Seperti, Anda telah melakukan operasi Read ketika Anda sedang membaca berita di internet, atau Anda membaca blog ini.Melakukan operasi Create pada saat Anda memposting sebuah tweet atau postingan di media sosial, lalu melakukan operasi Update pada saat mengubahnya dan operasi Delete ketika Anda menghapusnya. CRUD erat kaitannya dengan database. Karena data tentu membutuhkan storage yang menyimpan data tersebut sehingga bisa dioperasikan.

Nah! saya akan menjelaskan bagaimana cara menyimpan sebuah data di dalam tabel, namun tanpa sebuah database. Cara ini dapat dilakukan dengan menggunakan metode hashTable pada java servlet.

Harap diingat : Siapkan software seperti Netbeans dan JDK (Java Development Kit) untuk membuat aplikasi ini. Dalam pengerjaannya, saya menggunakan Netbeans 7.1.
  1. Buka Netbeans yang telah diinstal.
  2. Pilih menu "File" , lalu klik "New Project" untuk membuat project baru.
  3. Setelah itu, akan muncul aplikasi jenis apa yang akan kita buat. Pilih "Java Web" -> "Web Application", lalu klik "Next" untuk melanjutkan.














Setelah itu, beri nama aplikasi tersebut. Kemudian pilih lokasi penyimpanan aplikasinya, lalu klik "Next". Lalu, pilih server dan setting. Pastikan server yang dipilih adalah "Glassfish". Setelah itu, langsung klik finish, karena kita tidak membutuhkan pengaturan lebih jauh.

PART 1 : LOGIN
Hal yang akan kita lakukan pertama kali adalah membuat form login sederhana untuk sedikit validasi. 
  1. Klik kanan folder "Source Packages" pada project yang telah kita buat sebelumnya, lalu pilih "New" -> "Servlet".
  2. Beri nama servlet tersebut "login", lalu klik "Next".
  3. Langkah selanjutnya adalah konfigurasi servlet. Ceklis "Add information for deployment descriptor.xml". Setelah itu , klik "Finish".

File login.java akan muncul dalam folder Source Package. Setelah itu, klik file tersebut lalu masukkan kode di bawah ini :

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class login extends HttpServlet {

    final String VALID_NAME = "Rahadian";
    final String PASSWORD = "p455w0rd";
    final String CODE_VALID = "Rahadian Muhammad Fujana";

    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");
        PrintWriter out = response.getWriter();
        try {
            // TODO output your page here
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Login Page</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>Setelah login anda bisa menginput data</h1>");
                out.println("<form name = 'login' method = 'post'>");
                out.println("<p>Username <input type = 'text' name = 'username'/></p>");
                out.println("<p>Password <input type = 'password' name = 'password'/></p>");
                out.println("<input type = 'reset' value = 'Reset' name = 'reset'/>");
                out.println("<input type = 'submit' value = 'Login' name = 'login'>");
                out.println("</form>");

            }else{
                if((username.equalsIgnoreCase(VALID_NAME)) && (password.equalsIgnoreCase(PASSWORD))){
                    valid = true;
                }
               
                if(!valid){
                    out.println("<h1>Invalid login</h1>");
                    out.println("<a href = 'loginServlet'>Back</a>");
                    return;
                   
                }
               
                session.setAttribute("login", username);
               
                out.println("<h1>Username :<b style = 'color:blue'>Selamat Datang,"+session.getAttribute("login")+"</b></h1>");
                out.println("<p>Klik tombol ini untuk input data</p>");
                out.println("<form action = 'InputData' method = 'POST'>"+
                        "<p><a href = 'InputForm'>Input Data</a></form>");
            }

            out.println("</body>");
            out.println("</html>");
           
        } finally {
            out.close();
        }
    }
}

Biar saya jelaskan apa saja fungsi dari script tersebut :
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
Pada bagian ini, skrip memanggil modul-modul / library yang telah java sediakan. Jika tidak diimport ? Program tidak akan berjalan.

public class login extends HttpServlet {
Class utama pada halaman login.

    final String VALID_NAME = "Rahadian";    final String PASSWORD = "p455w0rd";
    final String CODE_VALID = "Rahadian Muhammad Fujana";
Pada bagian ini, ada tiga variabel yang berfungsi untuk validasi login --Karena tidak menggunakan database, maka ketiga isi variabel tersebut diisi secara manual.

VALID_NAME berfungsi sebagai username login.
PASSWORD , untuk password login.
dan CODE_VALID untuk validasi kode.

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");
        }
Pada bagian ini, skrip melakukan validasi ketika tombol logout diklik. Skrip akan mengecek apakah variabel logout benar-benar terisi karena user mengklik logout atau tidak. Jika ya, maka skrip akan mengarakan halaman ke form login.

response.setContentType("text/html;charset=UTF-8");        PrintWriter out = response.getWriter();
        try {
            // TODO output your page here
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Login Page</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;
Pada bagian ini, skrip memuat tag-tag html yang nantinya akan menjadi desain sebuah halaman. Di bawahnya, String username berfungsi mengambil parameter username yang ada pada form login, Begitupun dengan fungsi String password dan String login. Sedangkan boolean valid adalah variabel untuk menentukan apakah data yang ada pada form login sesuai dengan variabel username dan password yang telah kita tulis di atas sebelumnya. Untuk nilai awal, berikan nilai "false".

if(login == null){                out.println("<h1>Setelah login anda bisa menginput data</h1>");
                out.println("<form name = 'login' method = 'post'>");
                out.println("<p>Username <input type = 'text' name = 'username'/></p>");
                out.println("<p>Password <input type = 'password' name = 'password'/></p>");
                out.println("<input type = 'reset' value = 'Reset' name = 'reset'/>");
                out.println("<input type = 'submit' value = 'Login' name = 'login'>");
                out.println("</form>");

            }else{
                if((username.equalsIgnoreCase(VALID_NAME)) && (password.equalsIgnoreCase(PASSWORD))){
                    valid = true;
                }
               
                if(!valid){
                    out.println("<h1>Invalid login</h1>");
                    out.println("<a href = 'loginServlet'>Back</a>");
                    return;
                   
                }
               
                session.setAttribute("login", username);
               
                out.println("<h1>Username :<b style = 'color:blue'>Selamat Datang,"+session.getAttribute("login")+"</b></h1>");
                out.println("<p>Klik tombol ini untuk input data</p>");
                out.println("<form action = 'InputData' method = 'POST'>"+
                        "<p><a href = 'InputForm'>Input Data</a></form>");
            }

            out.println("</body>");
            out.println("</html>");
           
        } finally {
            out.close();
        }
    }
}
Ini adalah bagian validasi. Pada bagian ini, skrip akan membaca, apakah variabel login tidak memiliki nilai/null ?

Jika ya, maka skrip akan memuat tag html yang berisikan desain input form login.
Jika tidak, maka user telah mengisi input form tersebut, yang artinya hanya tinggal mencocokan data yang dimasukkan oleh user dengan username-password yang telah kita tentukan. Jika input yang dimasukkan user sesuai dengan apa yang kita tentukan, variabel valid yang masih diset false kita ubah menjadi "true".
Tetapi jika sebaliknya, maka skrip akan memuat tag html yang berisikan alert bahwa inputan yang dimasukkan salah. Skrip akan kembali mengarahkan user pada halaman yang sama --login.java

Halaman login selesai! Langkah selanjutnya adalah mengkonfigurasikan halaman login tersebut menjadi halaman utama pada saat aplikasi dijalankan.
  1. Buka folder "Web Pages" , lalu buka folder WEB-INF, dan klik web.xml.
  2. Setelah itu, pilihlah tab "Pages" yang ada di antara tab "Filters" dan "References" pada bagian atas.
  3. Masukkan nama "login" pada inputan "welcome files" , lalu simpan (ctrl+s).
  4. Jalankan aplikasinya dengan cara klik kanan aplikasi yang kita buat, lalu klik "Run"
  
Voilà ! Jika berhasil, maka akan muncul halaman yang terdapat seperti gambar di atas.

---------

PART 2 : FORM INPUT
Ini adalah bagian utama aplikasi yang kita buat. Dalam bagian ini, kita akan membuat beberapa form input sederhana tentang biodata mahasiswa.
  1. Sama seperti saat membuat halaman login, Klik kanan folder "Source Packages" pada project yang telah kita buat sebelumnya, lalu pilih "New" -> "Servlet".
  2. Beri nama servlet tersebut "InputForm", lalu klik "Next".
  3. Langkah selanjutnya adalah konfigurasi servlet. Ceklis "Add information for deployment descriptor.xml". Setelah itu , klik "Finish".
File InputForm.java akan muncul dalam folder Source Package. Setelah itu, klik file tersebut lalu masukkan kode di bawah ini : 
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author uplink
 */
public class InputForm extends HttpServlet {
    private Hashtable data=new  Hashtable();
    private String nimnya, namanya, jknya, jklaki, agamanya , emailnya , institusinya , jkperem, alamatnya;
        int jumlahData = 0;
        class dataL {

            String NIM,Nama,JK,alamat,Email,Institusi,Agama;
          
            dataL(String nim, String nama, String jk, String agama , String institusi , String almt , String email) {
            NIM = nim;
            Nama = nama;
            JK=jk;
            alamat=almt;
            Email = email;
            Institusi = institusi;
            Agama  = agama;
            }
        }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //data=new Hashtable();
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try{
            String delete = request.getParameter("dlt");
            String update = request.getParameter("upd");
          
            if(delete != null){
                Enumeration en = data.keys();
                Integer idnya = Integer.parseInt(delete);
                data.remove(idnya);
                out.println("<meta http-equiv='refresh' content = '0;url=InputForm'>");
            }
            if(update != null){
                Enumeration en = data.keys();
                Integer idnya = Integer.parseInt(update);
                InputForm.dataL listnya = (InputForm.dataL) data.get(idnya);
                nimnya = listnya.NIM;
                namanya = listnya.Nama;
                jknya = listnya.JK;
                alamatnya = listnya.alamat;
                emailnya = listnya.Email;
                institusinya = listnya.Institusi;
                agamanya = listnya.Agama;

                if(jknya.equalsIgnoreCase("Laki-laki")){
                    jklaki = "checked='checked'";
                    jkperem = "";
                  
                }else if(jknya.equalsIgnoreCase("Perempuan")){
                    jklaki = "";
                    jkperem = "checked='checked'";
              
                }else{
                    jklaki = "";
                    jkperem = "";
                }
            }else{
                nimnya = "";
                namanya = "";
                jknya = "";
                alamatnya = "";
                jklaki = "";
                jkperem = "";
                emailnya = "";
                institusinya = "";
            }
          
            /* TODO output your page here. You may use following sample code. */
            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("<h1>Form Input Data</h1>");
            out.println("<form name='Simpan'  method='POST'>");
            out.println("<table>");
            out.println("<tr><td>NIM</td>"
                       +"<td>:</td>"
                       +"<td><input type='text' name='nim' size='13' value='"+nimnya+"'/></td></tr>");
            out.println("<tr><td>Nama</td>"
                       +"<td>:</td>"
                       +"<td><input type='text' name='nama' size='35' value='"+namanya+"'/></td></tr>");
            out.println("<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>");
            out.println("<tr>"
                       +"<td>Agama</td>"
                       +"<td>:</td>"
                       +"<td>"
                       +"<select name = 'Agama'>"
                       +"<option value = '"+agamanya+"'>"+agamanya+"</option>"
                       +"<option value = 'Islam'>Islam</option>"
                       +"<option value = 'Kristen'>Kristen</option>"
                       +"<option value = 'Budha'>Budha</option>"
                       +"<option value = 'Hindu'>hindu</option>"
                       +"<option value = 'Konghucu'>konghucu</option>"
                       +"</select>"
                       +"</td>"
                       +"</tr>");
            out.println("<tr><td>institusi</td>"
                       +"<td>:</td>"
                       +"<td><input type='text' name='Institusi' size='35' value='"+institusinya+"'/></td></tr>");
            out.println("<tr>"
                       +"<td>Alamat</td>"
                       +"<td>:</td>"
                       +"<td><textarea name='alamat'>"+alamatnya+"</textarea></td>"
                       +"</tr>");
            out.println("<tr><td>Email</td>"
                       +"<td>:</td>"
                       +"<td><input type='email' name='Email' size='35' value='"+emailnya+"'/></td></tr>");
            out.println("<tr>"
                       +"<td></td>"
                       +"<td></td>"
                       +"<td><input type='submit' value='Simpan' name='Simpan'/></td>"
                       +"</tr>");
            out.println("</table>");
            out.println("</form>");
            out.println("</body>");
            out.println("</html>");
         
            String jkString=null;
            String Simpan = request.getParameter("Simpan");
            String nim = request.getParameter("nim");
            String nama = request.getParameter("nama");
            String jk = request.getParameter("JenisKelamin");
            String institusi = request.getParameter("Institusi");
            String alamat = request.getParameter("alamat");
            String agama = request.getParameter("Agama");
            String email = request.getParameter("Email");

            out.println("<br>");
            out.println("<br>");
            out.println("<table border='1' width='1000px'");
            out.println("<tr>");
            out.println("<td align='center'>No</td>");
            out.println("<td align='center'>NIM</td>");
            out.println("<td align='center'>Nama</td>");
            out.println("<td align='center'>Jenis Kelamin</td>");
            out.println("<td align='center'>Agama</td>");
            out.println("<td align='center'>Institusi</td>");
            out.println("<td align='center'>Alamat</td>");
            out.println("<td align='center'>Email</td>");
            out.println("<td colspan=2 align=center>Action</td></tr>");

            if(Simpan != null){
                if(nim.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                  
                }else if(nama.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                  
                }else if(jk.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                  
                }else if(alamat.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                }else if(email.equals("")){
                    out.println("<h4 style = 'color:red'>Lengkapi data!</h4>");
                }else if(institusi.equals("")){
                    out.println("<h4 style = 'color : red'>Lengkapi data!</h4>");
                }
              
                if(jk.contains("P")){
                    jkString= "Perempuan";
                }else{
                    jkString= "Laki-laki";
                }
              
                final InputForm.dataL LIST[]={
                    new InputForm.dataL(nim, nama, jkString, agama , institusi , alamat , email)
                };
                for (int i = 0; i < LIST.length; i++) {
                    jumlahData +=1;
                    if(update != null){
                        data.put(Integer.valueOf(update), LIST[i]);
                        out.println("<meta http-equiv='refresh' content = '0;url=InputForm'>");
                    }else{
                        data.put(new Integer(jumlahData), LIST[i]);
                        out.println("<meta http-equiv='refresh' content = '0;url=InputForm'>");
                    }
                  
                }
          
            }
       
            Enumeration en = data.keys();
            while (en.hasMoreElements()){
                Integer key = (Integer) en.nextElement();
                InputForm.dataL itemnya = (InputForm.dataL) data.get(key); 
                String id_mahasiswa = key.toString();

                String urlUpdate = "InputForm?upd=" + id_mahasiswa;
                urlUpdate = response.encodeURL(urlUpdate);
                String urldelete = "InputForm?dlt=" + 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.Agama + "</td>");
                out.println("<td align='center'>" + itemnya.Institusi + "</td>");
                out.println("<td align='center'>" + itemnya.alamat + "</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>");
          
  
       } finally {
            out.close();
        }
    }
}
Baiklah. Tahan dulu rasa pusing Anda karena saya akan jelaskan bagiannya satu persatu :D

import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 *
 * @author uplink
 */
Skrip import library-libray java.tentu menjadi bagian pertama. Sedangkan di bawahnya hanya sebuah keterangan --bukan skrip-- yang menyatakan penulis skrip. Isi keterangan tersebut bebas. Anda dapat menggunakan tanda tersebut untuk memasukkan keterangan-keterangan jika perlu.

public class InputForm extends HttpServlet {
    private Hashtable data=new  Hashtable();
    private String nimnya, namanya, jknya, jklaki, agamanya , emailnya , institusinya , jkperem, alamatnya;
        int jumlahData = 0;
        class dataL {

            String NIM,Nama,JK,alamat,Email,Institusi,Agama;
          
            dataL(String nim, String nama, String jk, String agama , String institusi , String almt , String email) {
            NIM = nim;
            Nama = nama;
            JK=jk;
            alamat=almt;
            Email = email;
            Institusi = institusi;
            Agama  = agama;
            }
        }
Skrip teratas adalah class utama dari halaman InputForm. Sedangkan baris kedua adalah skrip yang mendeklarasikan bahwa variabel data adalah sebuah hashTable.
Pada bagian bawah, class dataL berfungsi sebagai skrip untuk media penyimpanan sementara.

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //data=new Hashtable();
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try{
            String delete = request.getParameter("dlt");
            String update = request.getParameter("upd");
Dan kita mulai memasuki bagian validasi! Pada bagian ini  skrip mengambil parameter "dlt" yang merupakan parameter untuk delete, dan "upd" yang merupakan parameter update.

if(delete != null){
                Enumeration en = data.keys();
                Integer idnya = Integer.parseInt(delete);
                data.remove(idnya);
                out.println("<meta http-equiv='refresh' content = '0;url=InputForm'>");
            }
Setelah parameter dlt diambil dan dimasukkan ke dalam variabel delete, maka skrip ini akan bekerja jika user menghapus salah satu data dalam table.

if(update != null){
                Enumeration en = data.keys();
                Integer idnya = Integer.parseInt(update);
                InputForm.dataL listnya = (InputForm.dataL) data.get(idnya);
                nimnya = listnya.NIM;
                namanya = listnya.Nama;
                jknya = listnya.JK;
                alamatnya = listnya.alamat;
                emailnya = listnya.Email;
                institusinya = listnya.Institusi;
                agamanya = listnya.Agama;

                if(jknya.equalsIgnoreCase("Laki-laki")){
                    jklaki = "checked='checked'";
                    jkperem = "";
                  
                }else if(jknya.equalsIgnoreCase("Perempuan")){
                    jklaki = "";
                    jkperem = "checked='checked'";
              
                }else{
                    jklaki = "";
                    jkperem = "";
                }
            }else{
                nimnya = "";
                namanya = "";
                jknya = "";
                alamatnya = "";
                jklaki = "";
                jkperem = "";
                emailnya = "";
                institusinya = "";
            }
Sedangkan ini adalah skrip update/edit .Sama halnya seperti skrip delete, skrip ini akan bekerja pada saat user mengubah data yang terpilih. Pada skrip ini, data diambil melewati id data yang terambil pada saat user mengklik "Edit"

/* TODO output your page here. You may use following sample code. */
            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("<h1>Form Input Data</h1>");
            out.println("<form name='Simpan'  method='POST'>");
            out.println("<table>");
            out.println("<tr><td>NIM</td>"
                       +"<td>:</td>"
                       +"<td><input type='text' name='nim' size='13' value='"+nimnya+"'/></td></tr>");
            out.println("<tr><td>Nama</td>"
                       +"<td>:</td>"
                       +"<td><input type='text' name='nama' size='35' value='"+namanya+"'/></td></tr>");
            out.println("<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>");
            out.println("<tr>"
                       +"<td>Agama</td>"
                       +"<td>:</td>"
                       +"<td>"
                       +"<select name = 'Agama'>"
                       +"<option value = '"+agamanya+"'>"+agamanya+"</option>"
                       +"<option value = 'Islam'>Islam</option>"
                       +"<option value = 'Kristen'>Kristen</option>"
                       +"<option value = 'Budha'>Budha</option>"
                       +"<option value = 'Hindu'>hindu</option>"
                       +"<option value = 'Konghucu'>konghucu</option>"
                       +"</select>"
                       +"</td>"
                       +"</tr>");
            out.println("<tr><td>institusi</td>"
                       +"<td>:</td>"
                       +"<td><input type='text' name='Institusi' size='35' value='"+institusinya+"'/></td></tr>");
            out.println("<tr>"
                       +"<td>Alamat</td>"
                       +"<td>:</td>"
                       +"<td><textarea name='alamat'>"+alamatnya+"</textarea></td>"
                       +"</tr>");
            out.println("<tr><td>Email</td>"
                       +"<td>:</td>"
                       +"<td><input type='email' name='Email' size='35' value='"+emailnya+"'/></td></tr>");
            out.println("<tr>"
                       +"<td></td>"
                       +"<td></td>"
                       +"<td><input type='submit' value='Simpan' name='Simpan'/></td>"
                       +"</tr>");
            out.println("</table>");
            out.println("</form>");
            out.println("</body>");
            out.println("</html>");
Pada bagian ini, skrip memuat tag-tag html seperti di halaman login yang kita buat sebelumnya, sebagai desain dari halaman InputForm. 
            String jkString=null;
            String Simpan = request.getParameter("Simpan");
            String nim = request.getParameter("nim");
            String nama = request.getParameter("nama");
            String jk = request.getParameter("JenisKelamin");
            String institusi = request.getParameter("Institusi");
            String alamat = request.getParameter("alamat");
            String agama = request.getParameter("Agama");
            String email = request.getParameter("Email");
Skrip ini berfungsi untuk mengambil data yang telah dimasukkan dalam form input oleh user.

            out.println("<br>");
            out.println("<br>");
            out.println("<table border='1' width='1000px'");
            out.println("<tr>");
            out.println("<td align='center'>No</td>");
            out.println("<td align='center'>NIM</td>");
            out.println("<td align='center'>Nama</td>");
            out.println("<td align='center'>Jenis Kelamin</td>");
            out.println("<td align='center'>Agama</td>");
            out.println("<td align='center'>Institusi</td>");
            out.println("<td align='center'>Alamat</td>");
            out.println("<td align='center'>Email</td>");
            out.println("<td colspan=2 align=center>Action</td></tr>");
Bagian ini adalah skrip yang memuat desain header table untuk menampung data yang diinput user.

       if(Simpan != null){
                if(nim.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                  
                }else if(nama.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                  
                }else if(jk.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                  
                }else if(alamat.equals("")){
                    out.println("<h4 style='color:red'>Lengkapi data!</h4>");
                }else if(email.equals("")){
                    out.println("<h4 style = 'color:red'>Lengkapi data!</h4>");
                }else if(institusi.equals("")){
                    out.println("<h4 style = 'color : red'>Lengkapi data!</h4>");
                }
              
                if(jk.contains("P")){
                    jkString= "Perempuan";
                }else{
                    jkString= "Laki-laki";
                }
              
                final InputForm.dataL LIST[]={
                    new InputForm.dataL(nim, nama, jkString, agama , institusi , alamat , email)
                };
                for (int i = 0; i < LIST.length; i++) {
                    jumlahData +=1;
                    if(update != null){
                        data.put(Integer.valueOf(update), LIST[i]);
                        out.println("<meta http-equiv='refresh' content = '0;url=InputForm'>");
                    }else{
                        data.put(new Integer(jumlahData), LIST[i]);
                        out.println("<meta http-equiv='refresh' content = '0;url=InputForm'>");
                    }
                  
                }
          
            }
Sedangkan bagian ini merupakan salah satu hal yang penting. Skrip ini akan menyimpan data yang telah dimasukkan user. Namun sebelum dimasukkan ke dalam isi table, terdapat bebarapa validasi yang mengecek, apakah seluruh inputan telah terisi ? jika seluruh validasi telah terpenuhi, maka class dataL akan menampung data tersebut lalu memasukkannya ke dalam isi table.


            Enumeration en = data.keys();
            while (en.hasMoreElements()){
                Integer key = (Integer) en.nextElement();
                InputForm.dataL itemnya = (InputForm.dataL) data.get(key); 
                String id_mahasiswa = key.toString();

                String urlUpdate = "InputForm?upd=" + id_mahasiswa;
                urlUpdate = response.encodeURL(urlUpdate);
                String urldelete = "InputForm?dlt=" + 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.Agama + "</td>");
                out.println("<td align='center'>" + itemnya.Institusi + "</td>");
                out.println("<td align='center'>" + itemnya.alamat + "</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>");
          
  
       } finally {
            out.close();
        }
    }
}
Hampir selesai! pada bagian -terakhir- ini, skrip menampilkan seluruh data yang telah dimasukkan oleh user dan menampilkannya di dalam isi table.

Maka jadilah hasilnya seperti ini!
Hasil halaman InputForm, tanpa database!
 Aplikasi sederhana ini pun selesai. Semoga semua yang saya jelaskan pada postingan ini dapat berjalan dengan sesuai. Tapi, jika ada yang tidak bisa berjalan dengan baik, mohon comment pada postingan saya ini.

bagi yang menginginkan full source nya, harap kontak saya ke : rahadian13@gmail.com

Selamat mencoba , Keep movin' forward !