More

    Login Multi Level Dengan Servlet dan JSP

    Pada tutorial ini saya akan membahas tutorial tentang Cara membuat login multi level dengan servlet dan JSP. Memang apasih login multi level itu? jadi login multi level ini adalah sebuah sistem dimana kita akan membedakan hak akses setiap user. Misal, ketika user memiliki hak akses admin, ketika sudah melakukan login maka user tersebut akan di alihkan ke halaman admin begitupun sebaliknya apabila user tersebut memiliki hak akses sebagai client/pelanggan maka ketika login ia akan di arahkan ke halaman pelanggan. Ada berbagai macam cara yang bisa digunakan untuk melakukan login multi level ini salah satunya yaitu memisahkan antara table admin dan table pelanggan. Namun, cara ini sangatlah tidak efektif dalam penyusunan table dalam database. Cara kedua adalah dengan memberikan field hak_akses pada table user. Dimana field hak akses ini nantinya sebagai validasi untuk membedakan hak akses dari user tersebut.

    Baca Juga:

    Lalu bagaimana cara implementasinya pada servlet dan JSP?

    Berikut ini akan saya terangkan langkah demi langkah membuat Login multi level Dengan Servlet dan JSP.

    Membuat Login Multi Level Dengan Servlet dan JSP:

    Buatlah database baru dengan nama latihan_loginMulti. Lalu anda bisa dumping query SQL berikut ini:

    -- phpMyAdmin SQL Dump
    -- version 4.2.7.1
    -- http://www.phpmyadmin.net
    --
    -- Host: 127.0.0.1
    -- Generation Time: Dec 11, 2016 at 06:51 PM
    -- Server version: 5.6.20
    -- PHP Version: 5.5.15
    
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    
    --
    -- Database: `latihan_loginmulti`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `user`
    --
    
    CREATE TABLE IF NOT EXISTS `user` (
    `id` int(11) NOT NULL,
      `username` varchar(15) NOT NULL,
      `password` varchar(15) NOT NULL,
      `hak_akses` enum('Admin','Pelanggan') NOT NULL
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
    
    --
    -- Dumping data for table `user`
    --
    
    INSERT INTO `user` (`id`, `username`, `password`, `hak_akses`) VALUES
    (3, 'admin', 'admin', 'Admin'),
    (4, 'andik', 'andik', 'Pelanggan');
    
    --
    -- Indexes for dumped tables
    --
    
    --
    -- Indexes for table `user`
    --
    ALTER TABLE `user`
     ADD PRIMARY KEY (`id`);
    
    --
    -- AUTO_INCREMENT for dumped tables
    --
    
    --
    -- AUTO_INCREMENT for table `user`
    --
    ALTER TABLE `user`
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=5;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    

     

    Pada table user tersebut sudah terdapat 2 record dimana 2 record tersebut berisi:

    1. admin dengan hak akses sebagai admin.
    2. andik dengan hak akses sebagai pelanggan.

    Jadi Goal dari tutorial ini adalah.

    • Mampu mengarahkan masing-masing user tersebut ke halaman yang diinginkan sesuai dengan hak akses mereka.

    Buat 3 buah File JSP. Masing-masing diberi nama dengan index.jsp ,admin.jsp,pelanggan.jsp

    Isi kode dari masing-masing ke 3 file tersebut.

    Index.jsp

    <%-- 
        Document   : index
        Created on : Dec 11, 2016, 10:44:07 PM
        Author     : TutorialPedia.NET
    --%>
    
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Halaman Login</title>
            <style type="text/css">
                html, body {
                    width: 100%;
                }
                table{
                    margin: 0 auto;
                }
                h1{
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Login Multi Level</h1>
            
            <form method="post" action="Login?proses=login">
                <table border="1" width="30%" cellpadding="3">
                    <thead>
                        <tr>
                            <th colspan="2">Login Multi Level</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Username</td>
                            <td><input type="text" name="username" /></td>
                        </tr>
                        <tr>
                            <td>Password</td>
                            <td><input type="password" name="password"/></td>
                        </tr>
                        <tr>
                            <td><input type="submit" value="Login"/></td>
                            <td><input type="reset" value="Reset"/></td>
                        </tr>
                    </tbody>
                </table>
                
            </form>
        </body>
    </html>
    

    admin.jsp

    <%-- 
        Document   : admin
        Created on : Dec 11, 2016, 10:44:16 PM
        Author     : TutorialPedia.NET
    --%>
    
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Halaman Admin</title>
        </head>
            <%
                if ((session.getAttribute("username") == null) || (session.getAttribute("username") == "")) {
                    response.sendRedirect("index.jsp");
            %>
            <%
                }
            %>
        <body>
            <h1>Hallo <%=session.getAttribute("username")%> </h1>
            
            <a href="Login?proses=logout">Logout</a>
        </body>
    </html>
    

    pelanggan.jsp

    <%-- 
        Document   : pelanggan
        Created on : Dec 11, 2016, 10:44:41 PM
        Author     : TutorialPedia.NET
    --%>
    
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Halaman Pelanggan</title>
        </head>
        <body>
            <%
                if ((session.getAttribute("username") == null) || (session.getAttribute("username"))== "" ){
                    response.sendRedirect("index.jsp");
            %>
            <%
            }
            %>
            <h1>Hallo  <%=session.getAttribute("username") %></h1>
           
            
            <a href="Login?proses=logout">Logout</a>
    
        </body>
    </html>
    

     

    Sekarang buatlah package, class, dan servlet sesuai pada gambar berikut:

    login multi level

    Login.java merupakan file servlet, sedangakan KoneksiDB.java dan UserModel.java adalah java class.

    Berikut adalah kode dari masing-masing file tersebut.

    KoneksiDB.java

    /*
     * 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.
     */
    package net.tutorialpedia.model;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    /**
     *
     * @author TutorialPedia.NET
     */
    public class KoneksiDB {
        private Connection conn;
        private Statement st;
     
        public static void ambilKoneksi() {
            try {
                String db = "jdbc:mysql://localhost:3306/latihan_loginMulti";
                String user = "root";
                String pass = ""; //dikosongkan hjika tidak ada password pada mysql anda
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection(db, user, pass);
            } catch (Exception x) {
                System.out.println("Terjadi kesalahan ambil koneksi : " + x);
            }
        }
     
        public void koneksi() {
            try {
                String db = "jdbc:mysql://localhost:3306/latihan_loginMulti";
                String user = "root";
                String pass = ""; //dikosongkan hjika tidak ada password pada mysql anda
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection(db, user, pass);
                st = conn.createStatement();
            } catch (Exception x) {
     
                System.out.println("Terjadi kesalahan koneksi : " + x);
            }
        }
     
        public void diskonek(ResultSet rs) {
            try {
                if (rs != null) {
                    rs.close();
                }
                st.close();
                conn.close();
            } catch (Exception x) {
                System.out.println("Terjadi kesalahan diskoneksi : " + x);
            }
        }
     
        public ResultSet ambilData(String sql) {
            ResultSet rs = null;
            try {
                koneksi();
                rs = st.executeQuery(sql);
            } catch (Exception x) {
                System.out.println("Terjadi kesalahan ambil data : " + x);
            }
            return rs;
        }
     
    }
    

    UserModel.java

    /*
     * 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.
     */
    package net.tutorialpedia.model;
    
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     *
     * @author TutorialPedia.NET
     */
    public class UserModel {
        String id,username,password,hak_akses;
        KoneksiDB db= null;
        
        public UserModel(){
            db =new KoneksiDB();
        }
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        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;
        }
    
        public String getHak_akses() {
            return hak_akses;
        }
    
        public void setHak_akses(String hak_akses) {
            this.hak_akses = hak_akses;
        }
            public List LoginUser(String user, String password) {
            List data = new ArrayList();
            ResultSet rs = null;
            try {
                String sql = "SELECT * FROM USER where username='" + user + "' and password='" + password + "'";
                rs = db.ambilData(sql);
     
                while (rs.next()) {
                    UserModel am = new UserModel();
                    am.setId(rs.getString("id"));
                    am.setUsername(rs.getString("username"));               
                    am.setPassword(rs.getString("password"));
                    am.setHak_akses(rs.getString("hak_akses"));
                    data.add(am);
                }
                db.diskonek(rs);
            } catch (Exception a) {
                System.out.println("Terjadi kesalahaan cari login user, pada :\n" + a);
            }
            return data;
        }
    }
    

    Login.java

    /*
     * 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.
     */
    package net.tutorialpedia.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import static java.lang.System.out;
    import java.util.ArrayList;
    import java.util.List;
    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;
    import net.tutorialpedia.model.UserModel;
    
    /**
     *
     * @author TutorialPedia.NET
     */
    @WebServlet(name = "Login", urlPatterns = {"/Login"})
    public class Login extends HttpServlet {
    
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String proses=request.getParameter("proses");
            if (proses.equals("logout")){
                HttpSession sesi=request.getSession();
                sesi.invalidate();
                response.sendRedirect("index.jsp");
            }
    
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            String proses = request.getParameter("proses");
             
            if (proses.equals("login")) {
                String user = request.getParameter("username");
                String pass = request.getParameter("password");
                String hak_akses=request.getParameter("hak_akses");
                String id=request.getParameter("id");
                if (pass == null || pass.equals("")) {   //validasi apabila field belum diisi
                    response.sendRedirect("index.jsp");
                } else {
                    UserModel pm = new UserModel();
                    List<UserModel> datalogin = new ArrayList<UserModel>();
    
                    datalogin = pm.LoginUser(user, pass);
                    if (datalogin.isEmpty()) { //validasi apabila username dan password salah
                            response.sendRedirect("index.jsp");
                    } else {
                        HttpSession session = request.getSession(true);
                        session.setAttribute("username", datalogin.get(0).getUsername());
                        session.setAttribute("id", datalogin.get(0).getId());
                        session.setAttribute("hak_akses", datalogin.get(0).getHak_akses());
     
                        if (datalogin.get(0).getHak_akses().equals("Admin")) {
                            response.sendRedirect("admin.jsp");
                        } 
                        if (datalogin.get(0).getHak_akses().equals("Pelanggan")){
                            response.sendRedirect("pelanggan.jsp");
                        }
                    }
                }
            }
                  
        }
    
    }
    

    Sebelum melakukan run project jangan lupa untuk mengimport library mysql terlebih dahulu.

    Download on Github

    Setelah itu simpan semua perubahan (CTRL+SHIFT+S)

    Sekarang coba running.

    Cara kerja dari login multi level ini anda bisa melihat video berdurasi 2 menit berikut ini:

    Jika anda mengalami error pada pembuatan login multi level dengan servlet dan JSP, anda bisa mengkonsultasikannya langsung kepada author.

    Demikian tutorial Membuat Login Multi Level Dengan Servlet dan JSP.

     

    Recent Articles

    [td_block_21]

    Related Articles

    5 Comments

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Dapatkan konten terbaik dari kami!