• Tidak ada hasil yang ditemukan

KONEKSI KE DATABASE DENGAN JDBC 2

N/A
N/A
Protected

Academic year: 2021

Membagikan "KONEKSI KE DATABASE DENGAN JDBC 2"

Copied!
12
0
0

Teks penuh

(1)

KONEKSI KE DATABASE DENGAN JDBC 2

Menampilkan ke JTable

Pada begian ini melanjutkan program dan rancangan JFrame sebelumnya,

kamudian ditambahkan tampilan tabel di bawahnya. Tabel akan menampilkan setiap kali

ada perubahan, setelah menekan tombol Simpan. Ubahlah Form sebelum seperti pada

rancangan From di bawah ini :

Komponen Property

Nilai

JFrame Class

setTitle()

NewJFrameUbahData

Mengubah Data Pegwai

ButtonGroup Variable

Name

buttonGroupSeks

(2)

JButton Variable

Name

SetText()

jButtonSelesai

Selesai

JButton Variable

Name

SetText()

jButtonSimpan

Simpan

JComboBox

Variabel Name

model

jComboBoxAgama

--Pilihan---

ISLAM

PROTESTAN

KATHOLIK

HINDU

BUDHA

JRadioButton

Variable Name

jRadioButtonL

JRadioButton

Variable Name

jRadioButtonP

JComboBox Variable

Name

model

jComboBoxNip

kosongkan

JTextField Variable

Name

SetText()

JTextField jTextFieldNama

“”

JTextField Variable

Name

SetText()

JTextField jTextFieldAlamat

“”

Mengatur Model JTable

• Klik bagian jTabe1

• Klik kanan tombol mouse pada PopUp menu

• Klik pilih Customize Code

• Pada dialog Initilization code

• Klik comboBox Custome property, seperti pada gambar berikut :

(3)

Diubah menjadi,

jTable.setModel(new javax.swing.DefaultTableModel( data, judulKolom

));

Seperti telihat gambar di bawah ini :

(4)

Klik tombol OK

Tambahkan Kode :

/* * NewJFrameUbahData.java * * Created on 19 Mei 10, 1:00:03 */ /** * * @author Badiyanto */ import java.sql.*; import java.io.*; import java.util.Vector; import javax.swing.*; import javax.swing.table.TableColumn;

(5)

public class NewJFrameUbahData extends javax.swing.JFrame { NewClassKoneksi x;

private Vector<Vector<String>> data; private Vector<String> judulKolom;

/** Creates new form NewJFrameUbahData */ public NewJFrameUbahData() {

judulKolom = new Vector<String> (); judulKolom.add("Nip");

judulKolom.add("Nama"); judulKolom.add("Alamat"); judulKolom.add("Seks"); judulKolom.add("Agama");

data = new Vector<Vector<String>> (); initComponents(); x = new NewClassKoneksi(); buttonGroup1.add(jRadioButtonL); buttonGroup1.add(jRadioButtonP); x.koneksi(); tampilTabel(); jScrollPane1.setViewportView(jTable1); }

Penjelasan

import java.util.Vector; import javax.swing.*; import javax.swing.table.TableColumn;

berkaitan dengan penggunaan kelas yang dipakai pada Jtable.

private Vector<Vector<String>> data;

Deklarasi variabel data vektor 2 dimensi untuk menempatkan isi tabel

private Vector<String> judulKolom;

Deklarasi variabel judulKolom vektor 1 dimensi untuk memberikan nama judul kolom

pada tabel.

judulKolom = new Vector<String> ();

Menciptakan kelas vektor 1 dimensi, untuk judul kolom

judulKolom.add("Nip");

judulKolom.add("Nama"); judulKolom.add("Alamat");

(6)

judulKolom.add("Seks"); judulKolom.add("Agama");

Mengisi nama judul kolom pada kolom 0 “Nip”, kolom 1 “Nama” dan seterusnya.

data = new Vector<Vector<String>> ();

Menciptakan kelas vektor 2 dimensi, untuk data.

Mengisi ComboNip

private void formWindowActivated(java.awt.event.WindowEvent evt) { // TODO add your handling code here:

String sql="SELECT nip FROM pegawai ORDER BY nip"; jComboBoxNip.removeAllItems(); try { x.st = x.conn.createStatement(); x.rs = x.st.executeQuery(sql); }

catch (SQLException e){ return; } try{ jComboBoxNip.addItem("--Pilihan--"); while (x.rs.next()) { jComboBoxNip.addItem(x.rs.getString("nip").toString()); } x.rs.close(); x.st.close(); }

catch (SQLException e){ return;

}

}

Menampilkan dari hasil Query ke JTable, dalam hal ini program dibuat secara modular

menggunakan fungsi void tampilTable();

Cara pemanggilan tampilTabl(), adapun kode programnya adalah seperti kode berikut :

void tampilTabel() {

jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); TableColumn col = null;

col=jTable1.getColumnModel().getColumn(0); col.setPreferredWidth(50); col=jTable1.getColumnModel().getColumn(1); col.setPreferredWidth(100); col=jTable1.getColumnModel().getColumn(2); col.setPreferredWidth(100); col=jTable1.getColumnModel().getColumn(3);

(7)

col.setPreferredWidth(75);

col=jTable1.getColumnModel().getColumn(4); col.setPreferredWidth(100);

try {

String query=null;

query = "SELECT * FROM pegawai ORDER By nip";

x.st = x.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.TYPE_SCROLL_SENSITIVE);

x.rs = x.st.executeQuery(query);

System.out.println("OK Eksekusi Query Berhasil"); }

catch (SQLException e){

System.err.println("Eksekusi Query Ada kelaslahan ."+ e.getMessage());

return; }

try {

data.clear();

ResultSetMetaData meta = x.rs.getMetaData(); int kolom = meta.getColumnCount();

while(x.rs.next()) {

Vector row = new Vector(kolom); for (int i=1; i<=kolom; i++) { row.addElement(x.rs.getObject(i)); } data.addElement(row); } x.st.close(); x.rs.close();

} catch (SQLException se) {

System.err.println(

"Kesalahan perintah SQL : " + se.getMessage()); }

}

Penjelasan :

jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); TableColumn col = null

;

Untuk melakukan pengaturan lebar masing-masing kolom, tabel secara default lebar

masing-masing kolom akan dibagi rata sama lebarnya. Namun kadang kala tidak semua

kolom membutuhkan lebar yang sama. Misalnya NIP lebar hanya 5 karakter tidak sama

dengan NAMA yang lebarnya 25 karakter. Untuk mengatur lebar kolom pertama

mengeset metod jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

(8)

col=jTable1.getColumnModel().getColumn(0);

col.setPreferredWidth(50);

Mengatur lebar pada kolom 0, 50 pixel

col=jTable1.getColumnModel().getColumn(1); col.setPreferredWidth(100);

Mengatur lebar pada kolom 1, 100 pixel

String query=null;

query = "SELECT * FROM pegawai ORDER By nip"; x.st = x.conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.TYPE_SCROLL_SENSITIVE); x.rs = x.st.executeQuery(query);

Type ResultSet

• TYPE_FORWARD_ONLY - set hasil tidak digulir yaitu hanya kursor bergerak

maju, dari sebelum baris pertama setelah baris terakhir.

• TYPE_SCROLL_INSENSITIVE - set hasilnya adalah digulir; kursor yang

dapat bergerak baik maju dan mundur relatif terhadap posisi saat ini, dan dapat

pindah ke posisi absolut.

• TYPE_SCROLL_SENSITIVE - set hasilnya adalah digulir; kursor yang dapat

bergerak baik maju dan mundur relatif terhadap posisi saat ini, dan dapat pindah

ke posisi absolut.

x.rs = x.st.executeQuery(query);

Menjalankan perintah Query

ResultSetMetaData meta = x.rs.getMetaData(); int kolom = meta.getColumnCount();

ResultSetMetaData dapat digunakan untuk melihat informasi pada hasil akses ke tabel.

Misal:

– tipe data kolom

– jumlah kolom

mengambil nilai jumlah kolom hasil dari perintah query

while(x.rs.next())

{

Vector row = new Vector(kolom); for (int i=1; i<=kolom; i++)

(9)

{

row.addElement(x.rs.getObject(i)); }

data.addElement(row); }

Melakukan loop, sejumlah rekaman dengan perintah while(x.rs.next())

Vector row = new Vector(kolom);

Menciptakan tiap-tiap baris dengan sejumlah kolom, dalam kasus ini ada 5 kolom

for (int i=1; i<=kolom; i++)

{

row.addElement(x.rs.getObject(i)); }

Setiap bari menambah data masing-masing l5 kolom

data.addElement(row);

menambahkan ke sel tabel

ComboBoxNip di klik

private void jComboBoxNipMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

tampilkan(jComboBoxNip.getItemAt(

jComboBoxNip.getSelectedIndex()).toString()); }

Fungi tampilkan

void tampilkan(String nip) {

String sql="SELECT * FROM pegawai WHERE nip='"+nip+"';"; try{

x.st = x.conn.createStatement(); x.rs = x.st.executeQuery(sql); }

catch (SQLException e){ return; } try{ while (x.rs.next()) { jTextFieldNama.setText(x.rs.getString("nama").toString()); jTextFieldAlamat.setText( x.rs.getString("alamat").toString()); if (x.rs.getString("seks").equals("L")) jRadioButtonL.setSelected(true); else

(10)

jRadioButtonP.setSelected(true); int i=0; int ketemu=0; while (i<=jComboBoxAgama.getItemCount()-1 ) { if (x.rs.getString("agama").equals( jComboBoxAgama.getItemAt(i).toString() )) {

ketemu=i; //meyimpan nilai index }

i++; }

// menampilkan hasil ke combo

jComboBoxAgama.setSelectedIndex(ketemu); }

x.rs.close(); x.st.close(); }

catch (SQLException e){ return;

} }

Penjelasan :

jComboBoxAgama.setSelectedIndex(1);

yang tampilkan pada jComboBoxAgama “ISLAM”

jComboBoxAgama.setSelectedIndex(2);

yang tampilkan pada jComboBoxAgama “PROTESTAN” dan seterusnya

Elemen jComboBoxAgama

int i=0; int ketemu=0; while (i<=jComboBoxAgama.getItemCount()-1 ) { if (x.rs.getString("agama").equals( jComboBoxAgama.getItemAt(i).toString() )) {

ketemu=i; //meyimpan nilai index }

i++; }

// menampilkan hasil ke kombo

jComboBoxAgama.setSelectedIndex(ketemu); }

if (x.rs.getString("agama").equals(

jComboBoxAgama.getItemAt(i).toString() ))

{

(11)

ketemu=i; //meyimpan nilai index

}

Membandingkan x.rs.getString("agama"). dan jComboBoxAgama.getItemAt(i).

i adalah nilai indeks atau posisi, jika sama berarti ketemu disimpan ke variabel ketemu,

lalu ditampilkan dengan perintah jComboBoxAgama.setSelectedIndex(ketemu);

Tombol Simpan

private void jButtonSimpanMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

String nip,nama,alamat,jk,agama,sql; nip = jComboBoxNip.getItemAt( jComboBoxNip.getSelectedIndex()).toString(); nama =jTextFieldNama.getText(); alamat =jTextFieldAlamat.getText(); agama =jComboBoxAgama.getItemAt( jComboBoxAgama.getSelectedIndex()).toString(); if (jRadioButtonL.isSelected()==true) jk ="L"; else jk="P";

sql = "UPDATE pegawai SET nama='"+nama+"',"+ "alamat='"+alamat+"',"+ "seks='"+jk+"',"+ "agama='"+agama+"'"+ " WHERE nip='"+nip+"'"; jTextField1.setText(sql); try { x.st = x.conn.createStatement(); x.st.execute(sql);

} catch (SQLException e){

System.out.println("Penyimpanan Gagal "); return;

}

System.out.println("data sudah tersimpan!"); tampilTabel();

jScrollPane1.setViewportView(jTable1); }

Hasil Keluaran

(12)

Program Tombol Selasi

private void jButtonSelesaiMouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here: NewJFrameUbahData.this.setVisible(false); }

Referensi

Dokumen terkait

Dengan diketahuinya gambaran MRSA pada penderita infeksi kaki diabetik di Poliklinik Kaki Diabetik RSUD Ulin Banjarmasin, maka dapat memberikan informasi mikrobiologis

Reaksi yang paling utama dari senyawa aromatik adalah reaksi substitusi aromatik elektrofilik digambarkan sebagai (E+) yang akan bereaksi dengan cincin aromatik

Kebijakan puritanisme oleh sultan Aurangzeb dan pengislaman orang-orang Hindu secara paksa demi menjadikan tanah India sebagai negara Islam, dengan menyerang berbagai praktek

Variabilitas DJJ : adalah perubahan DJJ dari frekuensi dasar pada daerah tanpa kontraksi uterus dan tanpa gerak janin, minimal pada kurun waktu dua menit (lihat

Berdasarkan uraian yang telah dijelaskan sebelumnya, maka dapat disimpulkan bahwa bahan ajar berupa buku siswa menggunakan konteks bahan bakar minyak dengan pendekatan

Skripsi ini berjudul “Perlindungan Hukum terhadap Pihak Ketiga terkait dengan Pengurusan dan Pemberesan Piutang Debitor Pailit Yang Belum Jatuh Waktu”.Syarat

Pola motif awal pada birama 24-26 adalah melodi unison yang dimainkan oleh vibraphone dan kolintang sopran, sedangkan gitar bas memainkan harmoni dengan progresi

RAYA BANDUNG R.Utilitas Toilet Rumah Jaga Keamanan Y = 9247650.000 LOKASI PABRIK PEMBANGUN : JUDUL PROYEK : JUDUL GAMBAR : TANGGAL :.. ANALISIS DAMPAK LALU LINTAS RENCANA ALIH