1. LAPORAN PROJECT AKHIR
DASAR-DASAR PEMROGRAMAN JAVA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM
MALANG
2014
Dosen Pengampu : SUPRIYONO,M.Kom
KELOMPOK :
Erik Hendra [12650036]
Syafrudin [12650039]
Ginanjar Galang [12650044]
APLIKASI PENJUALAN SANITAIR
2. 1
KATA PENGANTAR
Puji syukur penyusun panjatkan ke hadirat Allah Subhanahu wata’ala, karena berkat
rahmat-Nya kami bisa menyelesaikan laporan project akhir mata kuliah Dasar-Dasar
Pemrograman java yang berjudul Aplikasi Penjualan Sanitair. Projek ini diajukan guna
memenuhi tugas akhir mata kuliah Dasar-Dasar Pemrograman Java.
Kami mengucapkan terima kasih kepada semua pihak yang telah membantu sehingga
projek ini dapat diselesaikan tepat pada waktunya. Projek akhir ini masih jauh dari sempurna,
oleh karena itu, kritik dan saran yang bersifat membangun sangat kami harapkan demi
sempurnanya makalah ini.
Semoga laporan ini memberikan informasi bagi masyarakat dan bermanfaat untuk
pengembangan wawasan dan peningkatan ilmu pengetahuan bagi kita semua.
Malang, Juni 2014
Penulis,
3. 2
A. Deskripsi UKM dan Produksi
Bachri Darmo merupakan generasi kedua yang memulai usaha pada tahun 1941, ia
bergerak di bidang sanitair dan segala sesuatu yang berhubungan dengan semen. Nama
perusahaan yang dimilikinya adalah Ragam Indah dengan karyawan 70 orang. Usahanya
terletak di rumahnya sendiri yang beralamat di Desa Klaseman no. 345 RT 06/RW 02
Sukun-Malang. Sanitair yang di buatnya beragam jenis mulai dari pagar, pilar, pot hingga
kloset jongkok. Selain itu ia juga menerima pesanan dari segala macam bentuk, tergantung
pada pemesan. Usaha yang di lakukannya ini tidak hanya menerima pesanan dari dalam
negeri tapi juga di luar negeri seperti Belanda, Malaysia, Singapura dan lain lain.
Berikut merupakan sebagian contoh barang-barang yang di produksi :
Gambar 1 Gambar 2
Gambar 3 Gambar 4
4. 3
B. Entity Relational Database
Berikut Merupakan relasi relasi tabel database menggunakan PhpMyAdmin dan Mysqlyog
5. 4
Penjelasan Source Code Program Project UAS
Dasar-Dasar Pemrograman Java
1. Penjelasan Code Pada Frame Koneksi
Class koneksi.java merupakan class yang berguna untuk membagun koneksi ke
Database mysql yang sudah di buat.
Gambar 1: Class Koneksi.java
Pada code diatas terdapat pendefinisian beberapa atribut-atribut untuk membuat koneksi
ke database. Semua atribut menggunakan keyword static.
Static merupakan Sebuah variabel atau fungsi yang mempunyai nilai kembalian yang
nilaix akan tetap terjaga selama tidak ada perubahan nilai dalam var, dan fungsi
tersebut selama aplikasi berjalan.
Fungsi try catch pada code di atas adalah untuk menangani kesalahan pada bagian code
yang tidak tepat. Sehingga akan cepat diketahui bagian yang error yang mana.
Perintah return stat; merupakan perintah untuk mengembalikan nilai stat
6. 5
Gambar 2 : Method Koneksi pada class koneksi
Tedapat try catch juga untuk mempermudah mengetahui kesalahan pada code tersebut.
Variabel URL yang bertipe String untuk mendeklarasikan Driver Library jdbc
connection ke database.
Class.forName().newInstance(); :: adalah untuk memanggil Driver yang sudah di
deklarasikan sebelumnya.
KeyWord : Tipe data, Variabel, Static, Event Handling, Connection, Database, Driver,
Fungsi, Rekursif.
2. Penjelasan Frame Login
Frame Login ini adalah tampilan yang akan pertama kali muncul saat program dijalankan,
karena program ini di buat hanya untuk admin dari toko tersebut. Admin akan mengisi username dan
password yang di ambil dari database.
Gambar 3: Frame Login
Penjelasan Source Code Frame Login
Perintah koneksi k; merupakan perintah untuk membuat objek “k” pada class
koneksi.java yang kemudian di panggil dengan this.k = new koneksi(); pada
Construktor.
Fungsi this pada java untuk membedakan variabel pada atribut dan pada Construktor
Perintah setLocationRelativeTo(null); merupakan code untuk menentukan posisi
letak frame yang akan berada di tengah tengah dekstop.
7. 6
Perintah diatas merupakan memberikan fungsi kepada TextField Password, ketika
mendapatkan keyEvent Enter atau ketika keyboard di enter ketika memasukan
password maka aka memenggil method masukk(); .
Gambar 4: Method Masuk pada class Login.java
Terdapat try catch lagi untuk mengetahui kesalahan code
Memamggil objek koneksi yang sudah di deklarasikan terlebih dahulu yaitu
k.koneksi();
Mendeklarasikan Username dan Pass berdasarkan text yang di inputkan pada
TextField.
Membuat statement untuk membuat query database dapat di eksekusi
Tipe String sql : merupakan query sql yang di ambil dari tabel login pada kolom
username dan pass pada database.
Resulset rs = statement akan mengeksekusi query sql
If (rs.next ){ kondisi yang merupakan jika kondisi benar bahwa username dan
password yang di input kan pada dua TextField adalah sama keduanya dengan data
yang ada pada database, maka akan print (“Anda telah login”). Jika kondisi gk true
atau bernilai False maka tidak akan di eksekusi query tersebut, hanya akan
memunculkan pesan bahwa Username dan Password yang diinputkan tidak sesuai.
Setelah itu akan memenggil class Frameutama.java dan class login ini akan di dispose
atau di sembunyikan atau tidak ditampilkan.
KeyWord : Tipe data, Variabel, Static, Event Handling, KeyEvent, Statement If-else.
8. 7
3. Frame Menu Utama
Gambar 5: Tampilan Frame Utama
Pada Class ini hanya berfungi untuk memanggil class-class yang lainnya jadi ibarat
sebagai induk class lainnya. Class ini terdiri dari Jpanel, JMenuItem, JtoolBar. Tidak terdapat
banyak kode di dalamnya hanya code untuk memanggil class-class.
Jika kita lihat pada Code di atas memiliki struktur yang hampir sama, Cuma berbeda pada
Objek pendeklarasiannya saja yang berbeda. (this, true) adalah untuk memanggil class yang
di buat menggunakan JDialog.
9. 8
4. Frame Barang
Gambar 6: Tampilan Frame Barang
Pada frame barang ini di gunakan untuk menambahkan, mencari, menghapus dan
mengedit data dari database tabel barang. Dan juga ada tabel yang menampilkan data yang
di ambil dari tabel barang di database.
Pendeklarasian variabel Statement dengan objek stat bertipe public
Membuat objek kon pada class Koneksi()
Mendeklarasikan driver Connection dengan objek con untuk mengeksekusi query
database
Terdapat juga defaulttablemodel yang merupakan model tabel
10. 9
Insert Barang
Gambar 7: Method Insert barang Pada Class Tambahbarang.java
Terdapat perintah untuk memanggil class koneksi, setelah itu try-catch
Sql bertipe String berisi query sql insert into barang, jadi untuk menambahkan data
ke tabel barang.
Update Barang
Gambar 8: method update barang di class barang
Hampir sama dengan method sebelumnya, hanya beda query sql nya saja
11. 10
Cari Barang
Gambar 9 : Pencarian data dari database barang
Ada pendefinisian model tabel
Setelah itu memberikan nama kepada kolom kolok tabel
Query untuk pencarian berdasarkan kode barang
While(set.next), jadi ketika di temukan maka akan di tampilkan ke tabel
Hapus Barang
Semua code di atas sama dengan code sebelumnya namun hanya beda pada query
sql nya saja yaitu untuk menghapus berdasarkan kode barang atau berdasarkan
nama barang yang di inputkan oleh user.
12. 11
Tampil keTabel
Gambar 10: method untuk menampilkan data ke tabel
Objek[] row ={}; adalah code untuk menyimpan data array yang di gunakan untuk
nama kolom tabel.
Baris selanjutnya adalah untuk menentukan model tabel dan memanggil objek dari
array yang sudah di deklarasikan di atasnya.
Ada query sql untuk select semua data dari tabel barang
While untuk menyimpan ke tabel ketika data sudah di select dari data base
KeyWord : Array, Looping (While), Event Hendling,Tipe data, KeyEvent, Statement If-else.
13. 12
5. Frame Transaksi
Pada Frame transaksi terdapat dua form yaitu menggunakan JTabbedPane yaitu
panel transaksi jual dan panel untuk transaksi beli. Pada panel transaksi jual terdapat dua
button simpan yaitu untuk menyimpan ke tabel transaksi jual dan menyimpan ke detail
transaksi jual. Karena satu pelanggan bisa membeli beberapa barang.
TextField kode transaksi merupakan autoNumber berdasarkan kode terakhir di
database tabel transaksi maka akan di simpan di textfield dan di increment.
Semua data JcomboBox di ambil dari database berbagai tabel sehingga tinggal select
kode yang sudah di inputkan.
14. 13
Gambar : 11 Mengambil data dari database untuk disimpan ke Combobox
Textfield nama pelanggan adalah auto, jadi tidak perlu di inputkan, tetapi akan
menyimpan data berdasarkan kode pelanggan yang sudah di pilih pada combobox
Begitu juga dengan textfield harga satuan dimana merupakan auto text yang di ambil
dari tabel barang pada database berdasarkan select kode barang pada combobox
kode barang.
Pada textfield jumlah item di kasih event KeyRelese jadi setelah kita merilis atau
melepaskan tekanan pada keyboard akan mendapatkan hasilnya
15. 14
Jadi ketika kita memasukan angka pada jumlah item makan akan dikalikakan saat itu juga
dengan Harga satuan kemudian total harga akan otomatis meset text hasil kalinya.
Terdapat dua tombol simpan di panel ini yaitu untuk menyimpan di tabel transaksi
jual dan di tabel detail transaksi jual. Karena satu pelanggan bisa membeli beberapa
jenis barang.
Terdapat event hendling pada button simpan, yaitu untuk memeriksa apaka ada
yang belum terisi.
Terdapat beberapa query sql pada button simpan yaitu untul menyimpa ke tabel
transaksi, menyeleksi jumlah stok di tabel barang, dan mengurangi stok barang
17. 16
Form Pesanan
Screen Shoot
Source Code
Penjelasan masing-masing method
1.Deklarasi variabel
public Statement stat;
koneksi k;
Connection con;
ResultSet rs = null;
//Dari beberapa potongan source code di atas dapat di lihat kita membuat variable “k” yang
mereferensi dari class koneksi, lalu membuat Statement, Connection dan ResultSet.
DefaultTableModel model = new DefaultTableModel();
DefaultComboBoxModel<String> model1 = new DefaultComboBoxModel();
//Lalu kita membuat Table untuk menampilkan data yang telah tersimpan dan menambahkan
Combo box
18. 17
/**
* Creates new form Pesanan
*/
2.Method public pesanan
public Pesanan(java.awt.Frame parent, boolean modal) {
super(parent, modal);
this.k = new koneksi();
initComponents();
tabel_baru();
setLocationRelativeTo(this);
}
//Pada method ini kita mereferensikan class ini dengan class parent yang bernama koneksi dengan
konstruktor frame parent dan modal.
}
3.Method Insert pesanan
void insertpesanan() {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
try {
stat = koneksi.createStatement();
String sql = "insert into pesanan values ('" + (TFKode_pes.getText()) + "','" +
(TFNama_pes.getText()) + "','" + TFAlamat_pes.getText() + "','" + TFJenis_pes.getText() + "');";
//menggunakan Query Insert MySQl untuk melakukan insert pada database.
stat.close();
JOptionPane.showMessageDialog(null, "Data Pesanan telah tersimpan");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal disimpan. error:" + e);
19. 18
//menggunakan try catch untuk mengetahui apakah masih terjadi eror atau tidak
}
}
4.Method cari pesanan
void caripesanan() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
DefaultTableModel tb = new DefaultTableModel();
tb.addColumn("Kode Pesanan");
tb.addColumn("Nama");
tb.addColumn("Alamat");
tb.addColumn("Jenis");
//Membuat table dengan setting nama kolom sesuai String di atas.
String sql = "select * from pesanan where Kode_pes ='" + TFKode_pes.getText() + "' or Nama_pes='" +
TFNama_pes.getText() + "'";
//Menggunakan query select MySQL untuk mencari data di database dengan parameter kode
pesanan atau nama pesana
stat = koneksi.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
tb.addRow(new Object[]{
set.getInt("Kode_pes"),
set.getString("Nama_pes"),
set.getString("Alamat_pes"),
set.getString("Jenis_pes")
});
}
//Seting data yang di ambil dari database dengan menempatkan ke kolom-kolom sesuai urutan
kolom.
20. 19
}
tabel_pes.setModel(tb);
//Memanggil void table baru yang akan menampilkan table.
stat.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Kesalahan. error:" + e);
//menggunakan try catch untuk mengetahui apakah masih terjadi eror atau tidak
}
}
5. Method Delete pesana
void deletepesanan() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
stat = koneksi.createStatement();
String sql = "delete from pesanan where Kode_pes='" + TFKode_pes.getText() + "' or
Nama_pes='" + TFNama_pes.getText() + "'";
//Menggunakan query delete MySQL dengan syarat yang di ketahui adalah kode pesanan.
stat.executeUpdate(sql);
//Memanggil void table baru yang akan menampilkan table.
stat.close();
JOptionPane.showMessageDialog(null, "Data pesanan telah dihapus");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal dihapus. error:" + e);
//menggunakan try catch untuk mengetahui apakah masih terjadi eror atau tidak
}
}
6.Method Update pesanan
void updatepesanan() {
21. 20
try {
k.koneksi();
stat = koneksi.createStatement();
String sql = "update pesanan set Jenis_pes='" + TFJenis_pes.getText() + "'where Kode_pes='" +
TFKode_pes.getText() + "' or Nama_pes='" + TFNama_pes.getText() + "'";
//Menggunakan Query update MySQl untuk mengubah data jenis pesanan dimana di peroleh
kode dan nama pesanan tersebut
stat.executeUpdate(sql);
stat.close();
//Memanggil void table baru yang akan menampilkan table.
JOptionPane.showMessageDialog(null, "Data Pesanan telah diubah");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal diubah. error:" + e);
//menggunakan try catch untuk mengetahui apakah masih terjadi eror atau tidak
}
}
7. Method Tabel baru
private void tabel_baru() {
Object[] row = {"Kode Pesanan", "Nama", "Alamat", "Jenis"};
//Membuat array bernilai String untuk di jadikan judul pada table.
model = new DefaultTableModel(null, row);
tabel_pes.setModel(model);
try {
stat = k.con.createStatement();
String sql = "select * from pesanan";
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
String Kode_Pesanan = rs.getString(1);
22. 21
String Nama = rs.getString(2);
String Alamat = rs.getString(3);
String Jenis = rs.getString(4);
String[] data = {Kode_Pesanan, Nama, Alamat, Jenis};
//Mengisikan table dengan table di database dengan mengurutkan urutan kolomnya
model.addRow(data);
}
} catch (Exception aw) {
}
}
Form Pelanggan
Screen Shoot
23. 22
Penjelasan masing-masing method
1.Deklarasi Variabel
public Statement stat;
koneksi k;
Connection con;
ResultSet rs = null;
//Dari coding di atas dapat di lihat kita membuat variable k yang mereferensi dari class koneksi,lalu
membuat Statement,Connection dan ResultSet.
DefaultTableModel model = new DefaultTableModel();
DefaultComboBoxModel<String> model1 = new DefaultComboBoxModel();
//Lalu kita membuat Table untuk menampilkan data yang telah tersimpan dan menambahkan
Combo box
2. Method Public Supplier
public Pelanggan(java.awt.Frame parent, boolean modal) {
super(parent, modal);
this.k = new koneksi();
initComponents();
tabel_baru();
24. 23
setLocationRelativeTo(this);
}
//Pada method ini kita mereferensikan class ini dengan class parent yang bernama koneksi dengan
konstruktor frame parent dan modal.
3. Method membuat table
private void tabel_baru() {
Object[] row = {"Kode Pelanggan", "Nama", "Alamat"};
//membuat array yang di gunakan untuk menyimpan nama-nama kolom pada table yang akan di
buat
model = new DefaultTableModel(null, row);
tabel_cus.setModel(model);
try {
stat = k.con.createStatement();
String sql = "select * from supplier";
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
String Kode_Pel = rs.getString(1);
String Nama = rs.getString(2);
String Alamat = rs.getString(3);
String[] data = {Kode_Pel, Nama, Alamat};
model.addRow(data);
//Code di atas di gunakan untuk mengisi table dengan urutan kolom pada database
}
} catch (Exception aw) {
}
}
4. Method Insert pelanggan
void insertpelanggan() {
k.koneksi();
25. 24
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
try {
stat = koneksi.createStatement();
String sql = "insert into pelanggan values ('" + (TFKode_pel.getText()) + "','" +
(TFNama_pel.getText()) + "','" + TFAlamat_pel.getText() + "');";
stat.executeUpdate(sql);
stat.close();
JOptionPane.showMessageDialog(null, "Data Pelanggan telah tersimpan");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal disimpan. error:" + e);
}
tabel_cust();
4.Method Cari pelanggan
void caripelanggan() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
efaultTableModel tb = new DefaultTableModel();
tb.addColumn("Kode Pelanggan");
tb.addColumn("Nama");
tb.addColumn("Alamat");
//Pertama kita membuat table dulu dengan nama kolom seperti kode di atas.
String sql = "select * from pelanggan where Kode_pel ='" + TFKode_pel.getText() + "' or Nama_pel='"
+ TFNama_pel.getText() + "'";
//Menggunakan query search pada MySQL dengan parameter Kode_pel dari text fields Nama_pel
stat = koneksi.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
26. 25
tb.addRow(new Object[]{
set.getInt("Kode_sup"),
set.getString("Nama_sup"),
set.getString("Alamat_sup"),
set.getString("bahan_suply")
//Ketika objek di temukan maka otomatis data yang di cari dalam database akan di panggil untuk
mengisi kolom-kolom dalam table yang telah di buat
tabel_sup.setModel(tb);
//berikut untuk memunculkan table yang mempunyai variable tb.
stat.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Kesalahan. error:" + e);
}
}
5.Method Hapus
void deletesuplier() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
stat = koneksi.createStatement();
String sql = "delete from pelanggan where Kode_pel='" + TFKode_pel.getText() + "' or
Nama_pel='" + TFNama_pel.getText() + "'";
//Menggunakan query delete pada sql dengan parameter kode supplier atau nama supplier
stat.executeUpdate(sql);
stat.close();
JOptionPane.showMessageDialog(null, "Data pelanggan telah dihapus");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal dihapus. error:" + e);
}
tabel_cust();
27. 26
}
6.Method Update pelanggan
void updatepelanggan() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
stat = koneksi.createStatement();
String sql = "insert into pelanggan values ('" + (TFKode_pel.getText()) + "','" +
(TFNama_pel.getText()) + "','" + TFAlamat_pel.getText() + "');";
//Menggunakan query update MySQL untuk mengubah data bahan supplier dengan parameter
kode, dan nama.
stat.executeUpdate(sql);
stat.close();
JOptionPane.showMessageDialog(null, "Data Pelanggan telah tersimpan");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal disimpan. error:" + e);
}
tabel_cust();
}
//Menggunakan try catch untuk mengetahui errornya
28. 27
Form Karyawan
Screen Shoot
Source Code
Penjelasan masing-masing method
1.Deklarasi variabel
public Statement stat;
koneksi k;
Connection con;
ResultSet rs = null;
//Dari coding di atas dapat di lihat kita membuat variable k yang mereferensi dari class koneksi,lalu
membuat Statement,Connection dan ResultSet.
DefaultTableModel model = new DefaultTableModel();
DefaultComboBoxModel<String> model1 = new DefaultComboBoxModel();
//Lalu kita membuat Table untuk menampilkan data yang telah tersimpan dan menambahkan
Combo box
29. 28
/**
* Creates new form Karyawan
*/
2.Method public karyawan
public Karyawan(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
this.k = new koneksi();
setLocationRelativeTo(this);
tabel_baru();
//Pada method ini kita mereferensikan class ini dengan class parent yang bernama koneksi dengan
konstruktor frame parent dan modal.
}
3.Method Tabel baru
private void tabel_baru() {
Object[] row = {"Kode Pegawai", "Nama", "Alamat"};
//Membuat array bernilai String untuk di jadikan judul pada table.
model = new DefaultTableModel(null, row);
tabel_peg.setModel(model);
try {
stat = k.con.createStatement();
String sql = "select * from pegawai";
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
String Kode_peg = rs.getString(1);
String Nama = rs.getString(2);
String Alamat = rs.getString(3);
String[] data = {Kode_peg, Nama, Alamat};
//Mengisikan table dengan table di database dengan mengurutkan urutan kolomnya
30. 29
model.addRow(data);
}
} catch (Exception aw) {
}
}
3.Method Insert
void insertpegawai() {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
try {
stat = koneksi.createStatement();
String sql = "insert into pegawai values ('" + (TFKode_peg.getText()) + "','" +
(TFNama_peg.getText()) + "','" + TFAlamat_peg.getText() + "');";
//menggunakan Query Insert MySQl untuk melakukan insert pada database.
stat.executeUpdate(sql);
stat.close();
JOptionPane.showMessageDialog(null, "Data Pegawai telah tersimpan");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal disimpan. error:" + e);
//menggunakan try catch untuk mengetahui apa program sudah berjalan baik atau belum
}
}
4.Method Search
void caripegawai() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
DefaultTableModel tb = new DefaultTableModel();
31. 30
tb.addColumn("Kode Pegawai");
tb.addColumn("Nama");
tb.addColumn("Alamat");
//Membuat table dengan setting nama kolom sesuai String di atas.
String sql = "select * from pegawai where Peg_Kode ='" + TFKode_peg.getText() + "' or
Peg_Nama='" + TFNama_peg.getText() + "'";
//Menggunakan query select MySQL untuk mencari data di database dengan parameter kode
pegawai
stat = koneksi.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
tb.addRow(new Object[]{
set.getInt("Peg_Kode"),
set.getString("Peg_Nama"),
set.getString("Peg_Alamat")});
//Seting data yang di ambil dari database dengan menempatkan ke kolom-kolom sesuai urutan
kolom.
}
tabel_peg.setModel(tb);
tabel_baru();
//Memanggil void table baru yang akan menampilkan table.
stat.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Kesalahan. error:" + e);
//menggunakan try catch untuk mengetahui apa program sudah berjalan baik atau belum
}
}
5. Method Delete
void deletepegawai() {
32. 31
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
stat = koneksi.createStatement();
String sql = "delete from pegawai where Peg_Kode='" + TFKode_peg.getText() + "'";
//Menggunakan query delete MySQL dengan syarat yang di ketahui adalah kode pegawainya.
stat.executeUpdate(sql);
tabel_baru();
//Memanggil void table baru yang akan menampilkan table.
stat.close();
JOptionPane.showMessageDialog(null, "Data pegawai telah dihapus");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal dihapus. error:" + e);
//menggunakan try catch untuk mengetahui apa program sudah berjalan baik atau belum
}
}
6.Method Update
void updatepegawai() {
try {
k.koneksi();
stat = koneksi.createStatement();
String sql = "update pegawai set Peg_alamat='" + TFAlamat_peg.getText() + "'where
Peg_Kode='" + TFKode_peg.getText() + "' or Peg_Nama='" + TFNama_peg.getText() + "'";
//Menggunakan Query update MySQl untuk mengubah data alamat pegawai dimana di peroleh kode
dan nama pegawai tersebut
stat.executeUpdate(sql);
stat.close();
tabel_baru();
//Memanggil void table baru yang akan menampilkan table.
JOptionPane.showMessageDialog(null, "Data Pegawai telah diubah");
33. 32
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal diubah. error:" + e);
//menggunakan try catch untuk mengetahui apa program sudah berjalan baik atau belum
}
}
Form Supplier
Screen Shoot
Penjelasan masing-masing method
1.Deklarasi Variabel
public Statement stat;
koneksi k;
Connection con;
ResultSet rs = null;
//Dari coding di atas dapat di lihat kita membuat variable k yang mereferensi dari class koneksi,lalu
membuat Statement,Connection dan ResultSet.
34. 33
DefaultTableModel model = new DefaultTableModel();
DefaultComboBoxModel<String> model1 = new DefaultComboBoxModel();
//Lalu kita membuat Table untuk menampilkan data yang telah tersimpan dan menambahkan
Combo box
2. Method Public Supplier
public Supplier(java.awt.Frame parent, boolean modal) {
super(parent, modal);
this.k = new koneksi();
initComponents();
tabel_baru();
setLocationRelativeTo(this);
}
//Pada method ini kita mereferensikan class ini dengan class parent yang bernama koneksi dengan
konstruktor frame parent dan modal.
3. Method Insert
void insertsuplier() {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
try {
stat = koneksi.createStatement();
String sql = "insert into supplier values ('" + (TFKode_sup.getText()) + "','" +
(TFNama_sup.getText()) + "','" + TFAlamat_sup.getText() + "','" + TFBahan_sup.getText() + "');";
//Menginputkan query insert SQL yang mendapat input dari text field yang berada di program
stat.executeUpdate(sql);
stat.close();
JOptionPane.showMessageDialog(null, "Data Supplier telah tersimpan");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal disimpan. error:" + e);
//Try catch di gunakan untuk mengetahui error yang terjadi dalam method tersebut
}
}
35. 34
4.Method Cari
void carisuplier() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
DefaultTableModel tb = new DefaultTableModel();
tb.addColumn("Kode Supplier");
tb.addColumn("Nama");
tb.addColumn("Alamat");
tb.addColumn("Bahan");
//Pertama kita membuat table dulu dengan nama kolom seperti kode di atas.
String sql = "select * from supplier where Kode_sup='" + TFKode_sup.getText() + "' or
Nama_sup='" + TFNama_sup.getText() + "'";
//Menggunakan query search pada MySQL dengan parameter Kode_sup dari text fields Nama
stat = koneksi.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
tb.addRow(new Object[]{
set.getInt("Kode_sup"),
set.getString("Nama_sup"),
set.getString("Alamat_sup"),
set.getString("bahan_suply")
//Ketika objek di temukan maka otomatis data yang di cari dalam database akan di panggil untuk
mengisi kolom-kolom dalam table yang telah di buat
});
}
tabel_sup.setModel(tb);
//berikut untuk memunculkan table yang mempunyai variable tb.
stat.close();
} catch (SQLException e) {
36. 35
JOptionPane.showMessageDialog(null, "Kesalahan. error:" + e);
}
}
5.Method Hapus
void deletesuplier() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
stat = koneksi.createStatement();
String sql = "delete from supplier where Kode_sup='" + TFKode_sup.getText() + "' or
Nama_sup='" + TFNama_sup.getText() + "'";
//Menggunakan query delete pada sql dengan parameter kode supplier atau nama supplier
stat.executeUpdate(sql);
stat.close();
JOptionPane.showMessageDialog(null, "Data supplier telah dihapus");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal dihapus. error:" + e);
}
}
6.Method Update
void updatesuplier() {
try {
k.koneksi();
//pertama kita memanggil class koneksi yang mengubungkan program dengan database
stat = koneksi.createStatement();
String sql = "update supplier set Bahan_suply='" + TFBahan_sup.getText() + "'where
Kode_sup='" + TFKode_sup.getText() + "' or Nama_sup='" + TFNama_sup.getText() + "'";
//Menggunakan query update MySQL untuk mengubah data bahan supplier dengan parameter
kode, dan nama.
stat.executeUpdate(sql);
stat.close();
37. 36
JOptionPane.showMessageDialog(null, "Data Supplier telah diubah");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal diubah. error:" + e);
//Menggunakan try catch untuk mengetahui errornya
}
}
7.Method membuat table
private void tabel_baru() {
Object[] row = {"Kode Supplier", "Nama", "Alamat", "Bahan Supplier"};
//membuat array yang di gunakan untuk menyimpan nama-nama kolom pada table yang akan di
buat
model = new DefaultTableModel(null, row);
tabel_sup.setModel(model);
try {
stat = k.con.createStatement();
String sql = "select * from supplier";
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
String Kode_Sup = rs.getString(1);
String Nama = rs.getString(2);
String Alamat = rs.getString(3);
String Bahan = rs.getString(4);
String[] data = {Kode_Sup, Nama, Alamat, Bahan};
model.addRow(data);
//Code di atas di gunakan untuk mengisi table dengan urutan kolom pada database
}
} catch (Exception aw) {
}
}
38. 37
DAFTAR PUSTAKA
Fatchurrochman, 2008 : Pemrograman Berorientasi Objek dengan Bahasa Java, UIN malang
Press, Malang
Friedel, David H. 1996, Java Programing Language Handbook, Coriolis Group books, United
State Of America
Husni I. Pohan, 2002 : SQL + Tutorial Plus Studi Kasus Dengan Oracle dan Sybase,
Informatika, Bandung
Mustafa, Aziz 2013 : Modul Praktikum Desain Basis Data, UIN Malang Press, malang
Indonesia
Syauqi, A’la : 2012, Dasar-Dasar Pemrograman Java, [Online] Available :
http://uqifumi.wordpress.com/category/dasar-dasar-pemrograman/
Widodo, Gianto: 2011, Modul Pemrograman Dasar-Dasar Pemrograman Java, UIN Press,
Malang Indonesia