Download - Laporan tugas akhir daspro kelompok
FAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM
MALANG2014
Dosen Pengampu : SUPRIYONO,M.Kom
KELOMPOK :Erik Hendra [12650036]Syafrudin [12650039]Ginanjar Galang [12650044]
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.
1
Malang, Juni 2014
Penulis,
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
2
Gambar 3 Gambar 4
B. Entity Relational Database
Berikut Merupakan relasi relasi tabel database menggunakan PhpMyAdmin dan Mysqlyog
3
SYAFRUDIN 12650039
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
Gambar 2 : Method Koneksi pada class koneksi
4
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.
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(); .
5
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.
6
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.
7
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
8
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
9
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.
10
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.
11
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.
12
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
13
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
14
KeyWord : Array, Looping (While), Event Hendling,Tipe data, KeyEvent,KeyRelese, Statement If-else.
15
Erik Hendra Kurniawan 12650036
Form PesananScreen 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
16
/**
* 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);
17
//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.
18
}
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() {
19
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);
20
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 PelangganScreen Shoot
21
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();
22
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();
23
//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()) {
24
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();
25
}
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
26
Ginanjar Galang 12650046
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
27
/**
* 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
28
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();
29
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() {
30
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");
31
} 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 SupplierScreen 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.
32
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
}
}
33
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) {
34
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();
35
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) {
}
}
36
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
37