Académique Documents
Professionnel Documents
Culture Documents
PENJUALAN MOTOR
DENGAN JAVA
By Ulpah Barokah
CIAMIS
Dedication
To Hubby and Family.
Author s Acknowledgments
Saya mengucapkan banyak terima kasih kepada Ibu Bapak Guru yang
telah membimbing terus buat belajar terutama Bapak Kiki Supendi, ST.,
MOS yang telah memberikan semangat yang begitu besar kepada saya
agar dapat menyelesaikan buku ini walaupun dalam waktu yang sangat
singkat, Google yang selalu membantu saya untuk terus mencari Ilmu,
buku-buku pendukung yang selalu menemani. Dan, tentu saja, seluruh
teman teman yang tidak dapat saya sebutkan seluruhnya yang
mendukung agar buku ini bisa terbit.
DAFTAR ISI
About The Author
BAGIAN I : SOFTWARE.........................................................
20
21
21
23
27
28
28
30
39
43
45
49
50
51
51
89
vi
2013
BAGIAN KE I :
SOFTWARE
Page 1
2013
BAB 1
INSTALASI SOFTWARE
1.1.
Persiapan Instalasi
1.1.1 Software yang harus diinstallkan
SDK
Neatbeans 6.8 (boleh versi yang lainnya)
JasperReport
PhpMyAdmin
1.1.2 JAR yang disiapkan
Mysql-connector-java-5.1.7-bin.jar
jcalendar-1.3.2.jar
commons-beanutils-1.8.2.jar
commons-collections-3.2.1.jar
commons-digester-1.7.jar
commons-logging-1.1.jar
jasperreports-4.0.0.jar
iReport.jar
com-Jaspersoft-iReport.jar
iText-2.1.7.js1.jar
jasperreport-extensions-3.5.3.jar
jcommon-1.0.15.jar
groovy-all-1.7.5.jar
1.1.3 Plugin yang harus disiapkan
iReport-4.5.0.nbm
jasperreports-components-plugin-4.5.0.nbm
jasperreports-extensions-plugin-4.5.0.nbm
jasperserver-plugin-4.5.0.nbm
1.2.
Instalasi Software
Sebelum menginstal Neatbeans 6.0 (ke atas) anda harus menginstal JDK terlebih dahulu.
Lihat cara cara penginstalan berikut ini :
Page 2
2013
sebagai
tanda
Page 3
2013
2013
pada PC yang hendak menjalankan aplikasi yang dibuat dengan kode Java seperti
berikut :
Page 5
2013
Page 6
2013
Page 7
2013
2013
Seperti halnya pada instalasi Java SDK atau produk-produk berlisensi lain,
installer NetBeans akan menampilkan halaman persetujuan antara pembuat
software dan anda sebagai pemakai.
2013
2013
Installer akan memberitahu anda saat instalasi selesai. Ada dua informasi yang
bisa anda pilih, yang pertama adalah ikut berkontribusi tidak langsung dengan
mengijinkan PC anda mengirim data untuk statistik penggunaan NetBeans ke
situs NetBeans.org (ini jika anda care pada NetBeans), dan penawaran kedua
adalah mendaftarkan NetBeans yang baru saja diinstal agar bisa mendapatkan
fasilitas dari NetBeans (registrasinya gratis) seperti berikut :
Page 11
2013
Page 12
2013
2013
Klik Open -> Install -> Next -> I Agree -> Next -> Next maka akan
muncul tampilan JasperReport seperti berikut :
2013
Setelah itu akan tampil seperti dibawah ini, Kemudian klik Next untuk
melanjutkan.
2013
installasi software ini di start menu. Klik Install untuk memulai proses
Installasi.
Page 16
2013
Page 17
2013
Page 18
2013
Page 19
2013
BAGIAN KE II :
DATABASE
Page 20
2013
BAB 2
MERANCANG DATABASE PENJUALAN MOTOR
2.1.
Membuat Database
Langkah Membuat Database :
Buka XAMPP Control Panel, lalu klik Start pada Apache dan Mysql
seperti berikut :
Page 21
2013
Page 22
2013
2.2.
Page 23
2013
Page 24
2013
Fields
Type
Values
Index
Kode_Motor
VARCHAR
30
Primary Key
Merk
VARCHAR
30
Warna
VARCHAR
30
Harga
INT
30
Type
Values
Index
Primary Key
Fields
Kode_Cust
VARCHAR
30
Nama
VARCHAR
30
Alamat
VARCHAR
100
Telepon
VARCHAR
30
No HP
INT
30
No KTP
INT
30
KK
INT
30
Slip_Gaji
INT
30
Keterangan
VARCHAR
150
Type
VARCHAR
Date
VARCHAR
VARCHAR
INT
INT
VARCHAR
Values
30
Fields
Kode_Cash
Tanggal_Beli
Kode_Pelanggan
Kode_Motor
Bayar
Sisa
Keterangan
Index
Primary Key
100
30
30
30
150
Page 25
2013
2.2.4.Table Beli_Kredit
No
Fields
Type
Values
Index
30
Primary Key
Kode_Kredit
VARCHAR
Tanggal_Kredit
Date
Kode_Cust
VARCHAR
100
Kode_Motor
VARCHAR
30
Uang_Muka
INT
30
Bunga
INT
30
Lama_Cicilan
INT
30
Angsuran_Ke
INT
30
Keterangan
VARCHAR
150
Fields
Type
Values
Index
30
Primary Key
Nomor_Bayar
VARCHAR
Tanggal_Bayar
Date
Kode_Kredit
VARCHAR
30
Jumlah
INT
30
Keterangan
VARCHAR
150
Fields
Type
Values
Index
Primary Key
User Name
VARCHAR
30
Password
VARCHAR
30
Page 26
2013
BAGIAN KE III :
PROJECT
Page 27
2013
BAB 3
MEMBUAT PROJECT
3.1
Page 28
2013
2013
Page 30
2013
2013
Page 32
2013
Keterangan :
Daftar Properties yang digunakan :
Properties
Pallete
Edit Text
jPanel1
SplashPanel
jProgressBar1
ProgressBar
Klik kanan pada project anda lalu pilih Java Package maka akan
tampil seperti berikut :
Page 33
2013
buka
Form
Page 34
2013
Page 35
2013
Page 36
2013
Page 37
2013
3.3
2013
2013
Pallete
Label1
Propertiis
Edit Text
User Name
Page 40
2013
Label2
Password
jLabel2
TextField1
txtname
Password Field
txtpass
Button1
Ok
ok
Button2
Cancel
cancel
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import javax.swing.JOptionPane;
import java.sql.*;
import javax.swing.*;
2. Pada bagian public class Login extends javax.swing.JFrame {
tambahkan kode berikut :
public class Login extends javax.swing.JFrame {
public Connection conn;
public Statement cn;
/** Creates new form Login */
public Login(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
this.setLocationRelativeTo(null);
this.setTitle("Login");
this.setAlwaysOnTop(true);
}
public void koneksi(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor","root","");
cn = conn.createStatement();
}catch (Exception e){
JOptionPane.showMessageDialog(null,"koneksi gagal..");
Page 41
2013
System.out.println(e.getMessage());
}
}
public void cariuser(){
try{
koneksi();
String sql = "Select * from login where User_Name='"+txtname.getText()+"' and
Password='" + txtpass.getText() + "'";
ResultSet rs = cn.executeQuery(sql);
if (rs.next())
{
JOptionPane.showMessageDialog(null, "Selamat Login Anda Sukses.....!");
new FrmMenuUtama().show();
this.dispose();
}
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Ada Kesalahan");
}
}
3. Buatlah kode program Ok dengan mengklik kanan button Ok ->events -> action > ActionPerformed.
private void okActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
cariuser();
}
4. Buatlah kode program Cancel dengan mengklik kanan button Cancel ->events ->
action -> ActionPerformed.
private void cancelActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null, "Apakah anda yakin mau
membatalkan Login, \n jika anda menekan tombol OK",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
Page 42
2013
5. Jalankan Program kemudian klik FrmLogin maka akan tampil seperti berikut:
3.4
Page 43
2013
Page 44
3.5
2013
Menjalankan Project
Langkah selanjutnya anda buka class Main maka kode program tersebut tidak
ada yang eror lagi seperti berikut :
Page 45
2013
Klik Go maka jika tampil gambar seperti di bawah berarti data sudah tersimpan.
2013
Page 47
2013
Page 48
2013
Membuka Project
Untuk Membuka project yang sudah dibuat dengan cara File -> Open Project >cari project di folder tempat penyimpanan project anda->Klik Open
Project.
Page 49
2013
BAGIAN KE IV :
FORM
Page 50
2013
BAB 4
MEMBUAT FORM MASTER
4.1.
Page 51
2013
Page 52
2013
Page 53
2013
Page 54
2013
Setelah itu anda buat menu close, minimize dan maximize juga title/judul
dengan cara klik kanan Internal Prame tersebut dan pilih Properties maka
akan tampil properties seperti berikut :
Page 55
2013
2013
Drag Panel pada palette, lalu kasih warna sesuai dengan keinginan anda seperti
berikut :
Langkah 1
Langkah 2
Langkah 3
Page 57
Langkah 4
2013
Langkah 5
Page 60
2013
Drag panel kembali kemudian berikan warna yang anda inginkan, kemudian
masuk ke properties -> border -> Titled Border -> pada bagian bawah
terdapat title, anda isikan Detail Data Motor. -> Ok Langkah langkahnya
seperti berikut :
Langkah 1
2013
Langkah 3
2013
Drag 4 buah Label dari Palette ke dalam panel -> kemudian Edit label
tersebut dengan cara Klik kanan -> Edit Text -> Edit text tersebut sesuai
dengan keterangan yang telah di tentukan seperti berikut
Langkah 1
2013
Langkah 3
2013
Langkah 2
2013
Langkah 4
Page 66
2013
Langkah 6
Page 67
2013
Langkah 8
Langkah 9
Langkah 10
Page 68
Langkah 11
2013
Langkah 12
Drag panel kembali kemudian berikan warna yang anda inginkan, kemudian
masuk ke properties -> border -> Titled Border -> pada bagian bawah
terdapat title, anda isikan Tombol. -> Ok Langkah langkahnya sama dengan
membuat panel yang sebelumnya dan hasilnya seperti berikut :
2013
Drag 7 buah Button dari Palette ke dalam panel -> kemudian Edit button
tersebut dengan cara Klik kanan -> Change Variable Name -> Edit text
tersebut sesuai dengan keterangan yang telah di tentukan. Langkah- langkahnya
seperti berikut:
Langkah 1
2013
Langkah 3
2013
Agar tombol tersebut terlihat lebih menarik, Anda harus menambahkan icon pada
button tersebut dengan cara klik salah satu button tersebut pilih properties ->
icon -> pilih icon yang anda pilih di folder image anda. Langkahlangkahnya seperti berikut :
Langkah 1
2013
Langkah 3
2013
Langkah 5
2013
Agar form anda terlihat lebih menarik lagi, tambahkan judul dan keterangan
seperti gambar berikut :
Page 75
2013
Langkah 1
2013
Pilih Properties -> model -> ubah nama title tersebut -> Ok. Langkah
langkahnya seperti berikut :
Langkah 1
2013
Langkah 3
2013
Edit Text
Kode Motor
Merk Motor
Warna
Harga
New
Save
Cancel
Edit
View Report
Delete
Close
Propertiis
Change Variable Name
jLabel1
jLabel2
jLabel3
jLabel4
txtKode_Motor
cbo_Merk
cbo_Warna
txtHarga
NEW
SAVE
CANCEL
EDIT
PRINT
DELETE
EXIT
tbl_Motor
Page 79
2013
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import java.awt.Cursor;
import javax.swing.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.swing.table.*;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
2. Pada bagian public class FrmMotor extends javax.swing.JFrame tambahkan kode
berikut :
public class FrmMotor extends javax.swing.JFrame {
Connection koneksi;
ResultSet RsBrg;
Statement stm;
Boolean ada = false;
Boolean edit = false;
public void buka_db(){
try{
Class.forName("com.mysql.jdbc.Driver");
koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_moto
r",
"root", "");
}catch(ClassNotFoundException e){
System.out.println("Error #1 : "+ e.getMessage());
System.exit(0);
}catch(SQLException e){
System.out.println("Error #2 : "+ e.getMessage());
Page 80
2013
System.exit(0);
}
}
/** Creates new form FrmMotor */
public FrmMotor() {
initComponents();
this.setLocationRelativeTo(getRootPane());
buka_db();
tampildata();
}
3. Buatlah kode program untuk menampilkan nomor secara otomatis letakkan disembarang
tempat yang memiliki space kosong seperti berikut ini:
public void buatnomor(){
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor", "root",
"");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_
UPDATABLE);
String sql = "Select Kode_Motor as no from motor ORDER by Kode_Motor desc";
ResultSet res=stt.executeQuery(sql);
if (res.next())
{
String Str = "0000";
String nomer = res.getString("no");
int no_t = Integer.parseInt(nomer) + 1;
String str_no = Integer.toString(no_t);
txtKode_Motor.setText(Str.substring(0,4 - str_no.length()) +
Integer.toString(no_t));
}
else{
int no_t = 1;
txtKode_Motor.setText("000" + Integer.toString(no_t));
}
res.close();
}catch (Exception e){
}
}
Page 81
2013
4. Buatlah kode program untuk menampilkan data yang sudah tersimpan di database,
letakkan disembarang tempat yang memiliki space kosong seperti berikut ini:
public void tampildata(){
DefaultTableModel tabelnyo = new DefaultTableModel();
tabelnyo.addColumn("Kode_Motor");
tabelnyo.addColumn("Merk ");
tabelnyo.addColumn("Warna");
tabelnyo.addColumn("Harga");
try{
stm = koneksi.createStatement();
String sql = "Select * from motor order by Kode_Motor asc";
ResultSet rs = stm.executeQuery(sql);
while (rs.next())
{
tabelnyo.addRow(new Object[]{
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
});
}
tbl_Motor.setModel(tabelnyo);
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Ada Kesalahan");
}
}
5. Buatlah perintah BersihData,SetEditOff, SetEditON , SetAktif , dan SetInAktif
disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){
txtKode_Motor.setText("");
cbo_Merk.setSelectedItem("");
cbo_Warna.setSelectedItem("");
txtHarga.setText("");
}
public void SetEditOff(){
txtKode_Motor.setEnabled(false);
cbo_Merk.setEnabled(false);
Page 82
2013
cbo_Warna.setEnabled(false);
txtHarga.setEnabled(false);
}
public void SetEditOn(){
txtKode_Motor.setEnabled(true);
cbo_Merk.setEnabled(true);
cbo_Warna.setEnabled(true);
txtHarga.setEnabled(true);
}
public void SetAktif(){
NEW.setEnabled(false);
SAVE.setEnabled(true);
CANCEL.setEnabled(true);
DELETE.setEnabled(false);
UPDATE.setEnabled(true);
EXIT.setEnabled(false);
}
public void SetInAktif(){
NEW.setEnabled(true);
SAVE.setEnabled(false);
CANCEL.setEnabled(false);
DELETE.setEnabled(true);
UPDATE.setEnabled(false);
EXIT.setEnabled(true);
}
6. Buatlah kode program New dengan mengklik kanan button New ->events -> action
-> ActionPerformed.
private void NEWActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
buatnomor();
BersihData();
txtKode_Motor.requestFocus();
buatnomor();
SetAktif();
SetEditOn();
}
Page 83
2013
7. Buatlah kode program Save dengan mengklik kanan button SAVE ->events -> action
-> ActionPerformed.
private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
stm = koneksi.createStatement();
String KodeMtr=txtKode_Motor.getText();
String ComboMerk=cbo_Merk.getSelectedItem().toString();
String ComboWarna=cbo_Warna.getSelectedItem().toString();
String Hrga=txtHarga.getText();
if (edit==true){
stm.executeUpdate("update motor set "
+ "Merk='"+ComboMerk+"',"
+ "Warna='"+ComboWarna+"',"
+ "Harga='"+Hrga+"' "
+ " where Kode_Motor='" + KodeMtr + "'");
}else{
stm.executeUpdate("INSERT into motor VALUES('"+KodeMtr+"',"
+ "'"+ComboMerk+"','"+ComboWarna+"','"+Hrga+"')");
}
}catch(SQLException e) {
JOptionPane.showMessageDialog(null, "Data telah berhasil disimpan");
}catch (Exception e){
JOptionPane.showMessageDialog(null,"Proses penyimpanan gagal/koneksi
gagal..");
System.out.println(e.getMessage());
}
tampildata();
BersihData();
SetInAktif();
SetEditOff();
}
8. Buatlah kode program Cancel dengan mengklik kanan button CANCEL ->events ->
action -> ActionPerformed.
private void CANCELActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
Page 84
2013
BersihData();
SetInAktif();
SetEditOff();
}
9. Buatlah kode program Update dengan mengklik kanan button UPDATE ->events ->
action -> ActionPerformed.
private void UPDATEActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
cbo_Merk.requestFocus();
SetAktif();
SetEditOn();
edit=true;
txtKode_Motor.setEnabled(false);
}
10. Buatlah kode program View Report dengan mengklik kanan button PRINT ->events
-> action -> ActionPerformed.
private void PRINTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
{PRINT.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Connection con = koneksi;
try {Connection koneksi=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor", "root",
"");
stm = koneksi.createStatement();
try {
Map<String, Object> prs = new HashMap<String, Object>();
JasperReport JRpt =
JasperCompileManager.compileReport("F:/ulpahh/Splash/src/LaporanMotor.jrxml");
JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con);
Page 85
2013
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
System.out.println("Report Can't view because : " + rptexcpt);
}
} catch (Exception e) {
System.out.println(e);
}
PRINT.setCursor(Cursor.getDefaultCursor());
}
}
11. Buatlah kode program Delete dengan mengklik kanan button DELETE ->events ->
action -> ActionPerformed.
private void DELETEActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KodeMtr=txtKode_Motor.getText();
String ComboMerk=cbo_Merk.getSelectedItem().toString();
String ComboWarna=cbo_Warna.getSelectedItem().toString();
String Hrga=txtHarga.getText();
if((KodeMtr.isEmpty())|(ComboMerk.isEmpty())|(ComboWarna.isEmpty())|(Hrga.i
sEmpty())){
JOptionPane.showMessageDialog(null,"data tidak boleh kosong silahkan
lengkapi");
txtKode_Motor.requestFocus();
}else{
try{
Class.forName("com.mysql.jdbc.Driver");
koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_
motor", "root", "");
stm = koneksi.createStatement();
String SQL="Delete From motor Where
Kode_Motor='"+txtKode_Motor.getText().toString()+"'";
Page 86
2013
stm.executeUpdate(SQL);
String a=txtKode_Motor.getText();
String b=cbo_Merk.getSelectedItem().toString();
String c=cbo_Warna.getSelectedItem().toString();
String d=txtHarga.getText();
tampildata();
stm.close();
koneksi.close();
BersihData();
SAVE.setEnabled(false);
SetEditOff();
buka_db();
}catch (Exception e){
System.out.println(e.getMessage());
}
}
}
12. Buatlah kode program Close
action -> ActionPerformed.
13. Untuk menonaktifkan button saat program dijalankan buatlah kode program dengan
cara klik kanan pada windows form ->events -> Window -> WindowOpened.
Page 87
2013
Page 88
2013
15. Jalankan Program kemudian klik FrmMotor maka akan tampil seperti berikut:
2013
Pada jendela New JFrame Form, isikan FrmPelanggan pada kotak isian Class
Name, dan Package pilih ulpah (nama package sesuai yang anda inginkan,
apabila ingin memakai package baru bisa langsung di ketikan di bagian kotak
isian package) lalu tekan tombol Finish untuk mengakhiri.
2013
Desainlah form yang baru anda ciptakan seperti gambar dibawah ini atau sesuai
dengan keinginan anda:
Edit Text
Kode Customer
Nama
Alamat
Telepon
No HP
KK
No KTP
Slip Gaji
Keterangan
Properties
Change Variable Name
jLabel1
jLabel2
jLabel3
jLabel4
jLabel5
jLabel6
jLabel7
jLabel8
jLabel9
txtKode_Customer
cbo_Warna
txt_Alamat
Page 91
2013
Text Field4
Text Field5
Text Field6
Text Field7
Text Field8
Text Field9
Button1
Button2
Button3
Button4
Button5
Button6
Button7
Table
New
Save
Cancel
Edit
View Report
Delete
Close
txt_Telepon
txt_Nohp
txt_KK
txt_NoKTP
txt_SlipGaji
txt_Keterangan
NEW
SAVE
CANCEL
EDIT
PRINT
DELETE
EXIT
tbl_Pelanggan
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah seperti kode berikut:
package ulpah;
import java.awt.Cursor;
import javax.swing.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;
import javax.swing.table.*;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
Page 92
2013
2013
2013
tabelnyo.addRow(new Object[]{
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
});
}
tbl_Pelanggan.setModel(tabelnyo);
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Ada Kesalahan");
}
buka_db();
}
5. Buatlah perintah BersihData,SetEditOff, SetEditON , SetAktif , dan SetInAktif
disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){
txtKode_Customer.setText("");
txtNama.setText("");
txt_Alamat.setText("");
txt_Telepon.setText("");
txt_Nohp.setText("");
txt_NoKTP.setText("");
txt_KK.setText("");
txt_SlipGaji.setText("");
txt_Keterangan.setText("");
}
public void SetEditOff(){
txtKode_Customer.setEnabled(false);
txtNama.setEnabled(false);
txt_Alamat.setEnabled(false);
txt_Telepon.setEnabled(false);
txt_Nohp.setEnabled(false);
txt_NoKTP.setEnabled(false);
Page 95
2013
txt_KK.setEnabled(false);
txt_SlipGaji.setEnabled(false);
txt_Keterangan.setEnabled(false);
}
public void SetEditOn(){
txtKode_Customer.setEnabled(true);
txtNama.setEnabled(true);
txt_Alamat.setEnabled(true);
txt_Telepon.setEnabled(true);
txt_Nohp.setEnabled(true);
txt_NoKTP.setEnabled(true);
txt_KK.setEnabled(true);
txt_SlipGaji.setEnabled(true);
txt_Keterangan.setEnabled(true);
}
public void SetAktif(){
NEW.setEnabled(false);
SAVE.setEnabled(true);
UPDATE.setEnabled(true);
DELETE.setEnabled(false);
CANCEL.setEnabled(true);
EXIT.setEnabled(false);
}
public void SetInAktif(){
NEW.setEnabled(true);
SAVE.setEnabled(false);
UPDATE.setEnabled(false);
DELETE.setEnabled(true);
CANCEL.setEnabled(false);
EXIT.setEnabled(true);
}
6. Buatlah kode program New dengan mengklik kanan button New ->events -> action
-> ActionPerformed.
private void NEWActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
BersihData();
txtNama.requestFocus();
Page 96
2013
buatnomor();
SetAktif();
SetEditOn();
}
7. Buatlah kode program Save dengan mengklik kanan button SAVE ->events -> action
-> ActionPerformed.
private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
stm = koneksi.createStatement();
String kdcst=txtKode_Customer.getText();
String nama=txtNama.getText();
String alamat=txt_Alamat.getText();
String telepon=txt_Telepon.getText();
String nohp=txt_Nohp.getText();
String noktp=txt_NoKTP.getText();
String kk=txt_KK.getText();
String sgaji=txt_SlipGaji.getText();
String keterangan=txt_Keterangan.getText();
if (edit==true){
stm.executeUpdate("update pelanggan set "
+ "Nama='"+nama+"',"
+ "Alamat='"+alamat+"',"
+ "Telepon='"+telepon+"',"
+ "No_HP='"+nohp+"',"
+ "No_KTP='"+noktp+"',"
+ "KK='"+kk+"',"
+ "Slip_Gaji='"+sgaji+"',"
+ "Keterangan='"+keterangan+"',"
+ " where Kode_Cust='" + kdcst + "'");
}else{
stm.executeUpdate("insert into pelanggan values('"+kdcst+"',"
+
"'"+nama+"','"+alamat+"','"+telepon+"','"+nohp+"','"+noktp+"','"+kk+"','"+sgaji
+"','"+keterangan+"')");
}
}catch(SQLException e) {
JOptionPane.showMessageDialog(null, e);
Page 97
2013
}
tampildata();
BersihData();
SetInAktif();
SetEditOff();
}
8. Buatlah kode program Cancel dengan mengklik kanan button CANCEL ->events ->
action -> ActionPerformed.
private void CANCELActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
BersihData();
SetInAktif();
SetEditOff();
}
9. Buatlah kode program Update dengan mengklik kanan button UPDATE ->events ->
action -> ActionPerformed.
private void UPDATEActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
txtNama.requestFocus();
SetAktif();
SetEditOn();
edit=true;
txtKode_Customer.setEnabled(false);
}
10. Buatlah kode program View Report dengan mengklik kanan button PRINT ->events
-> action -> ActionPerformed.
private void PRINTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
{PRINT.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Connection con = koneksi;
Page 98
2013
try {
Connection koneksi=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor", "root",
"");
stm = koneksi.createStatement();
try {
Map<String, Object> prs = new HashMap<String, Object>();
JasperReport JRpt =
JasperCompileManager.compileReport("F:/ulpahh/Splash/src/LaporanPelanggan.jrxml");
JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con);
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
System.out.println("Report Can't view because : " + rptexcpt);
}
} catch (Exception e) {
System.out.println(e);
}
PRINT.setCursor(Cursor.getDefaultCursor());
}
}
11. Buatlah kode program Delete dengan mengklik kanan button DELETE ->events ->
action -> ActionPerformed.
private void DELETEActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String kdcst=txtKode_Customer.getText();
String nama=txtNama.getText();
String alamat=txt_Alamat.getText();
Page 99
2013
String telepon=txt_Telepon.getText();
String nohp=txt_Nohp.getText();
String noktp=txt_NoKTP.getText();
String kk=txt_KK.getText();
String sgaji=txt_SlipGaji.getText();
String keterangan=txt_Keterangan.getText();
if((kdcst.isEmpty())|(nama.isEmpty())|(alamat.isEmpty())|(telepon.isEmpty())|(no
hp.isEmpty())|(noktp.isEmpty())|(kk.isEmpty())|(sgaji.isEmpty())|(keterangan.isE
mpty())){
JOptionPane.showMessageDialog(null,"data tidak boleh kosong silahkan
lengkapi");
txtKode_Customer.requestFocus();
}else{
try{
Class.forName("com.mysql.jdbc.Driver");
koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_
motor",
"root", "");
stm = koneksi.createStatement();
String SQL="Delete From pelanggan Where
Kode_Cust='"+txtKode_Customer.getText().toString()+"'";
stm.executeUpdate(SQL);
String a=txtKode_Customer.getText();
String b=txtNama.getText();
String c=txt_Alamat.getText();
String d=txt_Telepon.getText();
String e=txt_Nohp.getText();
String f=txt_NoKTP.getText();
String g=txt_KK.getText();
String h=txt_SlipGaji.getText();
String i=txt_Keterangan.getText();
tampildata();
stm.close();
koneksi.close();
BersihData();
SAVE.setEnabled(false);
SetEditOff();
Page 100
2013
buka_db();
}catch (Exception e){
System.out.println(e.getMessage());
}
}
}
12. Buatlah kode program Close
action -> ActionPerformed.
13. Untuk menonaktifkan button saat program dijalankan buatlah kode program dengan
cara klik kanan pada windows form ->events -> Window -> WindowOpened.
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
this.setTitle(".::. Pencatatan Data Pelanggan .::.");
SetInAktif();
SetEditOff();
}
14. Buatlah kode program untuk menampilkan data pada tabel dengan cara klik kanan
tabel pelanggan ->events -> Mouse -> MouseClicked.
Page 101
2013
15. Jalankan Program kemudian klik FrmPelanggan maka akan tampil seperti berikut:
Page 102
2013
Page 103
2013
Pada jendela New JFrame Form, isikan About pada kotak isian Class Name,
dan Package pilih anggoro (nama package sesuai yang anda inginkan, apabila
ingin memakai package baru bias langsung di ketikan di bagian kotak isian
package) lalu tekan tombol Finish untuk mengakhiri.
Page 104
2013
Desainlah form About ini sesuai dengan keinginan anda contohnya sebagai
berikut :
2. Buatlah kode program Close dengan mengklik kanan button Close ->events ->
action -> ActionPerformed.
private void closeActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null, "Aplikasi ini akan di tutup \n
Klik OK untuk keluar",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
Page 105
2013
this.dispose();
}
3. Jalankan Program kemudian klik FrmAbout maka akan tampil seperti berikut:
Page 106
2013
BAB 5
MEMBUAT FORM TRANSAKSI
5.1
Page 107
2013
Page 108
2013
Keterangan :
Daftar Propertis yang digunakan
Pallete
Label1
Label2
Label3
Label4
Label5
Label6
Label7
Text Field1
Text Field2
ComboBox1
ComboBox2
Text Field3
Text Field4
Text Field5
Button1
Button2
Button3
Button4
Button5
Button6
Button7
Button8
Table
Syntax Program
Edit Text
Kode Cash
Tanggal
Kode Pelanggan
Kode Motor
Bayar
Sisa
Keterangan
Hitung
New
Save
Cancel
Edit
View Report
Delete
Close
Propertiis
Change Variable Name
jLabel1
jLabel2
jLabel3
jLabel4
jLabel5
jLabel6
jLabel7
txt_KodeCash
txt_Tanggal
cbo_KodePelanggan
cbo_KodeMotor
txt_Bayar
txt_Sisa
txt_Keterangan
Hitung
NEW
SAVE
CANCEL
EDIT
PRINT
DELETE
EXIT
tblBeliCash
1. Pada bagian import tambahkan dibawah baris package ulpah seperti kode berikut:
Page 109
2013
package ulpah;
import java.awt.Cursor;
import javax.swing.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.swing.table.*;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
2. Pada bagian public class FrmPembelianCash extends javax.swing.JFrame
tambahkan kode berikut :
public class FrmPembelianCash extends javax.swing.JFrame {
Connection koneksi;
ResultSet RsBrg;
Statement stm;
Boolean ada = false;
Boolean edit = false;
public void buka_db(){
try{
Class.forName("com.mysql.jdbc.Driver");
koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_
motor", "root", "");
}catch(ClassNotFoundException e){
System.out.println("Error #1 : "+ e.getMessage());
System.exit(0);
}catch(SQLException e){
System.out.println("Error #2 : "+ e.getMessage());
System.exit(0);
}
}
/** Creates new form FrmPembelianCash */
Page 110
2013
public FrmPembelianCash() {
initComponents();
this.setLocationRelativeTo(getRootPane());
buka_db();
tampildata();
}
3. Buatlah kode program untuk menampilkan nomor secara otomatis letakkan
disembarang tempat yang memiliki space kosong seperti berikut ini:
public void buatnomor(){
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor", "root",
"");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_
UPDATABLE);
String sql = "Select Kode_Cash as no from belicash ORDER by Kode_Cash desc";
ResultSet res=stt.executeQuery(sql);
if (res.next())
{
String Str = "0000";
String nomer = res.getString("no");
int no_t = Integer.parseInt(nomer) + 1;
String str_no = Integer.toString(no_t);
txt_KodeCash.setText(Str.substring(0,4 - str_no.length()) +
Integer.toString(no_t));
}
else{
int no_t = 1;
txt_KodeCash.setText("000" + Integer.toString(no_t));
}
res.close();
}catch (Exception e){
}
}
4. Buatlah kode program untuk menampilkan data dari tabel ke database disembarang
tempat yang memiliki space kosong seperti berikut ini:
public void tampildata(){
Page 111
2013
2013
2013
cbo_KodePelanggan.setSelectedItem("");
txt_Nama.setText("");
txt_Alamat.setText("");
txt_NoKTP.setText("");
cbo_KodeMotor.setSelectedItem("");
txt_Merk.setText("");
txt_Warna.setText("");
txt_Harga.setText("");
txt_Bayar.setText("");
txt_Sisa.setText("");
txt_Keterangan.setText("");
}
public void SetEditOff(){
txt_KodeCash.setEnabled(false);
txt_Tanggal.setEnabled(false);
cbo_KodePelanggan.setEnabled(false);
txt_Nama.setEnabled(false);
txt_Alamat.setEnabled(false);
txt_NoKTP.setEnabled(false);
cbo_KodeMotor.setEnabled(false);
txt_Merk.setEnabled(false);
txt_Warna.setEnabled(false);
txt_Harga.setEnabled(false);
txt_Bayar.setEnabled(false);
txt_Sisa.setEnabled(false);
txt_Keterangan.setEnabled(false);
}
public void SetEditOn(){
txt_KodeCash.setEnabled(true);
txt_Tanggal.setEnabled(true);
cbo_KodePelanggan.setEnabled(true);
txt_Nama.setEnabled(true);
txt_Alamat.setEnabled(true);
txt_NoKTP.setEnabled(true);
cbo_KodeMotor.setEnabled(true);
txt_Merk.setEnabled(true);
txt_Warna.setEnabled(true);
txt_Harga.setEnabled(true);
txt_Bayar.setEnabled(true);
txt_Sisa.setEnabled(true);
Page 114
2013
txt_Keterangan.setEnabled(true);
}
public void SetAktif(){
NEW.setEnabled(false);
SAVE.setEnabled(true);
CANCEL.setEnabled(true);
DELETE.setEnabled(false);
UPDATE.setEnabled(true);
EXIT.setEnabled(false);
}
public void SetInAktif(){
NEW.setEnabled(true);
SAVE.setEnabled(false);
CANCEL.setEnabled(false);
DELETE.setEnabled(true);
UPDATE.setEnabled(false);
EXIT.setEnabled(true);
}
9. Buatlah kode program New dengan mengklik kanan button New ->events ->
action -> ActionPerformed.
2013
try{
stm = koneksi.createStatement();
String kdcsh=txt_KodeCash.getText();
String tgl=txt_Tanggal.getText();
String kodeplg=cbo_KodePelanggan.getSelectedItem().toString();
String nama=txt_Nama.getText();
String alamat=txt_Alamat.getText();
String noktp=txt_NoKTP.getText();
String kdmtr=cbo_KodeMotor.getSelectedItem().toString();
String merk=txt_Merk.getText();
String warna=txt_Warna.getText();
String harga=txt_Harga.getText();
String bayar=txt_Bayar.getText();
String sisa=txt_Sisa.getText();
String keterangan=txt_Keterangan.getText();
if (edit==true){
stm.executeUpdate("update belicash set "
+ "Tanggal_Beli='"+tgl+"',"
+ "Kode_Pelanggan='"+kodeplg+"',"
+ "Kode_Motor='"+kdmtr+"' "
+ "Bayar='"+bayar+"',"
+ "Sisa='"+sisa+"', "
+ "Keterangan='"+keterangan+"' "
+ " where Kode_Cash='" + kdcsh + "'");
}else{
stm.executeUpdate("insert into belicash values('"+kdcsh+"',"
+ "'"+tgl+"','"+kodeplg+"',
'"+kdmtr+"','"+bayar+"','"+sisa+"','"+keterangan+"')");
}
}catch(SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
tampildata();
BersihData();
SetInAktif();
SetEditOff();
}
11. Buatlah kode program Cancel dengan mengklik kanan button CANCEL ->events > action -> ActionPerformed.
Page 116
2013
2013
14. Buatlah kode program Delete dengan mengklik kanan button DELETE ->events ->
action -> ActionPerformed.
private void DELETEActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
String kdcsh=txt_KodeCash.getText();
String tgl=txt_Tanggal.getText();
String kodeplg=cbo_KodePelanggan.getSelectedItem().toString();
String kdmtr=cbo_KodeMotor.getSelectedItem().toString();
String bayar=txt_Bayar.getText();
String sisa=txt_Sisa.getText();
String keterangan=txt_Keterangan.getText();
if((kdcsh.isEmpty())|(tgl.isEmpty())|(kodeplg.isEmpty())|(kdmtr.isEmpty())|(baya
r.isEmpty())|(sisa.isEmpty())|(keterangan.isEmpty())){
JOptionPane.showMessageDialog(null,"data tidak boleh kosong silahkan
lengkapi");
txt_KodeCash.requestFocus();
}else{
try{
Page 118
2013
Class.forName("com.mysql.jdbc.Driver");
koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_
motor","root", "");
stm = koneksi.createStatement();
String SQL="Delete From belicash Where
Kode_Cash='"+txt_KodeCash.getText().toString()+"'";
stm.executeUpdate(SQL);
String a=txt_KodeCash.getText();
String b=txt_Tanggal.getText();
String c=cbo_KodePelanggan.getSelectedItem().toString();
String d=cbo_KodeMotor.getSelectedItem().toString();
String e=txt_Bayar.getText();
String f=txt_Sisa.getText();
String g=txt_Keterangan.getText();
tampildata();
stm.close();
koneksi.close();
BersihData();
SAVE.setEnabled(false);
SetEditOff();
buka_db();
}catch (Exception e){
System.out.println(e.getMessage());
}
}
}
15. Buatlah kode program Close dengan mengklik kanan button EXIT ->events ->
action -> ActionPerformed.
private void EXITActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null, "Aplikasi ini akan di tutup \n jika anda
menekan tombol OK",
Page 119
2013
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
16. Untuk menonaktifkan button saat program dijalankan buatlah kode program dengan
cara klik kanan pada windows form ->events -> Window -> WindowOpened.
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
this.setTitle(".::. Pencatatan Pembelian Cash .::.");
Tanggal();
Tampil();
Tampil1();
SetInAktif();
SetEditOff();
}
17. Buatlah kode program untuk menampilkan data pada tabel dengan cara klik kanan
tabel belicash ->events -> Mouse -> MouseClicked.
private void tblBeliCashMouseClicked(java.awt.event.MouseEvent evt)
{
// TODO add your handling code here:
int table = tblBeliCash.getSelectedRow();
String a = tblBeliCash.getValueAt(table, 0).toString();
String b = tblBeliCash.getValueAt(table, 1).toString();
String c = tblBeliCash.getValueAt(table, 2).toString();
String d = tblBeliCash.getValueAt(table, 3).toString();
String e = tblBeliCash.getValueAt(table, 4).toString();
String f = tblBeliCash.getValueAt(table, 5).toString();
String g = tblBeliCash.getValueAt(table, 6).toString();
txt_KodeCash.setText(a);
txt_Tanggal.setText(b);
cbo_KodePelanggan.setSelectedItem(c);
cbo_KodeMotor.setSelectedItem(d);
txt_Bayar.setText(e);
txt_Sisa.setText(f);
txt_Keterangan.setText(g);
Page 120
2013
txt_KodeCash.setEnabled(false);
UPDATE.requestFocus();
}
18. Buatlah perintah untuk menampilkan data pada ComboBox Kode Motor dengan
mengklik kanan ComboBox Kode Motor -> events -> item ->
itemStateChange.
private void
cbo_KodeMotorItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CON
CUR_UPDATABLE);
String SQL="SELECT*FROM motor where
Kode_Motor='"+cbo_KodeMotor.getSelectedItem().toString()+"'";
ResultSet res=stt.executeQuery(SQL);
res.absolute(1);
txt_Harga.setText(res.getString("Harga"));
txt_Merk.setText(res.getString("Merk"));
txt_Warna.setText(res.getString("Warna"));
}catch(SQLException ex){
}
}
19. Buatlah perintah untuk menampilkan data pada ComboBox Kode Pelanggan dengan
mengklik kanan ComboBox Kode Pelanggan -> events -> item ->
itemStateChange.
private void
cbo_KodePelangganItemStateChanged(java.awt.event.ItemEvent
evt) {
// TODO add your handling code here:
try{
Page 121
2013
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor
", "root", "");
Statement stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQL="SELECT*FROM pelanggan where
Kode_Cust='"+cbo_KodePelanggan.getSelectedItem().toString()+"'";
ResultSet res=stt.executeQuery(SQL);
res.absolute(1);
txt_Nama.setText(res.getString("Nama"));
txt_Alamat.setText(res.getString("Alamat"));
txt_NoKTP.setText(res.getString("No_KTP"));
}catch(SQLException ex){
}
}
20. Buatlah kode program untuk menampilkan perhitungan sisa dengan mengkilik button
hitung -> events -> action -> ActionPerformed.
private void HitungActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
int a;
int b;
double c;
a = Integer.parseInt(txt_Harga.getText());
b = Integer.parseInt(txt_Bayar.getText());
c=a-b;
txt_Sisa.setText(String.valueOf(c));
}
21. Jalankan Program kemudian klik FrmPembelianCash maka akan tampil seperti
berikut:
Page 122
2013
2013
apabila ingin memakai package baru bisa langsung di ketikan di bagian kotak
isian package) lalu tekan tombol Finish untuk mengakhiri.
Page 124
2013
Desainlah form yang baru anda ciptakan seperti gambar dibawah ini atau sesuai
dengan keinginan anda:
Edit Text
Kode Kredit
Tanggal
Kode Customer
Kode Motor
Uang Muka
Bunga
Lama Cicilan
Angsuran Ke
Keterangan
Properties
Change Variable Name
jLabel1
jLabel2
jComboBox1
jComboBox2
jLabel3
jLabel4
jLabel5
jLabel6
jLabel7
txt_KodeKredit
txt_Tanggal
cbo_KodeCust
cbo_KodeMotor
txt_UangMuka
txt_Bunga
cbo_LamaCicilan
cbo_Angsuran
Page 125
Text Field5
Button2
Button3
Button4
Button5
Button6
Button7
Button8
Table
New
Save
Cancel
Edit
View Report
Delete
Close
2013
txt_Keterangan
NEW
SAVE
CANCEL
EDIT
PRINT
DELETE
EXIT
tbl_Kredit
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah seperti kode berikut:
package ulpah;
import java.awt.Cursor;
import javax.swing.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.swing.table.*;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
2. Pada bagian public class FrmBeliKredit extends javax.swing.JFrame tambahkan
kode berikut :
2013
2013
2013
rs.getString(8),
rs.getString(9),
});
}
tbl_Kredit.setModel(tabelnyo);
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Ada Kesalahan");
}
}
5. Butlah kode program tambahan untuk menampilkan data pada ComboBox Kode
Motor dengan membuat private baru seperti berikut.
public void Tampil(){
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONC
UR_UPDATABLE);
String SQL="SELECT*FROM motor";
ResultSet res=stt.executeQuery(SQL);
while(res.next()){
cbo_KodeMotor.addItem(res.getString("Kode_Motor"));
}
}catch(SQLException ex){
}
}
6. Butlah kode program tambahan untuk menampilkan data pada ComboBox Kode Cash
dengan membuat private baru seperti berikut.
public void TampilKodeCustomer(){
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
Statement stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQL="SELECT*FROM belicash";
ResultSet res=stt.executeQuery(SQL);
Page 129
2013
while(res.next()){
cbo_KodeCust.addItem(res.getString("Kode_Cash"));
}
}catch(SQLException ex){
}
}
7. Buatlah kode program untuk menampilkan tanggal secara otomatis saat program
dijalankan ketikan disembarang tempat yang memiliki space kosong seperti berikut ini:
public void Tanggal(){
Date tanggal=new Date();
txt_Tanggal.setText(""+(String.format("%1$tY/%1$tm/%1$td",tanggal)));
}
8. Buatlah perintah BersihData,SetEditOff, SetEditON , SetAktif , dan SetInAktif
disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){
txt_KodeKredit.setText("");
txt_Tanggal.setText("");
cbo_KodeCust.setSelectedItem("");
cbo_KodeMotor.setSelectedItem("");
txt_Harga.setText("");
txt_UangMuka.setText("");
txt_Bunga.setText("");
cbo_LamaCicilan.setSelectedItem("");
cbo_Angsuran.setSelectedItem("");
txt_TelahBayar.setText("");
txt_Sisa.setText("");
txt_Keterangan.setText("");
}
public void SetEditOff(){
txt_KodeKredit.setEnabled(false);
txt_Tanggal.setEnabled(false);
cbo_KodeCust.setEnabled(false);
cbo_KodeMotor.setEnabled(false);
txt_Harga.setEnabled(false);
txt_UangMuka.setEnabled(false);
Page 130
2013
txt_Bunga.setEnabled(false);
cbo_LamaCicilan.setEnabled(false);
cbo_Angsuran.setEnabled(false);
txt_TelahBayar.setEnabled(false);
txt_Sisa.setEnabled(false);
txt_Keterangan.setEnabled(false);
}
public void SetEditOn(){
txt_KodeKredit.setEnabled(true);
txt_Tanggal.setEnabled(true);
cbo_KodeCust.setEnabled(true);
cbo_KodeMotor.setEnabled(true);
txt_Harga.setEnabled(true);
txt_UangMuka.setEnabled(true);
txt_Bunga.setEnabled(true);
cbo_LamaCicilan.setEnabled(true);
cbo_Angsuran.setEnabled(true);
txt_TelahBayar.setEnabled(true);
txt_Sisa.setEnabled(true);
txt_Keterangan.setEnabled(true);
}
public void SetAktif(){
NEW.setEnabled(false);
SAVE.setEnabled(true);
CANCEL.setEnabled(true);
DELETE.setEnabled(false);
UPDATE.setEnabled(true);
EXIT.setEnabled(false);
}
public void SetInAktif(){
NEW.setEnabled(true);
SAVE.setEnabled(false);
CANCEL.setEnabled(false);
DELETE.setEnabled(true);
UPDATE.setEnabled(false);
EXIT.setEnabled(true);
}
Page 131
2013
9. Buatlah kode program New dengan mengklik kanan button New ->events -> action
-> ActionPerformed.
private void NEWActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
buatnomor();
BersihData();
Tanggal();
buatnomor();
txt_KodeKredit.requestFocus();
SetAktif();
SetEditOn();
}
10. Buatlah kode program Save dengan mengklik kanan button SAVE ->events -> action
-> ActionPerformed.
private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
stm = koneksi.createStatement();
String kodekrdt=txt_KodeKredit.getText();
String tglkrdt=txt_Tanggal.getText();
String kdcst=cbo_KodeCust.getSelectedItem().toString();
String kdmtr=cbo_KodeMotor.getSelectedItem().toString();
String uangmuka=txt_UangMuka.getText();
String bunga=txt_Bunga.getText();
String lamacicilan=cbo_LamaCicilan.getSelectedItem().toString();
String angsuran=cbo_Angsuran.getSelectedItem().toString();
String keterangan=txt_Keterangan.getText();
if (edit==true){
stm.executeUpdate("update beli_kredit set "
+ "Tanggal_Kredit='"+tglkrdt+"',"
+ "Kode_Cust='"+kdcst+"',"
+ "Kode_Motor='"+kdmtr+"' "
+ "Uang_Muka='"+uangmuka+"',"
+ "Bunga='"+bunga+"' "
+ "Lama_Cicilan='"+lamacicilan+"',"
+ "Angsuran_Ke='"+angsuran+"',"
+ "Keterangan='"+keterangan+"' "
+ " where Kode_Kredit='" + kodekrdt + "'");
Page 132
2013
}else{
stm.executeUpdate("insert into beli_kredit values('"+kodekrdt+"',"
+
"'"+tglkrdt+"','"+kdcst+"','"+kdmtr+"','"+uangmuka+"','"+bunga+"','"+lamacicil
an+"','"+angsuran+"','"+keterangan+"')");
}
}catch(SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
tampildata();
BersihData();
SetInAktif();
SetEditOff();
}
11. Buatlah kode program Cancel dengan mengklik kanan button CANCEL ->events ->
action -> ActionPerformed.
private void CANCELActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
BersihData();
SetInAktif();
SetEditOff();
}
12. Buatlah kode program Update dengan mengklik kanan button UPDATE ->events ->
action -> ActionPerformed.
private void UPDATEActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
txtTanggal.requestFocus();
SetAktif();
SetEditOn();
edit=true;
txtKodeKredit.setEnabled(false);
}
13. Buatlah kode program View Report dengan mengklik kanan button PRINT ->events
-> action -> ActionPerformed.
Page 133
2013
14. Buatlah kode program Delete dengan mengklik kanan button DELETE ->evens ->
action -> ActionPerformed.
Page 134
2013
2013
stm.close();
koneksi.close();
BersihData();
SAVE.setEnabled(false);
SetEditOff();
buka_db();
}catch (Exception e){
System.out.println(e.getMessage());
}
}
}
15. Buatlah kode program Close
action -> ActionPerformed.
16. Untuk menonaktifkan button saat program dijalankan buatlah kode program dengan
cara klik kanan pada windows form ->events -> Window -> WindowOpened.
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
this.setTitle(".::. Pencatatan Pembelian Kredit .::.");
Tanggal();
int a=1;
while (a<=100){
cbo_LamaCicilan.addItem(a);
Page 136
2013
a++;
}
TampilKodeCustomer();
Tampil();
SetInAktif();
SetEditOff();
}
17. Buatlah kode program untuk menampilkan data pada tabel dengan cara klik kanan
tabel belikredit ->events -> Mouse -> MouseClicked.
private void tbl_KreditMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int table = tbl_Kredit.getSelectedRow();
String a = tbl_Kredit.getValueAt(table, 0).toString();
String b = tbl_Kredit.getValueAt(table, 1).toString();
String c = tbl_Kredit.getValueAt(table, 2).toString();
String d = tbl_Kredit.getValueAt(table, 3).toString();
String e = tbl_Kredit.getValueAt(table, 4).toString();
String f = tbl_Kredit.getValueAt(table, 5).toString();
String g = tbl_Kredit.getValueAt(table, 6).toString();
String h = tbl_Kredit.getValueAt(table, 7).toString();
String i = tbl_Kredit.getValueAt(table, 8).toString();
txt_KodeKredit.setText(a);
txt_Tanggal.setText(b);
cbo_KodeCust.setSelectedItem(c);
cbo_KodeMotor.setSelectedItem(d);
txt_UangMuka.setText(e);
txt_Bunga.setText(f);
cbo_LamaCicilan.setSelectedItem(g);
cbo_Angsuran.setSelectedItem(h);
txt_Keterangan.setText(i);
txt_KodeKredit.setEnabled(false);
UPDATE.requestFocus();
}
Page 137
2013
18. Buatlah perintah untuk menampilkan data pada ComboBox Kode Motor dengan mengklik
kanan ComboBox Kode Motor -> events -> item -> itemStateChange.
private void
cbo_KodeMotorItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONC
UR_UPDATABLE);
String SQL="SELECT*FROM motor where
Kode_Motor='"+cbo_KodeMotor.getSelectedItem().toString()+"'";
ResultSet res=stt.executeQuery(SQL);
res.absolute(1);
txt_Harga.setText(res.getString("Harga"));
}catch(SQLException ex){
}
}
19. Buatlah perintah untuk menampilkan data pada ComboBox Kode Customer dengan
mengklik kanan ComboBox Kode Customer -> events -> item ->
itemStateChange.
private void
cbo_KodeCustItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CON
CUR_UPDATABLE);
String SQL="SELECT*FROM belicash where
Kode_Cash='"+cbo_KodeCust.getSelectedItem().toString()+"'";
ResultSet res=stt.executeQuery(SQL);
res.absolute(1);
Page 138
2013
txt_TelahBayar.setText(res.getString("Bayar"));
txt_Sisa.setText(res.getString("Sisa"));
}catch(SQLException ex){
}
}
20. Jalankan Program kemudian klik FrmBeliKredit maka akan tampil seperti berikut:
Page 139
2013
Page 140
2013
1. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini atau sesuai
dengan keinginan anda:
Pallete
Label1
Label2
ComboBox1
Label3
Label4
Text Field1
Text Field2
ComboBox1
Text Field5
Text Field6
Button2
Button3
Button4
Button5
Button6
Button7
Button8
Table
Edit Text
No Bayar
Tanggal
Kode Kredit
Jumlah
Keterangan
New
Save
Cancel
Edit
View Report
Delete
Close
2013
Properties
Change Variable Name
jLabel1
jLabel2
jComboBox1
jLabel3
jLabel4
txt_NoBayar
txt_Tanggal
cbo_KodeKredit
txt_Jumlah
txt_Keterangan
NEW
SAVE
CANCEL
EDIT
PRINT
DELETE
EXIT
tblBayarCicilan
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import java.awt.Cursor;
import javax.swing.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.swing.table.*;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
Page 142
2013
2013
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_
UPDATABLE);
String sql = "Select Kode_Kredit as no from beli_kredit ORDER by Kode_Kredit
desc";
ResultSet res=stt.executeQuery(sql);
if (res.next())
{
String Str = "0000";
String nomer = res.getString("no");
int no_t = Integer.parseInt(nomer) + 1;
String str_no = Integer.toString(no_t);
txtKode_Kredit.setText(Str.substring(0,4 - str_no.length()) +
Integer.toString(no_t));
}
else{
int no_t = 1;
txtKode_Kredit.setText("000" + Integer.toString(no_t));
}
res.close();
}catch (Exception e){
}
}
4. Buatlah kode program untuk menampilkan data dari tabel ke database disembarang
tempat yang memiliki space kosong seperti berikut ini:
public void tampildata(){
DefaultTableModel tabelnyo = new DefaultTableModel();
tabelnyo.addColumn("No_Bayar");
tabelnyo.addColumn("Tanggal_Bayar ");
tabelnyo.addColumn("Kode_Kredit");
tabelnyo.addColumn("Jumlah");
tabelnyo.addColumn("Keterangan");
try{
stm = koneksi.createStatement();
String sql = "Select * from bayar_cicilan order by No_Bayar asc";
ResultSet rs = stm.executeQuery(sql);
while (rs.next())
{
tabelnyo.addRow(new Object[]{
rs.getString(1),
Page 144
2013
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
});
}
tblBayarCicilan.setModel(tabelnyo);
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Ada Kesalahan");
}
buka_db();
}
5. Butlah kode program tambahan untuk menampilkan data pada ComboBox Kode
Kredit dengan membuat private baru seperti berikut.
public void Tampil(){
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONC
UR_UPDATABLE);
String SQL="SELECT*FROM beli_kredit";
ResultSet res=stt.executeQuery(SQL);
while(res.next()){
cbo_KodeKredit.addItem(res.getString("Kode_Kredit"));
}
}catch(SQLException ex){
}
}
6. Buatlah kode program untuk menampilkan tanggal secara otomatis saat program
dijalankan ketikan disembarang tempat yang memiliki space kosong seperti berikut ini:
public void Tanggal(){
Date tanggal=new Date();
txt_Tanggal.setText(""+(String.format("%1$tY/%1$tm/%1$td",tanggal)));
Page 145
2013
}
7. Buatlah perintah BersihData,SetEditOff, SetEditON , SetAktif , dan SetInAktif
disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){
txt_NoBayar.setText("");
txt_Tanggal.setText("");
cbo_KodeKredit.setSelectedItem("");
txt_Jumlah.setText("");
txt_Sisa.setText("");
txt_Cicilan.setText("");
txt_Keterangan.setText("");
}
public void SetEditOff(){
txt_NoBayar.setEnabled(false);
txt_Tanggal.setEnabled(false);
cbo_KodeKredit.setEnabled(false);
txt_Jumlah.setEnabled(false);
txt_Sisa.setEnabled(false);
txt_Cicilan.setEnabled(false);
txt_Keterangan.setEnabled(false);
}
public void SetEditOn(){
txt_NoBayar.setEnabled(true);
txt_Tanggal.setEnabled(true);
cbo_KodeKredit.setEnabled(true);
txt_Jumlah.setEnabled(true);
txt_Sisa.setEnabled(true);
txt_Cicilan.setEnabled(true);
txt_Keterangan.setEnabled(true);
}
public void SetAktif(){
NEW.setEnabled(false);
SAVE.setEnabled(true);
CANCEL.setEnabled(true);
DELETE.setEnabled(false);
UPDATE.setEnabled(true);
EXIT.setEnabled(false);
}
public void SetInAktif(){
NEW.setEnabled(true);
Page 146
2013
SAVE.setEnabled(false);
CANCEL.setEnabled(false);
DELETE.setEnabled(true);
UPDATE.setEnabled(false);
EXIT.setEnabled(true);
}
8. Buatlah kode program New dengan mengklik kanan button New ->events -> action
-> ActionPerformed.
private void NEWActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
BersihData();
Tanggal();
buatnomor();
txt_NoBayar.requestFocus();
SetAktif();
SetEditOn();
}
9. Buatlah kode program Save dengan mengklik kanan button SAVE ->events -> action
-> ActionPerformed.
private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
stm = koneksi.createStatement();
String nobayar=txt_NoBayar.getText();
String tgglbayar=txt_Tanggal.getText();
String kodekrdt=cbo_KodeKredit.getSelectedItem().toString();
String jumlah=txt_Jumlah.getText();
String keterangan=txt_Keterangan.getText();
if (edit==true){
stm.executeUpdate("update bayar_cicilan set "
+ "Tanggal_Bayar='"+tgglbayar+"',"
+ "Kode_Kredit='"+kodekrdt+"',"
+ "Jumlah='"+jumlah+"', "
+ "Keterangan='"+keterangan+"' ,"
+ "where No_Bayar='" + nobayar + "'");
}else{
Page 147
2013
2013
2013
}else{
try{
Class.forName("com.mysql.jdbc.Driver");
koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_
motor", "root", "");
stm = koneksi.createStatement();
String SQL="Delete From bayar_cicilan Where
No_Bayar='"+txt_NoBayar.getText().toString()+"'";
stm.executeUpdate(SQL);
String a=txt_NoBayar.getText();
String b=txt_Tanggal.getText();
String c=cbo_KodeKredit.getSelectedItem().toString();
String d=txt_Jumlah.getText();
String e=txt_Keterangan.getText();
tampildata();
stm.close();
koneksi.close();
BersihData();
SAVE.setEnabled(false);
SetEditOff();
buka_db();
}catch (Exception e){
System.out.println(e.getMessage());
}
}
}
14. Buatlah kode program Close
action -> ActionPerformed.
2013
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
15. Untuk menonaktifkan button saat program dijalankan buatlah kode program dengan
cara klik kanan pada windows form ->events -> Window -> WindowOpened.
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
this.setTitle(".::. Pencatatan Pembayaran Cicilan .::.");
Tampil();
SetInAktif();
SetEditOff();
}
16. Buatlah kode program untuk menampilkan data pada tabel dengan cara klik kanan
tabel bayarcicilan ->events -> Mouse -> MouseClicked.
private void tblBayarCicilanMouseClicked(java.awt.event.MouseEvent
evt) {
// TODO add your handling code here:
int table = tblBayarCicilan.getSelectedRow();
String a = tblBayarCicilan.getValueAt(table, 0).toString();
String b = tblBayarCicilan.getValueAt(table, 1).toString();
String c = tblBayarCicilan.getValueAt(table, 2).toString();
String d = tblBayarCicilan.getValueAt(table, 3).toString();
String e = tblBayarCicilan.getValueAt(table, 4).toString();
txt_NoBayar.setText(a);
txt_Tanggal.setText(b);
cbo_KodeKredit.setSelectedItem(c);
txt_Jumlah.setText(d);
txt_Keterangan.setText(e);
txt_NoBayar.setEnabled(false);
txt_Tanggal.requestFocus();
SAVE.setEnabled(true);
}
17. Buatlah perintah untuk menampilkan data pada ComboBox Kode Kredit dengan
mengklik kanan ComboBox Kode Kredit -> events -> item -> itemStateChange.
private void
Page 151
2013
cbo_KodeKreditItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
try{
Connection kon=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
Statement
stt=kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONC
UR_UPDATABLE);
String SQL="SELECT*FROM beli_kredit where
Kode_Kredit='"+cbo_KodeKredit.getSelectedItem().toString()+"'";
ResultSet res=stt.executeQuery(SQL);
res.absolute(1);
txt_Sisa.setText(res.getString("Sisa"));
txt_Cicilan.setText(res.getString("Lama_Cicilan"));
}catch(SQLException ex){
}
}
18. Jalankan Program kemudian klik FrmBayarCicilan maka akan tampil seperti berikut:
2013
BAB 6
MEMBUAT FORM DAFTAR LAPORAN
6.1
Page 153
2013
Page 154
2013
Page 155
2013
2013
Edit Text
Print
Close
Propertis
Change Variable Name
jDateChooser1
jDateChooser2
print
close
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah seperti kode berikut:
package ulpah;
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
//import javax.swing.table.*;
import java.text.SimpleDateFormat;
//import java.util.Calendar;
//import java.util.Date;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.engine.*;
Page 157
2013
2. Pada
bagian
public
class
FrmLaporanBeliCashperTanggal
javax.swing.JFrame { tambahkan kode berikut :
extends
2013
JasperViewer.setDefaultLookAndFeelDecorated(true);
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Laporan Tidak Dapat di Cetak" +
e.getMessage(),"Catak Laporan",JOptionPane.ERROR_MESSAGE);
}
}
4. Buatlah kode program Close dengan mengklik kanan button Close ->events ->
action -> ActionPerformed.
private void closeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null, "Aplikasi ini akan di tutup \n Klik OK
untuk keluar",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
5. Jalankan Program kemudian klik FrmLaporanBeliCashperTanggal maka akan tampil
seperti berikut:
Page 159
6.2.
2013
Page 160
2013
Edit Text
Propertis
Change Variable Name
jDateChooser1
Page 161
2013
jDateChooser2
Button1
Button2
Print
Close
jDateChooser2
print
close
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.text.SimpleDateFormat;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.engine.*;
2. Pada bagian public class LaporanPembelianKredit extends javax.swing.JFrame
{ tambahkan kode berikut :
public class LaporanPembelianKredit extends javax.swing.JFrame {
/** Creates new form LaporanPembelianKredit */
public LaporanPembelianKredit() {
initComponents();
this.setLocationRelativeTo(null);
this.setTitle(".::. Laporan Beli Kredit per Periode .::.");
}
private SimpleDateFormat frmttgl = new SimpleDateFormat("yyyy-MM-dd");
3. Buatlah kode program Cetak laporan dengan mengklik kanan button Print ->events
-> action -> ActionPerformed.
private void cmdcetakActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Connection koneksi;
try {
String nmFile = "src/Lapkredit.jasper";
Page 162
2013
Page 163
2013
Page 164
2013
Page 165
2013
Edit Text
Print
Close
Propertis
Change Variable Name
jDateChooser1
jDateChooser2
print
close
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
//import javax.swing.table.*;
import java.text.SimpleDateFormat;
//import java.util.Calendar;
//import java.util.Date;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.engine.*;
Page 166
2013
2. Pada
bagian
public
class
LaporanPembayaranCicilan
javax.swing.JFrame { tambahkan kode berikut :
extends
Page 167
2013
JasperViewer.setDefaultLookAndFeelDecorated(true);
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Laporan Tidak Dapat di Cetak" +
e.getMessage(),"Catak Laporan",JOptionPane.ERROR_MESSAGE);
}
}
4. Buatlah kode program Close dengan mengklik kanan button Close ->events ->
action -> ActionPerformed.
private void closeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null, "Aplikasi ini akan di tutup \n Klik OK
untuk keluar",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
5. Jalankan Program kemudian klik FrmLaporanBayarCicilanTanggal maka akan tampil
seperti berikut:
Page 168
6.4.
2013
Page 169
2013
Properties
Edit Text
Change Variable Name
Cetak Laporan Pembelian Cash
belicash
Page 170
2013
Button2
Button3
Button4
belikredit
bayarcicilan
close
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import javax.swing.JOptionPane;
2. Pada
bagian
public
class
FrmDaftarReportperTanggal
javax.swing.JFrame { tambahkan kode berikut :
extends
2013
->events ->
private void
EXITActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null, "Aplikasi ini akan di tutup
\n jika anda menekan tombol OK",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
7. Jalankan Program kemudian klik FrmDaftarLaporanperTanggal maka akan tampil
seperti berikut:
Page 172
2013
2013
Page 174
2013
Keterangan :
Daftar Propertis yang digunakan
Pallete
Button1
Button2
Button3
Button4
Button5
Button6
Propertis
Edit Text
Change Variable Name
Cetak Laporan Data Motor
motor
Cetak Laporan Data Pelanggan
pelanggan
Cetak Laporan Pembelian Cash
belicash
Cetak Laporan Pembelian Kredit
belikredit
Cetak Laporan Pembayaran
Cicilan
bayarcicilan
Close
close
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import java.awt.Cursor;
import javax.swing.*;
import java.sql.*;
import java.sql.Connection;
Page 175
import
import
import
import
import
import
import
import
import
import
import
2013
java.sql.DriverManager;
java.sql.ResultSet;
javax.swing.table.*;
java.sql.SQLException;
java.util.HashMap;
java.util.Map;
net.sf.jasperreports.engine.JasperCompileManager;
net.sf.jasperreports.engine.JasperFillManager;
net.sf.jasperreports.engine.JasperPrint;
net.sf.jasperreports.engine.JasperReport;
net.sf.jasperreports.view.JasperViewer;
2. Pada
bagian
public
class
FrmDaftarReportKeseluruhan
javax.swing.JFrame { tambahkan kode berikut :
extends
2013
3. Buatlah kode program Cetak Laporan Data Motor dengan mengklik kanan button
Cetak Laporan Data Motor ->events -> action -> ActionPerformed.
private void motorActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
{motor.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Connection con = koneksi;
try {
Connection koneksi=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
stm = koneksi.createStatement();
try {
Map<String, Object> prs = new HashMap<String, Object>();
JasperReport JRpt =
JasperCompileManager.compileReport("F:/ulpahh/Splash/src/LaporanMotor.jrx
ml");
JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con);
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
System.out.println("Report Can't view because : " + rptexcpt);
}
} catch (Exception e) {
System.out.println(e);
}
motor.setCursor(Cursor.getDefaultCursor());
}
}
4. Buatlah kode program Cetak Laporan Data Pelanggan dengan mengklik kanan
button Cetak Laporan Data Pelanggan ->events -> action ->
ActionPerformed.
private void pelangganActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
{pelanggan.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Connection con = koneksi;
try {
Connection koneksi=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
Page 177
2013
"root", "");
stm = koneksi.createStatement();
try {
Map<String, Object> prs = new HashMap<String, Object>();
JasperReport JRpt =
JasperCompileManager.compileReport("F:/ulpahh/Splash/src/LaporanPelangga
n.jrxml");
JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con);
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
System.out.println("Report Can't view because : " + rptexcpt);
}
} catch (Exception e) {
System.out.println(e);
}
pelanggan.setCursor(Cursor.getDefaultCursor());
}
}
5. Buatlah kode program Cetak Laporan Pembelian Cash dengan mengklik kanan
button Cetak Laporan Pembelian Cash
->events -> action ->
ActionPerformed.
private void belicashActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
{belicash.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Connection con = koneksi;
try {
Connection koneksi=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor"
, "root", "");
stm = koneksi.createStatement();
try {
Map<String, Object> prs = new HashMap<String, Object>();
JasperReport JRpt =
JasperCompileManager.compileReport("F:/ulpahh/Splash/src/Laporanbelicash.
jrxml");
JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con);
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
System.out.println("Report Can't view because : " + rptexcpt);
Page 178
2013
}
} catch (Exception e) {
System.out.println(e);
}
belicash.setCursor(Cursor.getDefaultCursor());
}
}
6. Buatlah kode program Cetak Laporan Pembelian Kredit dengan mengklik kanan
button Cetak Laporan Pembelian Kredit
->events -> action ->
ActionPerformed.
private void belicashActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
{belicash.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Connection con = koneksi;
try {
Connection koneksi=
DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan_motor",
"root", "");
stm = koneksi.createStatement();
try {
Map<String, Object> prs = new HashMap<String, Object>();
JasperReport JRpt =
JasperCompileManager.compileReport("F:/ulpah/Splash/src/Laporanbelicash.jrxml");
JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con);
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
System.out.println("Report Can't view because : " + rptexcpt);
}
} catch (Exception e) {
System.out.println(e);
}
belicash.setCursor(Cursor.getDefaultCursor());
}
}
7. Buatlah kode program Cetak Laporan Pembayaran Cicilan dengan mengklik
kanan button Cetak Laporan Pembayaran Cicilan ->events -> action ->
ActionPerformed.
Page 179
2013
Page 180
2013
Page 181
2013
Gambar 6.6.3 Tampilan Menu Bar yang sudah diletakkan di dalam form
Pada Swing Menus pilihlah MenuItem kemudian anda drag ke dalam Menu
Bar File
Page 182
2013
Page 183
2013
Menu File
Menu Transaksi
Page 184
2013
Menu Report
2013
Keterangan :
Daftar Properties yang digunakan
Pallete
Edit Text
Properties
Change Variable Name
jMenu1
logout
exit
Menu Bar1
Menu Item1
Menu Item2
File
LogOut
Exit
Menu Bar2
Menu Item1
Menu Item2
Master
Entry Data Motor
Entry Data Pelanggan
jMenu2
datamotor
datapelanggan
Menu
Menu
Menu
Menu
Transaksi
Pencatatan Pembelian Cash
Pencatatan Pembelian Kredit
Pencatatan Pembayaran Cicilan
jMenu3
belicash
belikredit
bayarcicilan
Menu Bar4
Menu Item1
Menu Item2
Report
Daftar Report Keseluruhan
Daftar Report Per Tanggal
jMenu4
datakeseluruhan
datapertanggal
Menu Bar5
Menu Item1
Help
About
jMenu5
about
jLabel1
Tanggal
LabelDate
Bar3
Item1
Item2
Item3
Syntax Program
1. Pada bagian import tambahkan dibawah baris package ulpah sepeti kode berikut:
package ulpah;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.JOptionPane;
2. Pada bagian public class FrmMenuUtama extends javax.swing.JFrame {
tambahkan kode berikut :
Page 186
2013
2013
private void
datapelangganActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new FrmPelanggan().setVisible(true);
}
7. Buatlah kode program untuk sub menu Pencatatan Pembelian Cash dengan cara
klik kanan sub menu Pencatatan Pembelian Cash ->events ->Action ->
ActionPerformed.
private void belicashActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
new FrmPembelianCash().setVisible(true);
}
8. Buatlah kode program untuk sub menu Pencatatan Pembelian Kredit dengan cara
klik kanan sub menu Pencatatan Pembelian Kredit ->events ->Action ->
ActionPerformed.
private void belikreditActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
new FrmBeliKredit().setVisible(true);
}
9. Buatlah kode program untuk sub menu Pencatatan Pembayaran Cicilan dengan cara
klik kanan sub menu Pencatatan Pembayaran Cicilan ->events ->Action ->
ActionPerformed.
private void bayarcicilanActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
new FrmBayarCicilan().setVisible(true);
}
10. Buatlah kode program untuk sub menu Daftar Report keseluruhan dengan cara klik
kanan sub menu Daftar Report keseluruhan ->events ->Action ->
ActionPerformed.
Page 188
2013
private void
laporankeseluruhanActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
new FrmDaftarReportKeseluruhan ().setVisible(true);
}
11. Buatlah kode program untuk sub menu Daftar Report per Periode dengan cara klik
kanan sub menu Daftar Report per Periode ->events ->Action ->
ActionPerformed.
private void
LaporanpertanggalActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
new FrmDaftarReportperTanggal ().setVisible(true);
}
12. Buatlah kode program untuk sub menu About dengan cara klik kanan sub menu
About ->events ->Action -> ActionPerformed.
private void aboutActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new FrmAbout().setVisible(true);
}
13. Jalankan Program kemudian klik FrmMenuUtama maka akan tampil seperti berikut:
Page 189
2013
Page 190
2013
BAGIAN KE V :
JASPERREPORT
Page 193
2013
BAB 7
MEMBUAT LAPORAN DENGAN JASPERREPORT
7.1.
Page 194
2013
2013
Jika muncul Connection test succespul seperti gambar di atas berarti sudah
terkoneksike database lalu klik Ok -> Save.
7.1.2. Membuat Laporan
Setelah anda selesai membuat koneksi database langkah selanjutnya silahkan anda
membuat laporan seperti berikut :
Pilih Step 2 Click a new Report maka muncul tampilan seperti berikut :
Page 196
2013
Page 197
2013
Ubahlah Connection / Data Source sesuai dengan koneksi yang anda buat ,
kemudian silahkan anda isi Query seperti gambar dibawah ini:
Page 198
2013
Page 199
2013
1. Drag Static Text ke dalam Title di bagian Pallete untuk membuat label
dan double klik lalu ubah sesuai dengan Judul laporan yang anda buat
seperti berikut :
Page 200
2013
Drag dari mulai kode motor sampai dengan merk ke bagian Detail seperti
berikut:
2013
Lalu pilih tampilan tanggal sesuai yang anda inginkan dan klik Apply, lalu
desainlah laporan sesuai yang anda inginkan seperti berikut :
Page 202
7.2
2013
2013
Page 204
2013
2013
Page 206
2013
Page 207
2013
Parameter Name
Dari Tanggal
Sampai dengan
Value Expression
Date
Date
Langkah 1
2013
Page 209
2013
Langkah 1
Page 210
2013
Langkah 3
2013
Klik Preview / compile report, kemudian isikan dengan parameter yang telah
diisikan sebelumnya seperti berikut :
Page 212
2013
Page 213
2013
2. Setelah ProgressBar selesai maka akan langsung Login dan isi di bagian User Name
dan Password nya lalu klik Ok
Page 214
2013
5. Tekan tombol Ok maka akan tampil Form Menu Utama seperti berikut :
6. Klik Menu Bar Master lalu pilih Entry data motor maka Form data motor akan tampil
seperti berikut :
Page 215
2013
7. Lakukan cara yang sama untuk menampilkan Form yang lainnya sesuai yang kita
inginkan
Page 216
2013
DAFTAR PUSTAKA
1. Advanced Java Programming with Database Application, Centre for Information
Technology and Engineering, Manonaniam Sundaranar
Universitywww.komputerjava.blogspot.com
2. Database Programming with JDBC and Java, Second Edition, Copyright 2000 O'Reilly
& Associates, Inc.
3. JasperReports Server User Guide, Copyright 2011 Jaspersoft Corporation
4. Java Database Programming with JDBC, Pratik Patel, Coriolis, The Coriolis Group, 96
5. MySQL 5 Dari Pemula Hingga Mahir, Achmad Solichin
6. www.google.com
Page 217