tutorial pembuatan aplikasi

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.

Upload: ryan-caesar-fabanyo

Post on 16-Apr-2016

66 views

Category:

Documents


2 download

DESCRIPTION

pembuatan aplikasi

TRANSCRIPT

Page 1: Tutorial Pembuatan Aplikasi

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.

Page 2: Tutorial Pembuatan Aplikasi

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

Page 3: Tutorial Pembuatan Aplikasi

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

7. Beri nama Frame dengan DataBuku. Klik Finish.

Page 4: Tutorial Pembuatan Aplikasi

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

ini.

Page 5: Tutorial Pembuatan Aplikasi

9. Berikut Komponen dan Properti-propertinya:

Komponen Properties Nilai

jFrame title Toko Buku

rezizable false

jLabel1 text Toko Buku

jLayeredPanel1 border Titled Border (Title = Data Buku)

jLabel2 text Kode

jTextField1 text

Variable Name TxtKode

jLabel3 text Judul

jTextField2 text

Variable Name TxtJudul

jLabel4 text harga

jTextField3 text

Variable Name TxtHarga

jLabel5 Text jumlah

jTextField4 text

Variable Name TxtJumlah

jLayeredPanel2 border Titled Border (Title = Tombol)

jButton1

text Simpan

Variable Name BtnSimpan

jButton2

text Ubah

Variable Name BtnUbah

jButton3

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

jComboBox1

model kode,judul,harga,jumlah

Variable Name CmbCari

jTextField4

text

Variable Name TxtCari

Page 6: Tutorial Pembuatan Aplikasi

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.

Page 7: Tutorial Pembuatan Aplikasi

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

nama Tabel. Klik Finish.

Page 8: Tutorial Pembuatan Aplikasi

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

nama DataBuku. Klik Finish.

Page 9: Tutorial Pembuatan Aplikasi

14. Buat juga class TabelDataBuku pada Package Tabel.

Struktur dari project sekarang terlihat seperti gambar berikut.

15. Setelah selesai, selanjutnya adalah pemberian script.

Page 10: Tutorial Pembuatan Aplikasi

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;

}

Page 11: Tutorial Pembuatan Aplikasi

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

Page 12: Tutorial Pembuatan Aplikasi

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

Page 13: Tutorial Pembuatan Aplikasi

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{

Page 14: Tutorial Pembuatan Aplikasi

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); } }

Page 15: Tutorial Pembuatan Aplikasi

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( )); } } }

Page 16: Tutorial Pembuatan Aplikasi

}); 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); } } }

Page 17: Tutorial Pembuatan Aplikasi

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); } }

Page 18: Tutorial Pembuatan Aplikasi

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

Page 19: Tutorial Pembuatan Aplikasi

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;

Page 20: Tutorial Pembuatan Aplikasi

} 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();

Page 21: Tutorial Pembuatan Aplikasi

} @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;

Page 22: Tutorial Pembuatan Aplikasi

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

Page 23: Tutorial Pembuatan Aplikasi

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( ); }

Page 24: Tutorial Pembuatan Aplikasi

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); } }

Page 25: Tutorial Pembuatan Aplikasi

} 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", "");

Page 26: Tutorial Pembuatan Aplikasi

} 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();

Page 27: Tutorial Pembuatan Aplikasi

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)

Page 28: Tutorial Pembuatan Aplikasi

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

Page 29: Tutorial Pembuatan Aplikasi

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

Page 30: Tutorial Pembuatan Aplikasi

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)

Page 31: Tutorial Pembuatan Aplikasi

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

Page 32: Tutorial Pembuatan Aplikasi

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)

Page 33: Tutorial Pembuatan Aplikasi

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

Page 34: Tutorial Pembuatan Aplikasi

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

Page 35: Tutorial Pembuatan Aplikasi

//<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;

Page 36: Tutorial Pembuatan Aplikasi

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

Page 37: Tutorial Pembuatan Aplikasi

// TODO add your handling code here: new FrameKontak().setVisible(true); dispose();