Anda di halaman 1dari 37

Tutorial Pembuatan Aplikasi Toko Buku

Menggunakan Java & MySQL

Langsung saja,
1. Untuk langkah awalnya. Buka web browser Anda dan masuk ke phpmyadmin (ketikkan
localhost/phpmyadmin pada address bar web browser). Kemudian buat Database dengan nama
bukubuku.
2. Selanjutnya adalah pembuatan table pada bukubuku dengan nama data_buku & transaksi.
Masukkan nama tabel dan jumlah field (table data_buku 4 field & table transaksi 5 field) seperti
dibawah ini :
data_buku

transaksi

3. Setelah selesai membuat Database, tutup web browser Anda


4. Langkah berikutnya adalah tahap pembuatan Aplikasinya. Buka NetBeans dan buat Project Baru.

5. Beri Nama Project dengan Toko Buku. Saya menonaktifkan pembuatan Main Class. Setelah selesai,
Klik Finish.

6. Selanjutnya Buat Form, dengan cara Klik Kanan pada Project -> New -> JFrame Form

7. Beri nama Frame dengan DataBuku. Klik Finish.

8. Selanjutnya kita akan membuat Desain Form Data Buku yang kurang lebih seperti gambar di bawah

ini.

9. Berikut Komponen dan Properti-propertinya:


Komponen

Properties

Nilai

title
rezizable
text
border
text
text
Variable Name
text
text
Variable Name
text
text
Variable Name
Text
text
Variable Name

Toko Buku
false
Toko Buku
Titled Border (Title = Data Buku)
Kode

border

Titled Border (Title = Tombol)

text

Simpan

Variable Name

BtnSimpan

text

Ubah

Variable Name

BtnUbah

text

Hapus

Variable Name

BtnHapus

jLayeredPanel3

border

Titled Border (Title = Daftar Buku)

jTable1

Variable Name

TblBuku

jLayeredPanel4

border

Titled Border (Title = Cari Data Buku)

jLabel6

text

Cari berdasarkan

model

kode,judul,harga,jumlah

Variable Name

CmbCari

jFrame
jLabel1
jLayeredPanel1
jLabel2
jTextField1
jLabel3
jTextField2
jLabel4
jTextField3
jLabel5
jTextField4
jLayeredPanel2

jButton1

TxtKode
Judul
TxtJudul
harga
TxtHarga
jumlah
TxtJumlah

jButton2

jButton3

jComboBox1

text
jTextField4
Variable Name

TxtCari

10. Hasil dari layouting akhir

11. Untuk dapat terkoneksi dengan database, pada Java telah disediakan Library MySQL JDBC Driver.
Kita tinggal meng-import-nya saja. Klik Kanan pada folder Libraries yang ada Pada Project. Klik
tombol Import. Cari Library MySQL JDBC Driver, Kemudian Klik Import Library. Klik Add Library.

12. Selanjutnya buat Package baru dengan cara Klik Kanan pada Project -> New -> Java Package. Beri
nama Tabel. Klik Finish.

13. Buat Class baru pada Package Tabel. Klik Kanan pada Package Tabel -> New -> Java Class. Beri
nama DataBuku. Klik Finish.

14. Buat juga class TabelDataBuku pada Package Tabel.


Struktur dari project sekarang terlihat seperti gambar berikut.

15. Setelah selesai, selanjutnya adalah pemberian script.

class DataBuku:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Tabel;

/**
*
* @author Microsoft
*/
public class DataBuku {
private String kode, judul, harga, jumlah;
public DataBuku(){
}
public String getJumlah() {
return jumlah;
}
public void setJumlah(String jumlah) {
this.jumlah = jumlah;
}
public String getKode() {
return kode;
}
public void setKode(String kode) {
this.kode = kode;
}

public String getJudul() {


return judul;
}
public void setJudul(String judul) {
this.judul = judul;
}
}
class TabelDataBuku:
package Tabel;

/**
*
* @author Microsoft
*/
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class TabelDataBuku extends AbstractTableModel{


private List<DataBuku> list = new ArrayList<DataBuku>();

@Override
public int getRowCount() {
return list.size();
}

@Override

public int getColumnCount() {


return 3;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0 : return list.get(rowIndex).getkode();
case 1 : return list.get(rowIndex).getjudul();
case 2 : return list.get(rowIndex).getharga();
case 3 : return list.get(rowIndex).getjumlah();
default : return null;
}
}

@Override
public String getColumnName(int kolom){
switch(kolom){
case 0 : return "Kode";
case 1 : return "Judul";
case 2 : return "Harga";
case 3 : return "Jumlah";
default : return null;
}
}

public void add(DataBuku buku){

list.add(buku);
fireTableRowsInserted(getRowCount(), getColumnCount());
}
public void delete(int i, int baris){
list.remove(i);
fireTableRowsDeleted(i, baris);
}

public DataBuku get(int baris){


return (DataBuku) list.get(baris);
}
}

Tambahkan Script berikut pada class FrameBuku :


import Tabel.DataBuku;
import Tabel.TabelDataBuku;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class FrameBuku extends javax.swing.JFrame {

Tambahkan variable-variabel berikut pada class FrameBuku dan pada Konstruktor


FrameBuku :
public class FrameBuku extends javax.swing.JFrame{

private Connection koneksi;


private Statement script;
private TabelDataBuku ModelDataBuku;
/** Creates new from FrameBuku */
public FrameBuku( ) {
initComponents( );
ModelDataBuku = new TabelDataBuku();
TblBuku.setModel(ModelDataBuku);
KoneksiDb( );
tampil( );
bersih( );
}
Tambahkan variable-variabel berikut pada class FrameBuku dan pada Konstruktor FrameBuku
public class FrameBuku extends javax.swing.JFrame{
private Connection koneksi;
private Statement script;
private TabelDataBuku ModelDataBuku;
/** Creates new from FrameBuku */
public FrameBuku( ) {
initComponents( );
ModelDataBuku = new TabelDataBuku();
TblBuku.setModel(ModelDataBuku);
KoneksiDb( );
tampil( );
bersih( );
}

*catatan:
TEXT BERWARNA BIRU ADALAH SCRIPT YANG TELAH DIBUATKAN OLEH
NETBEANS.
Selanjutnya tambahkan script berikut di bawah blok Konstruktor FrameBuku (setelah BLOK class FrameBuku
extends javax.swing.JFrame).
private void KoneksiDb( ){ try{
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/bukubuku", "root", " ");
script = koneksi.createStatement( );
}
catch(SQLException ex){
System.err.print(ex);
}
catch(ClassNotFoundException ex){
System.err.print(ex);
}
}

private void tampil( ){


try{
int baris = TblBuku.getRowCount( );
for(int i=0; i<baris; i++){
ModelDataBuku.delete(0, baris);
}
String sql = "select * from data_buku";
ResultSet rs = script.executeQuery(sql);
while (rs.next( )){
DataBuku buku = new DataBuku( );
buku.setKode(rs.getString(1));
buku.setJudul(rs.getString(2));
buku.setHarga(rs.getString(3));
buku.setJumlah(rs.getString(4));
ModelDataBuku.add(buku);
}
}
catch(SQLException ex){
System.err.print(ex);
}
}
private void bersih( ){
TxtKode.setText(null);
TxtJudul.setText(null);
TxtHarga.setText(null);
TxtJumlah.setText(null);
TxtCari.setText(null);
BtnSimpan.setEnabled(true);
BtnUbah.setEnabled(false);
BtnHapus.setEnabled(false);
}
private void tabel( ){
TblBuku.getSelectionModel( ).addListSelectionListener(new ListSelectionListener( ) {
@Override
public void valueChanged(ListSelectionEvent e) {
int baris = TblBuku.getSelectedRow( );
if(baris != -1){
DataBuku buku = ModelDataBuku.get(baris);
TxtNama.setText(buku.getKode( ));
TxtTelepon.setText(buku.getJudul( ));
TxtEmail.setText(buku.getHarga( ));
TxtEmail.setText(buku.getJumlah( ));
}
}
}

});
BtnSimpan.setEnabled(false);
BtnUbah.setEnabled(true);
BtnHapus.setEnabled(true);
}
private void simpan( ){
try{
String sql = "insert into data_buku values ("
+"'"+TxtKode.getText( )+"',"
+"'"+TxtJudul.getText( )+"',"
+"'"+TxtHarga.getText( ) )+"',"
+"'"+TxtJumlah.getText( )+"'"
+")";
script.executeUpdate(sql);
tampil( );
JOptionPane.showMessageDialog(null, TxtNama.getText( )+" berhasil Disimpan");
bersih( );
}
catch(SQLException ex){
JOptionPane.showMessageDialog(this, " Judul sudah Ada");
bersih();
}
}
private void ubah( ){
int app;
if((app = JOptionPane.showConfirmDialog(null, "Ubah buku"
+" ?","Perhatian",JOptionPane.YES_NO_OPTION))==0){
try{
String sql = "update tb_buku set"
+" judul = '"+TxtJudul.getText()+"',"
+" harga = '"+TxtHarga.getText()+"'
+" jumlah = '"+TxtJumlah.getText()+"' where"
+" kode = '"+TxtKode.getText()+"'";
script.executeUpdate(sql);
tampil( );
JOptionPane.showMessageDialog(null, "Data Buku berhasil dirubah");
bersih( );
}
catch(SQLException ex){
System.err.print(ex);
}
}
}

private void hapus( ){


int app, bantu;
if((app = JOptionPane.showConfirmDialog(null, "Hapus data"
+" ?","Perhatian",JOptionPane.YES_NO_OPTION))==0){
try{
String sql = "delete from data_buku where"
+" nama = '"+TxtNama.getText()+"'";
bantu = script.executeUpdate(sql);
tampil( );
JOptionPane.showMessageDialog(null, "Data Buku berhasil dihapus");
bersih( );
}
catch(SQLException ex){
System.err.print(ex);
}
}
}
private void cari( ){
int baris = TblBuku.getRowCount( );
String bantu = CmbCari.getSelectedItem( ).toString( );
for(int i=0; i<baris; i++){
ModelDataBuku.delete(i, baris);
}
try{
String sql = "select * from data_buku where "
+bantu+" like '%"+TxtCari.getText()+"%'";
ResultSet rs = script.executeQuery(sql);
while(rs.next( )){
DataBuku buku = new DataBuku( );
buku.setKode(rs.getString(1));
buku.setJudul(rs.getString(2));
buku.setHarga(rs.getString(3));
buku.setJumlah(rs.getString(4));

ModelDataBuku.add(buku);
}
}
catch(SQLException ex){
System.err.print(ex);
}
}

Catatan:
Pada script di atas, terdapat script
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/buku_db","root","");
saya memberikan nilai username=root, dan password tidak saya isi menyesuaikan konfigurasi phpmyadmin.
Silahkan Anda sesuaikan dengan konfigurasi phpmyadmin Anda.
Untuk menambahkan fungsi masing-masing pada setiap tombol (button) yang kita desain, dengan cara.
Klik kanan Button -> Events -> Action -> actionPerformed
Berikut ini fungsinya :
Script untuk Button Simpan :
simpan();

Script untuk Button Ubah :


ubah();

Script untuk Button Hapus :


hapus();

Penambahan fungsi klik pada Tabel.


Klik Kanan Tabel -> Events -> Mouse -> mousePressed
Script untuk TblBuku :
tabel();

Penambahan pencarian pada TxtCari


Klik kanan TxtCari -> Events -> Key -> keyReleased
Script untuk TxtCari :
cari();

Selanjutnya kita akan membuat Form Transaksi dengan langkah-langkah yang hampir sama
dengan Form Buku, berikut ini tampilan yang telah saya buat :

Buat Class baru pada Package Tabel. Klik Kanan pada Package Tabel -> New -> Java Class. Beri nama
DataTransaksi. Klik Finish.
Buat juga class TabelDataTransaksi pada Package Tabel.
Setelah selesai, selanjutnya adalah pemberian script.
class DataTransaksi:
package Tabel;
/**
*
* @author rossy
*/
public class DataTransaksi {
private String nomer, kode, harga, jumlah, total;
public DataTransaksi(){
}
public String getnomer() {
return nomer;
}
public void setnomer(String nomer) {
this.nomer = nomer;

}
public String getkode() {
return kode;
}
public void setkode(String kode) {
this.kode = kode;
}
public String gettotal() {
return total;
}
public void settotal(String total) {
this.total = total;
}
public String getjumlah() {
return jumlah;
}
public void setjumlah(String jumlah) {
this.jumlah = jumlah;
}
public String getharga() {
return harga;
}
public void setharga(String harga) {
this.harga = harga;
}
}

class TabelDataTransaksi:
package Tabel;
/**
*
* @author rossy
*/
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class TabelDataTransaksi extends AbstractTableModel{
private List<DataTransaksi> list = new ArrayList<DataTransaksi>();
@Override
public int getRowCount() {
return list.size();

}
@Override
public int getColumnCount() {
return 5;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0 : return list.get(rowIndex).getnomer();
case 1 : return list.get(rowIndex).getkode();
case 2 : return list.get(rowIndex).getharga();
case 3 : return list.get(rowIndex).getjumlah();
case 4 : return list.get(rowIndex).gettotal();
default : return null;
}
}
@Override
public String getColumnName(int kolom){
switch(kolom){
case 0 : return "No.Transaksi";
case 1 : return "Kode Buku";
case 2 : return "Harga";
case 3 : return "Jumlah";
case 4 : return "Total";
default : return null;
}
}
public void add(DataTransaksi kontak){
list.add(kontak);
fireTableRowsInserted(getRowCount(), getColumnCount());
}
public void delete(int i, int baris){
list.remove(i);
fireTableRowsDeleted(i, baris);
}
public DataTransaksi get(int baris){
return (DataTransaksi) list.get(baris);
}
}

Tambahkan Script berikut pada class Transaksi:


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
import javax.swing.JOptionPane;
import Tabel.DataTransaksi;
import Tabel.TabelDataTransaksi;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
/**
*
* @author rossy
*/
public class transaksi extends javax.swing.JFrame {

Tambahkan variable-variabel berikut pada class FrameKontak dan pada Konstruktor FrameKontak
private void KoneksiDb( ){ try{
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/bukubuku", "root", "");
script = koneksi.createStatement( );
}
catch(SQLException ex){
System.err.print(ex);
}
catch(ClassNotFoundException ex){
System.err.print(ex);
}
}
private void tampil( ){
try{
int baris = tabeltransaksi.getRowCount( );
for(int i=0; i<baris; i++){
ModelDataKontak.delete(0, baris);
}
String sql = "select * from transaksi";
ResultSet rs = script.executeQuery(sql);
while (rs.next( )){
DataTransaksi kontak = new DataTransaksi( );
kontak.setnomer(rs.getString(1));
kontak.setkode(rs.getString(2));
kontak.setharga(rs.getString(3));
kontak.setjumlah(rs.getString(4));
kontak.settotal(rs.getString(5));
ModelDataKontak.add(kontak);
}
}
catch(SQLException ex){

System.err.print(ex);
}
}
private void bersih( ){
kode.setText(null);
nomer.setText(null);
harga.setText(null);
jumlah.setText(null);
total.setText(null);
SIMPAN.setEnabled(true);
UBAH.setEnabled(false);
HAPUS.setEnabled(false);
}
private void tabel( ){
tabeltransaksi.getSelectionModel( ).addListSelectionListener(new ListSelectionListener( ) {
@Override
public void valueChanged(ListSelectionEvent e) {
int baris = tabeltransaksi.getSelectedRow( );
if(baris != -1){
DataTransaksi kontak = ModelDataKontak.get(baris);
kode.setText(kontak.getkode( ));
nomer.setText(kontak.getnomer( ));
harga.setText(kontak.getharga( ));
jumlah.setText(kontak.getjumlah( ));
total.setText(kontak.gettotal( ));
}
}
});
SIMPAN.setEnabled(false);
UBAH.setEnabled(true);
HAPUS.setEnabled(true);
}
private void simpan( ){
try{
String sql = "insert into transaksi values ("
+"'"+nomer.getText( )+"',"
+"'"+kode.getText( )+"',"
+"'"+harga.getText( )+"',"
+"'"+jumlah.getText( )+"',"
+"'"+total.getText( )+"'"
+")";
script.executeUpdate(sql);
tampil( );
JOptionPane.showMessageDialog(null, nomer.getText( )+" berhasil Disimpan");
bersih( );
}

catch(SQLException ex){
JOptionPane.showMessageDialog(this, "data transaksi sudah Ada");
bersih();
}
}
private void ubah( ){
int app;
if((app = JOptionPane.showConfirmDialog(null, "Ubah data"
+" ?","Perhatian",JOptionPane.YES_NO_OPTION))==0){
try{
String sql = "update transaksi set"
+" kode = '"+kode.getText()+"',"
+" harga = '"+harga.getText()+"',"
+" jumlah = '"+jumlah.getText()+"',"
+" total = '"+total.getText()+"' where"
+" nomer = '"+nomer.getText()+"'";
script.executeUpdate(sql);
tampil( );
JOptionPane.showMessageDialog(null, "data berhasil diubah");
bersih( );
}
catch(SQLException ex){
System.err.print(ex);
}
}
}
private void hapus( ){
int app, bantu;
if((app = JOptionPane.showConfirmDialog(null, "Hapus data"
+" ?","Perhatian",JOptionPane.YES_NO_OPTION))==0){
try{
String sql = "delete from transaksi where"
+" nomer = '"+nomer.getText()+"'";
bantu = script.executeUpdate(sql);
tampil( );
JOptionPane.showMessageDialog(null, "data berhasil dihapus");
bersih( );
}
catch(SQLException ex){
System.err.print(ex);
}
}

}
private void cari( ){
int baris = tabeltransaksi.getRowCount( );
for(int i=0; i<baris; i++){
ModelDataKontak.delete(i, baris);
}
try{
String sql = "select * from data_buku where judul like '%"+kode.getText()+"%'";
ResultSet rs = script.executeQuery(sql);
while(rs.next( )){
DataTransaksi kontak = new DataTransaksi( );
kontak.setkode(rs.getString(1));
kontak.setnomer(rs.getString(2));
kontak.setharga(rs.getString(3));
kontak.setjumlah(rs.getString(4));
ModelDataKontak.add(kontak);
}
}
catch(SQLException ex){
System.err.print(ex);
}
}
private Connection koneksi;
private Statement script;
private TabelDataTransaksi ModelDataKontak;
/**
* Creates new form transaksi
*/
public transaksi() {
initComponents();
tampilkandata();
ModelDataKontak = new TabelDataTransaksi();
tabeltransaksi.setModel(ModelDataKontak);
KoneksiDb( );
tampil( );
bersih( );
}
public Connection conn;
public void koneksi() throws SQLException {
try {
conn=null;
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bukubuku", "root", "");

} catch (ClassNotFoundException ex) {


Logger.getLogger(transaksi.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException e) {
Logger.getLogger(transaksi.class.getName()).log(Level.SEVERE, null, e);
} catch (Exception es) {
Logger.getLogger(transaksi.class.getName()).log(Level.SEVERE, null, es);
}
}
public void tampilkandata() {
DefaultTableModel data_buku = new DefaultTableModel();
data_buku.addColumn("kode");
data_buku.addColumn("judul");
data_buku.addColumn("harga");
data_buku.addColumn("jumlah");
try {
koneksi();
String sql = "select * from data_buku";
Statement stat = conn.createStatement();
ResultSet res=stat.executeQuery(sql);
while (res.next()) {
data_buku.addRow(new Object[]{res.getString(1),res.getString(2),res.getString(3),res.getString(4)});
}
tabelbuku.setModel(data_buku);
} catch (Exception e) {
}
}
/**
* 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")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
nomer = new javax.swing.JTextField();
kode = new javax.swing.JTextField();
harga = new javax.swing.JTextField();
jumlah = new javax.swing.JTextField();
total = new javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
SIMPAN = new javax.swing.JButton();

UBAH = new javax.swing.JButton();


HAPUS = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
total1 = new javax.swing.JTextField();
total2 = new javax.swing.JTextField();
total3 = new javax.swing.JTextField();
HITUNG = new javax.swing.JButton();
HITUNG1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tabeltransaksi = new javax.swing.JTable();
jScrollPane2 = new javax.swing.JScrollPane();
tabelbuku = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("TOKO BUKU TINTA EMAS | HALAMAN TRANSAKSI");
setResizable(false);
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
jLabel1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/cartoon36protestingoncampus33.jpg"))); // NOI18N
jPanel2.setBackground(new java.awt.Color(255, 255, 255));
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Pengisian Data Transaksi"));
jLabel2.setText("No Transaksi");
jLabel3.setText("Kode Buku");
jLabel4.setText("Harga Satuan");
jLabel5.setText("Jumlah Buku yg Dibeli");
jLabel6.setText("Total Harga");
total.setEditable(false);
total.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
totalActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)

.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(nomer, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE)
.addComponent(kode)
.addComponent(harga))
.addGap(0, 10, 10))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(total, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jumlah))
.addContainerGap())))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(nomer, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(kode, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(harga, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jumlah, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(total, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3.setBackground(new java.awt.Color(255, 255, 255));
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Action"));
SIMPAN.setText("SIMPAN");

SIMPAN.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SIMPANActionPerformed(evt);
}
});
UBAH.setText("UBAH");
UBAH.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
UBAHActionPerformed(evt);
}
});
HAPUS.setText("HAPUS");
HAPUS.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
HAPUSActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(SIMPAN, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
.addComponent(UBAH, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(HAPUS, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(SIMPAN, javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(UBAH, javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(HAPUS, javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel4.setBackground(new java.awt.Color(255, 255, 255));
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Pembayaran"));
jLabel7.setText("Jumlah Harga yg Harus Dibayar");
jLabel8.setText("Jumlah yang diserahkan");
jLabel9.setText("Total Kembali");

total2.setEditable(false);
HITUNG.setText("HITUNG");
HITUNG.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
HITUNGActionPerformed(evt);
}
});
HITUNG1.setText("HAPUS");
HITUNG1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
HITUNG1ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(total1, javax.swing.GroupLayout.PREFERRED_SIZE, 167,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel4Layout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE)
.addComponent(total2, javax.swing.GroupLayout.PREFERRED_SIZE, 166,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
.addComponent(HITUNG, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(HITUNG1, javax.swing.GroupLayout.PREFERRED_SIZE, 75,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
.addComponent(total3, javax.swing.GroupLayout.PREFERRED_SIZE, 166,
javax.swing.GroupLayout.PREFERRED_SIZE)))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(23, 23, 23)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)

.addComponent(total1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(total2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel9)
.addComponent(total3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(HITUNG)
.addComponent(HITUNG1))
.addContainerGap(12, Short.MAX_VALUE))
);
tabeltransaksi.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tabeltransaksi.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
tabeltransaksiMousePressed(evt);
}
});
tabeltransaksi.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
tabeltransaksiKeyReleased(evt);
}
});
jScrollPane1.setViewportView(tabeltransaksi);
tabelbuku.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));

jScrollPane2.setViewportView(tabelbuku);
jButton1.setText("HOME");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(80, 80, 80)
.addComponent(jLabel1))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 0, Short.MAX_VALUE))))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 157,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGap(0, 20, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 157,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void UBAHActionPerformed(java.awt.event.ActionEvent evt) {
int aa,bb,cc,dd;
aa = Integer.parseInt(jumlah.getText());
bb = Integer.parseInt(harga.getText());
cc = aa*bb;
total.setText(Integer.toString(cc));
dd = Integer.parseInt(total.getText());
total2.setText(Integer.toString(dd));
ubah();
// TODO add your handling code here:
}
private void HITUNGActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int a,b,c;
a = Integer.parseInt(total1.getText());
b = Integer.parseInt(total2.getText());
c = a-b;

total3.setText(Integer.toString(c));
}
private void SIMPANActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int aa,bb,cc,dd;
aa = Integer.parseInt(jumlah.getText());
bb = Integer.parseInt(harga.getText());
cc = aa*bb;
total.setText(Integer.toString(cc));
dd = Integer.parseInt(total.getText());
total2.setText(Integer.toString(dd));
simpan ();
}
private void HAPUSActionPerformed(java.awt.event.ActionEvent evt) {
hapus();
// TODO add your handling code here:
}
private void totalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void HITUNG1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
total1.setText(null);
total2.setText(null);
total3.setText(null);
}
private void tabeltransaksiKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
private void tabeltransaksiMousePressed(java.awt.event.MouseEvent evt) {
tabel();
// TODO add your handling code here:
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
new Awal().setVisible(true);
dispose();// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new transaksi().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton HAPUS;
private javax.swing.JButton HITUNG;
private javax.swing.JButton HITUNG1;
private javax.swing.JButton SIMPAN;
private javax.swing.JButton UBAH;
private javax.swing.JTextField harga;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;


private javax.swing.JPanel jPanel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField jumlah;
private javax.swing.JTextField kode;
private javax.swing.JTextField nomer;
private javax.swing.JTable tabelbuku;
private javax.swing.JTable tabeltransaksi;
private javax.swing.JTextField total;
private javax.swing.JTextField total1;
private javax.swing.JTextField total2;
private javax.swing.JTextField total3;
// End of variables declaration
}
Untuk Pemberian fungsi tombol langkah-langkahnya sama dengan Form Data Buku
Untuk Tampilan Awal saya membuat desain seperti ini :

Masukkan script berikut pada button gambar diatas :


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new transaksi().setVisible(true);
dispose();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:


new FrameKontak().setVisible(true);
dispose();

Anda mungkin juga menyukai