Netbeans - Koneksi database ke netbeans
Dalam
tutorial kali ini akan membahas masalah pembuatan aplikasi dengan studi kasus Aplikasi Pembelian Tiket Bola Stadion Sebelah Ngarep.
Desain
Program
Aplikasi
pembelian tiket bola stadion sebelah ngarep dengan interface sebagai berikut:
Tampilan Awal
Terdiri dari komponen 1 buah jMenuBar dengan 7 buah
jMenuItem, 7 buah jLabel, 5 buah jTextField, 1 buah jComboBox, 4 buah jButton,
1 buah jScrollPane dan 1 buah jTable.
Tampilan About
Pada desain tampilan about ini menggunakan 8 buah
jLabel, 1 buah jSeparator dan 1 buah jButton. Untuk gambar diatas menggunakan
komponen jLabel dengan pengaturan properties iconnya.
Tampilan Database
Pada gambar dibawah ini adalah desain atau interface
dari database Microsoft Access:
Terdiri dari 6 buah field yaitu no_id (text), nama
(text), jenistiket (text), harga (currency), banyak (number),
totalbayar(currency) dengan primary key no_id.
Analisa Script
Berikut ini script pada jFrame utama:
package
tiketbola;
import
javax.swing.*;
import
java.sql.*;
import
java.text.DecimalFormat;
import
javax.swing.table.*;
Analisa: Pada baris 18-21 merupakan script pengimportan
yaitu swing untuk komponen jOptionPane, sql untuk database accdb,
text.decimalFormat untuk format desimal dan swing.table untuk jTable.
public class
transaksitiket extends javax.swing.JFrame {
String
no_id,nama,jenistiket,harga,banyak,totalbayar,totbayar1;
int totbayar, harga1, bayar1;
DefaultTableModel tabMode;
Connection con;
Analisa: Pada kode program ini merupakan
pendeklarasian variabel yang terdiri dari string, integer, defaultTableModel
dan connection.
public
transaksitiket() {
initComponents();
setTitle("PEMBELIAN TIKET BOLA
STADION SEBELAH NGAREP");
Object[] row=
{"No.Id","Nama",
"Tiket","Harga","Banyak","Total
Bayar"};
tabMode=new
DefaultTableModel(null,row);
jTable1.setModel(tabMode);
jScrollPane1.getViewport().add(jTable1,null);
}
Analisa: Pada kode program ini adalah sebuah method
bernama transaksitiket yang berisi penamaan title program pada baris ke-30,
penamaan field pada table pada baris ke 31-34 dan pada baris ke-35 pemasukkan
jTable ke dalam jScrollPane yang berfungsi apabila banyak data yang ada maka
jScrollPane akan membantu supaya table tidak kepanjangan dengan cara scroll.
public
void konekdatabase(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:aksestiketbola;uid='admin';pw='admin'");
}
catch (Exception e)
{
System.err.println("Exception:
"+e.getMessage());
}
}
Analisa: Pada method konekdatabase ini berfungsi untuk
menghubungkan database microsoft access yang telah dibuat pada java netbeans.
Dengan nama koneksi aksestiketbola, username:admin dan password:admin.
public
void hapustabel(){
int row=tabMode.getRowCount();
for(int i=0;i<row;i++){
tabMode.removeRow(0);
}
}
Analisa: Pada method hapustabel ini merupakan pendeklarasian
atau validasi pada jTable yang baris kolom memiliki nilai awal 0 dan ditambah
terus i++.
public
void tampildataketabel(){
hapustabel();
try{
String sql="Select * from
datatiketbola ORDER BY no_id DESC";
Statement
stat=con.createStatement();
ResultSet
set=stat.executeQuery(sql);
while (set.next()){
no_id=set.getString("no_id");
nama=set.getString("nama");
jenistiket=set.getString("jenistiket");
harga=set.getString("harga");
banyak=set.getString("banyak");
totalbayar=set.getString("totalbayar");
String[]
data={no_id,nama,jenistiket,harga,banyak,totalbayar};
tabMode.addRow(data);
}
}
catch(Exception e){
}
}
Analisa:
Pada method tampildatatabel ini memanggil method hapustabel untuk memberi nilai
awal, kemudian terdapat struktur kontrol try...catch. Variabel sql bernilai
string yang berisi perintah query membaca isi database tabel datatiketbola yang
berformat Descending pada no_id yang berarti data yang paling besar/akhir akan
berada diatas.
Untuk
catch(exception e) merupakan pencetakan kesalahan saja.
public void
simpandata(){
no_id=txnoid.getText();
nama=txnama.getText();
jenistiket=(String)cbtiket.getSelectedItem();
harga=txharga.getText();
banyak=txbanyak.getText();
totalbayar=txbayar.getText();
try{
konekdatabase();
Statement
statement=con.createStatement();
String sql="insert into
datatiketbola values ('"+no_id+"','"+nama+ "'," +
"'"+jenistiket+"','"+harga+"','"+banyak+"','"+totalbayar+"');";
statement.executeUpdate(sql);
statement.close();
}
catch (Exception e){
}
}
Analisa: Pada method simpandata ini berisi pembacaan
jTextField dari baris 78-83 yang akan dimasukkan kedalam database pada baris
ke-87 dengan perintah query insert into datatiketbola values.
public
void data(){
no_id=txnoid.getText();
nama=txnama.getText();
jenistiket=(String)cbtiket.getSelectedItem();
harga=txharga.getText();
banyak=txbanyak.getText();
totalbayar=txbayar.getText();
}
Analisa: Pada method data ini merupakan pendeklarasian
nilai saja. Contoh: variable no_id berisi nilai yang ada pada txnoid yang
merupakan komponen jTextField.
public
void hargatiket(){ //create method gajipokok
int pilihan=cbtiket.getSelectedIndex();
switch(pilihan){
case 0:
txharga.setText("");
break;
case 1:
txharga.setText("75000");
break;
case 2:
txharga.setText("50000");
break;
case 3:
txharga.setText("25000");
break;
}
}
Analisa: Pada method hargatiket ini merupakan
pengesetan nilai item pada jComboBox (cbtiket). Pendeklarasian variabel pilihan
yang bernilai integer. Kemudian pada baris 108-120 menggunakan struktur kontrol
switch yang digunakan untuk mengevaluasi suatu ekspresi dengan kemungkinan
banyak nilai dan banyak perintah yang harus dieksekusi berdasarkan ekspresi dan
nilainya. Pada kode program di atas, nilai dari variabel akan dicek pada setiap
option yang ada (terletak di bagian case). Jika option yang sama dengan nilai
variabel, maka statement-statement di bawah option tersebutlah yang akan
dijalankan.
public
void total(){
harga1=Integer.parseInt(txharga.getText());
bayar1=Integer.parseInt(txbanyak.getText());
totbayar=harga1*bayar1;
DecimalFormat f=new
DecimalFormat("#.#");
totbayar1=String.valueOf(f.format(totbayar));
txbayar.setText(totbayar1);
}
Analisa: Pada method total ini berisi perhitungan
aritmatika yang berfungsi menampilkan nilai jumlah dari txharga*txbanyak
kemudian hasil nilainya akan ditampilkan pada txbayar dengan format desimal 1
angka di belakang koma.
public
void bersih(){
txnoid.setText("");
txnama.setText("");
txharga.setText("");
txbanyak.setText("");
txbayar.setText("");
}
Analisa: Pada method bersih ini berfungsi untuk
mengeset nilai kosong pada semua jTextField.
private
void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
konekdatabase();
tampildataketabel();
}
Analisa: Pada kode program di atas yang ditanamkan
didalam jButton2 dengan event clicked memanggil method konekdatabase dan
tampildataketabel. Pemanggilan method konekdatabase agar file database dapat
terbaca dengan koneksi yang sudah ada. Kemudian method tampildataketable
berfungsi untuk memanggil isi tabel dengan perintah query select *from
datatiketbola.
private
void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
konekdatabase();
data();
if(no_id.equals("")||nama.equals("")||jenistiket.equals("Pilih
Tiket")||
harga.equals("")||banyak.equals("")||totalbayar.equals(""))
{
JOptionPane.showMessageDialog(null, "ada data yg belum dimasukkan,
periksa kembali!");
}
else{
simpandata();
bersih();
tampildataketabel();
JOptionPane.showMessageDialog(null, "Data sudah masuk. Terima
kasih!");
}
}
Analisa: Pada event clicked yang berada di jButton1
ini memanggil method konekdatabase untuk menghubungkan database ke
program dan method data untuk memanggil nilai variabel. Pada baris ke 442-453
berisi struktur kontrol if...else yang bermaksut jika nilai no_id, nama,
jenistiket, harga, banyak dan total bayar berisi nol atau pilih paket maka akan
tampil jOptionpane yang berisi ada data yang belum dimasukkan, periksa kembali.
Sedangkan apabila semua jTextField sudah terisi maka akan menjalankan method
simpan data untuk memasukkan data ke dalam database, method bersih untuk
mengeset nilai kosong pada semua jTextField, method tampildataketabel untuk
menampilkan data dari database ke program dan menampilkan jOptionPane yang
berisi Data sudah masuk. Terima kasih.
private
void jButton3MouseClicked(java.awt.event.MouseEvent evt) {
konekdatabase();
data();
if(no_id.equals(""))
{
JOptionPane.showMessageDialog(null, "Inputkan No.Identitas
anda!");
}
else{
try
{
Statement
statement=con.createStatement();
String sql="update datatiketbola set
nama='"+nama+
"',jenistiket='"+jenistiket+"',harga='"+harga+"',banyak='"
+banyak+"',totalbayar='"+totalbayar+"' where
no_id='"+no_id+"'";
statement.executeUpdate(sql);
statement.close();
con.close();
JOptionPane.showMessageDialog(null,
"Data telah terubah!");
}
catch (Exception e)
{
System.out.println("Error
:"+e);
}
simpandata();
bersih();
tampildataketabel();
}
}
Analisa: Pada jButton3 yang berisi event clicked ini
memanggil konekdatabase dan data dengan maksut seperti yang sudah kami jelaskan
diatas, kemudian terdapat struktur kontrol if...else pada baris 462-486 yang
bermaksut, apabila nilai pada no_id atau txnoid bernilai kosong maka akan tampil
jOptionPane yang berisi inputkan no.identitas anda!. Sedangkan apabila pada
no_id sudah berisi nilai maka akan menjalankan program baris 470-485 yang
bermaksut mengupdate atau memperbarui nilai pada database dengan kata kunci
no_id yang dalam database sudah diset sebagai primary key sehingga tidak ada
nilai yang sama pada field no_id. Apabila data tidak ada maka akan mengeksekusi
kode program 479-482 yang akan mencetak kesalahan. Kemudian memanggil method
simapndata, bersih dan tampildataketabel dengan maksut yang sudah kami jelaskan
diatas.
private
void jButton4MouseClicked(java.awt.event.MouseEvent evt) {
konekdatabase();
data();
try
{
String
cari=JOptionPane.showInputDialog("Masukkan No Identitas anda");
Statement
statement=con.createStatement();
String sql="delete from
datatiketbola where no_id='"+cari+"'";
statement.executeUpdate(sql);
statement.close();
con.close();
JOptionPane.showMessageDialog(null,
"Data telah terhapus!");
}
catch (Exception e)
{
System.out.println("Error
:"+e);
}
bersih();
tampildataketabel();
}
Analisa: Kode program yang berada didalam jButton4
dengan event clicked ini bermaksut menghapus nilai perintah query delete from
datatiketbola dengan kata kunci yang berada pada variabel cari yang berisi
jOptionPane input.
private
void cbtiketItemStateChanged(java.awt.event.ItemEvent evt) {
hargatiket();
txharga.setEnabled(false);
}
Analisa: Script dengan event itemstatechanged yang
berada pada cbtiket ini berisi method hargatiket untuk mengeset nilai txharga
sesuai item pada cbtiket kemudian txharga di disable supaya tidak diubah
nilainya oleh user.
private
void formWindowOpened(java.awt.event.WindowEvent evt) {
txharga.setEnabled(true);
txbanyak.setText("");
txharga.setText("0");
txbayar.setEnabled(false);
JOptionPane.showMessageDialog(null,
"SELAMAT DATANG DI APLIKASI PEMBELIAN TIKET BOLA");
}
Analisa: Pada jFrame ini diberi event windowopened
yang berisi txharga diaktifkan, txbayar diset nilainya kosong, txharga diset
nilai nol, txbayar didisable dan menampilkan jOptionPane yang berisi selamat
datang di aplikasi pembelian tiket bola.
private
void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(null,
"Terima Kasih atas kunjungan anda!");
System.exit(0);
}
Analisa: Kode program diatas berisi event
actionperformed pada jMenuItem1 yang menampilkan jOptionPane dan menutup
program dengan System.exit(0).
Pada jMenu Edit sudah kami tanamkan kode program sama
dengan 4 buah jbutton yang sudah kami bahas diatas. Untuk kode program cari
data akan kami bahas sebagai berikut:
private
void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {
konekdatabase();
try {
String
cari=JOptionPane.showInputDialog("Masukkan No Identitas anda");
Statement
statement=con.createStatement();
String sql="select * from
datatiketbola where no_id like '"+cari+"'";
ResultSet rs=statement.executeQuery(sql);
if(rs.next()) {
txnoid.setText(rs.getString(1));
txnama.setText(rs.getString(2));
cbtiket.setSelectedItem(rs.getString(3));
txharga.setText(rs.getString(4));
txbanyak.setText(rs.getString(5));
txbayar.setText(rs.getString(6));
} else{
JOptionPane.showMessageDialog(null, "DATA TIDAK ADA DALAM
DATABASE");
}
statement.close();
con.close();
} catch (Exception ex) {
System.out.println("Error:
"+ex);
}
}
Analisa: Pada kode program diatas ditanamkan pada
jMenuItem6 (menu cari data) yang bermaksut mencari data dengan kata kunci no_id
yang inputanya dari jOptionPane kemudian di eksekusi oleh perintah query like
untuk mencari data. Setelah data ditemukan maka data akan diset pada semua
jTextField dan jComboBox.
private
void txbanyakKeyReleased(java.awt.event.KeyEvent evt) {
txharga.setEnabled(false);
total();
}
Analisa: Pada kode program yang berada di txbanyak ini
memiliki event keyreleased, apabila kita mengetikkan nilai pada txbanyak maka
akan tampil perintah didalamnya. Txharga di disable dan memanggil method total
yang berisi perhitungan aritmatika dari txharga*txbanyak kemudian
hasilnya ditampilkan pada txbayar.
private
void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {
tentang frm=new tentang();
frm.show();
}
Analisa: Pada jMenuItem7 (About) berisi event
actionperformed yang akan menampilkan form tentang.
Pada jFrame tentang
public
tentang() {
initComponents();
setTitle("Tentang Kami");
}
Analisa: Untuk pengesetan judul program yaitu Tentang
Kami.
private
void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
dispose();
}

0 Komentar:
Posting Komentar
Berlangganan Posting Komentar [Atom]
<< Beranda