2 

1.1. Spesifikasi Hardware Dan Software 

A. Umum 

Suatu sistem yang baik tidak akan berhasil dengan baik apabila 

tidak didukung oleh sarana pendukung yang baik. Dalam pembuatan 

suatu sistem yang terkomputerisasi dibutuhkan beberapa persiapan, 

baik dalam perangkat keras  

maupun perangkat lunak sebagai suatu pendukung untuk 

menjalankan suatu program.  

Sebagaimana yang telah diketahui bersama sarana yang baik 

adalah sarana yang diusulkan mempunyai kemampuan yang cukup 

dan kecepatan proses yang memadai. Karena dengan sarana yang 

memadai secara otomatis akan mendapat hasil yang baik. Spesifikasi 

sistem komputer adalah seperangkat komputer yang membantu dalam 

menyelesaikan pekerjaan. 

B. Perangkat Keras (Hardware) 

Perangkat Keras (Hardware) merupakan seluruh perangkat 

komputer yang dapat dilihat secara fisik atau dapat diraba secara nyata 

yang berfungsi untuk mendukung proses komputerisasi dan saling 

bekerja sama untuk mencapai tujuan dalam sistem komputer. Sebagai 

sarana pendukung dalam website ini, penulis akan menjabarkan 

perangkat keras (hardware) dan perangkat lunak (software) yang 

dibutuhkan yaitu: 

1. Monitor : 14 Inch 

2. Processor : Intel Celeron N4000 (4 MB cache 2.60 GHz) 

3. Memory : 4 GB DDR4  2133MHz 

 3 

4. Harddisk : 1 TB 

5. Keyboard : 108 Keys 

6. Printer  : Hp desk jet 

7. Mouse  : PS/2 

 

C. Perangkat Lunak (Software) 

Perangkat Lunak (Software) adalah sekumpulan data elektronik 

yang disimpan dan diatur oleh komputer, data elektronik yang 

disimpan oleh komputer itu dapat berupa program atau intruksi yang 

akan menjalakan suatu perintah.  

Perangkat lunak yang dibutuhkan untuk menjalankan aplikasi 

program system inventory gudang PT. Asno Horie Indonesia yaitu: 

1. Sistem Operasi  : Microsoft Windows 10 Ultimate 

2. Bahasa Pemrograman : Java 

3. Software   : Netbeans IDE 8.2 

 

 

 

 

 

 

 

 4 

PERANCANGAN APLIKASI 

SISTEM INVENTORY APLIKASI GUDANG 

 

2.1 Rancangan data Base 

2.1.1 Menjalankan aplikasi Xampp 

1. Klik 2x logo aplikasi XAMPP Control Panel. 

 

Gambar 2.1 Logo Xampp 

 

2. Muncul jendela XAMPP Control Panel – Klik tombol Start Apache –klik 

tombol Start MySQL 

 

Gambar 2.2 Tampilan menu utama xampp 

 

3. Klik tombol Admin MySQL 

 5 

 

Gambar 2.3 Tampilan menu utama xampp 

 

2.1.2 Membuat Data Base 

Disini anda akan membuat database yang bernama inventory_db, 

pada dasarnya nama database itu terserah anda tetapi agar tidak bingung 

nanti disaat pembuatan codingannya disarankan membuat nama 

databasenya sama dengan yang dicontoh seperti berikut. 

 

1. Membuat Data Base inventory_db 

- Klik Tab Basis data 

 

Gambar 2.4 Menu utama database 

 

- Ketik nama database inventory_db- klik tombol Buat 

 6 

 

Gambar 2.5 file name database 

 

2. Membuat table inventory 

- Klik inventory_db 

 

 

Gambar 2.6 File name database 

 

 

 7 

2.1 Ketik tb_user – ketik 5 – klik tombol Kirim 

 

Gambar 2.7 membuat table user 

 

- Klik Field tabel tb_user 

 

Gambar 2.8 table user 

 

Field Type Length Keterangan 

id_user Varchar 30 Primary Key 

nm_user Varchar 20  

Password Text   

Level Varchar 15  

foto longblob   

 

- Untuk membuat field tb_user menjadi Primary Key, klik lambang 

Kunci Utama 

 8 

 

 

 

Gambar 2.9 table user  

 

 

2.2 Ketik tb_barang – ketik 4 – klik tombol Kirim  

 ( Lakukan proses yang sama pada saat membuat table tb_user ) 

 

Field Type Length Keterangan 

kd_brg Varchar 15 Primary Key 

nm_kategori Varchar 20  

nm_brg Varchar 20  

stok Int 3  

 

- Untuk membuat field tb_barang menjadi Primary Key, klik lambang 

Kunci Utama 

 

Gambar 2.10 table barang 

 

2.3 Ketik tb_kategori – ketik 2 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

 9 

Field Type Length Keterangan 

id_kategori Varchar 15  

nm_kategori Varchar 20  

 

 

 

Gambar 2.11 tabel kategori 

 

 2.4 Ketik tb_penerimaan_barang – ketik 3 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

Field Type Length Keterangan 

invoice Varchar 20 Primary Key 

tgl_penerimaan Date   

id_user Varchar 30  

 

- Untuk membuat field tb_penerimaan_barang menjadi Primary Key, 

klik lambang Kunci Utama 

 

 

Gambar 2.12 tabel penerimaan  

 

2.5 Ketik tb_detail_penerimaan – ketik 3 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

 

 10 

Field Type Length Keterangan 

invoice Varchar 20  

kd_brg Varchar 15  

jml Int 3  

 

 

Gambar 2.13 abel detail penerimaan 

 

2.6 Ketik tb_sementara_penerimaan – ketik 4 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

Field Type Length Keterangan 

kd_brg Varchar 15  

nm_kategori Varchar 20  

nm_brg Varchar 20  

jml Int 3  

 

 

Gambar 2.14 tabel sementara penerimaan 

 

2.7 Ketik tb_pengeluaran_ barang – ketik 3 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

Field Type Length Keterangan 

id_keluar Varchar 20 Primary Key 

tgl_pengeluaran Date   

 11 

id_user Varchar 30  

- Untuk membuat field tb_pengeluaran_barang menjadi Primary Key, 

klik lambang Kunci Utama 

 

 

Gambar 2.15 tabel pengeluaran barang 

 

2.8 Ketik tb_detail_pengeluaran – ketik 3 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

Field Type Length Keterangan 

id_keluar Varchar 20  

kd_brg Varchar 15  

jml Int 3  

 

 

Gambar 2.16 tabel detail pengeluaran 

 

2.9 Ketik tb_sementara_pengeluaran – ketik 4 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

Field Type Length Keterangan 

kd_brg Varchar 15  

nm_kategori Varchar 20  

nm_brg Varchar 20  

 12 

jml Int 3  

 

 

Gambar 2.17 tabel sementara pengeluaran 

 

3.0 Ketik tb_order_inventory – ketik 3 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

Field Type Length Keterangan 

id_order Varchar 20  

tgl_order Date   

id_user Varchar 30  

 

 

Gambar 2.18 tabel order inventory 

 

3.1 Ketik tb_detail_orderinventory – ketik 3 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

Field Type Length Keterangan 

id_order Varchar 20  

kd_brg Varchar 15  

jml_order Int 3  

 

 13 

 

Gambar 2.19 tabel detail order inventory 

 

3.2 Ketik tb_sementara_orderinventory – ketik 4 – klik tombol Kirim 

 ( Lakukan proses yang sama pada saat membuat tabel tb_user ) 

 

Field Type Length Keterangan 

kd_brg Varchar 15  

nm_kategori Varchar 20  

nm_brg Varchar 20  

Jml_order Int 3  

 

 

Gambar 2.20 tabel sementara order inventory 

 

2.2. Rancangan Form Master  

1. Buka Program Aplikasi Netbeans, siapkan folder untuk menyimpan 

project File → New Project 

 14 

 

Gambar 2.21 tampilan menu java 

2. Next 

 

Gambar 2.22 tampilan menu java 

a) Isi Project Name : gudang 

b) Pilih Tempat Penyimpanan <Browse…> 

c) Finish 

 

3. Membuat Package 

Hilangkan Tanda 

Checklist 

 15 

 

√ Klik kanan pada Project – 

New – JavaPackage 

 

√ Beri Package dengan 

nama : gudang 

 

√ Finish 

 

 

Gambar 2.23 membuat java package 

 

 

Gambar 2.24 file name java package 

 

2.2.1. Membuat Class Koneksi 

Class Koneksi digunakan sebagai penghubung antar database dengan 

form aplikasi yang kita buat dalam netbeans. 

Langkah – langkahnya adalah sebagai berikut : 

1. Klik kanan pada package gudang-New-Java Class 

2. Beri nama class dengan nama : koneksi  

Package : gudang 

 16 

Finish 

 

Gambar 2.25 membuat java class 

  

Gambar 2.26 file name java class 

 

3. Ketik Scrip method-method dibawah ini : 

/* 

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

 */ 

 17 

package gudang; 

import java.sql.*;  

import javax.swing.JOptionPane; 

 

/** 

 * 

 * @author Pannugroho 

 */ 

public class koneksi { 

 Connection connec; 

 Statement st; 

 ResultSet rs; 

  

 public Connection setkoneksi()   

 {   

 try{   

 Class.forName("com.mysql.jdbc.Driver");   

 

connec=DriverManager.getConnection("jdbc:mysql://localhost/inventory_db","ro

ot","") ;   

 st=connec.createStatement();   

 }   

 catch(Exception e){   

 JOptionPane.showMessageDialog(null,"Koneksi Gagal : " +e);   

 }   

 return connec;   

 }            

PreparedStatement prepareStatment(String string) { 

        throw new UnsupportedOperationException("Not supported yet."); //To 

change body of generated methods, choose Tools | Templates. 

 18 

    } 

4. Tambahan Liberaries untuk bisa terhubung ke database 

Klik kanan pada libraries-Add Libraries-Pilih MySQL JDBC Driver-Add 

Library 

 

2.2.2. Membuat Form Menu Utama 

Dalam studi kasus perpustakaan ini, penulis menggunakan 2 akses 

level, yaitu level sebagai admin, dan akses sebagai anggota. Adapun ruang 

lingkup akses level adalah sebagai berikut : 

Akses Level Ruang Lingkup 

Admin File ( Ganti Password ) 

Master ( Barang, User, Kategori ) 

Laporan ( Lap.Barang, Lap.User, Lap. Transaksi ) 

Data ( Barang, Stok Barang Minimal ) 

User File ( Ganti Password ) 

Transaksi ( Barang Masuk, Barang Keluar ) 

Laporan ( Lap.Barang, Lap.Barang Masuk, Lap.Barang 

Keluar ) 

Data ( Barang, Stok Barang Minimal  

  Untuk membedakan akses level tersebut, salah satu cara yang bisa dilakukan 

adalah dengan membuat 2 form menu utama. Menu pertama untuk Admin, menu 

lainnya untuk level User. 

 

 19 

Akses Level Admin      

Gambar 2.27 menu utama admin 

Akses Level User 

 

Gambar 2.28 menu utama user 

 

 

 

 20 

A. Membuat Menu Utama Level Admin 

Desain Tampilan Level Admin : 

File Master Laporan Data 

LogOut 

Ganti 

Password 

Keluar 

Barang 

User 

Kategori 

Lap.Barang 

Lap.User 

Lap.Transaksi 

Barang 

Stok Barang 

Minimal 

                                   

Langkah-langkah dalam pembuatan Menu Utama untuk level Admin 

adalah sebagai berikut : 

1. Klik kanan pada package gudang – New – jFrame Form 

2. Isi Clase Name : Form_MenuUtamaAdmin – Finish 

 

Gambar 2.29 membuat JFrame from 

 21 

 

 

Gambar 2.30 membuat JFrame baru 

 

3. Tambahkan Komponen jMenu Bar pada Form 

Gambar 2.31 menu bar JFrame 

4. Tambahkan 2 Menu Item sebagai sub menu, dengan cara : 

Klik kanan pada menu File – Add From Palette – Menu Item 

 22 

Gambar 2.32 menambahkan menu bar 

 

5. Klik kanan pada jMenuItem1 – Edit Text – Ketik LogOut 

6. Klik kanan pada jMenuItem1 – Change Variable Name – mnlogout 

 

Gambar 2.33 merubah variable name menubar 

 

 23 

7. Lakukan langkah 7 dengan mengatur jMenuItem2 menjadi : 

Edit Text=Ganti Password 

Change Variabel Name=mngantipassword 

8. Lakukan langkah 8 dengan mengatur jMenuItem3 menjadi : 

Edit Text=Keluar 

Change Variabel Name=mnkeluar 

9. Klik kanan pada menu Master – Add Form Palette – Menu Item 

 

Gambar 2.34 Menambah sub menu bar 

 

10. Tambahkan 3 Menu Item dengan cara yang sama seperti langkah no.4, 

dengan pengaturan sebagai berikut : 

jMenuItem1, Edit Text=Barang, Change Variabel Name=mnbarang 

jMenuItem2, Edit Text=User, Change Variabel Name=mnuser 

jMenuItem3, Edit Text=Kategori, Change Variabel Name=mnkategori 

 24 

 

Gambar 2.35 sub menu bar 

 

11. Untuk membuat menubar baru (transaksi) silakan klik kanan pada 

jMenuBar1 – AddMenu 

 

Gambar 2.36 menambahkan menu bar 

 

Silakan atur jMenu3 sebagai  berikut : 

Edit Text=Transaksi, Change Variable Name=nmTransaksi 

 25 

12. Lakukan hal yang sama seperti langkah diatas untuk membuat menu 

Laporan dan Data, dengan ketentuan berikut : 

Komponen Properties 

jMenu3 Edit Text : Transaksi 

 jMenuItem1 Edit Text : Barang Masuk 

Change Variable Name : jbarang_masuk 

JMenuItem2 Edit Text : Barang Keluar 

Change Variable Name : jbarang_keluar 

jMenu4 Edit Text : Laporan 

 jMenuItem1 Edit Text : Laporan Barang 

Change Variable Name : mnlapbrg 

JMenuItem2 Edit Text : Laporan User 

Change Variable Name : mnlapuser 

JMenuItem3 Edit Text : Laporan Transaksi 

Change Variable Name : mnlaporder 

 JMenuItem4 Edit Text : Laporan Barang Masuk 

Change Variable Name : mnLapBrgMsk 

 JMenuItem5 Edit Text : Laporan Barang Keluar 

Change Variable Name : mnLapBrgKlr 

jMenu5 Edit Text : Data 

 jMenuItem1 Edit Text : Data Barang 

Change Variable Name : jdata_ barang 

 26 

JMenuItem2 Edit Text : Stok Barang Minimal 

Change Variable Name : jstok_min 

jLabel1 Change Variable Name : Inama 

jLabel2 Change Variable Name : Ikode 

jLabel3 Change Variable Name : Ilevel 

jLabel4 Change Variable Name : foto2 

jLabel5 Change Variable Name : clock 

jLabel6 Change Variable Name : date 

 

 

13. Hasil Akhir dari Menu Utama Level Admin 

 

Gambar 2.37 menu utama admin 

 

 27 

14. Ketik sript koneksi dan pembuatan Variable seperti dibawah ini : 

/* 

 * 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 gudang; 

import java.awt.event.ActionEvent; 

import java.awt.event.ActionListener; 

import java.sql.Connection; 

import java.sql.DriverManager; 

import java.sql.PreparedStatement; 

import java.sql.ResultSet; 

import javax.swing.JOptionPane; 

import net.sf.jasperreports.engine.JasperFillManager; 

import net.sf.jasperreports.engine.JasperPrint; 

import net.sf.jasperreports.view.JasperViewer; 

 28 

import java.util.HashMap; 

import javax.swing.ImageIcon; 

import javax.swing.Timer; 

import java.util.logging.Level; 

import java.util.logging.Logger; 

import javax.swing.JFileChooser;/** 

 * 

 * @author Pannugroho 

 */ 

public class Form_MenuUtamaAdmin extends javax.swing.JFrame { 

koneksi kon = new koneksi(); 

Connection connec; 

  PreparedStatement psmnt = null; 

   ImageIcon format; 

   ResultSet rs;    

 /** 

     * Creates new form Form_MenuUtamaAdmin 

     */ 

 29 

    public Form_MenuUtamaAdmin() { 

        initComponents(); 

        public Form_MenuUtamaAdmin() { 

        initComponents(); 

        setTanggal(); 

         setJam(); 

        kon.setkoneksi(); 

    } 

    public String kode; 

    public String Level; 

    public String NamaUser; 

    public String getKodeUser() 

                { 

                    return kode; 

                } 

    public String getNamaUser() 

    { 

        return NamaUser; 

 30 

    } 

    public String getLevel() 

    { 

        return Level; 

    } 

     

    public void setTanggal(){ 

    java.util.Date skrg = new java.util.Date(); 

    java.text.SimpleDateFormat kal = new 

    java.text.SimpleDateFormat("dd MMMM yyyy"); 

    date.setText(kal.format(skrg)); 

    } 

      

      public void setJam(){ 

ActionListener taskPerformer = new ActionListener() { 

 

public void actionPerformed(ActionEvent evt) { 

String nol_jam = "", nol_menit = "",nol_detik = ""; 

 31 

 

java.util.Date dateTime = new java.util.Date(); 

int nilai_jam = dateTime.getHours(); 

int nilai_menit = dateTime.getMinutes(); 

int nilai_detik = dateTime.getSeconds(); 

 

if(nilai_jam <= 9) nol_jam= "0"; 

if(nilai_menit <= 9) nol_menit= "0"; 

if(nilai_detik <= 9) nol_detik= "0"; 

 

String waktu = nol_jam + Integer.toString(nilai_jam); 

String menit = nol_menit + Integer.toString(nilai_menit); 

String detik = nol_detik + Integer.toString(nilai_detik); 

 

clock.setText(waktu+":"+menit+":"+detik+""); 

}; 

new Timer(1000, taskPerformer).start(); 

 32 

       

       private void getfoto() 

    { 

        try{ 

            Class.forName("com.mysql.jdbc.Driver"); 

            connec = 

DriverManager.getConnection("jdbc:mysql://localhost/inventory_db","root",""); 

            String query = "select * from tb_user where id_user like '%" 

+Ikode.getText()+ "%' "; 

            psmnt = connec.prepareStatement(query); 

            rs=psmnt.executeQuery(); 

            if(rs.next()) 

            { 

                byte[] imagedata=rs.getBytes(5); 

                format=new ImageIcon(imagedata); 

                foto2.setIcon(format); 

            } 

            else 

 33 

            { 

                JOptionPane.showMessageDialog(this, " Data Tidak ditemukan"); 

            }       

            

        } 

         catch (Exception e) { 

             e.printStackTrace(); 

         } 

    } 

 

     

/** 

     * This method is called from within the constructor to initialize the form. 

     * WARNING: Do NOT modify this code. The content of this method is 

always 

     * regenerated by the Form Editor. 

     */ 

 

 34 

15. Klik kanan pada jForm, pilih Event – Window – windowActivated, ketik 

script 

    private void formWindowActivated(java.awt.event.WindowEvent evt) {                                      

        // TODO add your handling code here: 

        Inama.setText(NamaUser); 

        Ikode.setText(kode); 

        Ilevel.setText(Level); 

        getfoto();        

    }                                     

     

16. Klik kanan pada mnlogout, pilih Event – Action – 

ActionPerformed, ketik script 

  private void mnLogoutActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here: 

this.dispose(); 

        Form_Login login = new Form_Login(); 

        login.setLocationRelativeTo(null); 

        login.setVisible(true); 

       }   

  

17. Klik kanan pada mngantipassword, pilih Event – Action – 

ActionPerformed, ketik Script 

private void mnGantipasswordActionPerformed(java.awt.event.ActionEvent 

evt) {                                                 

        // TODO add your handling code here: 

        Form_Ganti_Password gantipass = new Form_Ganti_Password(); 

        gantipass.setLocationRelativeTo(null); 

        gantipass.setVisible(true); 

 35 

        gantipass.Kode_User=Ikode.getText(); 

    }   

 

18. Klik kanan pada mnkeluar, pilih Event – Action – 

ActionPerformed, ketik Script 

private void mnKeluarActionPerformed(java.awt.event.ActionEvent evt) 

{                                          

        // TODO add your handling code here: 

        System.exit(0); 

19. Klik kanan pada mnbarang, pilih Event – Action – ActionPerformed, 

ketik Script 

private void mnBarangActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here: 

        Form_Master_Barang barang = new Form_Master_Barang(); 

        barang.setLocationRelativeTo(null); 

        barang.setVisible(true); 

    }     

                                

20. Klik kanan pada mnuser, pilih Event – Action – ActionPerformed, ketik 

Script 

private void mnUserActionPerformed(java.awt.event.ActionEvent evt) {                                        

        // TODO add your handling code here: 

        Form_Master_User user = new Form_Master_User(); 

        user.setLocationRelativeTo(null); 

        user.setVisible(true); 

    } 

 

21. Klik kanan pada mnkategori, pilih Event – Action – ActionPerformed, 

ketik Script 

 36 

private void mnKategoriActionPerformed(java.awt.event.ActionEvent evt) {                                            

        // TODO add your handling code here: 

        Form_Master_Kategori Kategori = new Form_Master_Kategori(); 

        Kategori.setLocationRelativeTo(null); 

        Kategori.setVisible(true); 

    } 

 

22. Klik kanan pada mnlapbarang, pilih Event – Action – 

ActionPerformed, ketik Script 

private void mnLapbarangActionPerformed(java.awt.event.ActionEvent evt) {                                             

        // TODO add your handling code here: 

        try{ 

            String path="src/gudang/Laporan_Barang.jasper"; 

            HashMap parameter = new HashMap(); 

            JasperPrint print = 

JasperFillManager.fillReport(path,parameter,kon.setkoneksi()); 

            JasperViewer.viewReport(print, false); 

             } 

        catch(Exception e) { 

            JOptionPane.showMessageDialog(null, e); 

        } 

    }   

 

23. Klik kanan pada mnlapuser, pilih Event – Action – 

ActionPerformed, ketik Script 

private void mnLapuserActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // TODO add your handling code here: 

        try{ 

            String path="src/gudang/Laporan_User.jasper"; 

            HashMap parameter = new HashMap(); 

 37 

            JasperPrint print = 

JasperFillManager.fillReport(path,parameter,kon.setkoneksi()); 

            JasperViewer.viewReport(print, false); 

        } 

         catch(Exception e) { 

            JOptionPane.showMessageDialog(null, e); 

        } 

    } 

 

24. Klik kanan pada mnlaporder, pilih Event – Action – ActionPerformed, 

ketik Script 

private void mnLapOrderActionPerformed(java.awt.event.ActionEvent evt) {                                            

        // TODO add your handling code here: 

       Form_Laporan_TransaksiPeriode Laporan_Order = new     

Form_Laporan_TransaksiPeriode(); 

       Laporan_Order.setLocationRelativeTo(null); 

       Laporan_Order.setVisible(true); 

    } 

 

25. Klik kanan pada jdata_barang, pilih Event – Action – ActionPerformed, 

ketik Script 

    private void jdata_barangActionPerformed(java.awt.event.ActionEvent evt) {                                              

        // TODO add your handling code here: 

        Form_Data_Barang2  DB = new Form_Data_Barang2(this, 

rootPaneCheckingEnabled); 

        DB.setLocationRelativeTo(null); 

        DB.setVisible(true); 

    }                          

26. Klik kanan pada jstok_min, pilih Event – Action – ActionPerformed, 

ketik Script 

 38 

private void jstok_minActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // TODO add your handling code here: 

        Form_Stok_Barang_Minimal  DB = new Form_Stok_Barang_Minimal(this, 

rootPaneCheckingEnabled); 

        DB.setLocationRelativeTo(null); 

        DB.setVisible(true); 

    }  

     

27. Klik kanan pada foto2, pilih Event – Action – ActionPerformed, ketik 

Script 

private void foto2AncestorMoved(javax.swing.event.AncestorEvent evt) {                                     

        // TODO add your handling code here: 

    }          

 

                           

2.2.3. Membuat Menu Utama User 

Untuk membuat Menu Utama User silakan anda ikuti langkah-

langkah seperti membuat menu utama level admin. Rancangan menu 

untuk user adalah sebagai berikut : 

Sistem Transaksi Laporan Laporan 

LogOut 

Ganti 

Password 

 

Barang Masuk 

Barang Keluar 

Lap.Barang 

Lap.Barang Masuk 

Lap.Barang Keluar 

Lap. Transaksi 

Lap. Data Buku 

Lap. Data Anggota 

 

Beri nama untuk form tersebut : Form_MenuUtamaUser 

 39 

Langkah-langkah dalam pembuatan Menu Utama untuk User adalah sebagai 

berikut : 

1. Klik kanan pada package gudang – New – jFrame Form 

2. Isi Clase Name : Form_MenuUtamaUser – Finish 

 

Gambar 2.38 menambahkan JFrame baru 

3. Tambahkan Komponen jMenu Bar pada Form 

 40 

Gambar 2.39 Menambahkan menu bar 

4. Tambahkan 3 Menu Item sebagai sub menu, dengan cara : 

Klik kanan pada menu File – Add From Palette – Menu Item 

Gambar 2.40 menambahkan sub menu bar 

5. Klik kanan pada jMenuItem1 – Edit Text – Ketik LogOut 

6. Klik kanan pada jMenuItem1 – Change Variable Name – mnlogout 

 41 

 

Gambar 2.41 Merubah variable name sub menu bar 

 

7. Lakukan langkah 7 dengan mengatur jMenuItem2 menjadi : 

Edit Text=Ganti Password 

Change Variabel Name=mngantipassword 

8. Lakukan langkah 8 dengan mengatur jMenuItem3 menjadi : 

Edit Text=Keluar 

Change Variabel Name=mnkeluar 

9. Klik kanan pada menu Transaksi – Add Form Palette – Menu Item 

 

 42 

Gambar 2.42 menambahkan menu bar 

 

10. Tambahkan 2 Menu Item dengan cara yang sama seperti langkah no.4, 

dengan pengaturan sebagai berikut : 

jMenuItem1, Edit Text=Barang Masuk, Change Variabel 

Name=jbarang_masuk 

jMenuItem2, Edit Text=Barang Keluar, Change Variabel 

Name=jbarang_keluar 

 

 

Gambar 2.43 tampilan menu transaksi 

 

11. Untuk membuat menubar baru (Laporan) silakan klik kanan pada 

jMenuBar1 – AddMenu 

 43 

 

Gambar 2.44 menambhakn menu bar  

 

Silakan atur jMenu3 sebagai  berikut : 

Edit Text=Laporan, Change Variable Name=mnlaporan 

12. Lakukan hal yang sama seperti langkah diatas untuk membuat menu 

Laporan, dengan ketentuan berikut : 

Komponen Properties 

jMenu3 Edit Text : Laporan 

 jMenuItem1 Edit Text : Laporan Barang 

Change Variable Name : mnlapbarang 

 jMenuItem2 Edit Text : Laporan Barang Masuk 

Change Variable Name : mnlapbrgmsk 

 jMenuItem3 Edit Text : Laporan Barang Keluar 

Change Variable Name : mnlapbrgklr 

jMenu4 Edit Text : Data 

 jMenuItem1 Edit Text : Data Barang 

Change Variable Name : jdata_barang 

 44 

JMenuItem2 Edit Text : Stok Barang Minimal 

Change Variable Name : jstok_min 

jLabel1 Change Variable Name : Ilevel 

jLabel2 Change Variable Name : Ikode 

jLabel3 Change Variable Name : Inama 

jLabel4 Change Variable Name : clock1 

jLabel5 Change Variable Name : Tidak Dirubah 

jLabel6 Change Variable Name : Tidak Dirubah 

jLabel7 Change Variable Name : date2 

jLabel8 Change Variable Name : foto2 

 

 

13. Hasil Akhir dari Menu Utama Level User 

 

Gambar 2.45 menu utama user 

 

14. Ketik sript koneksi dan pembuatan Variable seperti dibawah ini : 

 45 

/* 

 * 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 gudang; 

import java.awt.event.ActionEvent; 

import java.awt.event.ActionListener; 

import java.sql.Connection; 

import java.sql.DriverManager; 

import java.sql.PreparedStatement; 

import java.sql.ResultSet; 

import javax.swing.JOptionPane; 

import net.sf.jasperreports.engine.JasperFillManager; 

import net.sf.jasperreports.engine.JasperPrint; 

import net.sf.jasperreports.view.JasperViewer; 

import java.util.HashMap; 

import javax.swing.ImageIcon; 

import javax.swing.Timer; 

/** 

 * 

 * @author Pannugroho 

 */ 

public class Form_MenuUtamaUser extends javax.swing.JFrame { 

   koneksi kon = new koneksi(); 

   Connection connec; 

   PreparedStatement psmnt = null; 

   ImageIcon format; 

   ResultSet rs; 

    /** 

 46 

     * Creates new form Form_MenuUtamaUser 

     */ 

    public Form_MenuUtamaUser() { 

        initComponents(); 

        setTanggal(); 

        setJam(); 

        kon.setkoneksi(); 

    } 

    public String kode; 

    public String Level; 

    public String NamaUser; 

    public String getKodeUser() 

                { 

                    return kode; 

                } 

    public String getNamaUser() 

    { 

        return NamaUser; 

    } 

    public String getLevel() 

    { 

        return Level; 

    } 

    public void setTanggal(){ 

    java.util.Date skrg = new java.util.Date(); 

    java.text.SimpleDateFormat kal = new 

    java.text.SimpleDateFormat("dd MMMM yyyy"); 

    date2.setText(kal.format(skrg)); 

    } 

      

 47 

      public void setJam(){ 

ActionListener taskPerformer = new ActionListener() { 

 

public void actionPerformed(ActionEvent evt) { 

String nol_jam = "", nol_menit = "",nol_detik = ""; 

 

java.util.Date dateTime = new java.util.Date(); 

int nilai_jam = dateTime.getHours(); 

int nilai_menit = dateTime.getMinutes(); 

int nilai_detik = dateTime.getSeconds(); 

 

if(nilai_jam <= 9) nol_jam= "0"; 

if(nilai_menit <= 9) nol_menit= "0"; 

if(nilai_detik <= 9) nol_detik= "0"; 

 

String waktu = nol_jam + Integer.toString(nilai_jam); 

String menit = nol_menit + Integer.toString(nilai_menit); 

String detik = nol_detik + Integer.toString(nilai_detik); 

 

clock1.setText(waktu+":"+menit+":"+detik+""); 

}; 

new Timer(1000, taskPerformer).start(); 

       

       private void getfoto() 

    { 

        try{ 

            Class.forName("com.mysql.jdbc.Driver"); 

 48 

            connec = 

DriverManager.getConnection("jdbc:mysql://localhost/inventory_db","root",""); 

            String query = "select * from tb_user where id_user like '%" 

+Ikode.getText()+ "%' "; 

            psmnt = connec.prepareStatement(query); 

            rs=psmnt.executeQuery(); 

            if(rs.next()) 

            { 

                byte[] imagedata=rs.getBytes(5); 

                format=new ImageIcon(imagedata); 

                foto2.setIcon(format); 

            } 

            else 

            { 

                JOptionPane.showMessageDialog(this, " Data Tidak ditemukan"); 

            }       

            

        } 

         catch (Exception e) { 

             e.printStackTrace(); 

         } 

    } 

 

    /** 

     * This method is called from within the constructor to initialize the form. 

     * WARNING: Do NOT modify this code. The content of this method is 

always 

     * regenerated by the Form Editor. 

     */ 

@SuppressWarnings("unchecked") 

 49 

Generated Code                       

 

15. Klik kanan pada jForm, pilih Event–Window–windowActivated, ketik 

script 

    private void formWindowActivated(java.awt.event.WindowEvent evt) {                                      

        // TODO add your handling code here: 

Inama.setText(NamaUser); 

        Ikode.setText(kode); 

        Ilevel.setText(Level); 

        getfoto(); 

    }     

 

16. Klik kanan pada mnlogout, pilih Event–Action–ActionPerformed, ketik 

script 

private void mnLogoutActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here: 

        this.dispose(); 

        Form_Login login = new Form_Login(); 

        login.setLocationRelativeTo(null); 

        login.setVisible(true); 

    }                             

 

 50 

17. Klik kanan pada mnkeluar, pilih Event–Action–ActionPerformed, ketik 

Script 

private void mnKeluarActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here: 

        System.exit(0); 

    } 

 

18. Klik kanan pada jbarang_masuk, pilih Event–Action–ActionPerformed, 

ketik Script 

private void jbarang_masukActionPerformed(java.awt.event.ActionEvent 

evt) {                                               

        // TODO add your handling code here: 

        Form_Penerimaan_Barang  BM = new Form_Penerimaan_Barang(); 

        BM.setLocationRelativeTo(null); 

        BM.setVisible(true); 

        BM.kode=Ikode.getText(); 

    } 

                                 

19. Klik kanan pada jbarang_keluar, pilih Event–Action–ActionPerformed, 

ketik Script 

private void jbarang_keluarActionPerformed(java.awt.event.ActionEvent 

evt) {                                                

        // TODO add your handling code here: 

        Form_Pengeluaran_Barang  BK = new Form_Pengeluaran_Barang(); 

        BK.setLocationRelativeTo(null); 

        BK.setVisible(true); 

        BK.kode=Ikode.getText(); 

    } 

 51 

 

20. Klik kanan pada jdata_barang, pilih Event–Action–ActionPerformed, 

ketik Script 

private void jdata_barangActionPerformed(java.awt.event.ActionEvent evt) 

{                                              

        // TODO add your handling code here: 

        Form_Data_Barang2  DB = new Form_Data_Barang2(this, 

rootPaneCheckingEnabled); 

        DB.setLocationRelativeTo(null); 

        DB.setVisible(true); 

    } 

 

21. Klik kanan pada jstok_min, pilih Event–Action-ActionPerformed, ketik 

Scrip 

private void jstok_minActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // TODO add your handling code here: 

        Form_Stok_Barang_Minimal  DSMB = new 

Form_Stok_Barang_Minimal(this, rootPaneCheckingEnabled); 

        DSMB.setLocationRelativeTo(null); 

        DSMB.setVisible(true); 

}     

                                       

22. Klik kanan pada mnlapbarang, pilih Event–Action–ActionPerformed, 

ketik Script 

private void mnLapbarangActionPerformed(java.awt.event.ActionEvent evt) 

{                                             

        // TODO add your handling code here: 

 52 

        try{ 

            String path="src/gudang/Laporan_Barang.jasper"; 

            HashMap parameter = new HashMap(); 

            JasperPrint print = 

JasperFillManager.fillReport(path,parameter,kon.setkoneksi()); 

            JasperViewer.viewReport(print, false); 

        } 

        catch(Exception e) { 

            JOptionPane.showMessageDialog(null, e); 

        } 

    } 

 

23. Klik kanan pada mnlapbrgmsk, pilih Event–Action–ActionPerformed, 

ketik Script 

private void mnLapBrgMskActionPerformed(java.awt.event.ActionEvent 

evt) {                                             

        // TODO add your handling code here: 

       Form_Laporan_PenerimaanPeriode Laporan_Msk = new 

Form_Laporan_PenerimaanPeriode(); 

       Laporan_Msk.setLocationRelativeTo(null); 

 53 

       Laporan_Msk.setVisible(true);                                 

    } 

 

24. Klik kanan pada mnlapbrgklr, pilih Event–Action–ActionPerformed, ketik 

Script 

  private void mnLapBrgKlrActionPerformed(java.awt.event.ActionEvent 

evt) {                                             

        // TODO add your handling code here: 

       Form_Laporan_PengeluaranPeriode Laporan_Klr = new 

Form_Laporan_PengeluaranPeriode(); 

       Laporan_Klr.setLocationRelativeTo(null); 

       Laporan_Klr.setVisible(true); 

    }            

                           

2.2.4. Membuat Form Master Barang 

1. Klik kanan pada package gudang-New-JFrame Form 

2. Isi Class Name : Form_Master_Barang-Finish 

 54 

 

 

Gambar 2.46 membuat JFrame baru 

 

1. Desain 

Desain Form Master Barang  Running Form Master Barang 

 

 

 

 

 55 

 

Gambar 2.47 desain master barang 

 

2. Source Code 

 

Gambar 2.48 komponen master barang 

No Komponen Propertis 

1 JTextField Change Variable Name : tkd_barang 

2 JComboBox Change Variable Name : cbkategori 

3 JTextField Change Variable Name : tid_kategori 

 56 

4 JTextField Change Variable Name : tnm_barang 

5 JTextField Change Variable Name : tstok 

6 JTextField Change Variable Name : tmin_stok 

7 JTextField Change Variable Name : tcari 

8 JTable Change Variable Name : tbl_brg 

9 JButton Edit Text : Tambah 

Change Variable Name : bt_tambah 

10 JButton Edit Text : Simpan 

Change Variable Name : bt_simpan 

11 JButton Edit Text : Edit 

Change Variable Name : bt_edit 

12 JButton Edit Text : Update 

Change Variable Name : bt_update 

13 JButton Edit Text : Hapus 

Change Variable Name : bt_hapus 

14 JButton Edit Text : Batal 

Change Variable Name : bt_batal 

15 JButton Edit Text : Keluar 

Change Variable Name : bt_keluar 

 

Ketik Scrip method-method dibawah ini : 

/* 

 57 

 * 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 gudang; 

import java.sql.*; 

import java.util.logging.Level; 

import java.util.logging.Logger; 

import javax.swing.*; 

import javax.swing.table.DefaultTableModel; 

/** 

 * 

 * @author Pannugroho 

 */ 

public class Form_Master_Barang extends javax.swing.JFrame { 

    koneksi kon=new koneksi(); 

    private Object [][] dataproduk=null; 

    private String[]label={"KODE BARANG","KATEGORI","NAMA 

BARANG","STOK","MIN.STOK"}; 

 

    /** 

     * Creates new form Form_Master_Barang 

     */ 

    public Form_Master_Barang() { 

        initComponents(); 

        kon.setkoneksi(); 

        nonaktif(); 

        BacaTabelBarang(); 

        isiNamaKategori(); 

 58 

        tid_kategori.setVisible(true); 

    } 

    private void setTable(){ 

        int row=tbl_brg.getSelectedRow(); 

        tkd_barang.setText((String)tbl_brg.getValueAt(row,0)); 

        tid_kategori.setText((String)tbl_brg.getValueAt(row,1)); 

        tnm_barang.setText((String)tbl_brg.getValueAt(row,2)); 

        tstok.setText((String)tbl_brg.getValueAt(row,3)); 

        tmin_stok.setText((String)tbl_brg.getValueAt(row,4)); 

    } 

    private void BersihField(){ 

        tkd_barang.setText(""); 

        tid_kategori.setText(""); 

        tnm_barang.setText(""); 

        tstok.setText(""); 

        tmin_stok.setText(""); 

        tcari.setText(""); 

        cbkategori.setSelectedIndex(0); 

    } 

     

    private void aktif(){ 

        tkd_barang.setEnabled(true); 

        tnm_barang.setEnabled(true); 

        tstok.setEnabled(true); 

        tmin_stok.setEnabled(true); 

        cbkategori.setEnabled(true); 

    } 

     

    private void nonaktif(){ 

        tkd_barang.setEnabled(false); 

 59 

        tnm_barang.setEnabled(false); 

        tstok.setEnabled(false); 

        tmin_stok.setEnabled(false); 

        bt_edit.setEnabled(false); 

        bt_update.setEnabled(false); 

        bt_hapus.setEnabled(false); 

        bt_simpan.setEnabled(false); 

        tid_kategori.setVisible(false); 

        cbkategori.setEnabled(false); 

    } 

     

    private void isiNamaKategori(){ 

        try{ 

            String sql="Select *From tb_kategori"; 

            kon.rs=kon.st.executeQuery(sql); 

            while (kon.rs.next()){ 

            cbkategori.addItem(kon.rs.getString("nm_kategori")); 

            } 

             }catch(SQLException e){ 

              System.out.println("Koneksi Gagal"+ e.toString()); 

        } 

    } 

     

 

    private String NoBarang() 

    { 

        String urutan=null; 

            try{ 

                kon.rs=kon.st.executeQuery("select right(kd_brg,4)+1 from 

tb_barang as Nomor order by kd_brg desc"); 

 60 

                if(kon.rs.next()) 

            { 

             urutan=kon.rs.getString(1); 

             while(urutan.length()<4) 

             urutan="0"+urutan; 

             urutan="AHI/KB/"+urutan; 

             tkd_barang.setText(urutan); 

            }else 

            { 

            urutan="AHI/KB/"+"0001"; 

            tkd_barang.setText(urutan); 

            } 

            }catch(Exception e){ 

            JOptionPane.showMessageDialog(null,"No PS Error : "+e); 

            } 

            return urutan; 

    } 

     

    private void BacaTabelBarang(){ 

        try{ 

            String sql="Select *From tb_barang order by kd_brg"; 

            kon.rs=kon.st.executeQuery(sql); 

            ResultSetMetaData m=kon.rs.getMetaData(); 

            int kolom=m.getColumnCount(); 

            int baris=0; 

            while(kon.rs.next()){ 

            baris=kon.rs.getRow(); 

           } 

            dataproduk=new Object[baris][kolom]; 

            int x=0; 

 61 

            kon.rs.beforeFirst(); 

            while(kon.rs.next()){ 

            dataproduk[x][0]=kon.rs.getString("kd_brg"); 

            dataproduk[x][1]=kon.rs.getString("nm_kategori"); 

            dataproduk[x][2]=kon.rs.getString("nm_brg"); 

            dataproduk[x][3]=kon.rs.getString("stok"); 

            dataproduk[x][4]=kon.rs.getString("min_stok"); 

            x++; 

           } 

            tbl_brg.setModel(new DefaultTableModel(dataproduk,label)); 

           } 

            catch(SQLException e){ 

            JOptionPane.showMessageDialog(null, e); 

           } 

    } 

     

    private void BacaTabelBarang2(){ 

        try{ 

            String sql = "Select *From tb_barang where kd_brg like '%" 

+tcari.getText()+"%'" 

                    + "or nm_kategori like '%" +tcari.getText()+"%'" 

                    + "or nm_brg like '%" +tcari.getText()+"%'"; 

            kon.rs=kon.st.executeQuery(sql); 

            ResultSetMetaData m=kon.rs.getMetaData(); 

            int kolom=m.getColumnCount(); 

            int baris=0; 

            while(kon.rs.next()){ 

            baris=kon.rs.getRow(); 

           } 

            dataproduk=new Object[baris][kolom]; 

 62 

            int x=0; 

            kon.rs.beforeFirst(); 

            while(kon.rs.next()){ 

            dataproduk[x][0]=kon.rs.getString("kd_brg"); 

            dataproduk[x][1]=kon.rs.getString("nm_kategori"); 

            dataproduk[x][2]=kon.rs.getString("nm_brg"); 

            dataproduk[x][3]=kon.rs.getString("stok"); 

            dataproduk[x][4]=kon.rs.getString("min_stok"); 

            

            x++; 

           } 

            tbl_brg.setModel(new DefaultTableModel(dataproduk,label)); 

           } 

            catch(SQLException e){ 

            JOptionPane.showMessageDialog(null, e); 

           } 

    } 

     

    void isiNamaKategori2(){ 

        try{ 

            kon.setkoneksi(); 

            String sql="Select *From tb_kategori where 

nm_kategori='"+tid_kategori.getText()+"'"; 

            kon.rs=kon.st.executeQuery(sql); 

            if (kon.rs.next()){ 

            cbkategori.setSelectedItem(kon.rs.getString("nm_kategori")); 

        } 

            }catch(SQLException e){ 

                System.out.println("Koneksi Gagal"+ e.toString()); 

               } 

 63 

    } 

 

3. Klik kanan pada  cb kategori, pilih Event-Action-Action Performed, ketik 

Script berikut : 

private void cbkategoriActionPerformed(java.awt.event.ActionEvent evt) {                                            

        try{ 

            kon.setkoneksi(); 

            String sql="Select *From tb_kategori where 

nm_kategori='"+cbkategori.getSelectedItem()+"'"; 

            kon.rs=kon.st.executeQuery(sql); 

            if (kon.rs.next()){ 

                tid_kategori.setText(kon.rs.getString("id_kategori")); 

            } 

        }catch(SQLException e){ 

            System.out.println("Koneksi Gagal"+ e.toString()); 

        } 

    }      

 

4. Klik kanan pada tombol cari,  pilih Event-Key-KeyPressed, ketik Script 

berikut : 

private void tcariKeyTyped(java.awt.event.KeyEvent evt) {                                

        kon.setkoneksi(); 

        BacaTabelBarang2(); 

    }      

                          

5. Klik kanan pada Tabel,   pilih Event-Mouse-MouseClicked, ketik Script 

berikut : 

private void tbl_brgMouseClicked(java.awt.event.MouseEvent evt) {                                      

        setTable(); 

        isiNamaKategori2(); 

 64 

        bt_hapus.setEnabled(false); 

        bt_edit.setEnabled(true); 

        bt_tambah.setEnabled(false); 

    }    

   

6. Klik kanan pada Button Tambah, pilih Event-Action-Action Performed, 

ketik Script berikut: 

private void bt_tambahActionPerformed(java.awt.event.ActionEvent evt) {                                           

        NoBarang(); 

        aktif(); 

        bt_batal.setEnabled(true); 

        bt_tambah.setEnabled(false); 

        bt_simpan.setEnabled(true); 

        cbkategori.setEnabled(true); 

     }    

          

7. Klik kanan pada Button Simpan, pilih Event-Action-Action Performed, 

ketik Script berikut: 

private void bt_simpanActionPerformed(java.awt.event.ActionEvent evt) { 

if (tkd_barang.getText().isEmpty() || tnm_barang.getText().isEmpty() || 

tid_kategori.getText().isEmpty() ||tstok.getText().isEmpty()) { 

JOptionPane.showMessageDialog(this, "Lengkapi Data", "Konfirmasi", 

JOptionPane.INFORMATION_MESSAGE); 

            bt_tambah.setEnabled(true); 

          } else { 

            bt_tambah.setEnabled(true); 

            bt_keluar.setEnabled(true); 

            cbkategori.setEnabled(true); 

            SimpanData(); 

            cbkategori.setSelectedItem("=PILIH="); 

 65 

            try { 

                kon.st.getConnection(); 

            } catch (SQLException ex) { 

                

Logger.getLogger(Form_Master_Barang.class.getName()).log(Level.SEVE

RE, null, ex); 

            } 

        } 

    }       

 

8. Klik kanan pada Button Edit, pilih Event-Action-Action Performed, ketik 

Script berikut: 

private void bt_editActionPerformed(java.awt.event.ActionEvent evt) {                                         

        aktif(); 

        tkd_barang.setEnabled(false); 

        bt_edit.setEnabled(false); 

        bt_update.setEnabled(true); 

        bt_batal.setEnabled(true); 

        bt_hapus.setEnabled(true); 

        bt_tambah.setEnabled(false); 

    }      

 

9. Klik kanan pada Button Update, pilih Event-Action-Action Performed, 

ketik Script berikut: 

private void bt_editActionPerformed(java.awt.event.ActionEvent evt) {                                         

 aktif(); 

bt_update.setEnabled(false); 

   bt_tambah.setEnabled(true); 

   EditData(); 

   cbkategori.setSelectedItem("=PILIH="); 

 66 

    }  

   

10. Klik kanan pada Button Hapus, pilih Event-Action-Action Performed, ketik 

Script berikut: 

 private void bt_hapusActionPerformed(java.awt.event.ActionEvent evt) {                                          

        if (JOptionPane.showConfirmDialog(this, "yakin mau dihapus?", 

"konfirmasi", JOptionPane.YES_NO_OPTION) == 

JOptionPane.YES_OPTION) { 

            HapusData(); 

            bt_tambah.setEnabled(true); 

            nonaktif(); 

            BersihField(); 

            cbkategori.setSelectedItem("=PILIH="); 

        } else { 

            JOptionPane.showMessageDialog(this, "Data Batal Dihapus", 

"Konfirmasi", JOptionPane.INFORMATION_MESSAGE); 

            bt_tambah.setEnabled(true); 

            nonaktif(); 

            BersihField(); 

            cbkategori.setSelectedItem("=PILIH="); 

            return; 

        } 

        formWindowActivated(null); 

    }   

     

11. Klik kanan pada Button Batal, pilih Event-Action-Action Performed, ketik 

Script berikut: 

private void bt_batalActionPerformed(java.awt.event.ActionEvent evt) {                                          

        nonaktif(); 

        BersihField(); 

 67 

        bt_tambah.setEnabled(true); 

        cbkategori.setEnabled(true); 

        cbkategori.setSelectedItem("=PILIH="); 

        try { 

            kon.st.getConnection(); 

        } catch (SQLException ex) { 

            

Logger.getLogger(Form_Master_Barang.class.getName()).log(Level.SEV

ERE, null, ex); 

        } 

     }     

  

12. Klik kanan pada Button Keluar, pilih Event-Action-Action Performed, ketik 

Script berikut: 

 private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // MenuUtama menu = new MenuUtama(); 

        //  menu.setLocationRelativeTo(null); 

        // menu.setVisible(true); 

        dispose(); 

    }         

 

2.2.5. Membuat Data Barang 

1. Klik kanan pada package gudang-New-JFrame Form 

2. Isi Class Name : Form_Data_Barang -Finish 

 68 

 

 

Gambar 2.49 menambhakan JFrame baru 

 

a. Desain 

 

Desain Form Data Barang Running Form Data Barang 

 

 

 

 

Gambar 2.50 desain data barang 

 69 

b. Source Code 

 

Gambar 2.51 komponen data barang 

 

 

No Komponen Propertis 

1 JTextField Change Variable Name : tcari 

2 JTable Change Variable Name : tbl_barang 

 

Ketik Scrip method-method dibawah ini : 

/* 

 * 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 gudang; 

 70 

import java.sql.*; 

import javax.swing.JOptionPane; 

import javax.swing.table.DefaultTableModel; 

/** 

 * 

 * @author Pannugroho 

 */ 

public class Form_Data_Barang extends javax.swing.JDialog { 

    koneksi kon=new koneksi(); 

    private Object [][] databarang=null; 

    private String[]label={"KODE BARANG","NAMA 

KATEGORI","NAMA BARANG","STOK","MIN.STOK"}; 

    /** 

     * Creates new form Form_Data_Barang 

     */ 

    public Form_Data_Barang(java.awt.Frame parent, boolean modal) { 

        super(parent, modal); 

        initComponents(); 

        kon.setkoneksi(); 

        BacaTabelBarang(); 

    } 

    private void BacaTabelBarang() 

    { 

        try 

        { 

            String sql="Select *From tb_barang order by kd_brg"; 

            kon.rs=kon.st.executeQuery(sql); 

            ResultSetMetaData m=kon.rs.getMetaData(); 

            int kolom=m.getColumnCount(); 

            int baris=0; 

 71 

            while (kon.rs.next()) 

            { 

                baris=kon.rs.getRow(); 

            } 

            databarang=new Object[baris][kolom]; 

            int x=0; 

            kon.rs.beforeFirst(); 

            while(kon.rs.next()) 

            { 

                databarang[x][0] = kon.rs.getString("kd_brg"); 

                databarang[x][1] = kon.rs.getString("nm_kategori"); 

                databarang[x][2] = kon.rs.getString("nm_brg"); 

                databarang[x][3] = kon.rs.getString("stok"); 

                databarang[x][4] = kon.rs.getString("min_stok"); 

                x++; 

            } 

            Tbl_barang1.setModel(new 

DefaultTableModel(databarang,label)); 

        } 

        catch(SQLException e) 

        { 

        JOptionPane.showMessageDialog(null, e); 

        } 

    } 

     

    private void CariTabelBarang() 

    { 

        try 

        { 

 72 

            String sql="select *from tb_barang where kd_brg like '%" 

+tcari.getText()+"%'" 

                    + "or nm_kategori like '%" +tcari.getText()+"%'" 

                    + "or nm_brg like '%" +tcari.getText()+"%'"; 

            kon.rs=kon.st.executeQuery(sql); 

            ResultSetMetaData m=kon.rs.getMetaData(); 

            int kolom=m.getColumnCount(); 

            int baris=0; 

            while(kon.rs.next()){ 

                baris=kon.rs.getRow(); 

            } 

            databarang=new Object[baris][kolom]; 

            int x=0; 

            kon.rs.beforeFirst(); 

            while(kon.rs.next()) 

            { 

                databarang[x][0] = kon.rs.getString("kd_brg"); 

                databarang[x][1] = kon.rs.getString("nm_kategori"); 

                databarang[x][2] = kon.rs.getString("nm_brg"); 

                databarang[x][3] = kon.rs.getString("stok"); 

                databarang[x][4] = kon.rs.getString("min_stok"); 

                x++; 

            } 

            Tbl_barang1.setModel(new 

DefaultTableModel(databarang,label)); 

        } 

        catch(SQLException e) 

        { 

        JOptionPane.showMessageDialog(null, e); 

        } 

 73 

    } 

     

    /** 

     * This method is called from within the constructor to initialize the 

form. 

     * WARNING: Do NOT modify this code. The content of this method 

is always 

     * regenerated by the Form Editor. 

     */ 

    @SuppressWarnings("unchecked") 

public static void main(String args[]) { 

        /* Set the Nimbus look and feel */ 

/* Create and display the form */ 

 

3. Klik kanan pada Kolom Cari Barang, pilih Event-Key-KeyTyped, 

ketik Script berikut : 

private void tcari1KeyTyped(java.awt.event.KeyEvent evt) {                                 

        // TODO add your handling code here: 

        CariTabelBarang(); 

    }                                

 

 

2.2.6. Membuat Form Master User 

1. Klik kanan pada package gudang-New-JFrame Form 

2. Isi Class Name : Form_Master_User-Finish 

 74 

 

 

Gambar 2.52 membuat JFramme baru 

 

a. Desain 

Desain Form Master User  Running Form Master User 

 

 

 

 

Gambar 2.53 desain master user 

 75 

 

b. Source Code 

 

Gambar 2.54. komponen menu utama user 

 

No Komponen Propertis 

1 JTextField Change Variable Name : tkd_user 

2 JTextField Change Variable Name : tnm_user 

3 JPasswordField Change Variable Name : tpassword 

4 JComboBox Change Variable Name : cblevel 

5 JTextField Change Variable Name : televel 

6 JLabel Change Variable Name : photo 

7 JButton Edit Text : Browser 

Change Variable Name : bt_browser 

8 JButton Edit Text : TAMBAH 

Change Variable Name : bt_tambah 

 76 

9 JButton Edit Text : SIMPAN 

Change Variable Name : bt_simpan 

10 JButton Edit Text : HAPUS 

Change Variable Name : bt_hapus 

11 JButton Edit Text : KELUAR 

Change Variable Name : bt_keluar 

12 JTextField Change Variable Name : tcari 

 

Ketik Scrip method-method dibawah ini : 

/* 

 * 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 gudang; 

import java.awt.event.KeyEvent; 

import java.sql.*; 

import java.io.*; 

import java.text.SimpleDateFormat; 

import javax.swing.JFileChooser; 

import java.util.logging.Level; 

import java.util.logging.Logger; 

import javax.swing.ImageIcon; 

import javax.swing.JOptionPane; 

/** 

 77 

 * 

 * @author Pannugroho 

 */ 

public class Form_Master_User extends javax.swing.JFrame { 

    koneksi kon=new koneksi (); 

    Connection connec; 

    PreparedStatement psmnt = null; 

    ImageIcon format; 

    File pics; 

    FileInputStream fistream; 

    ResultSet rs; 

    private String no; 

     

    /** 

     * Creates new form Form_Master_User 

     */ 

    public Form_Master_User() { 

        initComponents(); 

        kon.setkoneksi(); 

        nonaktif(); 

        televel.setVisible(false); 

        

         

          try 

       { 

           Class.forName("com.mysql.jdbc.Driver"); 

            connec = 

DriverManager.getConnection("jdbc:mysql://localhost/inventory_db","ro

ot",""); 

       } 

 78 

        catch(Exception e){ 

             

        } 

    } 

    private void NoUser() 

    { 

        try { 

            String sql_no= "select right(id_user,3)as no, mid(id_user,4,4) as 

periode from tb_user"; 

            kon.setkoneksi(); 

            ResultSet rs = kon.st.executeQuery(sql_no); 

            if (rs.next()){ 

            rs.last(); 

                int no = Integer.parseInt(rs.getString("no"))+1; 

                 

            java.util.Date date = new java.util.Date(); 

            SimpleDateFormat dateformat1=new SimpleDateFormat 

("MM.yy"); 

            String tanggal=dateformat1.format(date); 

                      

                if(no<10) 

                    tkd_user.setText("ID/AHI-

"+tanggal+"/000"+Integer.toString(no)); 

                else if(no<100) 

                    tkd_user.setText("ID/AHI-

"+tanggal+"/00"+Integer.toString(no)); 

                else if(no<1000) 

                    tkd_user.setText("ID/AHI-

"+tanggal+"/0"+Integer.toString(no)); 

                else  

 79 

                    tkd_user.setText("ID/AHI-

"+tanggal+"/"+Integer.toString(no)); 

            } 

             else 

            { 

                java.util.Date date = new java.util.Date();         

            SimpleDateFormat dateformat1=new SimpleDateFormat 

("MM.yy"); 

            String tanggal=dateformat1.format(date); 

             

                tkd_user.setText("ID/AHI-"+tanggal+"/0001"); 

            } 

             

        } 

            catch (Exception e) 

        { 

            JOptionPane.showMessageDialog(null, e); 

        } 

    } 

    private void nonaktif(){ 

        tkd_user.setEnabled(false); 

        tnm_user.setEnabled(false); 

        tpassword.setEnabled(false); 

        cblevel.setEnabled(false); 

        bt_browser.setEnabled(false); 

 

    } 

    private void aktif(){ 

        tkd_user.setEnabled(true); 

        tnm_user.setEnabled(true); 

 80 

        tpassword.setEnabled(true); 

        cblevel.setEnabled(true); 

        bt_browser.setEnabled(true); 

    } 

     

    private void BersihField(){ 

    tkd_user.setText(""); 

    tnm_user.setText(""); 

    tpassword.setText(""); 

    cblevel.setSelectedIndex(0); 

    televel.setText(""); 

    photo.setIcon(null); 

 } 

     

    private void OpenPicture(){ 

    try 

        { 

            JFileChooser picChooser = new JFileChooser(); 

            int returnVal = picChooser.showOpenDialog(null); 

            File file = null; 

            if(returnVal == JFileChooser.APPROVE_OPTION) 

            { 

                file = picChooser.getSelectedFile(); 

                String filename = file.getAbsolutePath(); 

                pics=new File(filename); 

                fistream=new FileInputStream(pics); 

                ImageIcon icon = new ImageIcon(filename); 

                photo.setIcon(icon); 

            } 

        }catch (Exception e)  

 81 

        { 

           

        e.printStackTrace(); 

        } 

 

3. Klik kanan pada tombol cari, pilih Event-Key-KeyPressed, ketik Script 

berikut : 

private void tcariKeyTyped(java.awt.event.KeyEvent evt) {                                

        // TODO add your handling code here: 

        try{ 

            String query = "select * from tb_user where nm_user like '%" 

+tcari.getText()+ "%' "; 

            tnm_user.setEnabled(false); 

            tpassword.setEnabled(false); 

            nonaktif(); 

            psmnt = connec.prepareStatement(query); 

            rs=psmnt.executeQuery(); 

            if(rs.next()) 

            { 

                tkd_user.setText(rs.getString(1)); 

                tnm_user.setText(rs.getString(2)); 

                tpassword.setText(rs.getString(3)); 

                cblevel.setSelectedItem(rs.getString(4)); 

                byte[] imagedata=rs.getBytes(5); 

                format=new ImageIcon(imagedata); 

                photo.setIcon(format); 

                bt_tambah.setText("EDIT"); 

                tkd_user.setEnabled(false); 

 82 

                bt_browser.setEnabled(true); 

                cblevel.setEnabled(true); 

            } 

            else 

            { 

                JOptionPane.showMessageDialog(this, " Data Tidak 

ditemukan"); 

            }       

            

        } 

         catch (Exception e) { 

             e.printStackTrace(); 

         } 

    }                               

4. Klik kanan pada  kode user, pilih Event-Action-Action Performed, ketik 

Script berikut 

private void tkd_userActionPerformed(java.awt.event.ActionEvent evt) 

{                                          

        // TODO add your handling code here: 

    }    

 

5. Klik kanan pada cb Level, pilih Event-Action-Action Performed, ketik 

Script berikut 

private void cblevelActionPerformed(java.awt.event.ActionEvent evt) {                                         

        // TODO add your handling code here: 

        if(cblevel.getSelectedItem().equals("1")) 

        { 

            televel.setText("1"); 

        } 

        else 

 83 

            if(cblevel.getSelectedItem().equals("2")) 

        { 

            televel.setText("2"); 

        } 

    }       

 

6. Klik kanan pada Button Browser, pilih Event-Action-Action Performed, 

ketik Script berikut 

private void bt_browserActionPerformed(java.awt.event.ActionEvent evt) 

{                                            

        // TODO add your handling code here: 

        OpenPicture(); 

    }      

 

7. Klik kanan pada Button Tambah, pilih Event-Action-Action Performed, 

ketik Script berikut : 

private void bt_tambahActionPerformed(java.awt.event.ActionEvent evt) 

{                                           

        // TODO add your handling code here: 

         if(bt_tambah.getText().equals("TAMBAH")) 

        { 

         bt_simpan.setText("SIMPAN"); 

         bt_keluar.setText("BATAL"); 

        BersihField(); 

        NoUser(); 

        aktif();bt_hapus.setEnabled(false); 

        tkd_user.setEnabled(false); 

        bt_tambah.setEnabled(false); 

        bt_hapus.setEnabled(false); 

         } 

 84 

        else if (bt_tambah.getText().equals("EDIT")) 

        { 

            tnm_user.setEnabled(true); 

            tpassword.setEnabled(true); 

         bt_simpan.setText("UPDATE"); 

         bt_keluar.setText("BATAL"); 

         bt_tambah.setEnabled(false); 

          

         } 

    }    

    

8. Klik kanan pada Button Simpan, pilih Event-Action-Action Performed, 

ketik Script berikut : 

private void bt_simpanActionPerformed(java.awt.event.ActionEvent evt) 

{                                           

        // TODO add your handling code here: 

        SimpanData(); 

       if(bt_simpan.getText().equals("SIMPAN")) 

        { 

         bt_tambah.setText("TAMBAH"); 

         bt_keluar.setText("KELUAR"); 

         BersihField(); 

         tkd_user.requestFocus(); 

         } 

        else if (bt_simpan.getText().equals("UPDATE")) 

        { 

         EditData(); 

         bt_tambah.setText("EDIT"); 

         bt_keluar.setText("BATAL"); 

         tcari.requestFocus(); 

 85 

         } 

    }      

    

9. Klik kanan pada Button Hapus, pilih Event-Action-Action Performed, ketik 

Script berikut : 

private void bt_hapusActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here: 

        if (JOptionPane.showConfirmDialog(this, "yakin mau dihapus?", 

"konfirmasi", JOptionPane.YES_NO_OPTION) == 

JOptionPane.YES_OPTION) { 

            HapusData(); 

            bt_tambah.setEnabled(true); 

            nonaktif(); 

            BersihField(); 

            cblevel.setSelectedItem("=PILIH="); 

        } else { 

            JOptionPane.showMessageDialog(this, "Data Batal Dihapus", 

"Konfirmasi", JOptionPane.INFORMATION_MESSAGE); 

            bt_tambah.setEnabled(true); 

            nonaktif(); 

            BersihField(); 

            cblevel.setSelectedItem("=PILIH="); 

            return; 

        } 

    }         

                                 

10. Klik kanan pada Button Keluar, pilih Event-Action-Action Performed, ketik 

Script berikut : 

private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // TODO add your handling code here: 

 86 

        if(bt_keluar.getText().equals("KELUAR")) 

         { 

         dispose(); 

         } 

         else if (bt_keluar.getText().equals("BATAL")) 

         { 

         BersihField(); 

         bt_tambah.setEnabled(true); 

         bt_keluar.setText("KELUAR"); 

         bt_tambah.setText("TAMBAH"); 

         } 

    }    

 

 

 

2.2.7. Membuat Form Master Kategori 

1. Klik kanan pada package gudang-New-JFrame Form 

2. Isi Class Name : Form_Master_Kategori-Finish 

 

 87 

 

Gambar 2.55 menambahkan JFrame baru 

 

 

1. Desain 

Desain Form Master Kategori Running Form Master Kategori 

 

 

 

 

Gambar 2.56.  Desain master kategori 

 

 

 88 

2. Source Code 

 

Gambar 2.57. komponen master kategori 

 

No Komponen Propertis 

1 JTextField Change Variable Name : tid_kategori 

2 JTextField Change Variable Name : tnm_kategori 

3 JTextField Change Variable Name : tcari 

4 JTable Change Variable Name : tbl_kategori 

5 JButton Edit  Text : Tambah 

Change Variable Name : bt_tambah 

6 JButton Edit  Text : Edit 

Change Variable Name : bt_edit 

7 JButton Edit  Text : Update 

Change Variable Name : bt_update 

 89 

8 JButton Edit  Text : Hapus 

Change Variable Name : bt_hapus 

9 JButton Edit  Text : Batal 

Change Variable Name : bt_batal 

10 JButton Edit  Text : Simpan 

Change Variable Name : bt_simpan 

11 JButton Edit  Text : Tutup 

Change Variable Name : bt_keluar 

 

 

Ketik Scrip method-method dibawah ini : 

/* 

* 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 gudang; 

import java.sql.*; 

import javax.swing.*; 

import javax.swing.table.DefaultTableModel; 

/** 

 * 

 * @author Pannugroho 

 */ 

public class Form_Master_Kategori extends javax.swing.JFrame { 

koneksi kon=new koneksi(); 

 90 

    private Object [][] datakategori=null; 

    private String[]label={"Id Kategori","Nama Kategori"}; 

    /** 

     * Creates new form Form_Master_Kategori 

     */ 

    public Form_Master_Kategori() { 

        initComponents(); 

        kon.setkoneksi(); 

        BacaTabelKategori(); 

    } 

    private String NoKategori() 

    { 

        String urutan=null; 

            try{ 

                kon.rs=kon.st.executeQuery("select 

right(id_kategori,4)+1 from tb_kategori as Nomor order by 

id_kategori desc"); 

                if(kon.rs.next()) 

            { 

             urutan=kon.rs.getString(1); 

             while(urutan.length()<4) 

             urutan="0"+urutan; 

             urutan="AHI/KT/"+urutan; 

             tid_kategori.setText(urutan); 

            }else 

            { 

            urutan="AHI/KT/"+"0001"; 

            tid_kategori.setText(urutan); 

            } 

            }catch(Exception e){ 

 91 

            JOptionPane.showMessageDialog(null,"No PS Error : "+e); 

            } 

            return urutan; 

    } 

     

    private void BacaTabelKategori(){ 

        try{ 

            String sql="Select * From tb_kategori order by id_kategori"; 

            kon.rs=kon.st.executeQuery(sql); 

            ResultSetMetaData m=kon.rs.getMetaData(); 

            int kolom=m.getColumnCount(); 

            int baris=0; 

            while(kon.rs.next()){ 

            baris=kon.rs.getRow(); 

            } 

                datakategori=new Object[baris][kolom]; 

                int x=0; 

                kon.rs.beforeFirst(); 

                while(kon.rs.next()){ 

                datakategori[x][0]=kon.rs.getString("id_kategori"); 

                datakategori[x][1]=kon.rs.getString("nm_kategori"); 

                x++; 

            } 

                tbl_kategori.setModel(new 

DefaultTableModel(datakategori,label)); 

            } 

                catch(SQLException e){ 

                JOptionPane.showMessageDialog(null, e); 

        } 

 92 

     

private void BacaTabelKategori2(){ 

    try{ 

        String sql="select * from tb_kategori where nm_kategori like '%" 

+tcari.getText()+ "%' "; 

        kon.rs=kon.st.executeQuery(sql); 

        ResultSetMetaData m=kon.rs.getMetaData(); 

        int kolom=m.getColumnCount(); 

        int baris=0; 

        while(kon.rs.next()){ 

        baris=kon.rs.getRow(); 

       } 

        datakategori=new Object[baris][kolom]; 

        int x=0; 

        kon.rs.beforeFirst(); 

        while(kon.rs.next()){ 

        datakategori[x][0]=kon.rs.getString("id_kategori"); 

        datakategori[x][1]=kon.rs.getString("nm_kategori"); 

        x++; 

        } 

            tbl_kategori.setModel(new 

DefaultTableModel(datakategori,label)); 

        } 

            catch(SQLException e){ 

            JOptionPane.showMessageDialog(null, e); 

        } 

 

    private void setTable(){ 

        int row=tbl_kategori.getSelectedRow(); 

 93 

        tid_kategori.setText((String)tbl_kategori.getValueAt(row,0)); 

        tnm_kategori.setText((String)tbl_kategori.getValueAt(row,1)); 

    } 

     

    private void BersihField(){ 

        tnm_kategori.setText(""); 

        tid_kategori.setText(""); 

        tcari.setText(""); 

    } 

     

    private void aktif(){ 

        tnm_kategori.setEnabled(true); 

        tid_kategori.setEnabled(false); 

    } 

     

    private void nonaktif(){ 

        tnm_kategori.setEnabled(false); 

        tid_kategori.setEnabled(false); 

        bt_edit.setEnabled(false); 

        bt_update.setEnabled(false); 

        bt_hapus.setEnabled(false); 

        bt_simpan.setEnabled(false); 

    } 

 

3. Klik kanan pada Kolom cari, pilih Event-Key-KeyTyped, ketik Script 

berikut : 

private void tcariKeyTyped(java.awt.event.KeyEvent evt) {                                

BacaTabelKategori2(); 

    }      

                         

 94 

4. Klik kanan pada Tabel, pilih Event-Mouse-MouseClicked, ketik Script 

berikut 

  private void tbl_kategoriMouseClicked(java.awt.event.MouseEvent evt) {                                           

        setTable(); 

        bt_hapus.setEnabled(true); 

        bt_edit.setEnabled(true); 

        bt_tambah.setEnabled(false); 

    }            

                               

5. Klik kanan pada Button Tambah, pilih Event-Action-actionPerformed, ketik 

Script berikut : 

private void bt_tambahActionPerformed(java.awt.event.ActionEvent evt) 

{                                           

        BersihField(); 

        aktif(); 

        NoKategori(); 

        tnm_kategori.setEnabled(true); 

        tid_kategori.requestFocus(); 

        bt_batal.setEnabled(true); 

        bt_tambah.setEnabled(false); 

        bt_simpan.setEnabled(true); 

    }     

 

6. Klik kanan pada Button Edit, pilih Event-Action-actionPerformed, ketik 

Script berikut : 

private void bt_editActionPerformed(java.awt.event.ActionEvent evt) {                                         

        aktif(); 

        bt_edit.setEnabled(false); 

        bt_update.setEnabled(true); 

        bt_batal.setEnabled(true); 

 95 

        bt_hapus.setEnabled(false); 

        bt_tambah.setEnabled(false); 

    }      

 

7. Klik kanan pada Button Update, pilih Event-Action-actionPerformed, ketik 

Script berikut : 

  private void bt_updateActionPerformed(java.awt.event.ActionEvent evt) 

{                                           

        bt_update.setEnabled(false); 

        bt_tambah.setEnabled(true); 

        EditData(); 

    }   

 

8. Klik kanan pada Button Hapus, pilih Event-Action-actionPerformed, ketik 

Script berikut : 

private void bt_hapusActionPerformed(java.awt.event.ActionEvent evt) {                                          

        if (JOptionPane.showConfirmDialog(this, "yakin mau dihapus?", 

"konfirmasi", JOptionPane.YES_NO_OPTION) == 

JOptionPane.YES_OPTION) { 

            HapusData(); 

            bt_tambah.setEnabled(true); 

        } else { 

            JOptionPane.showMessageDialog(this, "Data Batal Dihapus", 

"Konfirmasi", JOptionPane.INFORMATION_MESSAGE); 

            bt_tambah.setEnabled(true); 

            return; 

        } 

        formWindowActivated(null); 

    }     

                                     

 96 

9. Klik kanan pada Button Batal, pilih Event-Action-actionPerformed, ketik 

Script berikut : 

private void bt_batalActionPerformed(java.awt.event.ActionEvent evt) {                                          

        nonaktif(); 

        BersihField(); 

        bt_tambah.setEnabled(true); 

    }   

      

10. Klik kanan pada Button Simpan, pilih Event-Action-actionPerformed, ketik 

Script berikut : 

private void bt_simpanActionPerformed(java.awt.event.ActionEvent evt) 

{                                           

        // TODO add your handling code here: 

        if (tnm_kategori.getText().isEmpty()) { 

            JOptionPane.showMessageDialog(this, "Lengkapi Data", 

"Konfirmasi", JOptionPane.INFORMATION_MESSAGE); 

            bt_tambah.setEnabled(true); 

        } else { 

            bt_tambah.setEnabled(true); 

            bt_keluar.setEnabled(true); 

            SimpanData(); 

        } 

    }     

  

11. Klik kanan pada Button Keluar, pilih Event-Action-actionPerformed, ketik 

Script berikut : 

private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // new MenuUtama().setVisible(true); 

        this.dispose(); 

    }         

 97 

2.2.8. Membuat Form Login 

1. Klik kanan pada package gudang-New-JFrame Form 

2. Isi Class Name : Form_Login -Finish 

 

 

Gambar 2.58. membuat JFrame baru 

 

a. Desain 

Desain Form Login Running Form Login 

 

 

 

 

Gambar 2.59 desain from login 

 98 

b. Source Code 

 

Gambar 4.60 komponen form login 

 

No Komponen Propertis 

1 JTextField Change Variable Name : tnik_user 

2 JPasswordField Change Variable Name : tpassword 

3 JTextField Change Variable Name : tlevel 

4 JButton Edit Text : MASUK 

Change Variable Name : bt_login 

5 JButton Edit Text : KELUAR 

Change Variable Name : bt_keluar 

 

Ketik Scrip method-method dibawah ini : 

/* 

* 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 gudang; 

 99 

import com.jtattoo.plaf.AbstractLookAndFeel; 

import java.sql.*; 

import javax.swing.JOptionPane; 

 

import com.jtattoo.plaf.mcwin.McWinLookAndFeel; 

import com.jtattoo.plaf.acryl.AcrylLookAndFeel; 

import com.jtattoo.plaf.aero.AeroLookAndFeel; 

import com.jtattoo.plaf.aluminium.AluminiumLookAndFeel; 

import com.jtattoo.plaf.bernstein.BernsteinLookAndFeel; 

import com.jtattoo.plaf.fast.FastLookAndFeel; 

import com.jtattoo.plaf.graphite.GraphiteLookAndFeel; 

import com.jtattoo.plaf.hifi.HiFiLookAndFeel; 

import com.jtattoo.plaf.luna.LunaLookAndFeel; 

import com.jtattoo.plaf.mint.MintLookAndFeel; 

import com.jtattoo.plaf.noire.NoireLookAndFeel; 

import com.jtattoo.plaf.smart.SmartLookAndFeel; 

import com.jtattoo.plaf.texture.TextureLookAndFeel; 

import com.sun.java.swing.plaf.windows.WindowsLookAndFeel; 

import javax.swing.UIManager; 

import javax.swing.plaf.metal.MetalLookAndFeel; 

/** 

 * 

 * @author Pannugroho 

 */ 

public class Form_Login extends javax.swing.JFrame { 

koneksi kon=new koneksi(); 

public Form_MenuUtamaAdmin menu=null; 

    /** 

     * Creates new form Form_Login 

     */ 

 100 

    public Form_Login() { 

        initComponents(); 

        kon.setkoneksi(); 

        tlevel.setVisible(false); 

    } 

    void bersih(){ 

        tnik_user.setText(""); 

        tpassword.setText(""); 

        tlevel.setText(""); 

    } 

     

    public void setTitle(String title) { 

        super.setTitle("L O G I N");  

    } 

     

    private void prosesLogin(){ 

         

            try{ 

                String sql="Select * from tb_user where 

id_user='"+tnik_user.getText()+"' AND 

password=MD5('"+tpassword.getText()+"')"; 

            kon.rs=kon.st.executeQuery(sql); 

           if(kon.rs.next()){ 

                if(tlevel.getText().equals("1")){ 

Form_MenuUtamaAdmin menu = new Form_MenuUtamaAdmin(); 

Form_Ganti_Password gantipass = new Form_Ganti_Password(); 

                    menu.setLocationRelativeTo(null); 

                    menu.setVisible(true); 

                    menu.NamaUser=kon.rs.getString("nm_user"); 

                    menu.kode=kon.rs.getString("id_user"); 

 101 

                    menu.Level=kon.rs.getString("level"); 

                    gantipass.Kode_User=kon.rs.getString("id_user"); 

                    this.dispose(); 

                } 

                else if(tlevel.getText().equals("2")){ 

                    Form_MenuUtamaUser user = new 

Form_MenuUtamaUser(); 

                    Form_Ganti_Password gantipass = new 

Form_Ganti_Password(); 

                    user.setLocationRelativeTo(null); 

                    user.setVisible(true); 

                    user.NamaUser=kon.rs.getString("nm_user"); 

                    user.kode=kon.rs.getString("id_user"); 

                    user.Level=kon.rs.getString("level"); 

                    gantipass.Kode_User=kon.rs.getString("id_user"); 

                    this.dispose(); 

                } } 

             

                else{ 

                    JOptionPane.showMessageDialog(null, "KODE user atau 

PASSWORD SALAH"); 

                    bersih(); 

                    tnik_user.setEnabled(true); 

                    tnik_user.requestFocus(); 

            } 

                 

            } 

            catch(SQLException e){ 

                JOptionPane.showMessageDialog(null, e); 

            } 

 102 

    } 

 

    /** 

     * This method is called from within the constructor to initialize the 

form. 

     * WARNING: Do NOT modify this code. The content of this method 

is always 

     * regenerated by the Form Editor. 

     */ 

    @SuppressWarnings("unchecked") 

 

1. Klik kanan pada Kolom Kode User, pilih Event-Action-Action Performed, 

ketik Script berikut : 

private void tnik_userActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // TODO add your handling code here: 

        String nikuser = ""; 

        nikuser = tnik_user.getText(); 

        try{ 

            String sql = "Select *from tb_user where id_user='" + nikuser +"'"; 

            kon.rs = kon.st.executeQuery(sql); 

            if (kon.rs.next()) { 

                tnik_user.setEnabled(false); 

                tlevel.setText(kon.rs.getString("level")); 

                tpassword.setEnabled(true); 

                tpassword.requestFocus(); 

                bt_login.setEnabled(true); 

                tnik_user.setEnabled(true); 

            } else { 

                JOptionPane.showMessageDialog(null, "kode user salah"); 

                bersih(); 

 103 

                tnik_user.setEnabled(true); 

                tnik_user.requestFocus(); 

 

            } 

        } catch (SQLException e) { 

            JOptionPane.showMessageDialog(null, e); 

        } 

    }      

 

2. Klik kanan pada Kolom Password, pilih Event-Action-Action Performed, 

ketik Script berikut : 

private void tpasswordActionPerformed(java.awt.event.ActionEvent 

evt) {                                           

        // TODO add your handling code here: 

    }   

3. Klik kanan pada Kolom Level, pilih Event-Action-Action Performed, ketik 

Script berikut : 

private void tlevelActionPerformed(java.awt.event.ActionEvent evt) {                                        

        // TODO add your handling code here: 

    }     

4. Klik kanan pada Button Login, pilih Event-Action-Action Performed, ketik 

Script berikut : 

private void bt_loginActionPerformed(java.awt.event.ActionEvent evt) 

{                                          

        // TODO add your handling code here: 

        prosesLogin(); 

    }    

5. Klik kanan pada Button Login, pilih Event-Action-Action Performed, ketik 

Script berikut : 

 104 

private void bt_keluarActionPerformed(java.awt.event.ActionEvent 

evt) {                                           

        // TODO add your handling code here: 

        dispose(); 

    }   

 

2.3. Rancangan Form Transaksi 

2.3.1.Form_Laporan_PenerimaanPeriode 

a. Desain Laporan Penerimaan Periode 

 

Gambar 2.61 komponen laporan penerimaan periode 

 

1 2

 

4 5 

 105 

No Komponen Propertis 

1 JDateChooser Change Variable Name : dctglawal 

2 JDateChooser Change Variable Name : dctglakhir 

3 JButton Edit Text : Cetak 

Change Variable Name : btcetakperiode 

4 JComboBox Change Variable Name : cmbbulan 

5 JYearChooser Change Variable Name : yctahun 

6 JButton Edit Text : Cetak 

Change Variable Name : btcetakbulan 

7 JButton Edit Text : Keluar 

Change Variable Name : bt_keluar 

 

b. Running Laporan Penerimaan Periode 

 

Gambar 2.62. running laporan penerimaan periode 

Ketik Scrip method-method dibawah ini : 

 106 

/* 

* 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 gudang; 

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

import net.sf.jasperreports.view.JasperViewer; 

import java.text.SimpleDateFormat; 

import java.util.HashMap; 

import net.sf.jasperreports.engine.JasperFillManager; 

import net.sf.jasperreports.engine.JasperPrint; 

import net.sf.jasperreports.engine.JasperReport; 

/** 

 * 

 * @author Pannugroho 

 */ 

 107 

public class Form_Laporan_PenerimaanPeriode extends javax.swing.JFrame 

    koneksi kon=new koneksi(); 

    JasperReport jasperReport; 

    JasperDesign jasperDesign; 

    JasperPrint jasperPrint; 

/** 

     * Creates new form Form_Laporan_PenerimaanPeriode 

     */ 

    public Form_Laporan_PenerimaanPeriode() { 

        initComponents(); 

        kon.setkoneksi(); 

    } 

 

    /** 

     * This method is called from within the constructor to initialize the form. 

     * WARNING: Do NOT modify this code. The content of this method is 

always 

     * regenerated by the Form Editor. 

 108 

     */ 

 

1. Klik kanan pada JButton btcetakperiode, pilih Event-Action-Action 

Performed, ketik Script berikut : 

private void btcetakperiodeActionPerformed(java.awt.event.ActionEvent evt) 

// TODO add your handling code here: 

        String tgl1 = new SimpleDateFormat("yyyy-MM-

dd").format(dctglawal.getDate()); 

        String tgl2 = new SimpleDateFormat("yyyy-MM-

dd").format(dctglakhir.getDate()); 

        try { 

            String NamaFile = 

"src/gudang/Laporan_Penerimaan_Pertanggal.jasper"; 

            HashMap parameter = new HashMap(); 

            parameter.put("tgl_awal", tgl1); 

            parameter.put("tgl_akhir", tgl2); 

            JasperPrint print = JasperFillManager.fillReport(NamaFile, parameter, 

kon.setkoneksi()); 

            JasperViewer.viewReport(print, false); 

        } catch (Exception ex) { 

            System.out.println(ex); 

        } 

 

2. Klik kanan pada JButton btcetakbulan, pilih Event-Action-Action 

Performed, ketik Script berikut : 

private void btcetakbulanActionPerformed(java.awt.event.ActionEvent evt) {                                              

// TODO add your handling code here: 

 109 

        try { 

            String NamaFile = 

"src/gudang/Laporan_Penerimaan_Perbulan.jasper"; 

            HashMap parameter = new HashMap(); 

            parameter.put("bulan", cmbbulan.getSelectedItem()); 

            parameter.put("tahun", yctahun.getYear()); 

            JasperPrint print = JasperFillManager.fillReport(NamaFile, paramete