You are on page 1of 66

LAPORAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBYEK


Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE


SOURCE CODE
/*
* 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 Toko;

import javax.swing.JOptionPane;

/**
*
* @author PC
*/
public class LoginForm extends javax.swing.JFrame {

/**
* Creates new form LoginForm
*/
public LoginForm() {
initComponents();
}

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


jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
userNameTxt = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
passwordTxt = new javax.swing.JPasswordField();
loginButton = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(51, 51, 255));

jPanel2.setBackground(new java.awt.Color(255, 255, 255));

jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 36)); // NOI18N


jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Toko/login.png")));
// NOI18N

javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);


jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(160, 160, 160)
.addComponent(jLabel1)
.addContainerGap(131, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 204,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

jLabel2.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N


jLabel2.setForeground(new java.awt.Color(255, 255, 255));
jLabel2.setText("Username");

userNameTxt.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N

jLabel3.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N


jLabel3.setForeground(new java.awt.Color(255, 255, 255));
jLabel3.setText("Password");

passwordTxt.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N

loginButton.setBackground(new java.awt.Color(255, 255, 255));


loginButton.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N
loginButton.setText("Login");
loginButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
loginButtonActionPerformed(evt);
}
});

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 175,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(65, 65, 65)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING, false)
.addComponent(userNameTxt)
.addComponent(passwordTxt, javax.swing.GroupLayout.DEFAULT_SIZE, 331,
Short.MAX_VALUE))
.addGap(115, 115, 115))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(321, 321, 321)
.addComponent(loginButton, javax.swing.GroupLayout.PREFERRED_SIZE, 174,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 206,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(72, 72, 72)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.TRAILING)
.addComponent(jLabel2)
.addComponent(userNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE,
34, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(45, 45, 45)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.TRAILING)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 23,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(passwordTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 61,
Short.MAX_VALUE)
.addComponent(loginButton, javax.swing.GroupLayout.PREFERRED_SIZE, 55,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(31, 31, 31))
);

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)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
);

pack();
}// </editor-fold>

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


String userName = "admin";
String password = "admin";
if(userNameTxt.getText().equals(userName)
&&passwordTxt.getText().equals(password)) {
JOptionPane.showMessageDialog(null, "Login Berhasil");
MenuUtama menuUtama = new MenuUtama();
menuUtama.setVisible(true);
this.dispose();
} else {
JOptionPane.showMessageDialog(null, "Username/Password Salah");
}
}

/**
* @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(LoginForm.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(LoginForm.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(LoginForm.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(LoginForm.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LoginForm().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JButton loginButton;
private javax.swing.JPasswordField passwordTxt;
private javax.swing.JTextField userNameTxt;
// End of variables declaration
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE

SOURCE CODE
/*
* 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 Toko;

import javax.swing.JInternalFrame;

/**
*
* @author PC
*/
public class MenuUtama extends javax.swing.JFrame {
private String judul;

/**
* Creates new form MenuUtama
*/
public MenuUtama() {
initComponents();
setTitle("App Penjualan");
setExtendedState(MAXIMIZED_BOTH);
}
/**
* 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() {

jDesktopPane1 = new javax.swing.JDesktopPane();


jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

javax.swing.GroupLayout jDesktopPane1Layout = new


javax.swing.GroupLayout(jDesktopPane1);
jDesktopPane1.setLayout(jDesktopPane1Layout);
jDesktopPane1Layout.setHorizontalGroup(

jDesktopPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
jDesktopPane1Layout.setVerticalGroup(

jDesktopPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 279, Short.MAX_VALUE)
);

jMenu1.setText("Master Data");

jMenuItem1.setText("Data Barang");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);

jMenuBar1.add(jMenu1);

jMenu2.setText("Transaksi");

jMenuItem2.setText("Penjualan");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem2);

jMenuBar1.add(jMenu2);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());


getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1)
);

pack();
}// </editor-fold>

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


// TODO add your handling code here:
DataBarang a = new DataBarang();
JInternalFrame internalframe = new JInternalFrame(judul,false,true,true);
internalframe.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
internalframe.setContentPane(a.getContentPane());
internalframe.setLocation((jDesktopPane1.getWidth()-a.getWidth())/2,
(jDesktopPane1.getHeight()-a.getHeight())/2);
internalframe.pack();

a.setLocationRelativeTo(this);
internalframe.setVisible(true);
jDesktopPane1.add(internalframe);
}

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


// TODO add your handling code here:
Penjualan a = new Penjualan();
JInternalFrame internalframe = new JInternalFrame(judul,false,true,true);
internalframe.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
internalframe.setContentPane(a.getContentPane());
internalframe.setLocation((jDesktopPane1.getWidth()-a.getWidth())/2,
(jDesktopPane1.getHeight()-a.getHeight())/2);
internalframe.pack();

a.setLocationRelativeTo(this);
internalframe.setVisible(true);
jDesktopPane1.add(internalframe);
}

/**
* @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(MenuUtama.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(MenuUtama.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(MenuUtama.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(MenuUtama.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MenuUtama().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
// End of variables declaration
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE

KONEKSI DB

SOURCE CODE
package Toko;

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

public class koneksi {


private static Connection koneksi;

public static Connection getKoneksi() {


if (koneksi == null) {
try {
String url = "jdbc:mysql://localhost:3306/penjualan2";
String user = "root";
String password = "";
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
koneksi = DriverManager.getConnection(url, user, password);
System.out.println("Berhasil");
} catch (Exception e) {
System.out.println("Error");
}
}
return koneksi;
}
public static void main(String args[]) {
getKoneksi();
}
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)
LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE

SOURCE CODE
/*
* 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 Toko;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author PC
*/
public class Penjualan extends javax.swing.JFrame {

String Tanggal;
private DefaultTableModel model;

public void totalBiaya() {


int jumlahBaris = jTable1.getRowCount();
int totalBiaya = 0;
int jumlahBarang,hargaBarang;
for (int i = 0; i < jumlahBaris; i++) {
jumlahBarang = Integer.parseInt(jTable1.getValueAt(i,3).toString());
hargaBarang = Integer.parseInt(jTable1.getValueAt(i,4).toString());
totalBiaya = totalBiaya + (jumlahBarang * hargaBarang);
}
txTotalBayar.setText(String.valueOf(totalBiaya));
txTampil.setText("Rp "+ totalBiaya +",00");
}

private void autonumber() {


try {
Connection c = koneksi.getKoneksi();
Statement s = c.createStatement();
String sql = "SELECT * FROM penjualan2 ORDER BY NoFaktur DESC";
ResultSet r = s.executeQuery(sql);
if (r.next()) {
String NoFaktur = r.getString("NoFaktur").substring(2);
String TR = "" +(Integer.parseInt(NoFaktur)+1);
String Nol = "";

if(TR.length()==1)
{Nol = "000";}
else if(TR.length()==2)
{Nol = "00";}
else if(TR.length()==3)
{Nol = "0";}
else if(TR.length()==4)
{Nol = "";}
txNoTransaksi.setText("TR" + Nol + TR);
} else {
txNoTransaksi.setText("TR0001");
}
r.close();
s.close();
} catch (Exception e) {
System.out.println("autonumber error");
}
}

public void loadData() {


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.addRow(new Object[]{
txNoTransaksi.getText(),
txIDBarang.getText(),
txNamaBarang.getText(),
txJumlah.getText(),
txHarga.getText(),
txTotalBayar.getText()
});
}

public void kosong(){


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();

while (model.getRowCount()>0) {
model.removeRow(0);
}
}

public void utama() {


txNoTransaksi.setText("");
txIDBarang.setText("");
txNamaBarang.setText("");
txHarga.setText("");
txJumlah.setText("");
autonumber();
}

public void clear(){


txIDCustomer.setText("");
txNamaCustomer.setText("");
txTotalBayar.setText("0");
txBayar.setText("0");
txKembalian.setText("0");
txTampil.setText("0");
}

public void clear2(){


txIDBarang.setText("");
txNamaBarang.setText("");
txHarga.setText("");
txJumlah.setText("");
}

public void tambahTransaksi(){


int jumlah, harga, total;

jumlah = Integer.valueOf(txJumlah.getText());
harga = Integer.valueOf(txHarga.getText());
total = jumlah * harga;

txTotalBayar.setText(String.valueOf(total));

loadData();
totalBiaya();
clear2();
txIDBarang.requestFocus();
}

public Penjualan() {
initComponents();

//Create Table
model = new DefaultTableModel();

jTable1.setModel(model);

model.addColumn("No Transaksi");
model.addColumn("ID Barang");
model.addColumn("Nama Barang");
model.addColumn("Jumlah");
model.addColumn("Harga");
model.addColumn("Total");

utama();
Date date = new Date();
SimpleDateFormat s = new SimpleDateFormat("dd-MM-yyyy");

txTanggal.setText(s.format(date));
txTotalBayar.setText("0");
txBayar.setText("0");
txKembalian.setText("0");
txIDCustomer.requestFocus();
}

/**
* 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();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
txNoTransaksi = new javax.swing.JTextField();
txIDCustomer = new javax.swing.JTextField();
txNamaCustomer = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
txTanggal = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
txIDBarang = new javax.swing.JTextField();
txNamaBarang = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
txHarga = new javax.swing.JTextField();
txJumlah = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
btnTambah = new javax.swing.JButton();
btnHapus = new javax.swing.JButton();
btnSimpan = new javax.swing.JButton();
txTampil = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
txTotalBayar = new javax.swing.JTextField();
txBayar = new javax.swing.JTextField();
txKembalian = new javax.swing.JTextField();
btnCari = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(204, 204, 255));

jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N


jLabel1.setText("PENJUALAN");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(342, 342, 342)
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(jLabel1)
.addContainerGap(25, Short.MAX_VALUE))
);

jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N


jLabel2.setText("No Transaksi");

jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N


jLabel3.setText("ID Customer");

jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N


jLabel4.setText("Nama Costumer");

txNoTransaksi.setEnabled(false);

jLabel5.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N


jLabel5.setText("Tanggal");

txTanggal.setEnabled(false);

jLabel6.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel6.setText("ID Barang");

jLabel7.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel7.setText("Nama Barang");

jLabel8.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel8.setText("Harga");

jLabel9.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel9.setText("Jumlah");

txJumlah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txJumlahActionPerformed(evt);
}
});

jTable1.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"
}
));
jScrollPane1.setViewportView(jTable1);

btnTambah.setText("Tambah");
btnTambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnTambahActionPerformed(evt);
}
});

btnHapus.setText("Hapus");
btnHapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnHapusActionPerformed(evt);
}
});

btnSimpan.setText("Simpan");
btnSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSimpanActionPerformed(evt);
}
});

txTampil.setBackground(new java.awt.Color(255, 153, 153));


txTampil.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N
txTampil.setText("Rp. 0");

jLabel10.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


jLabel10.setText("Total Bayar");

jLabel11.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


jLabel11.setText("Bayar");

jLabel12.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


jLabel12.setText("Kembalian");

txTotalBayar.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


txTotalBayar.setEnabled(false);

txBayar.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


txBayar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txBayarActionPerformed(evt);
}
});

txKembalian.setEnabled(false);

btnCari.setText("Cari");
btnCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCariActionPerformed(evt);
}
});

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)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
699, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 126, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE,
130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(txIDBarang,
javax.swing.GroupLayout.PREFERRED_SIZE, 80,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNREL
ATED)
.addComponent(btnCari)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alig
nment.LEADING, false)
.addComponent(txNoTransaksi)
.addComponent(txIDCustomer)
.addComponent(txNamaCustomer,
javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel5)
.addGap(18, 18, 18)
.addComponent(txTanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 150,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alig
nment.LEADING, false)
.addComponent(btnHapus,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btnTambah,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))))
.addGap(27, 27, 27))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 130,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txNamaBarang,
javax.swing.GroupLayout.PREFERRED_SIZE, 130,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(82, 82, 82)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE,
130, Short.MAX_VALUE)
.addComponent(txHarga))
.addGap(96, 96, 96)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE,
130, Short.MAX_VALUE)
.addComponent(txJumlah))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 80,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addComponent(txTampil, javax.swing.GroupLayout.PREFERRED_SIZE, 272,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(31, 31, 31)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(jLabel10)
.addComponent(jLabel11)
.addComponent(jLabel12))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING, false)
.addComponent(txTotalBayar)
.addComponent(txBayar)
.addComponent(txKembalian,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE))
.addGap(126, 126, 126))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel2)
.addComponent(txNoTransaksi, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5)
.addComponent(txTanggal, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel3)
.addComponent(txIDCustomer, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel4)
.addComponent(txNamaCustomer,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(39, 39, 39)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(jLabel8)
.addComponent(jLabel9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(txIDBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txNamaBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txHarga, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txJumlah, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnCari))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addComponent(btnTambah, javax.swing.GroupLayout.PREFERRED_SIZE,
50, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(24, 24, 24)
.addComponent(btnHapus, javax.swing.GroupLayout.PREFERRED_SIZE, 50,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(jLabel10)
.addComponent(txTotalBayar,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel11)
.addComponent(txBayar, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRA
ILING, false)
.addComponent(btnSimpan, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(txTampil, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel12)
.addComponent(txKembalian, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(13, 13, 13))
);

pack();
setLocationRelativeTo(null);
}// </editor-fold>

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


tambahTransaksi();
}
private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) {
tambahTransaksi();
}

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


int total, bayar, kembalian;

total = Integer.valueOf(txTotalBayar.getText());
bayar = Integer.valueOf(txBayar.getText());

if (total > bayar) {


JOptionPane.showMessageDialog(null, "Uang tidak cukup untuk melakukan
pembayaran");
} else {
kembalian = bayar - total;
txKembalian.setText(String.valueOf(kembalian));
}
}

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


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();

String noTransaksi = txNoTransaksi.getText();


String tanggal = txTanggal.getText();
String idCustomer = txIDCustomer.getText();
String total = txTotalBayar.getText();

try {
Connection c = koneksi.getKoneksi();
String sql = "INSERT INTO penjualan2 VALUES (?,?,?,?)";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, noTransaksi);
p.setString(2, tanggal);
p.setString(3, idCustomer);
p.setString(4, total);
p.executeUpdate();
p.close();
} catch (Exception e) {
System.out.println("simpan penjualan error");
}

try {
Connection c = koneksi.getKoneksi();
int baris = jTable1.getRowCount();

for (int i = 0; i < baris; i++) {


String sql = "INSERT INTO penjualanrinci(NoFaktur, ID_Barang, Nama Barang,
Jumlah, Harga, Total) VALUES('"
+jTable1.getValueAt(i, 0) +"','"+ jTable1.getValueAt(i, 1)
+"'.'"+jTable1.getValueAt(i, 2)
+"','"+ jTable1.getValueAt(i, 3) +"'.'"+ jTable1.getValueAt(i, 4) +"'.'"
+ jTable1.getValueAt(i, 5) +"')";
PreparedStatement p = c.prepareStatement(sql);
p.executeUpdate();
p.close();
}
} catch (Exception e) {
System.out.println("simpan penjualan rinci error");
}
clear();
utama();
autonumber();
kosong();
txTampil.setText("Rp. 0");
}

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


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
int row = jTable1.getSelectedRow();
model.removeRow(row);
totalBiaya();
txBayar.setText("0");
txKembalian.setText("0");
}

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


ListBarang a = new ListBarang();
a.setVisible(true);
}

/**
* @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(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Penjualan().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton btnCari;
private javax.swing.JButton btnHapus;
private javax.swing.JButton btnSimpan;
private javax.swing.JButton btnTambah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
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.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField txBayar;
public static javax.swing.JTextField txHarga;
public static javax.swing.JTextField txIDBarang;
private javax.swing.JTextField txIDCustomer;
private javax.swing.JTextField txJumlah;
private javax.swing.JTextField txKembalian;
public static javax.swing.JTextField txNamaBarang;
private javax.swing.JTextField txNamaCustomer;
private javax.swing.JTextField txNoTransaksi;
private javax.swing.JTextField txTampil;
private javax.swing.JTextField txTanggal;
private javax.swing.JTextField txTotalBayar;
// End of variables declaration
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE


SOURCE CODE
/*
* 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 Toko;

import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
*
* @author PC
*/
public class DataBarang extends javax.swing.JFrame {
koneksi koneksi = new koneksi();

private DefaultTableModel model;

private void autonumber(){


try {
Connection c = koneksi.getKoneksi();
Statement s = c.createStatement();
String sql = "SELECT * FROM barang ORDER BY ID_Barang DESC";
ResultSet r = s.executeQuery(sql);
if (r.next()) {
String NoFaktur = r.getString("ID_Barang").substring(2);
String BR = "" +(Integer.parseInt(NoFaktur)+1);
String Nol = "";

if (BR.length()==1)
{Nol = "00";}
else if(BR.length()==2)
{Nol = "0";}
else if(BR.length()==3)
{Nol = "";}

txIDBarang.setText("BR" + Nol + BR);


}else{
txIDBarang.setText("BR001");
}
r.close();
s.close();
} catch (Exception e) {
System.out.println("autonumber error");
}
}

public void clear(){


txNamaBarang.setText("");
txHargaBeli.setText("");
txHargaJual.setText("");
txStok.setText("");
}

public void loadData(){


model.getDataVector().removeAllElements();

model.fireTableDataChanged();

try {
Connection c = koneksi.getKoneksi();
Statement s = c.createStatement();

String sql = "SELECT * FROM barang";


ResultSet r = s.executeQuery(sql);

while (r.next()) {
Object[] o = new Object[7];
o [0] = r.getString("ID_Barang");
o [1] = r.getString("Nama_Barang");
o [2] = r.getString("Jenis");
o [3] = r.getString("Ukuran");
o [4] = r.getString("HargaBeli");
o [5] = r.getString("HargaJual");
o [6] = r.getString("Stok");

model.addRow(o);
}
r.close();
s.close();
} catch (Exception e) {
System.out.println("terjadi kesalahan");
}
}

public void cariData(){


DefaultTableModel tabel = new DefaultTableModel();
tabel.addColumn("ID Barang");
tabel.addColumn("Nama Barang");
tabel.addColumn("Jenis");
tabel.addColumn("Ukuran");
tabel.addColumn("HargaBeli");
tabel.addColumn("HargaJual");
tabel.addColumn("Stok");

try {
Connection c = koneksi.getKoneksi();
String sql = "Select * from barang where ID_Barang like '%" + jTextField1.getText() +
"%'" +
"or Nama_Barang like '%" + jTextField1.getText() + "%'";
Statement stat = c.createStatement();
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
tabel.addRow(new Object[]{
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
});
}
jTable1.setModel(tabel);
loadData();
} catch (Exception e) {
System.out.println("Cari Data Error");
}finally{
}
}

/**
* Creates new form DataBarang
*/
public DataBarang() {
initComponents();
this.setLocationRelativeTo(null);

model = new DefaultTableModel();

jTable1.setModel(model);

model.addColumn("ID_Barang");
model.addColumn("Nama_Barang");
model.addColumn("Jenis");
model.addColumn("Ukuran");
model.addColumn("HargaBeli");
model.addColumn("HargaJual");
model.addColumn("Stok");

loadData();
autonumber();
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
}
/**
* 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();
jLabel3 = new javax.swing.JLabel();
txIDBarang = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
txNamaBarang = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
txHargaBeli = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
txHargaJual = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
txStok = new javax.swing.JTextField();
cbJenis = new javax.swing.JComboBox();
jLabel9 = new javax.swing.JLabel();
cbUkuran = new javax.swing.JComboBox();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
btnSimpan = new javax.swing.JButton();
btnEdit = new javax.swing.JButton();
btnHapus = new javax.swing.JButton();
btnBatal = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(153, 153, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 16)); // NOI18N


jLabel1.setText("DATA BARANG");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(274, 274, 274))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jLabel3.setText("ID Barang");

jLabel4.setText("Nama Barang");

jLabel5.setText("Jenis Barang");

jLabel6.setText("Harga Beli");

jLabel7.setText("Harga Jual");

jLabel8.setText("Stok");

cbJenis.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Baju",


"Celana", "Jaket", "Kemeja" }));

jLabel9.setText("Ukuran");

cbUkuran.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "S", "M",


"L", "XL", "XXL" }));

javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);


jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING, false)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(44, 44, 44)
.addComponent(txIDBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel9))
.addGap(18, 18, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(txNamaBarang,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbUkuran, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbJenis, javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(jLabel8))
.addGap(32, 32, 32)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING, false)
.addComponent(txHargaBeli)
.addComponent(txHargaJual)
.addComponent(txStok, javax.swing.GroupLayout.DEFAULT_SIZE, 160,
Short.MAX_VALUE))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.BASELINE)
.addComponent(jLabel3)
.addComponent(txIDBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(txHargaBeli, 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.Alignmen
t.BASELINE)
.addComponent(jLabel4)
.addComponent(txNamaBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7)
.addComponent(txHargaJual, 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.Alignmen
t.BASELINE)
.addComponent(jLabel5)
.addComponent(jLabel8)
.addComponent(txStok, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbJenis, 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.Alignmen
t.BASELINE)
.addComponent(jLabel9)
.addComponent(cbUkuran, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(20, Short.MAX_VALUE))
);

jLabel2.setText("Cari Data");

jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jTextField1KeyTyped(evt);
}
});

jTable1.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"
}
));
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);

btnSimpan.setText("Simpan");
btnSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSimpanActionPerformed(evt);
}
});

btnEdit.setText("Edit");
btnEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditActionPerformed(evt);
}
});

btnHapus.setText("Hapus");
btnHapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnHapusActionPerformed(evt);
}
});

btnBatal.setText("Batal");
btnBatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBatalActionPerformed(evt);
}
});

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)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel2)
.addGap(40, 40, 40)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,
171, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 679,
Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnHapus, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnBatal, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(10, 10, 10)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel2)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 264,
Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(btnSimpan)
.addComponent(btnEdit)
.addComponent(btnHapus)
.addComponent(btnBatal))
.addContainerGap())
);

pack();
setLocationRelativeTo(null);
}// </editor-fold>

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


// TODO add your handling code here:
int i = jTable1.getSelectedRow();
if (i == -1) {
return;
}
String id = (String) model.getValueAt(i, 0);
String nama = txNamaBarang.getText();
String jenis = (String)cbJenis.getSelectedItem();
String ukuran = (String)cbUkuran.getSelectedItem();
String hargaBeli = txHargaBeli.getText();
String hargaJual = txHargaJual.getText();
String stok = txStok.getText();

try {
Connection c = koneksi.getKoneksi();
String sql = "UPDATE barang SET Nama_Barang = ?, Jenis = ?, Ukuran = ?,
HargaBeli = ?, HargaJual = ?, Stok = ? WHERE ID_Barang = ?";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, nama);
p.setString(2, jenis);
p.setString(3, ukuran);
p.setString(4, hargaBeli);
p.setString(5, hargaJual);
p.setString(6, stok);
p.setString(7, id);

p.executeUpdate();
p.close();
JOptionPane.showMessageDialog(null, "Data Terubah");
btnSimpan.setEnabled(true);
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
clear();
} catch (Exception e) {
System.out.println("update error");
}finally{
loadData();
autonumber();
}
}

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


// TODO add your handling code here:
int i = jTable1.getSelectedRow();
if (i == -1) {
return;
}

String id = (String) model.getValueAt(i, 0);

int pernyataan = JOptionPane.showConfirmDialog(null, "Yakin Data Akan


Dihapus","Konfirmasi", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (pernyataan== JOptionPane.OK_OPTION) {
try {
Connection c = koneksi.getKoneksi();
String sql = "DELETE FROM barang WHERE ID_Barang = ?";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, id);
p.executeUpdate();
p.close();
JOptionPane.showMessageDialog(null, "Data Terhapus");
} catch (Exception e) {
System.out.println("Terjadi Kesalahan");
}finally{
btnSimpan.setEnabled(true);
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
loadData();
autonumber();
clear();
}
}
if (pernyataan== JOptionPane.CANCEL_OPTION) {

}
}

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


// TODO add your handling code here:
String id = txIDBarang.getText();
String nama = txNamaBarang.getText();
String jenis = (String)cbJenis.getSelectedItem();
String ukuran = (String)cbUkuran.getSelectedItem();
String hargaBeli = txHargaBeli.getText();
String hargaJual = txHargaJual.getText();
String stok = txStok.getText();

try {
Connection c = koneksi.getKoneksi();
String sql = "INSERT INTO BARANG VALUES (?, ?, ?, ?, ?, ?, ?)";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, id);
p.setString(2, nama);
p.setString(3, jenis);
p.setString(4, ukuran);
p.setString(5, hargaBeli);
p.setString(6, hargaJual);
p.setString(7, stok);
p.executeUpdate();
p.close();
JOptionPane.showMessageDialog(null, "Data Tersimpan");
loadData();
} catch (Exception e) {
System.out.println("Terjadi Kesalahan");
}finally{
autonumber();
clear();
}
}

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


// TODO add your handling code here:
btnSimpan.setEnabled(false);
btnEdit.setEnabled(true);
btnHapus.setEnabled(true);
btnBatal.setEnabled(true);

int i = jTable1.getSelectedRow();
if (i == -1) {
return;
}

String id = (String) model.getValueAt(i, 0);


String nama = (String) model.getValueAt(i, 1);
String jenis = (String) model.getValueAt(i, 2);
String ukuran = (String) model.getValueAt(i, 3);
String hargaBeli = (String) model.getValueAt(i, 4);
String hargaJual = (String) model.getValueAt(i, 5);
String stok = (String) model.getValueAt(i, 6);

txIDBarang.setText(id);
txNamaBarang.setText(nama);
cbJenis.setSelectedItem(jenis);
cbUkuran.setSelectedItem(ukuran);
txHargaBeli.setText(hargaBeli);
txHargaJual.setText(hargaJual);
txStok.setText(stok);
}

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


// TODO add your handling code here:
clear();
loadData();
btnSimpan.setEnabled(true);
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
autonumber();
}

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


// TODO add your handling code here:
cariData();
}

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


// TODO add your handling code here:
cariData();
}

/**
* @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(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new DataBarang().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton btnBatal;
private javax.swing.JButton btnEdit;
private javax.swing.JButton btnHapus;
private javax.swing.JButton btnSimpan;
private javax.swing.JComboBox cbJenis;
private javax.swing.JComboBox cbUkuran;
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.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField txHargaBeli;
private javax.swing.JTextField txHargaJual;
private javax.swing.JTextField txIDBarang;
private javax.swing.JTextField txNamaBarang;
private javax.swing.JTextField txStok;
// End of variables declaration
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE

KONEKSI DB

SOURCE CODE
package Toko;

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

public class koneksi {


private static Connection koneksi;
public static Connection getKoneksi() {
if (koneksi == null) {
try {
String url = "jdbc:mysql://localhost:3306/penjualan2";
String user = "root";
String password = "";
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
koneksi = DriverManager.getConnection(url, user, password);
System.out.println("Berhasil");
} catch (Exception e) {
System.out.println("Error");
}
}
return koneksi;
}
public static void main(String args[]) {
getKoneksi();
}
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE


SOURCE CODE
/*
* 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 Toko;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author PC
*/
public class Penjualan extends javax.swing.JFrame {

String Tanggal;
private DefaultTableModel model;

public void totalBiaya() {


int jumlahBaris = jTable1.getRowCount();
int totalBiaya = 0;
int jumlahBarang,hargaBarang;
for (int i = 0; i < jumlahBaris; i++) {
jumlahBarang = Integer.parseInt(jTable1.getValueAt(i,3).toString());
hargaBarang = Integer.parseInt(jTable1.getValueAt(i,4).toString());
totalBiaya = totalBiaya + (jumlahBarang * hargaBarang);
}
txTotalBayar.setText(String.valueOf(totalBiaya));
txTampil.setText("Rp "+ totalBiaya +",00");
}

private void autonumber() {


try {
Connection c = koneksi.getKoneksi();
Statement s = c.createStatement();
String sql = "SELECT * FROM penjualan2 ORDER BY NoFaktur DESC";
ResultSet r = s.executeQuery(sql);
if (r.next()) {
String NoFaktur = r.getString("NoFaktur").substring(2);
String TR = "" +(Integer.parseInt(NoFaktur)+1);
String Nol = "";

if(TR.length()==1)
{Nol = "000";}
else if(TR.length()==2)
{Nol = "00";}
else if(TR.length()==3)
{Nol = "0";}
else if(TR.length()==4)
{Nol = "";}
txNoTransaksi.setText("TR" + Nol + TR);
} else {
txNoTransaksi.setText("TR0001");
}
r.close();
s.close();
} catch (Exception e) {
System.out.println("autonumber error");
}
}

public void loadData() {


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.addRow(new Object[]{
txNoTransaksi.getText(),
txIDBarang.getText(),
txNamaBarang.getText(),
txJumlah.getText(),
txHarga.getText(),
txTotalBayar.getText()
});
}

public void kosong(){


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();

while (model.getRowCount()>0) {
model.removeRow(0);
}
}

public void utama() {


txNoTransaksi.setText("");
txIDBarang.setText("");
txNamaBarang.setText("");
txHarga.setText("");
txJumlah.setText("");
autonumber();
}

public void clear(){


txIDCustomer.setText("");
txNamaCustomer.setText("");
txTotalBayar.setText("0");
txBayar.setText("0");
txKembalian.setText("0");
txTampil.setText("0");
}

public void clear2(){


txIDBarang.setText("");
txNamaBarang.setText("");
txHarga.setText("");
txJumlah.setText("");
}

public void tambahTransaksi(){


int jumlah, harga, total;

jumlah = Integer.valueOf(txJumlah.getText());
harga = Integer.valueOf(txHarga.getText());
total = jumlah * harga;

txTotalBayar.setText(String.valueOf(total));

loadData();
totalBiaya();
clear2();
txIDBarang.requestFocus();
}

public Penjualan() {
initComponents();

//Create Table
model = new DefaultTableModel();

jTable1.setModel(model);

model.addColumn("No Transaksi");
model.addColumn("ID Barang");
model.addColumn("Nama Barang");
model.addColumn("Jumlah");
model.addColumn("Harga");
model.addColumn("Total");

utama();
Date date = new Date();
SimpleDateFormat s = new SimpleDateFormat("dd-MM-yyyy");

txTanggal.setText(s.format(date));
txTotalBayar.setText("0");
txBayar.setText("0");
txKembalian.setText("0");
txIDCustomer.requestFocus();
}

/**
* 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();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
txNoTransaksi = new javax.swing.JTextField();
txIDCustomer = new javax.swing.JTextField();
txNamaCustomer = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
txTanggal = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
txIDBarang = new javax.swing.JTextField();
txNamaBarang = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
txHarga = new javax.swing.JTextField();
txJumlah = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
btnTambah = new javax.swing.JButton();
btnHapus = new javax.swing.JButton();
btnSimpan = new javax.swing.JButton();
txTampil = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
txTotalBayar = new javax.swing.JTextField();
txBayar = new javax.swing.JTextField();
txKembalian = new javax.swing.JTextField();
btnCari = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(204, 204, 255));

jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N


jLabel1.setText("PENJUALAN");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(342, 342, 342)
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(jLabel1)
.addContainerGap(25, Short.MAX_VALUE))
);

jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N


jLabel2.setText("No Transaksi");

jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N


jLabel3.setText("ID Customer");
jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel4.setText("Nama Costumer");

txNoTransaksi.setEnabled(false);

jLabel5.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N


jLabel5.setText("Tanggal");

txTanggal.setEnabled(false);

jLabel6.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel6.setText("ID Barang");

jLabel7.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel7.setText("Nama Barang");

jLabel8.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel8.setText("Harga");

jLabel9.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N


jLabel9.setText("Jumlah");

txJumlah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txJumlahActionPerformed(evt);
}
});

jTable1.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"
}
));
jScrollPane1.setViewportView(jTable1);

btnTambah.setText("Tambah");
btnTambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnTambahActionPerformed(evt);
}
});

btnHapus.setText("Hapus");
btnHapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnHapusActionPerformed(evt);
}
});

btnSimpan.setText("Simpan");
btnSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSimpanActionPerformed(evt);
}
});

txTampil.setBackground(new java.awt.Color(255, 153, 153));


txTampil.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N
txTampil.setText("Rp. 0");

jLabel10.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


jLabel10.setText("Total Bayar");

jLabel11.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


jLabel11.setText("Bayar");

jLabel12.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


jLabel12.setText("Kembalian");

txTotalBayar.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


txTotalBayar.setEnabled(false);

txBayar.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N


txBayar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txBayarActionPerformed(evt);
}
});

txKembalian.setEnabled(false);

btnCari.setText("Cari");
btnCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCariActionPerformed(evt);
}
});

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)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
699, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 126, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE,
130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(txIDBarang,
javax.swing.GroupLayout.PREFERRED_SIZE, 80,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNREL
ATED)
.addComponent(btnCari)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alig
nment.LEADING, false)
.addComponent(txNoTransaksi)
.addComponent(txIDCustomer)
.addComponent(txNamaCustomer,
javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel5)
.addGap(18, 18, 18)
.addComponent(txTanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 150,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alig
nment.LEADING, false)
.addComponent(btnHapus,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btnTambah,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))))
.addGap(27, 27, 27))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 130,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txNamaBarang,
javax.swing.GroupLayout.PREFERRED_SIZE, 130,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(82, 82, 82)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE,
130, Short.MAX_VALUE)
.addComponent(txHarga))
.addGap(96, 96, 96)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE,
130, Short.MAX_VALUE)
.addComponent(txJumlah))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 80,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addComponent(txTampil, javax.swing.GroupLayout.PREFERRED_SIZE, 272,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(31, 31, 31)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(jLabel10)
.addComponent(jLabel11)
.addComponent(jLabel12))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING, false)
.addComponent(txTotalBayar)
.addComponent(txBayar)
.addComponent(txKembalian,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE))
.addGap(126, 126, 126))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel2)
.addComponent(txNoTransaksi, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5)
.addComponent(txTanggal, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel3)
.addComponent(txIDCustomer, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel4)
.addComponent(txNamaCustomer,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(39, 39, 39)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(jLabel8)
.addComponent(jLabel9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(txIDBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txNamaBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txHarga, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txJumlah, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnCari))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addComponent(btnTambah, javax.swing.GroupLayout.PREFERRED_SIZE,
50, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(24, 24, 24)
.addComponent(btnHapus, javax.swing.GroupLayout.PREFERRED_SIZE, 50,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(jLabel10)
.addComponent(txTotalBayar,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel11)
.addComponent(txBayar, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRA
ILING, false)
.addComponent(btnSimpan, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(txTampil, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel12)
.addComponent(txKembalian, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(13, 13, 13))
);

pack();
setLocationRelativeTo(null);
}// </editor-fold>

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


tambahTransaksi();
}

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


tambahTransaksi();
}

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


int total, bayar, kembalian;

total = Integer.valueOf(txTotalBayar.getText());
bayar = Integer.valueOf(txBayar.getText());

if (total > bayar) {


JOptionPane.showMessageDialog(null, "Uang tidak cukup untuk melakukan
pembayaran");
} else {
kembalian = bayar - total;
txKembalian.setText(String.valueOf(kembalian));
}
}

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


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();

String noTransaksi = txNoTransaksi.getText();


String tanggal = txTanggal.getText();
String idCustomer = txIDCustomer.getText();
String total = txTotalBayar.getText();

try {
Connection c = koneksi.getKoneksi();
String sql = "INSERT INTO penjualan2 VALUES (?,?,?,?)";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, noTransaksi);
p.setString(2, tanggal);
p.setString(3, idCustomer);
p.setString(4, total);
p.executeUpdate();
p.close();
} catch (Exception e) {
System.out.println("simpan penjualan error");
}

try {
Connection c = koneksi.getKoneksi();
int baris = jTable1.getRowCount();

for (int i = 0; i < baris; i++) {


String sql = "INSERT INTO penjualanrinci(NoFaktur, ID_Barang, Nama Barang,
Jumlah, Harga, Total) VALUES('"
+jTable1.getValueAt(i, 0) +"','"+ jTable1.getValueAt(i, 1)
+"'.'"+jTable1.getValueAt(i, 2)
+"','"+ jTable1.getValueAt(i, 3) +"'.'"+ jTable1.getValueAt(i, 4) +"'.'"
+ jTable1.getValueAt(i, 5) +"')";
PreparedStatement p = c.prepareStatement(sql);
p.executeUpdate();
p.close();
}
} catch (Exception e) {
System.out.println("simpan penjualan rinci error");
}
clear();
utama();
autonumber();
kosong();
txTampil.setText("Rp. 0");
}

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


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
int row = jTable1.getSelectedRow();
model.removeRow(row);
totalBiaya();
txBayar.setText("0");
txKembalian.setText("0");
}

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


ListBarang a = new ListBarang();
a.setVisible(true);
}

/**
* @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(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Penjualan().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton btnCari;
private javax.swing.JButton btnHapus;
private javax.swing.JButton btnSimpan;
private javax.swing.JButton btnTambah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
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.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField txBayar;
public static javax.swing.JTextField txHarga;
public static javax.swing.JTextField txIDBarang;
private javax.swing.JTextField txIDCustomer;
private javax.swing.JTextField txJumlah;
private javax.swing.JTextField txKembalian;
public static javax.swing.JTextField txNamaBarang;
private javax.swing.JTextField txNamaCustomer;
private javax.swing.JTextField txNoTransaksi;
private javax.swing.JTextField txTampil;
private javax.swing.JTextField txTanggal;
private javax.swing.JTextField txTotalBayar;
// End of variables declaration
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE


SOURCE CODE
/*
* 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 Toko;

import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
*
* @author PC
*/
public class DataBarang extends javax.swing.JFrame {
koneksi koneksi = new koneksi();

private DefaultTableModel model;

private void autonumber(){


try {
Connection c = koneksi.getKoneksi();
Statement s = c.createStatement();
String sql = "SELECT * FROM barang ORDER BY ID_Barang DESC";
ResultSet r = s.executeQuery(sql);
if (r.next()) {
String NoFaktur = r.getString("ID_Barang").substring(2);
String BR = "" +(Integer.parseInt(NoFaktur)+1);
String Nol = "";

if (BR.length()==1)
{Nol = "00";}
else if(BR.length()==2)
{Nol = "0";}
else if(BR.length()==3)
{Nol = "";}

txIDBarang.setText("BR" + Nol + BR);


}else{
txIDBarang.setText("BR001");
}
r.close();
s.close();
} catch (Exception e) {
System.out.println("autonumber error");
}
}

public void clear(){


txNamaBarang.setText("");
txHargaBeli.setText("");
txHargaJual.setText("");
txStok.setText("");
}

public void loadData(){


model.getDataVector().removeAllElements();

model.fireTableDataChanged();

try {
Connection c = koneksi.getKoneksi();
Statement s = c.createStatement();

String sql = "SELECT * FROM barang";


ResultSet r = s.executeQuery(sql);

while (r.next()) {
Object[] o = new Object[7];
o [0] = r.getString("ID_Barang");
o [1] = r.getString("Nama_Barang");
o [2] = r.getString("Jenis");
o [3] = r.getString("Ukuran");
o [4] = r.getString("HargaBeli");
o [5] = r.getString("HargaJual");
o [6] = r.getString("Stok");

model.addRow(o);
}
r.close();
s.close();
} catch (Exception e) {
System.out.println("terjadi kesalahan");
}
}

public void cariData(){


DefaultTableModel tabel = new DefaultTableModel();
tabel.addColumn("ID Barang");
tabel.addColumn("Nama Barang");
tabel.addColumn("Jenis");
tabel.addColumn("Ukuran");
tabel.addColumn("HargaBeli");
tabel.addColumn("HargaJual");
tabel.addColumn("Stok");

try {
Connection c = koneksi.getKoneksi();
String sql = "Select * from barang where ID_Barang like '%" + jTextField1.getText() +
"%'" +
"or Nama_Barang like '%" + jTextField1.getText() + "%'";
Statement stat = c.createStatement();
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
tabel.addRow(new Object[]{
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
});
}
jTable1.setModel(tabel);
loadData();
} catch (Exception e) {
System.out.println("Cari Data Error");
}finally{
}
}

/**
* Creates new form DataBarang
*/
public DataBarang() {
initComponents();
this.setLocationRelativeTo(null);

model = new DefaultTableModel();

jTable1.setModel(model);

model.addColumn("ID_Barang");
model.addColumn("Nama_Barang");
model.addColumn("Jenis");
model.addColumn("Ukuran");
model.addColumn("HargaBeli");
model.addColumn("HargaJual");
model.addColumn("Stok");

loadData();
autonumber();
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
}
/**
* 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();
jLabel3 = new javax.swing.JLabel();
txIDBarang = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
txNamaBarang = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
txHargaBeli = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
txHargaJual = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
txStok = new javax.swing.JTextField();
cbJenis = new javax.swing.JComboBox();
jLabel9 = new javax.swing.JLabel();
cbUkuran = new javax.swing.JComboBox();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
btnSimpan = new javax.swing.JButton();
btnEdit = new javax.swing.JButton();
btnHapus = new javax.swing.JButton();
btnBatal = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(153, 153, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 16)); // NOI18N


jLabel1.setText("DATA BARANG");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(274, 274, 274))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jLabel3.setText("ID Barang");

jLabel4.setText("Nama Barang");

jLabel5.setText("Jenis Barang");

jLabel6.setText("Harga Beli");

jLabel7.setText("Harga Jual");

jLabel8.setText("Stok");

cbJenis.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Baju",


"Celana", "Jaket", "Kemeja" }));

jLabel9.setText("Ukuran");

cbUkuran.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "S", "M",


"L", "XL", "XXL" }));

javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);


jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING, false)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(44, 44, 44)
.addComponent(txIDBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel9))
.addGap(18, 18, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(txNamaBarang,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbUkuran, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbJenis, javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(jLabel8))
.addGap(32, 32, 32)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING, false)
.addComponent(txHargaBeli)
.addComponent(txHargaJual)
.addComponent(txStok, javax.swing.GroupLayout.DEFAULT_SIZE, 160,
Short.MAX_VALUE))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.BASELINE)
.addComponent(jLabel3)
.addComponent(txIDBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(txHargaBeli, 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.Alignmen
t.BASELINE)
.addComponent(jLabel4)
.addComponent(txNamaBarang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7)
.addComponent(txHargaJual, 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.Alignmen
t.BASELINE)
.addComponent(jLabel5)
.addComponent(jLabel8)
.addComponent(txStok, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbJenis, 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.Alignmen
t.BASELINE)
.addComponent(jLabel9)
.addComponent(cbUkuran, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(20, Short.MAX_VALUE))
);

jLabel2.setText("Cari Data");

jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jTextField1KeyTyped(evt);
}
});

jTable1.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"
}
));
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);

btnSimpan.setText("Simpan");
btnSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSimpanActionPerformed(evt);
}
});

btnEdit.setText("Edit");
btnEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditActionPerformed(evt);
}
});

btnHapus.setText("Hapus");
btnHapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnHapusActionPerformed(evt);
}
});

btnBatal.setText("Batal");
btnBatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBatalActionPerformed(evt);
}
});

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)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel2)
.addGap(40, 40, 40)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,
171, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 679,
Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnHapus, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnBatal, javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(10, 10, 10)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(jLabel2)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 264,
Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(btnSimpan)
.addComponent(btnEdit)
.addComponent(btnHapus)
.addComponent(btnBatal))
.addContainerGap())
);

pack();
setLocationRelativeTo(null);
}// </editor-fold>

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


// TODO add your handling code here:
int i = jTable1.getSelectedRow();
if (i == -1) {
return;
}
String id = (String) model.getValueAt(i, 0);
String nama = txNamaBarang.getText();
String jenis = (String)cbJenis.getSelectedItem();
String ukuran = (String)cbUkuran.getSelectedItem();
String hargaBeli = txHargaBeli.getText();
String hargaJual = txHargaJual.getText();
String stok = txStok.getText();

try {
Connection c = koneksi.getKoneksi();
String sql = "UPDATE barang SET Nama_Barang = ?, Jenis = ?, Ukuran = ?,
HargaBeli = ?, HargaJual = ?, Stok = ? WHERE ID_Barang = ?";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, nama);
p.setString(2, jenis);
p.setString(3, ukuran);
p.setString(4, hargaBeli);
p.setString(5, hargaJual);
p.setString(6, stok);
p.setString(7, id);

p.executeUpdate();
p.close();
JOptionPane.showMessageDialog(null, "Data Terubah");
btnSimpan.setEnabled(true);
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
clear();
} catch (Exception e) {
System.out.println("update error");
}finally{
loadData();
autonumber();
}
}

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


// TODO add your handling code here:
int i = jTable1.getSelectedRow();
if (i == -1) {
return;
}

String id = (String) model.getValueAt(i, 0);

int pernyataan = JOptionPane.showConfirmDialog(null, "Yakin Data Akan


Dihapus","Konfirmasi", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (pernyataan== JOptionPane.OK_OPTION) {
try {
Connection c = koneksi.getKoneksi();
String sql = "DELETE FROM barang WHERE ID_Barang = ?";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, id);
p.executeUpdate();
p.close();
JOptionPane.showMessageDialog(null, "Data Terhapus");
} catch (Exception e) {
System.out.println("Terjadi Kesalahan");
}finally{
btnSimpan.setEnabled(true);
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
loadData();
autonumber();
clear();
}
}
if (pernyataan== JOptionPane.CANCEL_OPTION) {

}
}

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


// TODO add your handling code here:
String id = txIDBarang.getText();
String nama = txNamaBarang.getText();
String jenis = (String)cbJenis.getSelectedItem();
String ukuran = (String)cbUkuran.getSelectedItem();
String hargaBeli = txHargaBeli.getText();
String hargaJual = txHargaJual.getText();
String stok = txStok.getText();

try {
Connection c = koneksi.getKoneksi();
String sql = "INSERT INTO BARANG VALUES (?, ?, ?, ?, ?, ?, ?)";
PreparedStatement p = c.prepareStatement(sql);
p.setString(1, id);
p.setString(2, nama);
p.setString(3, jenis);
p.setString(4, ukuran);
p.setString(5, hargaBeli);
p.setString(6, hargaJual);
p.setString(7, stok);
p.executeUpdate();
p.close();
JOptionPane.showMessageDialog(null, "Data Tersimpan");
loadData();
} catch (Exception e) {
System.out.println("Terjadi Kesalahan");
}finally{
autonumber();
clear();
}
}

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


// TODO add your handling code here:
btnSimpan.setEnabled(false);
btnEdit.setEnabled(true);
btnHapus.setEnabled(true);
btnBatal.setEnabled(true);

int i = jTable1.getSelectedRow();
if (i == -1) {
return;
}

String id = (String) model.getValueAt(i, 0);


String nama = (String) model.getValueAt(i, 1);
String jenis = (String) model.getValueAt(i, 2);
String ukuran = (String) model.getValueAt(i, 3);
String hargaBeli = (String) model.getValueAt(i, 4);
String hargaJual = (String) model.getValueAt(i, 5);
String stok = (String) model.getValueAt(i, 6);

txIDBarang.setText(id);
txNamaBarang.setText(nama);
cbJenis.setSelectedItem(jenis);
cbUkuran.setSelectedItem(ukuran);
txHargaBeli.setText(hargaBeli);
txHargaJual.setText(hargaJual);
txStok.setText(stok);
}

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


// TODO add your handling code here:
clear();
loadData();
btnSimpan.setEnabled(true);
btnEdit.setEnabled(false);
btnHapus.setEnabled(false);
btnBatal.setEnabled(false);
autonumber();
}

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


// TODO add your handling code here:
cariData();
}

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


// TODO add your handling code here:
cariData();
}

/**
* @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(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(DataBarang.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new DataBarang().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton btnBatal;
private javax.swing.JButton btnEdit;
private javax.swing.JButton btnHapus;
private javax.swing.JButton btnSimpan;
private javax.swing.JComboBox cbJenis;
private javax.swing.JComboBox cbUkuran;
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.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField txHargaBeli;
private javax.swing.JTextField txHargaJual;
private javax.swing.JTextField txIDBarang;
private javax.swing.JTextField txNamaBarang;
private javax.swing.JTextField txStok;
// End of variables declaration
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBYEK
Kelas/Semester : XII RPL / Ganjil
Materi Pembelajaran : User Interface
Nama : Moch Renaldy Syaputra
Kelas : XII RPL A
No Absen : 15

DESAIN USER INTERFACE


SOURCE CODE
/*
* 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 Toko;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.Connection;
import javax.swing.table.DefaultTableModel;

/**
*
* @author PY7
*/
public class ListBarang extends javax.swing.JFrame {
private DefaultTableModel model;

public void loadData(){


model.getDataVector().removeAllElements();
model.fireTableDataChanged();

try {
Connection c = koneksi.getKoneksi();
Statement s = c.createStatement();

String sql = "SELECT * FROM barang";


ResultSet r = s.executeQuery(sql);

while (r.next()) {
Object[] o = new Object[6];
o [0] = r.getString("ID_Barang");
o [1] = r.getString("Nama_Barang");
o [2] = r.getString("Jenis");
o [3] = r.getString("Ukuran");
o [4] = r.getString("HargaJual");
o [5] = r.getString("Stok");

model.addRow(o);
}
r.close();
s.close();
} catch (Exception e) {
System.out.println("terjadi kesalahan");
}
}

public void cari(){


DefaultTableModel tabel = new DefaultTableModel();

tabel.addColumn("ID Barang");
tabel.addColumn("Nama Barang");
tabel.addColumn("Jenis");
tabel.addColumn("Ukuran");
tabel.addColumn("Harga");
tabel.addColumn("Stok");

try {
Connection c = koneksi.getKoneksi();
String sql = "Select * from barang where ID_Barang like '%" +
txCari.getText() + "%'" +
"or Nama_Barang like '%" + txCari.getText() + "%'";
Statement stat = c.createStatement();
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
tabel.addRow(new Object[]{
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
});
}
jTable1.setModel(tabel);
loadData();
} catch (Exception e) {
System.out.println("Cari Data Error");
}finally{
}
}

/**
* Creates new form ListBarang
*/
public ListBarang() {
initComponents();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);

model = new DefaultTableModel();

jTable1.setModel(model);

model.addColumn("ID Barang");
model.addColumn("Nama Barang");
model.addColumn("Jenis");
model.addColumn("Ukuran");
model.addColumn("HargaJual");
model.addColumn("Stok");

loadData();
}

/**
* 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();
jLabel2 = new javax.swing.JLabel();
txCari = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
btnPilih = new javax.swing.JButton();
btnBatal = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(153, 153, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N


jLabel1.setText("List Data Barang");

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()
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

jLabel2.setText("Cari :");

txCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txCariActionPerformed(evt);
}
});
txCari.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txCariKeyTyped(evt);
}
});

jTable1.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"
}
));
jScrollPane1.setViewportView(jTable1);

btnPilih.setText("Pilih");
btnPilih.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnPilihActionPerformed(evt);
}
});

btnBatal.setText("Batal");
btnBatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBatalActionPerformed(evt);
}
});

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)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.LEADING)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 462, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNR
ELATED)
.addComponent(txCari))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(btnPilih,
javax.swing.GroupLayout.PREFERRED_SIZE, 65,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL
ATED)
.addComponent(btnBatal,
javax.swing.GroupLayout.PREFERRED_SIZE, 65,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.BASELINE)
.addComponent(jLabel2)
.addComponent(txCari, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 387,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.BASELINE)
.addComponent(btnPilih)
.addComponent(btnBatal))
.addGap(0, 11, Short.MAX_VALUE))
);

pack();
setLocationRelativeTo(null);
}// </editor-fold>

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


// TODO add your handling code here:
int i = jTable1.getSelectedRow();

String id = jTable1.getValueAt(i, 0).toString();


String nama = jTable1.getValueAt(i, 1).toString();
String harga = jTable1.getValueAt(i, 4).toString();

Penjualan.txIDBarang.setText(id);
Penjualan.txNamaBarang.setText(nama);
Penjualan.txHarga.setText(harga);

dispose();
}
private void btnBatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.dispose();
}

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


// TODO add your handling code here:
cari();
}

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


// TODO add your handling code here:
cari();
}

/**
* @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(ListBarang.class.getName()).log(java.util.logging.L
evel.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(ListBarang.class.getName()).log(java.util.logging.L
evel.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(ListBarang.class.getName()).log(java.util.logging.L
evel.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(ListBarang.class.getName()).log(java.util.logging.L
evel.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ListBarang().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnBatal;
private javax.swing.JButton btnPilih;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField txCari;
// End of variables declaration
}

TROUBLESHOOTING ERROR
(Jika terjadi error silahkan di screenshoot dan ditaruh disini, dan tulis cara menyelesaian error tsb)

You might also like