UAS - Pemrograman 2 - Aplikasi Web Studi Kasus

B. Pro 18 Aplikasi Web Studi Kasus

Referensi pembuatan aplikai ini dari Traveloka saya beri nama TravelAir

Membuat Project baru dengan nama TravelAir

Membuat style.css

Source Code style.css

@import 'https://fonts.googleapis.com/css?family=Montserrat:400,700|Roboto:300i,300,400,500';
* {
    box-sizing: border-box;
}

body{
    background: #eee;
    font-family: arial, "roboto";
    margin: 0;
    padding: 0px;
    font-size: 14px;
    font-weight: 300;
    position: relative;
}

header {
    padding: 50px;
    text-align: center;
    background: #ff9c71;
    color: white;
    border-radius: 5px 5px 0px 0px;
}

header h1 {
    font-size: 40px;
    margin: 5px;
}

header p {
    margin: 0px;
}

.container {
    width: 1020px;
    padding-right: 15px;
    padding-left: 15px;    
    margin: 20px auto;
}
.topnav {
    overflow: hidden;
    background-color: #726a95;
    border-radius: 0px 0px 5px 5px;
}

.topnav a {
    float: left;
    display: block;
    color: #f2f2f2;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 17px;
}

.active {
    background-color: #f05454;
    color: white;
}

.topnav .icon {
    display: none;
}

.dropdown {
    float: left;
    overflow: hidden;
}

.dropdown .dropbtn {
    font-size: 17px;    
    border: none;
    outline: none;
    color: white;
    padding: 14px 16px;
    background-color: inherit;
    font-family: inherit;
    margin: 0;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}

.dropdown-content a {
    float: none;
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
    text-align: left;
}

.topnav a:hover, .dropdown:hover .dropbtn {
    background-color: #ec524b;
    color: white;
}

.dropdown-content a:hover {
    background-color: #ddd;
    color: black;
}

.dropdown:hover .dropdown-content {
    display: block;
}

#content {
    width: 100%;
    background-color: white;
    padding: 20px;
    margin-top: 20px;    
    margin-bottom: 20px;
    border-radius: 5px;
}

#content img {
    background-color: #f8efd4;
    width: 100%;
    padding: 5px;
    border-radius: 5px;
}

#content h2 {
    margin: 5px 0px;
}

#content p {
    margin: 0px;
}

#sub {
    width: 50%;
    text-align: center;
}

form {
    text-align: left;
}

article {
    background-color: white;
    padding: 20px;
    margin-top: 20px;
    border-radius: 5px;
}

article h5 {
    color: gray;
    text-align: right;
    font-size: 12px;
    margin: 0px 0px 10px 0px;
    display: block;
}

article a {
    text-decoration: none;
    font-style: italic;
    color: #d7385e;
}
aside {
    float: right;
    width: 29%;
    margin-bottom: 20px;
}

.side {
    background-color: white;
    padding: 10px;
    margin-top: 20px;
    border-radius: 5px;
}

.side h2 {
    color: white;
    margin: 0px;
    background-color: #0d7377;
    padding: 5px;
    font-size: 20px;
    border-radius: 2px;
    margin-bottom: 5px;
    text-align: center;
}

.side img {
    width: 100%;
    border-radius: 5px;
}

.sidenav {
    width: 100%;
    position: relative;
    background-color: #00587a;
    overflow-x: hidden;
    border-radius: 2px;
}

.sidenav a, .dropdown-btn {
    padding: 6px 8px 6px 8px;
    text-decoration: none;
    font-size: 17px;
    color: white;
    display: block;
    background: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    outline: none;
    border: 1px solid;
}

.sidenav a:hover, .dropdown-btn:hover {
    color: #f1f1f1;
}

.main {
    margin-left: 200px; 
    font-size: 20px; 
    padding: 0px 10px;
}

.sidenav .active {
    background-color: #008891;
    color: white;
}

.dropdown-container {
    display: none;
    background-color: #8bcdcd;
    border: 2px;
}

.sidenav .fa-caret-down {
    float: right;
    padding-right: 8px;
}

footer {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 10px;
    text-align: center;
    background: #ff9c71;
    color: white;
    border-radius: 5px;
}

footer p {
    margin: 0px;
}

input[type=text], input[type=number], input[type=tel], input[type=password], input[type=date], select, textarea {
    width: 100%;
    padding: 12px;
    margin: 8px 0;
    display: inline-block;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
}

input[type=submit] {
    width: 100%;
    background-color: #7e7474;
    color: white;
    padding: 10px;
    margin: 8px 0;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
}

input[type=submit]:hover {
    background-color: #39311d;
}

#login {border: 3px solid #f1f1f1;}

.logincontainer button {
    background-color: #2c82c9;
    color: white;
    padding: 14px 20px;
    margin: 8px 0;
    border: none;
    cursor: pointer;
    width: 100%;
}

.logincontainer button:hover {
    opacity: 0.8;
}

#cancelbtn {
    width: auto;
    padding: 10px 18px;
    background-color: #9ad3bc;
}
.logincontainer {
    padding: 16px;
}

#simpan, #hapus, #lihat, #sebelum, #pilih, #sesudah, #tampil, #sblm, #plh, #ssdh {
    width: 30%;
    margin: 5px;
}

#mulai, #jml {
    width: 18%;
    margin: 5px;
}

.tbl {
    margin: 10px;
}

td {
    padding: 5px;
}

table#t01 tr:nth-child(even) {
    background-color: #eee;
}
table#t01 tr:nth-child(odd) {
    background-color:#fff;
}
table#t01 th{
    background-color: #726a95;
    color: white;
    padding: 5px;
}    
#subcontent {
    width: 60%;
}

#lama {
    width: 93%;
}

/* Responsive layout */
@media screen and (max-device-width: 800px) {
    body {
        padding: 0px;
    }
    #content, aside {   
        width: 100%;
    }
}

@media screen and (max-width: 600px) {
    .topnav a:not(:first-child), .dropdown .dropbtn {
        display: none;
    }
    .topnav a.icon {
        float: right;
        display: block;
    }
}

@media screen and (max-width: 600px) {
    .topnav.responsive {position: relative;}
    .topnav.responsive .icon {
        position: absolute;
        right: 0;
        top: 0;
    }
    .topnav.responsive a {
        float: none;
        display: block;
        text-align: left;
    }
    .topnav.responsive .dropdown {
        float: none;
    }
    .topnav.responsive .dropdown-content {
        position: relative;
    }
    .topnav.responsive .dropdown .dropbtn {
        display: block;
        width: 100%;
        text-align: left;
    }
    #simpan, #hapus, #lihat, #sebelum, #pilih, #sesudah, #tampil, #sblm, #plh, #ssdh {
        width: 100%;
        margin: 0px 0px 5px;
    }
    #mulai, #jml {
        width: 30%;
    }    
    #subcontent {
        width: 100%;
    }    
    #lama {
    width: 90%;
    }
    #t01 {
        display: grid;
    }
}

@media screen and (max-width:1249px) {
    .container {
        width:1170px
    }
}
@media screen and (max-width:1199px) {
    .container {
        width:970px
    }
}
@media screen and (max-width:991px) {
    .container {
        width:100%;
        padding-left:10px;
        padding-right:10px
    }
}

@media screen and (max-height: 450px) {
    .sidenav {padding-top: 15px;}
    .sidenav a {font-size: 18px;}
}

@media screen and (max-width: 300px) {
    span.psw {
        display: block;
        float: none;
    }
    .cancelbtn {
        width: 100%;
    }
}


Membuat menu Master Data, Transaksi, Laporan

Source Code Index.jsp

<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>TravelAir</title>
        <link rel="stylesheet" type="text/css" href="style.css">  
        <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
        <script src="script.js"></script>
    </head>
    <body>
        <div class="container">
            <header>
                <h1>TravelAir</h1>
                <p>Jual tiket pesawat dengan harga termurah.</p>  
            </header>
            <%
                String topMenu = "<a href=. class='active'>Home</a>"
                        + "<a href=LoginController>Login</a>"
                        + "<div class='dropdown'>"
                        + "<button class='dropbtn'>Master Data "
                        + "<i class='fa fa-caret-down'></i>"
                        + "</button>"
                        + "<div class='dropdown-content'>"
                        + "<a href=DataTiketController>Data Tiket</a>"
                        + "<a href=DataCustomerController>Data Customer</a>"
                        + "<a href=DataUserController>Data User</a>"
                        + "</div>"
                        + "</div>"
                        + "<div class='dropdown'>"
                        + "<button class='dropbtn'>Data Transaksi "
                        + "<i class='fa fa-caret-down'></i>"
                        + "</button>"
                        + "<div class='dropdown-content'>"
                        + "<a href=PenjualanTiketController>Penjualan Tiket</a>"
                        + "</div>"
                        + "</div>"
                        + "<div class='dropdown'>"
                        + "<button class='dropbtn'>Laporan "
                        + "<i class='fa fa-caret-down'></i>"
                        + "</button>"
                        + "<div class='dropdown-content'>"
                        + "<a href=LaporanPenjualanTiketController>Penjualan Tiket</a>"
                        + "<a href=StokTiketController>Stok Tiket</a>"
                        + "</div>"
                        + "</div>"
                        + "<a href=About>About</a>"
                        + "<a href='javascript:void(0);' style='font-size:15px;' class='icon' onclick='myFunction()'>&#9776;</a>";

                String sideMenu = "<h2>Menu</h2>"
                        + "<div class='sidenav'>"
                        + "<a href=LoginController>Login</a>"
                        + "<button class='dropdown-btn'>Master Data "
                        + "<i class='fa fa-caret-down'></i>"
                        + "</button>"
                        + "<div class='dropdown-container'>"
                        + "<a href=DataTiketController>Data Tiket</a>"
                        + "<a href=DataCustomerController>Data Customer</a>"
                        + "<a href=DataUserController>Data User</a>"
                        + "</div>"
                        + "<button class='dropdown-btn'>Transaksi "
                        + "<i class='fa fa-caret-down'></i>"
                        + "</button>"
                        + "<div class='dropdown-container'>"
                        + "<a href=PenjualanTiketController>Penjualan Tiket</a>"
                        + "</div>"
                        + "<button class='dropdown-btn'>Laporan "
                        + "<i class='fa fa-caret-down'></i>"
                        + "</button>"
                        + "<div class='dropdown-container'>"
                        + "<a href=PenjualanTiketController>Penjualan Tiket</a>"
                        + "<a href=StokTiketController>Stok Tiket</a>"
                        + "</div>"
                        + "</div>";

                String konten = "<h2>Selamat Datang</h2>";
                String paragraf = "<p>Kami menyediakan tiket penerbangan antar kota dalam negeri dari berbagai maskapai penerbangan.<br>Hubungi kami sekarang juga.</p>";
                String userName = "";

                if (!session.isNew()) {
                    try {
                        userName = session.getAttribute("userName").toString();
                    } catch (Exception ex) {
                    }

                    if (!((userName == null) || userName.equals(""))) {
                        konten = "<h2>Selamat Datang " + userName + "</h2>";

                        try {
                            sideMenu = session.getAttribute("sideMenu").toString();
                        } catch (Exception ex) {
                        }

                        try {
                            topMenu = session.getAttribute("topMenu").toString();
                        } catch (Exception ex) {
                        }
                    }
                }
            %>
            <div class="topnav" id="myTopnav">
                <%=topMenu%>
            </div>
            <main>
                <div id="content">
                    <%=konten%>
                    <%=paragraf%>
                </div>
            </main>
            <footer>
                <p>Copyright &#169; 2020 TravelAir<br>Created by Akhmad Fikri Septiawan</p>
            </footer>
        </div>
        <script type="text/javascript">
            var dropdown = document.getElementsByClassName("dropdown-btn");
            var i;

            for (i = 0; i < dropdown.length; i++) {
                dropdown[i].addEventListener("click", function () {
                    this.classList.toggle("active");
                    var dropdownContent = this.nextElementSibling;
                    if (dropdownContent.style.display === "block") {
                        dropdownContent.style.display = "none";
                    } else {
                        dropdownContent.style.display = "block";
                    }
                });
            }
        </script>
    </body>
</html>


Output:


Membuat Fasilitas Login

Source Code LoginController.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        HttpSession session = request.getSession(true);
        String userName = "";

        try {
            userName = session.getAttribute("userName").toString();
        } catch (Exception ex) {
        }

        if (((userName == null) || userName.equals(""))) {
            String username = request.getParameter("username");
            String password = request.getParameter("password");

            String konten = "<form id='login' action=LoginController method=post>"
                    + "<div class='logincontainer'>"
                    + "<label for='username'><b>Username</b></label>"
                    + "<input class='inputlogin' type='text' placeholder='Enter Username' name='username' required>"
                    + "<label for='password'><b>Password</b></label>"
                    + "<input type='password' placeholder='Enter Password' name='password' required>"
                    + "<input type='submit'>"
                    + "</div>"
                    + "<div class='logincontainer' style='background-color:#f1f1f1'>"
                    + "<button type='button' id='cancelbtn' onclick=document.location='.'>Cancel</button>"
                    + "</div>"
                    + "</form>";
            String pesan = "";

            if (username == null) {
            } else if (username.equals("")) {
                pesan = "<br><br><font style='color:red'>Username harus diisi</font>";
            } else {
                DataUser dataUser = new DataUser();
                Enkripsi enkripsi = new Enkripsi();

                pesan = "<br><br><font style='color:red'>Username atau password salah</font>";

                if (dataUser.baca(username)) {
                    String passwordEncrypted = "";

                    try {
                        passwordEncrypted = enkripsi.hashMD5(password);
                    } catch (Exception ex) {
                    }

                    if (passwordEncrypted.equals(dataUser.getPassword())) {
                        pesan = "";
                        session.setAttribute("userName", dataUser.getUsername().equals("") ? "No Name" : dataUser.getUsername());
                        String topMenu = "<a href=. class='active'>Home</a>"
                                + "<div class='dropdown'>"
                                + "<button class='dropbtn'>Master Data "
                                + "<i class='fa fa-caret-down'></i>"
                                + "</button>"
                                + "<div class='dropdown-content'>"
                                + "<a href=DataTiketController>Data Tiket</a>"
                                + "<a href=DataCustomerController>Data Customer</a>"
                                + "<a href=DataUserController>Data User</a>"
                                + "</div>"
                                + "</div>"
                                + "<div class='dropdown'>"
                                + "<button class='dropbtn'>Data Transaksi "
                                + "<i class='fa fa-caret-down'></i>"
                                + "</button>"
                                + "<div class='dropdown-content'>"
                                + "<a href=PenjualanTiketController>Penjualan Tiket</a>"
                                + "</div>"
                                + "</div>"
                                + "<div class='dropdown'>"
                                + "<button class='dropbtn'>Laporan "
                                + "<i class='fa fa-caret-down'></i>"
                                + "</button>"
                                + "<div class='dropdown-content'>"
                                + "<a href=LaporanPenjualanTiketController>Penjualan Tiket</a>"
                                + "<a href=StokTiketController>Stok Tiket</a>"
                                + "</div>"
                                + "</div>"
                                + "<a href=About>About</a>"
                                + "<a href=LogoutController>Logout</a>"
                                + "<a href='javascript:void(0);' style='font-size:15px;' class='icon' onclick='myFunction()'>&#9776;</a>";
                        session.setAttribute("topMenu", topMenu);

                        String sideMenu = "<h2>Menu</h2>"
                                + "<div class='sidenav'>"
                                + "<a href=LoginController>Login</a>"
                                + "<button class='dropdown-btn'>Master Data "
                                + "<i class='fa fa-caret-down'></i>"
                                + "</button>"
                                + "<div class='dropdown-container'>"
                                + "<a href=DataTiketController>Data Tiket</a>"
                                + "<a href=DataCustomerController>Data Customer</a>"
                                + "<a href=DataUserController>Data User</a>"
                                + "</div>"
                                + "<button class='dropdown-btn'>Transaksi "
                                + "<i class='fa fa-caret-down'></i>"
                                + "</button>"
                                + "<div class='dropdown-container'>"
                                + "<a href=PenjualanTiketController>Penjualan Tiket</a>"
                                + "</div>"
                                + "<button class='dropdown-btn'>Laporan "
                                + "<i class='fa fa-caret-down'></i>"
                                + "</button>"
                                + "<div class='dropdown-container'>"
                                + "<a href=PenjualanTiketController>Penjualan Tiket</a>"
                                + "<a href=StokTiketController>Stok Tiket</a>"
                                + "</div>"
                                + "<a href=LogoutController>Logout</a>"
                                + "</div>";
                        session.setAttribute("sideMenu", sideMenu);

                        session.setMaxInactiveInterval(15 * 60); // 15 x 60 detik = 15 menit
                        konten = "";
                    }
                } else if (!dataUser.getPesan().substring(0, 3).equals("username")) {
                    pesan = "<br><br><font style='color:red'>" + dataUser.getPesan().replace("n", "<br>") + "</font>";
                }
            }

            new MainForm().tampilkan(konten + pesan, request, response);
        } else {
            response.sendRedirect(".");
        }
    }


Output:


Membuat Form untuk Master Data

Data Tiket

Source Code DataTiketController.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        HttpSession session = request.getSession(true);
        DataTiket dataTiket = new DataTiket();
        String userName = "";

        String tombol = request.getParameter("tombol");
        String kodeTiket = request.getParameter("kodeTiket");
        String maskapai = request.getParameter("maskapai");
        String hargaTiket = request.getParameter("hargaTiket");
        String stok = request.getParameter("stok");
        String kotaAsal = request.getParameter("kotaAsal");
        String kotaTujuan = request.getParameter("kotaTujuan");
        String mulaiParameter = request.getParameter("mulai");
        String jumlahParameter = request.getParameter("jumlah");
        String kodeTiketDipilih = request.getParameter("kodeTiketDipilih");

        if (tombol == null) {
            tombol = "";
        }
        if (kodeTiket == null) {
            kodeTiket = "";
        }
        if (maskapai == null) {
            maskapai = "";
        }
        if (hargaTiket == null) {
            hargaTiket = "";
        }
        if (stok == null) {
            stok = "0";
        }
        if (kotaAsal == null) {
            kotaAsal = "";
        }
        if (kotaTujuan == null) {
            kotaTujuan = "";
        }
        if (kodeTiketDipilih == null) {
            kodeTiketDipilih = "";
        }
        
        int mulai = 0, jumlah = 10;

        try {
            mulai = Integer.parseInt(mulaiParameter);
        } catch (NumberFormatException ex) {
        }

        try {
            jumlah = Integer.parseInt(jumlahParameter);
        } catch (NumberFormatException ex) {
        }

        String keterangan = "<br>";

        try {
            userName = session.getAttribute("userName").toString();
        } catch (Exception ex) {
        }

        if (!((userName == null) || userName.equals(""))) {
            if (tombol.equals("Simpan")) {
                if (!kodeTiket.equals("")) {
                    dataTiket.setKodeTiket(kodeTiket);
                    dataTiket.setMaskapai(maskapai);
                    dataTiket.setKotaAsal(kotaAsal);
                    dataTiket.setKotaTujuan(kotaTujuan);
                    dataTiket.setHargaTiket(Long.parseLong(hargaTiket));
                    dataTiket.setStokTiket(Integer.parseInt(stok));

                    if (dataTiket.simpan()) {
                        kodeTiket = "";
                        maskapai = "";
                        kotaAsal = "";
                        kotaTujuan = "";
                        hargaTiket = "0";
                        stok = "0";
                        keterangan = "Sudah tersimpan";
                    } else {
                        keterangan = "Gagal menyimpan:n" + dataTiket.getPesan();
                    }
                } else {
                    keterangan = "Gagal menyimpan, kode tiket tidak boleh kosong";
                }
            } else if (tombol.equals("Hapus")) {
                if (!kodeTiket.equals("")) {
                    if (dataTiket.hapus(kodeTiket)) {
                        kodeTiket = "";
                        maskapai = "";
                        kotaAsal = "";
                        kotaTujuan = "";
                        hargaTiket = "0";
                        stok = "0";
                        keterangan = "Data sudah dihapus";
                    } else {
                        keterangan = "Kode tiket tersebut tidak ada, atau ada kesalahan:n" + dataTiket.getPesan();
                    }
                } else {
                    keterangan = "Kode tiket masih kosong";
                }
            } else if (tombol.equals("Cari")) {
                if (!kodeTiket.equals("")) {
                    if (dataTiket.baca(kodeTiket)) {
                        kodeTiket = dataTiket.getKodeTiket();
                        maskapai = dataTiket.getMaskapai();
                        kotaAsal = dataTiket.getKotaAsal();
                        kotaTujuan = dataTiket.getKotaTujuan();
                        hargaTiket = Long.toString(dataTiket.getHargaTiket());
                        stok = Integer.toString(dataTiket.getStokTiket());;
                        keterangan = "<br>";
                    } else {
                        keterangan = "Kode tiket tersebut tidak ada";
                    }
                } else {
                    keterangan = "Kode tiket masih kosong";
                }
            } else if (tombol.equals("Pilih")) {
                kodeTiket = kodeTiketDipilih;
                maskapai = "";
                stok = "0";
                hargaTiket = "0";
                if (!kodeTiketDipilih.equals("")) {
                    if (dataTiket.baca(kodeTiketDipilih)) {
                        kodeTiket = dataTiket.getKodeTiket();
                        maskapai = dataTiket.getMaskapai();
                        kotaAsal = dataTiket.getKotaAsal();
                        kotaTujuan = dataTiket.getKotaTujuan();
                        hargaTiket = Long.toString(dataTiket.getHargaTiket());
                        stok = Integer.toString(dataTiket.getStokTiket());;
                        keterangan = "<br>";
                    } else {
                        keterangan = "Kode tiket tersebut tidak ada";
                    }
                } else {
                    keterangan = "Tidak ada yang dipilih";
                }
            }

            String kontenLihat = "";
            if (tombol.equals("Lihat") || tombol.equals("Sebelum") || tombol.equals("Berikutnya") || tombol.equals("Tampilkan")) {
                kontenLihat += "<center>";
                kontenLihat += "<div class='tbl'>";
                kontenLihat += "<table>";
                if (tombol.equals("Sebelum")) {
                    mulai -= jumlah;
                    if (mulai < 0) {
                        mulai = 0;
                    }
                }

                if (tombol.equals("Berikutnya")) {
                    mulai += jumlah;
                }

                Object[][] listDataTiket = null;
                if (dataTiket.bacaData(mulai, jumlah)) {
                    listDataTiket = dataTiket.getList();
                } else {
                    keterangan = dataTiket.getPesan();
                }
                if (listDataTiket != null) {
                    for (int i = 0; i < listDataTiket.length; i++) {

                        kontenLihat += "<tr>";
                        kontenLihat += "<td>";
                        if (i == 0) {
                            kontenLihat += "<input type='radio' checked name='kodeTiketDipilih' value='" + listDataTiket[i][0].toString() + "'>";
                        } else {
                            kontenLihat += "<input type='radio' name='kodeTiketDipilih' value='" + listDataTiket[i][0].toString() + "'>";
                        }
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][0].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][1].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][2].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][3].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][5].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "</tr>";
                    }
                }
                kontenLihat += "</table>";
                kontenLihat += "</div>";
                kontenLihat += "</center>";
                kontenLihat += "<center>";
                kontenLihat += "<input id='sebelum' type='submit' name='tombol' value='Sebelum'>";
                kontenLihat += "<input id='pilih' type='submit' name='tombol' value='Pilih'>";
                kontenLihat += "<input id='sesudah' type='submit' name='tombol' value='Berikutnya'>";
                kontenLihat += "</center>";
                kontenLihat += "<center>";
                kontenLihat += "Mulai <input id='mulai' type='text' name='mulai' value=" + mulai + "> ";
                kontenLihat += "Jumlah";
                kontenLihat += "<select id='jml' name='jumlah'>";
                for (int i = 1; i <= 10; i++) {
                    if (jumlah == (i * 10)) {
                        kontenLihat += "<option selected value=" + i * 10 + ">" + i * 10 + "</option>";
                    } else {
                        kontenLihat += "<option value=" + i * 10 + ">" + i * 10 + "</option>";
                    }
                }
                kontenLihat += "</select>";
                kontenLihat += "<input id='tampil' type='submit' name='tombol' value='Tampilkan'>";
                kontenLihat += "</center>";
            }

            String konten = "<center><h1>Master Data Tiket</h1></center>";
            konten += "<form action='DataTiketController' method='post'>";
            konten += "<label for='kodeTiket'><b>Kode Tiket</b></label><br>";
            konten += "<input type='text'  value='" + kodeTiket + "' name='kodeTiket' maxlength='15' size='15' placeholder='Masukkan Kode Tiket ..' style='width: 70%'><input type='submit' name='tombol' value='Cari' style='width: 28%; float: right'>";
            konten += "<label for='maskapai'><b>Nama Maskapai</b></label>";
            konten += "<input type='text' value='" + maskapai + "' name='maskapai' maxlength='30' size='30' placeholder='Masukkan Nama Maskapai ..'>";            
            konten += "<label for='kotaAsal'><b>Kota Asal</b></label>";
            konten += "<input type='text' value='" + kotaAsal + "' name='kotaAsal' maxlength='100' size='30' placeholder='Masukkan Kota Asal ..'>"; 
            konten += "<label for='kotaTujuan'><b>Kota Tujuan</b></label>";
            konten += "<input type='text' value='" + kotaTujuan + "' name='kotaTujuan' maxlength='100' size='30' placeholder='Masukkan Kota Tujuan ..'>"; 
            konten += "<label for='hargaTiket'><b>Harga Tiket</b></label>";
            konten += "<input type='number' value='" + hargaTiket + "' name='hargaTiket' placeholder='Masukkan Harga Tiket ..'>";
            konten += "<label for='stok'><b>Stok Tiket</b></label>";
            konten += "<input type='number' name='stok' value='" + stok + "' placeholder='Masukkan Stok Tiket ..'>";            
            konten += "<p><font style='color:red'><b>" + keterangan.replaceAll("n", "<br>").replaceAll(";", ",") + "</b></font></p>";
            
            konten += "<center><input id='simpan' type='submit' name='tombol' value='Simpan'>";
            konten += "<input id='hapus' type='submit' name='tombol' value='Hapus'>";
            konten += "<input id='lihat' type='submit' name='tombol' value='Lihat'></center>";
            konten += kontenLihat;
            konten += "</form>";

            new MainForm().tampilkan(konten, request, response);
        } else {
            response.sendRedirect(".");
        }
    }


Output:

Data Customer

Source Code DataCustomerController.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        HttpSession session = request.getSession(true);
        DataCustomer dataCustomer = new DataCustomer();
        String userName = "";

        String tombol = request.getParameter("tombol");
        String namaCustomer = request.getParameter("nama");
        String alamatCustomer = request.getParameter("alamat");
        String telpon = request.getParameter("telepon");
        String mulaiParameter = request.getParameter("mulai");
        String jumlahParameter = request.getParameter("jumlah");
        String namaCustomerDipilih = request.getParameter("namaCustomerDipilih");

        if (tombol == null) {
            tombol = "";
        }
        if (namaCustomer == null) {
            namaCustomer = "";
        }
        if (alamatCustomer == null) {
            alamatCustomer = "";
        }
        if (telpon == null) {
            telpon = "";
        }
        if (namaCustomerDipilih == null) {
            namaCustomerDipilih = "";
        }

        int mulai = 0, jumlah = 10;

        try {
            mulai = Integer.parseInt(mulaiParameter);
        } catch (NumberFormatException ex) {
        }

        try {
            jumlah = Integer.parseInt(jumlahParameter);
        } catch (NumberFormatException ex) {
        }

        String keterangan = "<br>";

        try {
            userName = session.getAttribute("userName").toString();
        } catch (Exception ex) {
        }

        if (!((userName == null) || userName.equals(""))) {
            if (tombol.equals("Simpan")) {
                if (!namaCustomer.equals("")) {
                    dataCustomer.setNamaCustomer(namaCustomer);
                    dataCustomer.setAlamatCustomer(alamatCustomer);
                    dataCustomer.setTelpCustomer(telpon);

                    if (dataCustomer.simpan()) {
                        namaCustomer = "";
                        alamatCustomer = "";
                        telpon = "";
                        keterangan = "Sudah tersimpan";
                    } else {
                        keterangan = "Gagal menyimpan:n" + dataCustomer.getPesan();
                    }
                } else {
                    keterangan = "Gagal menyimpan, nama customer tidak boleh kosong";
                }
            } else if (tombol.equals("Hapus")) {
                if (!namaCustomer.equals("")) {
                    if (dataCustomer.hapus(namaCustomer)) {
                        namaCustomer = "";
                        alamatCustomer = "";
                        telpon = "";
                         keterangan = "Data sudah dihapus";
                    } else {
                        keterangan = "Nama Customer tersebut tidak ada, atau ada kesalahan:n" + dataCustomer.getPesan();
                    }
                } else {
                    keterangan = "Nama Customer masih kosong";
                }
            } else if (tombol.equals("Cari")) {
                if (!namaCustomer.equals("")) {
                    if (dataCustomer.baca(namaCustomer)) {
                        namaCustomer = dataCustomer.getNamaCustomer();
                        alamatCustomer = dataCustomer.getAlamatCustomer();
                        telpon = dataCustomer.getTelpCustomer();
                        keterangan = "<br>";
                    } else {
                        keterangan = "Nama Customer tersebut tidak ada";
                    }
                } else {
                    keterangan = "Nama Customer masih kosong";
                }
            } else if (tombol.equals("Pilih")) {
                namaCustomer = namaCustomerDipilih;
                alamatCustomer = "";
                telpon = "";
                if (!namaCustomerDipilih.equals("")) {
                    if (dataCustomer.baca(namaCustomerDipilih)) {
                        namaCustomer = dataCustomer.getNamaCustomer();
                        alamatCustomer = dataCustomer.getAlamatCustomer();
                        telpon = dataCustomer.getTelpCustomer();
                        keterangan = "<br>";
                    } else {
                        keterangan = "Nama Customer tersebut tidak ada";
                    }
                } else {
                    keterangan = "Tidak ada yang dipilih";
                }
            }

            String kontenLihat = "";
            if (tombol.equals("Lihat") || tombol.equals("Sebelum") || tombol.equals("Setelah") || tombol.equals("Tampilkan")) {
                kontenLihat += "<center>";
                kontenLihat += "<div class='tbl'>";
                kontenLihat += "<table>";

                if (tombol.equals("Sebelum")) {
                    mulai -= jumlah;
                    if (mulai < 0) {
                        mulai = 0;
                    }
                }

                if (tombol.equals("Setelah")) {
                    mulai += jumlah;
                }

                Object[][] listDataCustomer = null;
                if (dataCustomer.bacaData(mulai, jumlah)) {
                    listDataCustomer = dataCustomer.getList();
                } else {
                    keterangan = dataCustomer.getPesan();
                }

                if (listDataCustomer != null) {
                    for (int i = 0; i < listDataCustomer.length; i++) {

                        kontenLihat += "<tr>";
                        kontenLihat += "<td>";
                        if (i == 0) {
                            kontenLihat += "<input type='radio' checked name='namaCustomerDipilih' value='" + listDataCustomer[i][1].toString() + "'>";
                        } else {
                            kontenLihat += "<input type='radio' name='namaCustomerDipilih' value='" + listDataCustomer[i][1].toString() + "'>";
                        }
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataCustomer[i][1].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "</tr>";
                    }
                }

                kontenLihat += "</table>";
                kontenLihat += "</div>";
                kontenLihat += "</center>";

                kontenLihat += "<center>";
                kontenLihat += "<input id='sebelum' type='submit' name='tombol' value='Sebelum'>";
                kontenLihat += "<input id='pilih' type='submit' name='tombol' value='Pilih'>";
                kontenLihat += "<input id='sesudah' type='submit' name='tombol' value='Berikutnya'>";
                kontenLihat += "</center>";
                kontenLihat += "<center>";
                kontenLihat += "Mulai <input id='mulai' type='text' name='mulai' value=" + mulai + "> ";
                kontenLihat += "Jumlah";
                kontenLihat += "<select id='jml' name='jumlah'>";
                for (int i = 1; i <= 10; i++) {
                    if (jumlah == (i * 10)) {
                        kontenLihat += "<option selected value=" + i * 10 + ">" + i * 10 + "</option>";
                    } else {
                        kontenLihat += "<option value=" + i * 10 + ">" + i * 10 + "</option>";
                    }
                }
                kontenLihat += "</select>";
                kontenLihat += "<input id='tampil' type='submit' name='tombol' value='Tampilkan'>";
                kontenLihat += "</center>";
            }

            String konten = "<center><h1>Master Data Customer</h1></center>";
            konten += "<form action='DataCustomerController' method='post'>";            
            konten += "<label for='nama'><b>Nama Customer</b></label><br>";
            konten += "<input type='text'  value='" + namaCustomer + "' name='nama' maxlength='30' size='15' placeholder='Masukkan Nama Customer..' style='width: 70%'><input type='submit' name='tombol' value='Cari' style='width: 28%; float: right'>";
            konten += "<label for='telepon'><b>Telepon</b></label>";
            konten += "<input type='tel' value='"+telpon+"' name='telepon' placeholder='Masukkan Nomor Telepon..'>";
            konten += "<label for='alamat'><b>Alamat</b></label>";
            konten += "<textarea name='alamat' rows='3' cols='30' placeholder='Masukkan Alamat..' style='font: unset;'>"+alamatCustomer+"</textarea>";           
            konten += "<p><font style='color:red'><b>" + keterangan.replaceAll("n", "<br>").replaceAll(";", ",") + "</b></font></p>";
           
            konten += "<center><input id='simpan' type='submit' name='tombol' value='Simpan'>";
            konten += "<input id='hapus' type='submit' name='tombol' value='Hapus'>";
            konten += "<input id='lihat' type='submit' name='tombol' value='Lihat'></center>";
            konten += kontenLihat;
            konten += "</form>";

            new MainForm().tampilkan(konten, request, response);
        } else {
            response.sendRedirect(".");
        }
    }


Output:

Data User

Source Code DataUserController.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        HttpSession session = request.getSession(true);
        DataUser dataUser = new DataUser();
        Enkripsi enkripsi = new Enkripsi();
        String userName = "";

        String tombol = request.getParameter("tombol");
        String namaUser = request.getParameter("nama");
        String passwordUser = request.getParameter("password");
        String mulaiParameter = request.getParameter("mulai");
        String jumlahParameter = request.getParameter("jumlah");
        String namaUserDipilih = request.getParameter("namaUserDipilih");

        if (tombol == null) {
            tombol = "";
        }
        if (namaUser == null) {
            namaUser = "";
        }
        if (passwordUser == null) {
            passwordUser = "";
        }
        if (namaUserDipilih == null) {
            namaUserDipilih = "";
        }

        int mulai = 0, jumlah = 10;

        try {
            mulai = Integer.parseInt(mulaiParameter);
        } catch (NumberFormatException ex) {
        }

        try {
            jumlah = Integer.parseInt(jumlahParameter);
        } catch (NumberFormatException ex) {
        }

        String keterangan = "<br>";

        try {
            userName = session.getAttribute("userName").toString();
        } catch (Exception ex) {
        }

        if (!((userName == null) || userName.equals(""))) {
            if (tombol.equals("Simpan")) {
                if (!namaUser.equals("")) {
                    dataUser.setUsername(namaUser);
                    String passwordEcrypted = "";
                    try {
                        passwordEcrypted = enkripsi.hashMD5(passwordUser);
                    } catch (Exception ex) {
                    }
                    dataUser.setPassword(passwordEcrypted);

                    if (dataUser.simpan()) {
                        namaUser = "";
                        passwordUser = "";
                        keterangan = "Sudah tersimpan";
                    } else {
                        keterangan = "Gagal menyimpan:n" + dataUser.getPesan();
                    }
                } else {
                    keterangan = "Gagal menyimpan, username tidak boleh kosong";
                }
            } else if (tombol.equals("Hapus")) {
                if (!namaUser.equals("")) {
                    if (dataUser.hapus(namaUser)) {
                        namaUser = "";
                        passwordUser = "";
                        keterangan = "Data sudah dihapus";
                    } else {
                        keterangan = "Username tersebut tidak ada, atau ada kesalahan:n" + dataUser.getPesan();
                    }
                } else {
                    keterangan = "Username masih kosong";
                }
            } else if (tombol.equals("Cari")) {
                if (!namaUser.equals("")) {
                    if (dataUser.baca(namaUser)) {
                        namaUser = dataUser.getUsername();
                        passwordUser = dataUser.getPassword();
                        keterangan = "<br>";
                    } else {
                        keterangan = "Username tersebut tidak ada";
                    }
                } else {
                    keterangan = "Username masih kosong";
                }
            } else if (tombol.equals("Pilih")) {
                namaUser = namaUserDipilih;
                passwordUser = "";
                if (!namaUserDipilih.equals("")) {
                    if (dataUser.baca(namaUserDipilih)) {
                        namaUser = dataUser.getUsername();
                        passwordUser = dataUser.getPassword();
                        keterangan = "<br>";
                    } else {
                        keterangan = "Username tersebut tidak ada";
                    }
                } else {
                    keterangan = "Tidak ada yang dipilih";
                }
            }

            String kontenLihat = "";
            if (tombol.equals("Lihat") || tombol.equals("Sebelum") || tombol.equals("Berikutnya") || tombol.equals("Tampilkan")) {
                kontenLihat += "<center>";
                kontenLihat += "<div class='tbl'>";
                kontenLihat += "<table>";

                if (tombol.equals("Sebelum")) {
                    mulai -= jumlah;
                    if (mulai < 0) {
                        mulai = 0;
                    }
                }

                if (tombol.equals("Berikutnya")) {
                    mulai += jumlah;
                }

                Object[][] listDataUser = null;
                if (dataUser.bacaData(mulai, jumlah)) {
                    listDataUser = dataUser.getList();
                } else {
                    keterangan = dataUser.getPesan();
                }

                if (listDataUser != null) {
                    for (int i = 0; i < listDataUser.length; i++) {

                        kontenLihat += "<tr>";
                        kontenLihat += "<td>";
                        if (i == 0) {
                            kontenLihat += "<input type='radio' checked name='namaUserDipilih' value='" + listDataUser[i][0].toString() + "'>";
                        } else {
                            kontenLihat += "<input type='radio' name='namaUserDipilih' value='" + listDataUser[i][0].toString() + "'>";
                        }
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataUser[i][0].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "</tr>";
                    }
                }

                kontenLihat += "</table>";
                kontenLihat += "</div>";
                kontenLihat += "</center>";

                kontenLihat += "<center>";
                kontenLihat += "<input id='sebelum' type='submit' name='tombol' value='Sebelum'>";
                kontenLihat += "<input id='pilih' type='submit' name='tombol' value='Pilih'>";
                kontenLihat += "<input id='sesudah' type='submit' name='tombol' value='Berikutnya'>";
                kontenLihat += "</center>";
                kontenLihat += "<center>";
                kontenLihat += "Mulai <input id='mulai' type='text' name='mulai' value=" + mulai + "> ";
                kontenLihat += "Jumlah";
                kontenLihat += "<select id='jml' name='jumlah'>";
                for (int i = 1; i <= 10; i++) {
                    if (jumlah == (i * 10)) {
                        kontenLihat += "<option selected value=" + i * 10 + ">" + i * 10 + "</option>";
                    } else {
                        kontenLihat += "<option value=" + i * 10 + ">" + i * 10 + "</option>";
                    }
                }
                kontenLihat += "</select>";
                kontenLihat += "<input id='tampil' type='submit' name='tombol' value='Tampilkan'>";
                kontenLihat += "</center>";
            }

            String konten = "<center><h1>Master Data User</h1></center>";
            konten += "<form action='DataUserController' method='post'>";            
            konten += "<label for='nama'><b>Username</b></label><br>";
            konten += "<input type='text'  value='" + namaUser + "' name='nama' maxlength='30' placeholder='Masukkan Username..' size='15' style='width: 70%'><input type='submit' name='tombol' value='Cari' style='width: 28%; float: right'>";            
            konten += "<label for='nama'><b>Passsword</b></label>";
            konten += "<input type='password'   name='password' value='" + passwordUser + "' size='15' placeholder='Masukkan Password..'>";
            konten += "<p><font style='color:red'><b>" + keterangan.replaceAll("n", "<br>").replaceAll(";", ",") + "</b></font></p>";
           
            konten += "<center><input id='simpan' type='submit' name='tombol' value='Simpan'>";
            konten += "<input id='hapus' type='submit' name='tombol' value='Hapus'>";
            konten += "<input id='lihat' type='submit' name='tombol' value='Lihat'></center>";
            konten += kontenLihat;
            konten += "</form>";
            new MainForm().tampilkan(konten, request, response);
        } else {
            response.sendRedirect(".");
        }


Output:


Membuat Form Data Transaksi (PenjualanTiket)

Source Code PenjualanTiketController.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        HttpSession session = request.getSession(true);
        DataCustomer dataCustomer = new DataCustomer();
        DataTiket dataTiket = new DataTiket();
        PenjualanTiket rentalTiket = new PenjualanTiket();
        Date tgl = new Date();
        int idCustomer = 0;
        long total = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String userName = "";

        String tombol = request.getParameter("tombol");
        String tombolHitung = request.getParameter("hitung");
        String tombolCustomer = request.getParameter("tombolCustomer");
        String kodePenjualanTiket = request.getParameter("kodePenjualanTiket");
        String namaCustomer = request.getParameter("namaCustomer");
        String tanggal = request.getParameter("tanggal");
        String kasir = request.getParameter("kasir");
        String mulaiParameter = request.getParameter("mulai");
        String jumlahParameter = request.getParameter("jumlah");
        String namaCustomerDipilih = request.getParameter("namaCustomerDipilih");
        String tombolDataTiket = request.getParameter("tombolDataTiket");
        String kodeTiket = request.getParameter("kodeTiket");
        String maskapai = request.getParameter("maskapai");
        String hargaTiket = request.getParameter("hargaTiket");
        String kotaAsal = request.getParameter("kotaAsal");
        String kotaTujuan = request.getParameter("kotaTujuan");
        String kodeTiketDipilih = request.getParameter("kodeTiketDipilih");
        String jml = request.getParameter("jml");

        if (tombol == null) {
            tombol = "";
        }
        if (kodePenjualanTiket == null) {
            kodePenjualanTiket = "";
        }
        if (tombolHitung == null) {
            tombolHitung = "";
        }
        if (tombolCustomer == null) {
            tombolCustomer = "";
        }
        if (namaCustomer == null) {
            namaCustomer = "";
        }
        if (tanggal == null) {
            tanggal = sdf.format(tgl);
        }
        if (kasir == null) {
            kasir = "kasir";
        }
        if (namaCustomerDipilih == null) {
            namaCustomerDipilih = "";
        }
        if (tombolDataTiket == null) {
            tombolDataTiket = "";
        }
        if (kodeTiket == null) {
            kodeTiket = "";
        }
        if (maskapai == null) {
            maskapai = "";
        }
        if (hargaTiket == null) {
            hargaTiket = "0";
        }
        if (kotaAsal == null) {
            kotaAsal = "";
        }
        if (kotaTujuan == null) {
            kotaTujuan = "";
        }
        if (kodeTiketDipilih == null) {
            kodeTiketDipilih = "";
        }
        if (jml == null) {
            jml = "0";
        }

        int mulai = 0, jumlah = 10;

        try {
            mulai = Integer.parseInt(mulaiParameter);
        } catch (NumberFormatException ex) {
        }

        try {
            jumlah = Integer.parseInt(jumlahParameter);
        } catch (NumberFormatException ex) {
        }

        String keterangan = "<br>";

        try {
            userName = session.getAttribute("userName").toString();
        } catch (Exception ex) {
        }

        if (!((userName == null) || userName.equals(""))) {
            kasir = userName;

            if (tombolCustomer.equals("Cari")) {
                if (!namaCustomer.equals("")) {
                    if (dataCustomer.baca(namaCustomer)) {
                        namaCustomer = dataCustomer.getNamaCustomer();
                        idCustomer = dataCustomer.getIdCustomer();
                        keterangan = "<br>";
                    } else {
                        tanggal = sdf.format(tgl);
                        kasir = "kasir";
                        keterangan = "Nama Customer: <i>" + namaCustomer + "</i> tidak ada";
                    }
                } else {
                    keterangan = "Nama Customer harus diisi";
                }
            } else if (tombolCustomer.equals("Pilih")) {
                namaCustomer = namaCustomerDipilih;
                tanggal = sdf.format(tgl);
                if (!namaCustomerDipilih.equals("")) {
                    if (dataCustomer.baca(namaCustomerDipilih)) {
                        namaCustomer = dataCustomer.getNamaCustomer();
                        idCustomer = dataCustomer.getIdCustomer();
                        keterangan = "<br>";
                    } else {
                        keterangan = "Nama Customer: <i>" + namaCustomer + "</i> tidak ada";
                    }
                } else {
                    keterangan = "Tidak ada yang dipilih";
                }
            }

            String kontenLihat = "";
            if (tombolCustomer.equals("Lihat") || tombolCustomer.equals("Sebelum") || tombolCustomer.equals("Berikutnya") || tombolCustomer.equals("Tampilkan")) {
                kontenLihat += "<center>";
                kontenLihat += "<div class='tbl'>";
                kontenLihat += "<table>";

                if (tombolCustomer.equals("Sebelum")) {
                    mulai -= jumlah;
                    if (mulai < 0) {
                        mulai = 0;
                    }
                }

                if (tombolCustomer.equals("Berikutnya")) {
                    mulai += jumlah;
                }

                Object[][] listDataCustomer = null;
                if (dataCustomer.bacaData(mulai, jumlah)) {
                    listDataCustomer = dataCustomer.getList();
                } else {
                    keterangan = dataCustomer.getPesan();
                }

                if (listDataCustomer != null) {
                    for (int i = 0; i < listDataCustomer.length; i++) {
                        kontenLihat += "<tr>";
                        kontenLihat += "<td>";
                        if (i == 0) {
                            kontenLihat += "<input type='radio' checked name='namaCustomerDipilih' value='" + listDataCustomer[i][1].toString() + "'>";
                        } else {
                            kontenLihat += "<input type='radio' name='namaCustomerDipilih' value='" + listDataCustomer[i][1].toString() + "'>";
                        }
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataCustomer[i][1].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "</tr>";
                    }
                }
                kontenLihat += "</table>";
                kontenLihat += "</div>";
                kontenLihat += "</center>";

                kontenLihat += "<center>";
                kontenLihat += "<input id='sebelum' type='submit' name='tombolCustomer' value='Sebelum'>";
                kontenLihat += "<input id='pilih' type='submit' name='tombolCustomer' value='Pilih'>";
                kontenLihat += "<input id='sesudah' type='submit' name='tombolCustomer' value='Berikutnya'>";
                kontenLihat += "</center>";
                kontenLihat += "<center>";
                kontenLihat += "Mulai <input id='mulai' type='text' name='mulai' value=" + mulai + "> ";
                kontenLihat += "Jumlah";
                kontenLihat += "<select id='jml' name='jumlah'>";
                for (int i = 1; i <= 10; i++) {
                    if (jumlah == (i * 10)) {
                        kontenLihat += "<option selected value=" + i * 10 + ">" + i * 10 + "</option>";
                    } else {
                        kontenLihat += "<option value=" + i * 10 + ">" + i * 10 + "</option>";
                    }
                }
                kontenLihat += "</select>";
                kontenLihat += "<input id='tampil' type='submit' name='tombolCustomer' value='Tampilkan'>";
                kontenLihat += "</center>";
            }

            if (tombolDataTiket.equals("Cari")) {
                if (!kodeTiket.equals("")) {
                    if (dataTiket.baca(kodeTiket)) {
                        kodeTiket = dataTiket.getKodeTiket();
                        maskapai = dataTiket.getMaskapai();
                        kotaAsal = dataTiket.getKotaAsal();
                        kotaTujuan = dataTiket.getKotaTujuan();
                        hargaTiket = Long.toString(dataTiket.getHargaTiket());
                        keterangan = "<br>";
                    } else {
                        keterangan = "Kode Barang tersebut tidak ada";
                    }
                } else {
                    keterangan = "Kode Barang masih kosong";
                }
            } else if (tombolDataTiket.equals("Pilih")) {
                kodeTiket = kodeTiketDipilih;
                maskapai = "";
                hargaTiket = "0";
                jml = "0";
                if (!kodeTiketDipilih.equals("")) {
                    if (dataTiket.baca(kodeTiketDipilih)) {
                        kodeTiket = dataTiket.getKodeTiket();
                        maskapai = dataTiket.getMaskapai();
                        kotaAsal = dataTiket.getKotaAsal();
                        kotaTujuan = dataTiket.getKotaTujuan();
                        hargaTiket = Long.toString(dataTiket.getHargaTiket());
                        keterangan = "<br>";
                    } else {
                        keterangan = "Kode barang tersebut tidak ada";
                    }
                } else {
                    keterangan = "Tidak ada yang dipilih";
                }
            }

            if (tombolDataTiket.equals("Lihat") || tombolDataTiket.equals("Sebelum") || tombolDataTiket.equals("Berikutnya") || tombolDataTiket.equals("Tampilkan")) {
                kontenLihat += "<center>";
                kontenLihat += "<div class='tbl'>";
                kontenLihat += "<table>";

                if (tombolDataTiket.equals("Sebelum")) {
                    mulai -= jumlah;
                    if (mulai < 0) {
                        mulai = 0;
                    }
                }

                if (tombolDataTiket.equals("Berikutnya")) {
                    mulai += jumlah;
                }

                Object[][] listDataTiket = null;
                if (dataTiket.bacaData(mulai, jumlah)) {
                    listDataTiket = dataTiket.getList();
                } else {
                    keterangan = dataTiket.getPesan();
                }

                if (listDataTiket != null) {
                    for (int i = 0; i < listDataTiket.length; i++) {
                        kontenLihat += "<tr>";
                        kontenLihat += "<td>";
                        if (i == 0) {
                            kontenLihat += "<input type='radio' checked name='kodeTiketDipilih' value='" + listDataTiket[i][0].toString() + "'>";
                        } else {
                            kontenLihat += "<input type='radio' name='kodeTiketDipilih' value='" + listDataTiket[i][0].toString() + "'>";
                        }
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][0].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][1].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][2].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][3].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "<td>";
                        kontenLihat += listDataTiket[i][5].toString();
                        kontenLihat += "</td>";
                        kontenLihat += "</tr>";
                    }
                }
                kontenLihat += "</table>";
                kontenLihat += "</div>";
                kontenLihat += "</center>";

                kontenLihat += "<center>";
                kontenLihat += "<input id='sblm' type='submit' name='tombolDataTiket' value='Sebelum'>";
                kontenLihat += "<input id='plh' type='submit' name='tombolDataTiket' value='Pilih'>";
                kontenLihat += "<input id='ssdh' type='submit' name='tombolDataTiket' value='Berikutnya'>";
                kontenLihat += "</center>";
                kontenLihat += "<center>";
                kontenLihat += "Mulai <input id='mulai' type='text' name='mulai' value=" + mulai + "> ";
                kontenLihat += "Jumlah";
                kontenLihat += "<select id='jml' name='jumlah'>";
                for (int i = 1; i <= 10; i++) {
                    if (jumlah == (i * 10)) {
                        kontenLihat += "<option selected value=" + i * 10 + ">" + i * 10 + "</option>";
                    } else {
                        kontenLihat += "<option value=" + i * 10 + ">" + i * 10 + "</option>";
                    }
                }
                kontenLihat += "</select>";
                kontenLihat += "<input id='tampil' type='submit' name='tombolDataTiket' value='Tampilkan'>";
                kontenLihat += "</center>";
            }

            if (!tombol.equals("")) {
                if (tombol.equals("Simpan")) {
                    if (!namaCustomer.equals("") && !kodeTiket.equals("")) {
                        rentalTiket.setKodePenjualan(kodePenjualanTiket);
                        dataCustomer.setNamaCustomer(namaCustomer);
                        if(dataCustomer.baca(namaCustomer)){
                            idCustomer=dataCustomer.getIdCustomer();
                        }
                        rentalTiket.setListPenjualan(new Object[][]{{kodePenjualanTiket, tanggal, idCustomer, kasir, kodeTiket, Integer.parseInt(jml)}});
                        if (rentalTiket.simpan()) {
                            //namaCustomer = "";
                            tanggal = sdf.format(tgl);
                            kasir = userName;
                            kodeTiket = "";
                            maskapai = "";
                            hargaTiket = "0";
                            jml="0";
                            keterangan = "Sudah disimpan";
                        } else {
                            keterangan = "Gagal menyimpan:n" + rentalTiket.getPesan();
                        }
                    } else {
                        keterangan = "Kode RentalTiket, Nama Customer dan kode barang tidak boleh kosong";
                    }
                } else if (tombol.equals("Hapus")) {
                    if (!namaCustomer.equals("") && !kodeTiket.equals("")) {
                        if (rentalTiket.hapus(kodePenjualanTiket, kodeTiket)) {
                            kodePenjualanTiket="";
                            namaCustomer = "";
                            tanggal = sdf.format(tgl);
                            kasir = userName;
                            kodeTiket = "";
                            maskapai = "";
                            hargaTiket = "0";
                            jml = "0";
                            keterangan = "Sudah dihapus";
                        } else {
                            keterangan = "Gagal menghapus:n" + rentalTiket.getPesan();
                        }
                    } else {
                        keterangan = "Kode RentalTiket, Nama Customer dan kode barang tidak boleh kosong";
                    }
                }else if(tombol.equals("Reset")){
                            kodePenjualanTiket="";
                            namaCustomer = "";
                            tanggal = sdf.format(tgl);
                            kasir = userName;
                            kodeTiket = "";
                            maskapai = "";
                            hargaTiket = "0";
                            jml = "0";
                }
            }

            String konten = "<center><h1>Input Data Rental  Tiket</h1></center>";
            konten += "<form action='PenjualanTiketController' method='post'>";
            konten += "<label for='kodePenjualanTiket'><b>No. Penjualan Tiket</b></label><br>";
            konten += "<input type='text'  value='" + kodePenjualanTiket + "' maxlength='15' name='kodePenjualanTiket' placeholder='Masukkan Kode Penjualan Tiket ..'>";            
            konten += "<label for='namaCustomer'><b>Nama Customer</b></label><br>";
            konten += "<input type='text' value='" + namaCustomer + "' name='namaCustomer' maxlength='15' placeholder='Masukkan Nama Customer ..' style='width: 59%'>";
            konten += "<input type='submit' name='tombolCustomer' value='Cari' style='width: 19%; margin: 5px'><input type='submit' name='tombolCustomer' value='Lihat' style='width: 19%'>";
            
            if (!tombolCustomer.equals("")) {
                if (!keterangan.equals("<br>")) {
                    konten += "<p><font style='color:red'><b>" + keterangan.replaceAll("n", "<br>").replaceAll(";", ",") + "</b></font></p>";
                }
                konten += kontenLihat;
            }
          
            konten += "<label for='tanggal'><b>Tanggal</b></label>";
            konten += "<input type='date' readonly value='" + tanggal + "' name='tanggal'>";            
            konten += "<label for='kasir'><b>Kasir</b></label>";
            konten += "<input type='text' readonly value='" + kasir + "' name='kasir'>";
            konten += "<label for='kodeTiket'><b>Kode Tiket</b></label><br>";
            konten += "<input type='text' value='" + kodeTiket + "' name='kodeTiket' maxlength='15' placeholder='Masukkan Kode Tiket..' style='width: 59%'>";
            konten += "<input type='submit' name='tombolDataTiket' value='Cari' style='width: 19%; margin: 5px'><input type='submit' name='tombolDataTiket' value='Lihat' style='width: 19%'>";
            
            if (!tombolDataTiket.equals("")) {
                if (!keterangan.equals("<br>")) {
                    konten += "<p><font style='color:red'><b>" + keterangan.replaceAll("n", "<br>").replaceAll(";", ",") + "</b></font></p>";
                }
                konten += kontenLihat;
            }

            konten += "<label for='maskapai'><b>Nama Maskapai</b></label>";
            konten += "<input type='text' readonly value='" + maskapai + "' name='maskapai' placeholder='Nama Maskapai..'>";
            konten += "<label for='kotaAsal'><b>Kota Asal</b></label>";
            konten += "<input type='text' readonly value='" + kotaAsal + "' name='kotaAsal' placeholder='Kota Asal..'>";
            konten += "<label for='kotaTujuan'><b>Kota Tujuan</b></label>";
            konten += "<input type='text' readonly value='" + kotaTujuan + "' name='kotaTujuan' placeholder='Kota Tujuan..'>";
            konten += "<label for='hargaTiket'><b>Harga Rp.</b></label>";
            konten += "<input type='number' readonly value='" + hargaTiket + "' name='hargaTiket'>";
            konten += "<label for='jml'><b>Jumlah Unit</b></label>";
            konten += "<input type='number' min='0' value='" + jml + "' name='jml' placeholder='Masukkan Jumlah Unit ..'>";
            int nilaiJml = 0;
            long nilaiHarga = 0;
            try {
                nilaiJml = Integer.parseInt(jml);
            } catch (NumberFormatException ex) {
            }
            try {
                nilaiHarga = Long.parseLong(hargaTiket);
            } catch (NumberFormatException ex) {
            }
            if (tombolHitung.equalsIgnoreCase("Hitung")) {
                total = nilaiHarga * nilaiJml;
            }

            konten += "<label for='bayar'><b>Total Rp.</b></label><br>";
            konten += "<input type='number' min='0' name='bayar'  readonly value='" + Long.toString(total) + "' style='width: 70%'>"
                    + "<input type='submit' name='hitung' value='Hitung' style='width: 28%; float: right'>";
            konten += "<center><input id='simpan' type='submit' name='tombol' value='Simpan'>";
            konten += "<input id='hapus' type='submit' name='tombol' value='Hapus'>";
            konten += "<input id='lihat' type='submit' name='tombol' value='Reset'></center>";
            if (!tombol.equals("") && !keterangan.equals("<br>")) {
                konten += "<tr>";
                konten += "<p><font style='color:red'><b>" + keterangan.replaceAll("n", "<br>").replaceAll(";", ",") + "</b></font></p>";
                konten += "</tr>";
            }
            konten += "</form>";

            new MainForm().tampilkan(konten, request, response);
        } else {
            response.sendRedirect(".");
        }
    }


Output:


Membuat Laporan

Laporan Penjualan Tiket

Source Code LaporanPenjualanTiketController.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
String[][] formatTypeData = {{"PDF (Portable Document Format)","pdf","application/pdf"},
            {"XLSX (Microsoft Excel)","xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
            {"XLS (Microsoft Excel 97-2003)","xls","application/vnd.ms-excel"},
            {"DOCX (Microsoft Word)","docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"},
            {"ODT (OpenDocument Text)","odt","application/vnd.oasis.opendocument.text"},
            {"RTF (Rich Text Format)","rtf","text/rtf"}};
        
        Date tgl=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        HttpSession session = request.getSession(true);
        String userName = "";
        
        String tombol = request.getParameter("tombol");
        String opsi = request.getParameter("opsi");
        String kodePenjualanTiket = request.getParameter("koderental");
        String awalStr = request.getParameter("awal");
        String akhirStr=request.getParameter("akhir");
        String kelas = request.getParameter("kelas");
        String formatType = request.getParameter("formatType");
                
        if (tombol==null) tombol="";
        if (kodePenjualanTiket==null) kodePenjualanTiket="";
        if (opsi==null) opsi="";
        if (awalStr==null) awalStr="0";
        if (akhirStr==null) akhirStr="0";
        if (formatType==null) kelas="";
        
        String keterangan = "<br>";
        int noType = 0;
        
        for (int i=0; i<formatTypeData.length; i++){
            if (formatTypeData[i][0].equals(formatType)){
                noType = i;
            }
        }
        
        try {
            userName = session.getAttribute("userName").toString();
        } catch (Exception ex){}
        
        if (!((userName == null) || userName.equals(""))){
            boolean opsiSelected = false;
            
            if (tombol.equals("Cetak")){
                PenjualanTiket rentalMobil = new PenjualanTiket();
                
                Date awal=new Date(), akhir=new Date();
                  
                if (rentalMobil.cetakLaporan(opsi, kodePenjualanTiket, awalStr, akhirStr, formatTypeData[noType][1], getServletConfig().getServletContext().getRealPath("reports/PenjualanTiket.jrxml"))){
                    byte[] pdfasbytes = rentalMobil.getPdfasbytes();
                    try (OutputStream outStream = response.getOutputStream()) {
                        response.setHeader("Content-Disposition","inline; filename=LaporanPenjualanTiketMobil."+formatTypeData[noType][1]);
                        response.setContentType(formatTypeData[noType][2]);
                        
                        response.setContentLength(pdfasbytes.length);
                        outStream.write(pdfasbytes,0,pdfasbytes.length);
                        
                        outStream.flush();
                        outStream.close();
                    }
                } else {
                    keterangan += rentalMobil.getPesan();
                }
            }
            
            String konten = "<center><h1>Mencetak Laporan Penjualan Tiket</h1></center>";
            konten += "<form action='LaporanPenjualanTiketController' method='post'>";
            konten += "<table>";
            konten += "<tr>";
            if (opsi.equalsIgnoreCase("koderental")){
                konten += "<td align='right'><input type='radio' checked name='opsi' value='koderental'></td>";
                opsiSelected = true;
            } else {
                konten += "<td align='right'><input type='radio' name='opsi' value='koderental'></td>";
            }            
            konten += "<td align='left'>Kode Penjualan Tiket</td>";
            konten += "<td align='left'><input type='text' value='"+kodePenjualanTiket+"' name='koderental' maxlength='15' size='15' placeholder='Masukkan Kode PenjualanTiket'></td>";
            konten += "</tr>";
            
            konten += "<tr>";
            if(opsi.equalsIgnoreCase("tanggal")){
                konten+="<td align='right'><input type='radio' checked name='opsi' value='tanggal'></td>";
                opsiSelected=true;
            }else{
                konten+="<td align='right'><input type='radio' name='opsi' value='tanggal'></td>";
            }
            konten+="<td align='left'>Tanggal</td>";
            konten+="<td align='left'>"
                    + "<input type='date' name='awal' value='"+sdf.format(tgl)+"' style='width: 47%'> - "
                    + "<input type='date' name='akhir' value='"+sdf.format(tgl)+"' style='width: 47%'>"
                    + "</td>";
            
            konten += "</tr>";
                
            konten += "<tr>";
            if (!opsiSelected){
                konten += "<td align='right'><input type='radio' checked name='opsi' value='Semua'></td>";
            } else {
                konten += "<td align='right'><input type='radio' name='opsi' value='Semua'></td>";
            }
            konten += "<td align='left'>Semua</td>";
            konten += "<td><br></td>";            
            konten += "</tr>";
            
            konten += "<tr>";
            konten += "<td colspan='3'><br></td>";
            konten += "</tr>";
            
            konten += "<tr>";
            konten += "<td>Format Laporan</td>";
            konten += "<td colspan=2>";
            konten += "<select name='formatType'>";
            for (String[] formatLaporan : formatTypeData){
                if (formatLaporan[0].equals(formatType)){
                    konten += "<option selected value='"+formatLaporan[0]+"'>"+formatLaporan[0]+"</option>";
                } else {
                    konten += "<option value='"+formatLaporan[0]+"'>"+formatLaporan[0]+"</option>";
                }
            }
            konten += "</select>";
            konten += "</td>";
            konten += "</tr>";
            
            konten += "<tr>";
            konten += "<td colspan='3'><b>"+keterangan.replaceAll("n", "<br>").replaceAll(";", ",")+"</b></td>";
            konten += "</tr>";
            
            konten += "<tr>";
            konten += "<td colspan='3' align='center'><input type='submit' name='tombol' value='Cetak' style='width: 100px'></td>";
            konten += "</tr>";
            
            konten += "</table>";
            konten += "</form>";            
            
            new MainForm().tampilkan(konten, request, response);
        } else {
            response.sendRedirect(".");
        }    }


PenjualanTiket.jrxml

Output:




Laporan Stok Tiket

StokTiket.jrxml

Output:




Comments