UAS_Pemrograman2_NursaFitriah

 Nama : Nursa fitriah

NIM    : 181011401715

Aplikasi web Penjualan Kerudung

1. Buatlah project baru




2. Buatlah file CSS



#menu{

    color:blue;

    background-color: whitesmoke;    

}

#menu a:link, a:visited{

  width: 120px;

  text-decoration: none;

  background-color: #EEEEEE;

  color: #333333;

  padding: 2px 6px 2px 6px;

  border-top: 1px solid #CCCCCC;

  border-right: 1px solid #333333;

  border-bottom: 1px solid #333333;

  border-left: 1px solid #CCCCCC;

  display: inline-block;

 

}

 

#menu a:hover, a:active {

    background-color: red;

}

nav ul {

    list-style-type: none;

    margin: 0;

    padding: 0;

    overflow: hidden;

    background-color: #333;

}

 

nav li {

    float: left;

}

 

nav li a, nav a:visited, .dropbtn {

    display: inline-block;

    color: white;

    text-align: center;

    padding: 14px 16px;

    text-decoration: none;

}

 

nav li a:hover, .dropdown:hover .dropbtn {

    background-color: red;

}

 

nav li.dropdown {

    display: inline-block;

}

 

.dropdown-content {

    display: none;

    position: absolute;

    background-color: #f9f9f9;

    min-width: 160px;

    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);

}

 

.dropdown-content a, .dropdown-content a:visited {

    color: black;

    padding: 12px 16px;

    text-decoration: none;

    display: block;

    text-align: left;

}

 

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

 

.dropdown:hover .dropdown-content {

    display: block;

}

table#t01 tr:nth-child(even) {

    background-color: #eee;

}

table#t01 tr:nth-child(odd) {

   background-color:#fff;

}

table#t01 th{

    background-color: black;

    color: white;

}

3.  Buatlah menu



<link href='style.css' rel='stylesheet' type='text/css' />

<title>Aplikasi Penjualan Kerudung</title>

    </head>

    <body bgcolor="#808080">

        <%

            String menu="<br><b>Master Data</b><br>"

                    + "<a href=DataBarangController>Data Barang</a><br>"

                    + "<a href=DataCustomerController>Data Customer</a><br>"

                    + "<a href=DataUserController>Data User</a><br><br>"

                    + "<b>Transaksi</b><br>"

                    + "<a href=PenjualanController>Penjualan</a><br><br>"

                    + "<b>Laporan</b><br>"

                    + "<a href=LaporanPenjualanController>Penjualan</a><br>"

                    + "<a href=StokBarangController>Stok Barang</a><br><br>"

                    + "<a href=LoginController>Login</a><br><br>";

           

            String topMenu="<nav><ul>"

                    +"<li><a href=.>Home</a></li>"

                    +"<li class='dropdown'><a href=# class='dropbtn'>Master Data</a>"

                    +"<div class='dropdown-content'>"

                    +"<a href=DataBarangController>Data Barang</a>"

                    +"<a href=DataCustomerController>Data Customer</a>"

                    + "<a href=DataUserController>Data User</a>"

                    +"</div>"

                    +"</li>"

                    +"<li class='dropdown'><a href=# class='dropbtn'>Transaksi</a>"

                    +"<div class='dropdown-content'>"

                    +"<a href=PenjualanController>Penjualan</a>"

                    +"</div>"

                    +"</li>"

                    +"<li class='dropdown'><a href=# class='dropbtn'>Laporan</a>"

                    +"<div class='dropdown-content'>"

                    +"<a href=LaporanPenjualanController>Penjualan</a>"

                    + "<a href=StokBarangController>Stok Barang</a>"

                    +"</div>"

                    +"</li>"

                    +"<li><a href=LoginController style='text-align:right'>Login</a></li>"

                    +"</ul>"

                    +"</nav>";

           

            String konten="<br><h1>Selamat Datang</h1>";

            String userName="";

           

            if (!session.isNew()){

                try {

                    userName = session.getAttribute("userName").toString();

                } catch (Exception ex){}

               

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

                    konten += "<h2>"+userName+"</h2>";

                   

                    try {

                        menu = session.getAttribute("menu").toString();

                    } catch (Exception ex){}

                   

                    try {

                        topMenu = session.getAttribute("topMenu").toString();

                    } catch (Exception ex){}

                }

            }

        %>

    <center>

        <table width="80%" bgcolor="#eeeeee">  

            <tr>

                <td colspan="2" align="center">

                    <br>

                    <h2 Style="margin-bottom:0px; margin-top:0px;">

                        Aplikasi Penjualan Kerudung

                    </h2>

                    <h1 Style="margin-bottom:0px; margin-top:0px;">

                        TOKO KERUDUNG

                    </h1>

                    <h4 Style="margin-bottom:0px; margin-top:0px;">

                        Jl. Raya Dago Kp Asem

                    </h4>

                    <br>

                </td>

            </tr>

            <tr height="400">

                <td width="200" align="center" valign="top" bgcolor="#eeffee">

                    <br>

                <div id='menu'>

                    <%=menu %>

                </div>

                </td>

                <td align="center" valign="top" bgcolor="#ffffff">

                    <%=topMenu%>

                    <br>

                    <%=konten %>

                </td>

            </tr>

            <tr>

                <td colspan="2" align="center" bgcolor="#eeeeff">

                    <small>

                        Copyright &copy; 2019 TOKO KERUDUNG<br>

                        Jl. Raya Dago Kp Asem<br>                       

                    </small>

                </td>

            </tr>

        </table>

    </center>

 4. Fitur/fasilitas login



package com.kerudung.controller;

 

import com.kerudung.model.Enkripsi;

import com.kerudung.model.DataUser;

import com.kerudung.view.MainForm;

import java.io.IOException;

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;

 


@WebServlet(name = "LoginController", urlPatterns = {"/LoginController"})

public class LoginController extends HttpServlet {

 

    /**

     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>

     * methods.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        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 = "<br><form action=LoginController method=post>"

                    + "<table>"

                    + "<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 colspan=2 align=center><input type=submit value=Login><td>"

                    + "</tr>"

                    + "</table>"

                    + "</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 menu = "<br><b>Master Data</b><br>"

                                + "<a href=DataBarangController>Data Barang</a><br>"

                                + "<a href=DataCustomerController>Data Customer</a><br>"

                                + "<a href=DataUserController>Data User</a><br><br>"

                                + "<b>Transaksi</b><br>"

                                + "<a href=PenjualanController>Penjualan</a><br><br>"

                                + "<b>Laporan</b><br>"

                                + "<a href=LaporanPenjualanController>Penjualan</a><br>"

                                + "<a href=StokBarangController>Stok Barang</a><br><br>"

                                + "<a href=LogoutController>Logout</a><br><br>";

                        session.setAttribute("menu", menu);

 

                        String topMenu = "<nav><ul>"

                                + "<li><a href=.>Home</a></li>"

                                + "<li class='dropdown'><a href=# class='dropbtn'>Master Data</a>"

                                + "<div class='dropdown-content'>"

                                + "<a href=DataBarangController>Data Barang</a>"

                                + "<a href=DataCustomerController>Data Customer</a>"

                                + "<a href=DataUserController>Data User</a>"

                                + "</div>"

                                + "</li>"

                                + "<li class='dropdown'><a href=# class='dropbtn'>Transaksi</a>"

                                + "<div class='dropdown-content'>"

                                + "<a href=PenjualanController>Penjualan</a>"

                                + "</div>"

                                + "</li>"

                                + "<li class='dropdown'><a href=# class='dropbtn'>Laporan</a>"

                                + "<div class='dropdown-content'>"

                                + "<a href=LaporanPenjualanController>Penjualan</a>"

                                + "<a href=StokBarangController>Stok Barang</a>"

                                + "</div>"

                                + "</li>"

                                + "<li><a href=LogoutController>Logout</a></li>"

                                + "</ul>"

                                + "</nav>";

                        session.setAttribute("topMenu", topMenu);

 

                        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(".");

        }

    }

 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**

     * Handles the HTTP <code>GET</code> method.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

 

    /**

     * Handles the HTTP <code>POST</code> method.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

 

    /**

     * Returns a short description of the servlet.

     *

     * @return a String containing servlet description

     */

    @Override

    public String getServletInfo() {

        return "Short description";

    }// </editor-fold>

 

}

 

 5. Buatlah data master




/*

 * 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 com.kerudung.model;

 

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRResultSetDataSource;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.design.JasperDesign;

import net.sf.jasperreports.engine.xml.JRXmlLoader;

import net.sf.jasperreports.view.JasperViewer;

import com.o5kerudung.view.PesanDialog;

import java.io.ByteArrayOutputStream;

import net.sf.jasperreports.engine.JRExporter;

import net.sf.jasperreports.engine.JRExporterParameter;

import net.sf.jasperreports.engine.export.JRPdfExporter;

import net.sf.jasperreports.engine.export.JRRtfExporter;

import net.sf.jasperreports.engine.export.JRXlsExporter;

import net.sf.jasperreports.engine.export.oasis.JROdtExporter;

import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;

import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;

public class DataBarang {

 

    private String kodeBarang, namaBarang, satuanBarang;

    private int stokBarang;

    private long hargaBarang;

    private String pesan;

    private Object[][] list;

    private final koneksi conn = new koneksi();

    private final PesanDialog pesanDialog = new PesanDialog();

    private byte[] pdfasbytes;

 

    public byte[] getPdfasbytes() {

        return pdfasbytes;

    }

 

    public String getKodeBarang() {

        return kodeBarang;

    }

 

    public void setKodeBarang(String kodeBarang) {

        this.kodeBarang = kodeBarang;

    }

 

    public String getNamaBarang() {

        return namaBarang;

    }

 

    public void setNamaBarang(String namaBarang) {

        this.namaBarang = namaBarang;

    }

 

    public String getSatuanBarang() {

        return satuanBarang;

    }

 

    public void setSatuanBarang(String satuanBarang) {

        this.satuanBarang = satuanBarang;

    }

 

    public int getStokBarang() {

        return stokBarang;

    }

 

    public void setStokBarang(int stokBarang) {

        this.stokBarang = stokBarang;

    }

 

    public long getHargaBarang() {

        return hargaBarang;

    }

 

    public void setHargaBarang(long hargaBarang) {

        this.hargaBarang = hargaBarang;

    }

 

    public String getPesan() {

        return pesan;

    }

 

    public Object[][] getList() {

        return list;

    }

 

    public void setList(Object[][] list) {

        this.list = list;

    }

 

    public boolean baca(String kodeBarang) {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            Statement sta;

            ResultSet rset;

 

            try {

                String SQLStatemen = "select * from barang where kode='" + kodeBarang + "'";

                sta = connection.createStatement();

                rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                if (rset.getRow() > 0) {

                    this.kodeBarang = rset.getString("kode");

                    this.namaBarang = rset.getString("nama");

                    this.hargaBarang = rset.getLong("harga");

                    this.stokBarang = rset.getInt("stok");

                    this.satuanBarang = rset.getString("satuan");

                } else {

                    adaKesalahan = true;

                    pesan = "Kode barang \"" + kodeBarang + "\" tidak ditemukan";

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean bacaData(int mulai, int jumlah) {

        boolean adaKesalahan = false;

        Connection connection;

        list = new Object[0][0];

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatemen;

            Statement sta;

            ResultSet rset;

 

            try {

                SQLStatemen = "select kode,nama,harga,stok,satuan from barang "

                        + " limit  "+mulai+", "+jumlah;

                sta = connection.createStatement();

                rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                rset.last();

                list = new Object[rset.getRow()][5];

                if (rset.getRow() > 0) {

                    rset.first();

                    int i = 0;

                    do {

                        list[i] = new Object[]{rset.getString("kode"), rset.getString("nama"),

                            rset.getInt("stok"), rset.getString("satuan")};

                        i++;

                    } while (rset.next());

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean simpan() {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahSimpan = 0;

            boolean simpan = false;

 

            try {

                String SQLStatemen = "select * from barang where kode='" + kodeBarang + "'";

                Statement sta = connection.createStatement();

                ResultSet rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                if (rset.getRow() > 0) {

 

                    try{

                    simpan = true;

                        SQLStatemen = "update barang set nama='" + namaBarang + "', harga='" + hargaBarang

                                + "', stok='" + stokBarang + "', satuan='" + satuanBarang + "' where kode='" + kodeBarang + "'";

                        sta = connection.createStatement();

                        jumlahSimpan = sta.executeUpdate(SQLStatemen);

                    }catch(SQLException ex){}

                   

                } else {

                    simpan = true;

                    SQLStatemen = "insert into barang(kode, nama, harga, stok, satuan) values ('"

                            + kodeBarang + "','" + namaBarang + "','" + hargaBarang + "','" + stokBarang + "','" + satuanBarang + "')";

                    sta = connection.createStatement();

                    jumlahSimpan = sta.executeUpdate(SQLStatemen);

                }

 

                if (simpan) {

                    if (jumlahSimpan < 1) {

                        adaKesalahan = true;

                        pesan = "Gagal menyimpan data barang";

                    }

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean hapus(String kodeBarang) {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahHapus;

            Statement sta;

 

            try {

                String SQLStatemen = "delete from barang where kode='" + kodeBarang + "'";

                sta = connection.createStatement();

                jumlahHapus = sta.executeUpdate(SQLStatemen);

 

                if (jumlahHapus < 1) {

                    pesan = "Data barang dengan kode " + kodeBarang + " tidak ditemukan";

                    adaKesalahan = true;

                }

 

                sta.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean cetakLaporanStokBarang() {

        boolean adaKesalahan = false;

 

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatement;

            ResultSet resultSet = null;

 

            try {

                Statement statement = connection.createStatement();

 

                SQLStatement = "SELECT\n"

                        + "\n"

                        + "     barang.`nama` AS barang_nama,\n"

                        + "     barang.`harga` AS barang_harga,\n"

                        + "     barang.`stok` AS barang_stok,\n"

                        + "     barang.`satuan` AS barang_satuan,\n"

                        + "     barang.`kode` AS barang_kode\n"

                        + "FROM\n"

                        + "     `barang` barang\n"

                        + "ORDER BY\n"

                        + "`barang`.`stok` ASC,\n"

                        + "`barang`.`kode` ASC";

               

                System.out.println("Query: " + SQLStatement);

                resultSet = statement.executeQuery(SQLStatement);

 

            } catch (SQLException ex) {

                pesan = "Tidak dapat membaca data\n" + ex;

            }

 

            if (resultSet != null) {

                try {

                    JasperDesign disain = JRXmlLoader.load("src/report/stokbarang.jrxml");

                    JasperReport stokBarangLaporan = JasperCompileManager.compileReport(disain);

                    JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);

                    System.out.println("Cetak Laporan");

                    JasperPrint cetak = JasperFillManager.fillReport(stokBarangLaporan, new HashMap(), resultSetDataSource);

                    JasperViewer.viewReport(cetak, false);

                } catch (JRException ex) {

                    pesan = "Tidak dapat mencetak laporan\n" + ex;

                }

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

    public boolean cetakLaporanStokBarang(String fileExt, String namaFile) {

        boolean adaKesalahan = false;

        Connection connection;

        pdfasbytes = null;

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatement = null;

            ResultSet resultSet = null;

 

            try {

                Statement statement = connection.createStatement();

 

                SQLStatement =  "SELECT\n"

                        + "\n"

                        + "     barang.`nama` AS barang_nama,\n"

                        + "     barang.`harga` AS barang_harga,\n"

                        + "     barang.`stok` AS barang_stok,\n"

                        + "     barang.`satuan` AS barang_satuan,\n"

                        + "     barang.`kode` AS barang_kode\n"

                        + "FROM\n"

                        + "     `barang` barang\n"

                        + "ORDER BY\n"

                        + "`barang`.`stok` ASC,\n"

                        + "`barang`.`kode` ASC";

 

                resultSet = statement.executeQuery(SQLStatement);

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membaca data\n" + ex;

            }

 

            if ((!adaKesalahan) && (resultSet != null)) {

                try {

                    JasperDesign disain = JRXmlLoader.load(namaFile);

                    JasperReport nilaiLaporan = JasperCompileManager.compileReport(disain);

                    JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);

                    JasperPrint cetak = JasperFillManager.fillReport(nilaiLaporan, new HashMap(), resultSetDataSource);

 

                    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

 

                    JRExporter exporter = null;

                    if (fileExt.equalsIgnoreCase("PDF")) {

                        exporter = new JRPdfExporter();

                    } else if (fileExt.equalsIgnoreCase("XLSX")) {

                        exporter = new JRXlsxExporter();

                    } else if (fileExt.equalsIgnoreCase("XLS")) {

                        exporter = new JRXlsExporter();

                    } else if (fileExt.equalsIgnoreCase("DOCX")) {

                        exporter = new JRDocxExporter();

                    } else if (fileExt.equalsIgnoreCase("ODT")) {

                        exporter = new JROdtExporter();

                    } else if (fileExt.equalsIgnoreCase("RTF")) {

                        exporter = new JRRtfExporter();

                    } else {

                        adaKesalahan = true;

                        pesan = "Format file dengan ektensi " + fileExt + " tidak terdaftar";

                    }

 

                    if (!adaKesalahan && (exporter != null)) {

                        exporter.setParameter(JRExporterParameter.JASPER_PRINT, cetak);

                        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, byteArrayOutputStream);

                        exporter.exportReport();

                        pdfasbytes = byteArrayOutputStream.toByteArray();

                    }

                } catch (JRException ex) {

                    adaKesalahan = true;

                    pesan = "Tidak dapat mencetak laporan\n" + ex;

                }

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

}


 

/*

 * 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 com.kerudung.model;

 

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRResultSetDataSource;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.design.JasperDesign;

import net.sf.jasperreports.engine.xml.JRXmlLoader;

import net.sf.jasperreports.view.JasperViewer;

import com.kerudung.view.PesanDialog;

import java.io.ByteArrayOutputStream;

import net.sf.jasperreports.engine.JRExporter;

import net.sf.jasperreports.engine.JRExporterParameter;

import net.sf.jasperreports.engine.export.JRPdfExporter;

import net.sf.jasperreports.engine.export.JRRtfExporter;

import net.sf.jasperreports.engine.export.JRXlsExporter;

import net.sf.jasperreports.engine.export.oasis.JROdtExporter;

import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;

import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;


public class DataBarang {

 

    private String kodeBarang, namaBarang, satuanBarang;

    private int stokBarang;

    private long hargaBarang;

    private String pesan;

    private Object[][] list;

    private final koneksi conn = new koneksi();

    private final PesanDialog pesanDialog = new PesanDialog();

    private byte[] pdfasbytes;

 

    public byte[] getPdfasbytes() {

        return pdfasbytes;

    }

 

    public String getKodeBarang() {

        return kodeBarang;

    }

 

    public void setKodeBarang(String kodeBarang) {

        this.kodeBarang = kodeBarang;

    }

 

    public String getNamaBarang() {

        return namaBarang;

    }

 

    public void setNamaBarang(String namaBarang) {

        this.namaBarang = namaBarang;

    }

 

    public String getSatuanBarang() {

        return satuanBarang;

    }

 

    public void setSatuanBarang(String satuanBarang) {

        this.satuanBarang = satuanBarang;

    }

 

    public int getStokBarang() {

        return stokBarang;

    }

 

    public void setStokBarang(int stokBarang) {

        this.stokBarang = stokBarang;

    }

 

    public long getHargaBarang() {

        return hargaBarang;

    }

 

    public void setHargaBarang(long hargaBarang) {

        this.hargaBarang = hargaBarang;

    }

 

    public String getPesan() {

        return pesan;

    }

 

    public Object[][] getList() {

        return list;

    }

 

    public void setList(Object[][] list) {

        this.list = list;

    }

 

    public boolean baca(String kodeBarang) {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            Statement sta;

            ResultSet rset;

 

            try {

                String SQLStatemen = "select * from barang where kode='" + kodeBarang + "'";

                sta = connection.createStatement();

                rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                if (rset.getRow() > 0) {

                    this.kodeBarang = rset.getString("kode");

                    this.namaBarang = rset.getString("nama");

                    this.hargaBarang = rset.getLong("harga");

                    this.stokBarang = rset.getInt("stok");

                    this.satuanBarang = rset.getString("satuan");

                } else {

                    adaKesalahan = true;

                    pesan = "Kode barang \"" + kodeBarang + "\" tidak ditemukan";

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean bacaData(int mulai, int jumlah) {

        boolean adaKesalahan = false;

        Connection connection;

        list = new Object[0][0];

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatemen;

            Statement sta;

            ResultSet rset;

 

            try {

                SQLStatemen = "select kode,nama,harga,stok,satuan from barang "

                        + " limit  "+mulai+", "+jumlah;

                sta = connection.createStatement();

                rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                rset.last();

                list = new Object[rset.getRow()][5];

                if (rset.getRow() > 0) {

                    rset.first();

                    int i = 0;

                    do {

                        list[i] = new Object[]{rset.getString("kode"), rset.getString("nama"),

                            rset.getInt("stok"), rset.getString("satuan")};

                        i++;

                    } while (rset.next());

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean simpan() {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahSimpan = 0;

            boolean simpan = false;

 

            try {

                String SQLStatemen = "select * from barang where kode='" + kodeBarang + "'";

                Statement sta = connection.createStatement();

                ResultSet rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                if (rset.getRow() > 0) {

 

                    try{

                    simpan = true;

                        SQLStatemen = "update barang set nama='" + namaBarang + "', harga='" + hargaBarang

                                + "', stok='" + stokBarang + "', satuan='" + satuanBarang + "' where kode='" + kodeBarang + "'";

                        sta = connection.createStatement();

                        jumlahSimpan = sta.executeUpdate(SQLStatemen);

                    }catch(SQLException ex){}

                   

                } else {

                    simpan = true;

                    SQLStatemen = "insert into barang(kode, nama, harga, stok, satuan) values ('"

                            + kodeBarang + "','" + namaBarang + "','" + hargaBarang + "','" + stokBarang + "','" + satuanBarang + "')";

                    sta = connection.createStatement();

                    jumlahSimpan = sta.executeUpdate(SQLStatemen);

                }

 

                if (simpan) {

                    if (jumlahSimpan < 1) {

                        adaKesalahan = true;

                        pesan = "Gagal menyimpan data barang";

                    }

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean hapus(String kodeBarang) {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahHapus;

            Statement sta;

 

            try {

                String SQLStatemen = "delete from barang where kode='" + kodeBarang + "'";

                sta = connection.createStatement();

                jumlahHapus = sta.executeUpdate(SQLStatemen);

 

                if (jumlahHapus < 1) {

                    pesan = "Data barang dengan kode " + kodeBarang + " tidak ditemukan";

                    adaKesalahan = true;

                }

 

                sta.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel barang\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean cetakLaporanStokBarang() {

        boolean adaKesalahan = false;

 

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatement;

            ResultSet resultSet = null;

 

            try {

                Statement statement = connection.createStatement();

 

                SQLStatement = "SELECT\n"

                        + "\n"

                        + "     barang.`nama` AS barang_nama,\n"

                        + "     barang.`harga` AS barang_harga,\n"

                        + "     barang.`stok` AS barang_stok,\n"

                        + "     barang.`satuan` AS barang_satuan,\n"

                        + "     barang.`kode` AS barang_kode\n"

                        + "FROM\n"

                        + "     `barang` barang\n"

                        + "ORDER BY\n"

                        + "`barang`.`stok` ASC,\n"

                        + "`barang`.`kode` ASC";

               

                System.out.println("Query: " + SQLStatement);

                resultSet = statement.executeQuery(SQLStatement);

 

            } catch (SQLException ex) {

                pesan = "Tidak dapat membaca data\n" + ex;

            }

 

            if (resultSet != null) {

                try {

                    JasperDesign disain = JRXmlLoader.load("src/report/stokbarang.jrxml");

                    JasperReport stokBarangLaporan = JasperCompileManager.compileReport(disain);

                    JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);

                    System.out.println("Cetak Laporan");

                    JasperPrint cetak = JasperFillManager.fillReport(stokBarangLaporan, new HashMap(), resultSetDataSource);

                    JasperViewer.viewReport(cetak, false);

                } catch (JRException ex) {

                    pesan = "Tidak dapat mencetak laporan\n" + ex;

                }

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

    public boolean cetakLaporanStokBarang(String fileExt, String namaFile) {

        boolean adaKesalahan = false;

        Connection connection;

        pdfasbytes = null;

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatement = null;

            ResultSet resultSet = null;

 

            try {

                Statement statement = connection.createStatement();

 

                SQLStatement =  "SELECT\n"

                        + "\n"

                        + "     barang.`nama` AS barang_nama,\n"

                        + "     barang.`harga` AS barang_harga,\n"

                        + "     barang.`stok` AS barang_stok,\n"

                        + "     barang.`satuan` AS barang_satuan,\n"

                        + "     barang.`kode` AS barang_kode\n"

                        + "FROM\n"

                        + "     `barang` barang\n"

                        + "ORDER BY\n"

                        + "`barang`.`stok` ASC,\n"

                        + "`barang`.`kode` ASC";

 

                resultSet = statement.executeQuery(SQLStatement);

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membaca data\n" + ex;

            }

 

            if ((!adaKesalahan) && (resultSet != null)) {

                try {

                    JasperDesign disain = JRXmlLoader.load(namaFile);

                    JasperReport nilaiLaporan = JasperCompileManager.compileReport(disain);

                    JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);

                    JasperPrint cetak = JasperFillManager.fillReport(nilaiLaporan, new HashMap(), resultSetDataSource);

 

                    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

 

                    JRExporter exporter = null;

                    if (fileExt.equalsIgnoreCase("PDF")) {

                        exporter = new JRPdfExporter();

                    } else if (fileExt.equalsIgnoreCase("XLSX")) {

                        exporter = new JRXlsxExporter();

                    } else if (fileExt.equalsIgnoreCase("XLS")) {

                        exporter = new JRXlsExporter();

                    } else if (fileExt.equalsIgnoreCase("DOCX")) {

                        exporter = new JRDocxExporter();

                    } else if (fileExt.equalsIgnoreCase("ODT")) {

                        exporter = new JROdtExporter();

                    } else if (fileExt.equalsIgnoreCase("RTF")) {

                        exporter = new JRRtfExporter();

                    } else {

                        adaKesalahan = true;

                        pesan = "Format file dengan ektensi " + fileExt + " tidak terdaftar";

                    }

 

                    if (!adaKesalahan && (exporter != null)) {

                        exporter.setParameter(JRExporterParameter.JASPER_PRINT, cetak);

                        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, byteArrayOutputStream);

                        exporter.exportReport();

                        pdfasbytes = byteArrayOutputStream.toByteArray();

                    }

                } catch (JRException ex) {

                    adaKesalahan = true;

                    pesan = "Tidak dapat mencetak laporan\n" + ex;

                }

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

}




/*

 * 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 com.o5tplen.model;

 

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import com.o5tplen.view.PesanDialog;

 


public class DataUser {

 

    private String username, password;

    private String pesan;

    private Object[][] list;

    private final koneksi conn = new koneksi();

    private final PesanDialog pesanDialog = new PesanDialog();

 

    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 getPesan() {

        return pesan;

    }

 

    public Object[][] getList() {

        return list;

    }

 

    public void setList(Object[][] list) {

        this.list = list;

    }

 

    public boolean baca(String username) {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            Statement sta;

            ResultSet rset;

 

            try {

                String SQLStatemen = "select * from user where username='" + username + "'";

                sta = connection.createStatement();

                rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                if (rset.getRow() > 0) {

                    this.username = rset.getString("username");

                    this.password = rset.getString("password");

                    // this.telpCustomer=rset.getString("telp");

                } else {

                    adaKesalahan = true;

                    pesan = "Username \"" + username + "\" tidak ditemukan";

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel user\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean bacaData(int mulai, int jumlah) {

        boolean adaKesalahan = false;

        Connection connection;

        list = new Object[0][0];

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatemen;

            Statement sta;

            ResultSet rset;

 

            try {

                SQLStatemen = "select username,password from user limit "

                        + mulai + "," + jumlah;

                sta = connection.createStatement();

                rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                rset.last();

                list = new Object[rset.getRow()][2];

                if (rset.getRow() > 0) {

                    rset.first();

                    int i = 0;

                    do {

                        list[i] = new Object[]{rset.getString("username"), rset.getString("password")};

                        i++;

                    } while (rset.next());

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel user" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean simpan() {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahSimpan = 0;

            boolean simpan = false;

 

            try {

                String SQLStatemen = "select * from user where username='" + username + "'";

                Statement sta = connection.createStatement();

                ResultSet rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                if (rset.getRow() > 0) {

 

                    try {

                        simpan = true;

                        SQLStatemen = "update user set password='" + password

                                + "' where username='" + username + "'";

                        System.out.println(SQLStatemen);

                        sta = connection.createStatement();

                        jumlahSimpan = sta.executeUpdate(SQLStatemen);

                    } catch (SQLException ex) {

                    }

 

                } else {

                    simpan = true;

                    SQLStatemen = "insert into user(username, password) values ('"

                            + username + "','" + password + "')";

                    sta = connection.createStatement();

                    jumlahSimpan = sta.executeUpdate(SQLStatemen);

                }

 

                if (simpan) {

                    if (jumlahSimpan < 1) {

                        adaKesalahan = true;

                        pesan = "Gagal menyimpan data user";

                    }

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel user\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean hapus(String username) {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahHapus;

            Statement sta;

 

            try {

                String SQLStatemen = "delete from user where username='" + username + "'";

                sta = connection.createStatement();

                jumlahHapus = sta.executeUpdate(SQLStatemen);

 

                if (jumlahHapus < 1) {

                    pesan = "Data user dengan username " + username + " tidak ditemukan";

                    adaKesalahan = true;

                }

 

                sta.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel user\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

}

 

 6.  Buatlah from data transaksi



/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package com.kerudung.model;

 

import java.io.ByteArrayOutputStream;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRExporter;

import net.sf.jasperreports.engine.JRExporterParameter;

import net.sf.jasperreports.engine.JRResultSetDataSource;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.design.JasperDesign;

import net.sf.jasperreports.engine.export.JRPdfExporter;

import net.sf.jasperreports.engine.export.JRRtfExporter;

import net.sf.jasperreports.engine.export.JRXlsExporter;

import net.sf.jasperreports.engine.export.oasis.JROdtExporter;

import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;

import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;

import net.sf.jasperreports.engine.xml.JRXmlLoader;

 


public class Penjualan {

 

    private DataBarang dataBarang = new DataBarang();

    private String kodePenjualan;

    private int idCustomer;

    private Date tanggal = new Date();

    private String pesan;

    private Object[][] listPenjualan;

    private byte[] pdfasbytes;

    private final SimpleDateFormat bentuk = new SimpleDateFormat("yyyy-MM-dd");

    private final koneksi conn = new koneksi();

    private String tanggalStr = bentuk.format(tanggal);

 

    public String getKodePenjualan() {

        return kodePenjualan;

    }

 

    public void setKodePenjualan(String kodePenjualan) {

        this.kodePenjualan = kodePenjualan;

    }

 

    public String getPesan() {

        return pesan;

    }

 

    public void setPesan(String pesan) {

        this.pesan = pesan;

    }

 

    public Object[][] getListPenjualan() {

        return listPenjualan;

    }

 

    public void setListPenjualan(Object[][] listPenjualan) {

        this.listPenjualan = listPenjualan;

    }

 

    public byte[] getPdfasbytes() {

        return pdfasbytes;

    }

 

    public boolean simpan() {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahSimpan = 0;

 

            String kode = listPenjualan[0][4].toString();

            int stok = (int) listPenjualan[0][5],

                    idCustomer=(int)listPenjualan[0][2];

 

            String SQLStatemen;

            Statement sta;

            /*

            try {

                SQLStatemen = "update penjualan set kodeBarang='" + kode + "', qty='" + listPenjualan[0][5]

                        + "', tanggal='" + tanggalStr + "', kasir='"

                        + listPenjualan[0][3] + "' where kodepenjualan='" + kodePenjualan + "'";

                sta = connection.createStatement();

                jumlahSimpan = sta.executeUpdate(SQLStatemen);

            } catch (SQLException ex) {

            }

             */

            if (jumlahSimpan < 1) {

                try {

                    SQLStatemen = "insert into penjualan (`kodepenjualan`, "

                            + "`tanggal`, `idcustomer`, `kasir`, `kodebarang`,"

                            + " `qty`) values ('" + kodePenjualan + "','"

                            + tanggalStr + "','" + idCustomer + "','" + listPenjualan[0][3] + "','"

                            + listPenjualan[0][4] + "','" + listPenjualan[0][5] + "')";

                    sta = connection.createStatement();

                    jumlahSimpan += sta.executeUpdate(SQLStatemen);

                } catch (SQLException ex) {

                }

                if (dataBarang.baca(kode)) {

                    stok = dataBarang.getStokBarang() - stok;

 

                    try {

                        SQLStatemen = "update `barang` set `stok`=" + stok

                                + "  where `kode`='" + kode + "'";

                        System.out.println("update tabel barang: " + SQLStatemen);

                        sta = connection.createStatement();

                        stok = sta.executeUpdate(SQLStatemen);

                        System.out.println(stok);

 

                    } catch (SQLException e) {

                    }

                }

 

            }

 

            if (jumlahSimpan > 0) {

                adaKesalahan = false;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean baca(String kodePenjualan, String kodeBarang) {

        boolean adaKesalahan = false;

        Connection connection;

 

        this.kodePenjualan = kodePenjualan;

 

        listPenjualan = null;

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatemen;

            Statement sta;

            ResultSet rset;

            if (kodeBarang != null || kodeBarang.length() > 0) {

                SQLStatemen = "select * from penjualan where kodepenjualan='" + kodePenjualan

                        + "' and kodebarang='" + kodeBarang + "'";

            } else {

                SQLStatemen = "select * from penjualan where kodepenjualan='" + kodePenjualan + "'";

            }

            try {

                sta = connection.createStatement();

                rset = sta.executeQuery(SQLStatemen);

 

                rset.next();

                rset.last();

                listPenjualan = new Object[rset.getRow()][6];

 

                rset.first();

                int i = 0;

                do {

                    if (!rset.getString("kodepenjualan").equals("")) {

                        listPenjualan[i] = new Object[]{rset.getString("kodepenjualan"),

                            rset.getDate("tanggal"),

                            rset.getInt("idcustomer"),

                            rset.getString("kasir"),

                            rset.getString("kodebarang"),

                            rset.getInt("qty")};

                    }

                    i++;

                } while (rset.next());

 

                if (listPenjualan.length > 0) {

                    adaKesalahan = false;

                }

 

                sta.close();

                rset.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membaca data penjualan\n" + ex.getMessage();

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean cetakLaporan(String opsi, String kodePenjualan, String awalStr, String akhirStr, String fileExt, String namaFile) {

        boolean adaKesalahan = false;

        Connection connection;

        pdfasbytes = null;

 

        if ((connection = conn.getConnection()) != null) {

            String SQLStatement = null;

            ResultSet resultSet = null;

 

            try {

                Statement statement = connection.createStatement();

 

                SQLStatement = "SELECT"

                        + "     penjualan.`kodepenjualan` AS penjualan_kodepenjualan,"

                        + "     penjualan.`tanggal` AS penjualan_tanggal,"

                        + "     penjualan.`idcustomer` AS penjualan_idcustomer,"

                        + "     penjualan.`kasir` AS penjualan_kasir,"

                        + "     penjualan.`kodebarang` AS penjualan_kodebarang,"

                        + "     penjualan.`qty` AS penjualan_qty,"

                        + "     customer.`nama` AS customer_nama,"

                        + "     barang.`nama` AS barang_nama,"

                        + "     barang.`harga` AS barang_harga,"

                        + "     barang.`stok` AS barang_stok,"

                        + "     barang.`satuan` AS barang_satuan,"

                        + "     customer.`alamat` AS customer_alamat,"

                        + "     customer.`telp` AS customer_telp,"

                        + " (barang.`harga` * penjualan.`qty`) AS penjualan_jumlah "

                        + "FROM"

                        + "     `penjualan` penjualan INNER JOIN `customer` customer ON penjualan.`idcustomer` = customer.`id`"

                        + "     INNER JOIN `barang` barang ON penjualan.`kodebarang` = barang.`kode`";

 

                if (opsi.equals("kodepenjualan")) {

                    SQLStatement = SQLStatement + " where penjualan.`kodepenjualan`='" + kodePenjualan + "'";

                } else if (opsi.equals("tanggal")) {

                    SQLStatement = SQLStatement + " where DATE_FORMAT(penjualan.`tanggal`,'%Y-%m-%d')>='" + awalStr + "' AND "

                            + "DATE_FORMAT(penjualan.`tanggal`,'%Y-%m-%d')<='" + akhirStr + "'";

                }

 

                resultSet = statement.executeQuery(SQLStatement);

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membaca data\n" + ex;

            }

 

            if ((!adaKesalahan) && (resultSet != null)) {

                try {

                    JasperDesign disain = JRXmlLoader.load(namaFile);

                    JasperReport nilaiLaporan = JasperCompileManager.compileReport(disain);

                    JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);

                    JasperPrint cetak = JasperFillManager.fillReport(nilaiLaporan, new HashMap(), resultSetDataSource);

 

                    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

 

                    JRExporter exporter = null;

                    if (fileExt.equalsIgnoreCase("PDF")) {

                        exporter = new JRPdfExporter();

                    } else if (fileExt.equalsIgnoreCase("XLSX")) {

                        exporter = new JRXlsxExporter();

                    } else if (fileExt.equalsIgnoreCase("XLS")) {

                        exporter = new JRXlsExporter();

                    } else if (fileExt.equalsIgnoreCase("DOCX")) {

                        exporter = new JRDocxExporter();

                    } else if (fileExt.equalsIgnoreCase("ODT")) {

                        exporter = new JROdtExporter();

                    } else if (fileExt.equalsIgnoreCase("RTF")) {

                        exporter = new JRRtfExporter();

                    } else {

                        adaKesalahan = true;

                        pesan = "Format file dengan ektensi " + fileExt + " tidak terdaftar";

                    }

 

                    if (!adaKesalahan && (exporter != null)) {

                        exporter.setParameter(JRExporterParameter.JASPER_PRINT, cetak);

                        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, byteArrayOutputStream);

                        exporter.exportReport();

                        pdfasbytes = byteArrayOutputStream.toByteArray();

                    }

                } catch (JRException ex) {

                    adaKesalahan = true;

                    pesan = "Tidak dapat mencetak laporan\n" + ex;

                }

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

 

    public boolean hapus(String kodePenjualan, String kodeBarang) {

        boolean adaKesalahan = false;

        Connection connection;

 

        if ((connection = conn.getConnection()) != null) {

            int jumlahHapus;

            Statement sta;

 

            try {

                String SQLStatemen = "delete from penjualan where kodepenjualan='" + kodePenjualan + "' and kodebarang='" + kodeBarang + "'";

                sta = connection.createStatement();

                jumlahHapus = sta.executeUpdate(SQLStatemen);

 

                if (jumlahHapus < 1) {

                    pesan = "Data penjualan untuk kode penjualan " + kodePenjualan + " dan kode barang  " + kodeBarang + " tidak ditemukan";

                    adaKesalahan = true;

                }

 

                sta.close();

                connection.close();

            } catch (SQLException ex) {

                adaKesalahan = true;

                pesan = "Tidak dapat membuka tabel penjualan\n" + ex;

            }

        } else {

            adaKesalahan = true;

            pesan = "Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();

        }

 

        return !adaKesalahan;

    }

}

 


 7. buatlah laporan



/*

 * 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 com.kerudung.controller;

 

import com.kerudung.model.Penjualan;

import com.kerudung.view.MainForm;

import java.io.IOException;

import java.io.OutputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

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;

 

@WebServlet(name = "LaporanPenjualanController", urlPatterns = {"/LaporanPenjualanController"})

public class LaporanPenjualanController extends HttpServlet {

 

    /**

     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>

     * methods.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        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 kodePenjualan = request.getParameter("kodepenjualan");

        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 (kodePenjualan==null) kodePenjualan="";

        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")){

                Penjualan penjualan = new Penjualan();

               

                Date awal=new Date(), akhir=new Date();

                 

                if (penjualan.cetakLaporan(opsi, kodePenjualan, awalStr, akhirStr, formatTypeData[noType][1], getServletConfig().getServletContext().getRealPath("reports/penjualan.jrxml"))){

                    byte[] pdfasbytes = penjualan.getPdfasbytes();

                    try (OutputStream outStream = response.getOutputStream()) {

                        response.setHeader("Content-Disposition","inline; filename=LaporanPenjualan."+formatTypeData[noType][1]);

                        response.setContentType(formatTypeData[noType][2]);

                       

                        response.setContentLength(pdfasbytes.length);

                        outStream.write(pdfasbytes,0,pdfasbytes.length);

                       

                        outStream.flush();

                        outStream.close();

                    }

                } else {

                    keterangan += penjualan.getPesan();

                }

            }

           

            String konten = "<h2>Mencetak Laporan Penjualan</h2>";

            konten += "<form action='LaporanPenjualanController' method='post'>";

            konten += "<table>";

            konten += "<tr>";

            if (opsi.equalsIgnoreCase("kodepenjualan")){

                konten += "<td align='right'><input type='radio' checked name='opsi' value='kodepenjualan'></td>";

                opsiSelected = true;

            } else {

                konten += "<td align='right'><input type='radio' name='opsi' value='kodepenjualan'></td>";

            }           

            konten += "<td align='left'>Kode Penjualan</td>";

            konten += "<td align='left'><input type='text' value='"+kodePenjualan+"' name='kodepenjualan' maxlength='15' size='15'></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)+"'> - "

                    + "<input type='date' name='akhir' value='"+sdf.format(tgl)+"'>"

                    + "</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(".");

        }    }

 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**

     * Handles the HTTP <code>GET</code> method.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

 

    /**

     * Handles the HTTP <code>POST</code> method.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

 

    /**

     * Returns a short description of the servlet.

     *

     * @return a String containing servlet description

     */

    @Override

    public String getServletInfo() {

        return "Short description";

    }// </editor-fold>

 

}








18. web aplikasi jasa kursus






 






Komentar

Postingan populer dari blog ini

Pemograman 2