0% found this document useful (0 votes)
50 views66 pages

22 September - UH PBO - Moch Renaldy S - XII RPL A - 15

The document describes a student's laboratory report on object-oriented programming. It includes the student's design of a user interface for a login form, the source code for the login form, and sections for any errors encountered. The source code creates a login window with labels, text fields, and a button to authenticate username and password entries against hardcoded values and open another window if valid credentials are entered.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views66 pages

22 September - UH PBO - Moch Renaldy S - XII RPL A - 15

The document describes a student's laboratory report on object-oriented programming. It includes the student's design of a user interface for a login form, the source code for the login form, and sections for any errors encountered. The source code creates a login window with labels, text fields, and a button to authenticate username and password entries against hardcoded values and open another window if valid credentials are entered.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 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