• Tidak ada hasil yang ditemukan

MODUL X JAVA DATABASE

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODUL X JAVA DATABASE"

Copied!
8
0
0

Teks penuh

(1)

MODUL X

JAVA DATABASE

I.

TUJUAN

1. Memahami Konsep Graphical User Interface (GUI) di Java dan Komponen Dasar Swing

2. Memahami koneksi database menggunakan JDBC dan JDBC API

3. Mampu membuat aplikasi database sesuai dengan studi kasus nyata di masyarakat

II.

DASAR TEORI

1. API untuk Aplikasi GUI di Java

a. AWT (Abstract Window Toolkit)

Library dan komponen GUI (java.awt) yang pertama kali diperkenalkan oleh Java, Sun tidak

merekomendasikan lagi penggunaan komponen GUI dari AWT

b. Swing or JFC (Java Foundation Class)

Library dan komponen GUI (javax.swing) terbaru dari Java dan yang direkomendasikan Sun

untuk pemrograman GUI. Komponen Swing sebagian besar adalah turunan AWT dan lebih

lengkap daripada AWT

2. Fitur Swing

a. Komponen GUI Lengkap Æ button, listbox, combobox, textarea, dsb

b. Pluggable Look-and-Feel Æ tampilan GUI dapat diubah sesuai dengan kehendak (tidak perlu

mengikuti native sistem operasi)

c. Data Transfer Antar Komponen Æ drag and drop, copy and paste

d. Internationalization Æ proses desain aplikasi yang memungkinkan aplikasi dijalankan sesuai

dengan preferensi tanpa rekompilasi

e. Localization Æ proses translasi teks ke bahasa lokal dan menambahkan komponen lokal

3. Komponen Swing

a. Top-Level Container

Kontainer dasar dimana komponen lainnya diletakkan (JFrame, JDialog dan Applet)

a. Intermediate Container

Kontainer perantara dimana komponen lainnya diletakkan

(JPanel, JScrollPane, JTabbedPane, JToolbar, JSplitPane)

b. Atomic Component

Komponen yang memiliki fungsi spesifik dan menerima interaksi langsung dari user (JButton,

JLabel, JTextArea, dsb)

c. Layout Manager

(2)

4. JDBC

JDBC

Conne

tertana

kelas

Umum

a. Me

b. Me

c. Me

Bebera

aplikas

a. java

b. java

Na

c. ora

d. ora

5. JDBC

JDBC A

kelas d

databa

JDBC A

a. JDB

b. JDB

dan JDBC A

adalah stand

ectivity Applic

am dan diimp

dan interfa

mnya, JDBC AP

mbangun hub

mbangun dan

mproses hasil

apa vendor d

i mereka ke d

a.sql : terdiri d

ax.sql : berisi

ming and Dire

acle.jdbc : beri

acle.sql : beris

Componen

API disebut ju

dan interface,

se yang dipilih

API berisi 2 (d

BC API Æ apl

BC driver API

Gam

API

dar Java Data

ation Program

lementasikan

ace yang dig

PI melakukan

bungan antara

mengeksekus

l

database yang

database. Kom

dari kompone

standard pe

ectory Interfa

isi fungsi pend

i kelas dan int

nts dan Arch

uga driver JDB

, untuk mem

h.

dua) set utam

ikasi (antarmu

I Æ driver (an

bar 9.1. The

abase Connec

mming Interfa

dalam JDBC

gunakan untu

3 (tiga) fungsi

aplikasi Java d

si pernyataan

berbeda me

mponen JDBC

en JDBC stand

ndukung JDB

ace (JNDI) da

dukung yang d

terface yang m

hitecture

BC, yang men

mbangun kone

a dari antarm

uka untuk apli

ntarmuka untu

e componen

ctivity , dan

ce ( API JDBC

API . Pada da

k berinteraks

berikut :

dan database t

SQL

enyediakan be

paling popule

dar

BC , yang men

an Java Trans

disediakan oleh

menyediakan p

ngimplementa

eksi dan mem

uka, yaitu :

ikasi Java And

uk database A

nts and archi

JDBC API

C ). Semua ko

asarnya , JDB

si dengan da

terkait

erbagai driver

er terletak di p

nyediakan fitu

saction Service

h java.sql dan

pemetaan Java

sikan semua k

manipulasi dat

a )

Anda )

itecture of a

merupakan J

omponen dan

C API terdiri

atabase dari

r JDBC untuk

paket berikut

ur tambahan

e (JTS).

javax.sql inter

a untuk SQL

komponen JD

ta antara apli

a JDBC API

ava Database

n teknik JDBC

dari satu set

aplikasi Java.

k mendukung

:

, seperti Java

rface.

DBC termasuk

kasi Java dan

e

C

t

.

g

a

k

n

(3)

Tabel 9.1. Classes defined in the JDBC API

Classes Function

DriverManager

Handle loading and unloading of drivers and establish a connection to a

database

DriverPropertyInfo

All methods defined in this class are used to setup or retrieve

properties of a driver. The properties can then be used by the

Connection object to connect to the database

Type

The Type class is only used to define the constants used for identifying

of the SQL types

Date

This class contains methods to perform conversion of SQL date formats

and Java Date objects

Time

This class is similar to the Date class, and it contains methods to

convert between SQL time and Java Time object

TimeStamp

This class provides additional precision to the Java Date object by

adding a nanosecond field

Tabel 9.2. Interfaces defined in the JDBC API

Interfaces Function

Driver

The primary use of the Driver interface is to create the Connection

objects. It can also be used for the collection of JDBC driver meta data

and JDBC driver status checking

Connection

This interface is used for the maintenance and status monitoring of a

database session. It also provides data access control through the use of

transaction locking

Statement

The Statement methods are used to execute SQL statements and

retrieve data from the ResultSet object

PreparedStatement

This interface is used to execute precompile SQL statements.

Precompile statements allow for faster and more efficient statement

execution, and more important, it allows running dynamic query with

querying parameters ’ variation. This interface can be considered as a

subclass of the Statement

CallableStatement

This interface is mainly used to execute SQL stored procedures. Both

IN and OUT parameters are supported. This interface can be

considered as a subclass of the Statement

ResultSet

The ResultSet object contains the queried result in rows and columns

format. This interface also provides methods to retrieve data returned

by an SQL statement execution. It also contains methods for SQL data

type and JDBC data type conversion

ResultSetMetaData

This interface contains a collection of metadata information or physical

descriptions associated with the last ResultSet object

DatabaseMetaData

This interface contains a collection of metadata regarding to the

database used, including the database version, table names, columns, and

supported functions

(4)

6. Cara K

7. Tahap

Kerja JDBC

pan Akses D

G

Gam

Database

Gambar 9.2.

mbar 9.3. So

. Cara Kerja

urce Code J

a JDBC

JDBC Test

(5)

III.

GUIDED (APLIKASI BIODATA)

1. Buatlah database dengan menggunakan mySQL, dengan desain tabel sebagai berikut :

CREATE TABLE anggota (

-> id INT NOT NULL AUTO_INCREMENT, nama VARCHAR(50) NOT NULL,

-> alamat VARCHAR(100) NOT NULL, -> telp VARCHAR(30) NOT NULL,

-> PRIMARY KEY (id ));

2. Buatlah aplikasi biodata dengan desain seperti gambar dibawah ini.

Langkah-langkah :

a. Buatlah projek baru di Netbeans pilih File Æ New Project.

b. Pilih Categories Æ Java dengan Projects Æ Java Application Æ klik Next.

c. Isi nama project dengan TestDatabase dan pilih lokasi (folder) project yang akan Anda kerjakan

d. Hilangkan tanda (V) pada check box Set as Main Project dan Create Main Class Æ klik finish

e. Kemudian desainlah sebuah tampilan aplikasi seperti gambar dibawah ini

f. Kemudian buatlah source code berikut ini :

package tes.database; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel;

public class FormKoneksi extends javax.swing.JFrame { private static Connection koneksi;

private DefaultTableModel model; /** jTabel Button Text Field Label MySQL JDBC

(6)

model.addColumn("ID"); model.addColumn("Nama"); model.addColumn("Alamat"); model.addColumn("Telepon"); ambil_data_tabel(); }

private static Connection buka_koneksi() { if (koneksi==null) { try { String url="jdbc:mysql://localhost:3306/belajar"; String user="root"; String password=""; DriverManager.registerDriver(new com.mysql.jdbc.Driver()); koneksi=DriverManager.getConnection(url,user,password); }catch (SQLException t) {

System.out.println("Error membuat koneksi"); }

}

return koneksi; }

private void ambil_data_tabel() { model.getDataVector().removeAllElements(); model.fireTableDataChanged(); try { Connection c=buka_koneksi(); Statement s= c.createStatement(); String sql="Select * from anggota"; ResultSet r=s.executeQuery(sql);

while (r.next()) {

Object[] o=new Object[4]; o[0]=r.getString("id"); o[1]=r.getString("nama"); o[2]=r.getString("alamat"); o[3]=r.getString("tlp") model.addRow(o); } r.close(); s.close(); ambil_tabel_klik(); }catch(SQLException e) {

System.out.println("Terjadi kesalahan "+e.getMessage()); }

}

private void ambil_tabel_klik() { int i=this.jTable1.getSelectedRow(); if(i==-1) { return; }

String kode=(String) model.getValueAt(i, 0); this.lblKode.setText(kode);

String nama=(String) model.getValueAt(i, 0); this.TxtNama.setText(nama);

String alamat=(String) model.getValueAt(i, 1); this.TxtAlamat.setText(alamat);

String tlp=(String) model.getValueAt(i, 2); this.TxtTelepon.setText(tlp);

(7)

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

this.ambil_tabel_klik();

}

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

Connection c=buka_koneksi(); if("Add".equals(this.cmbAdd.getText())) { this.cmbAdd.setText("Save"); this.cmbEdit.setText("Cancel"); this.cmbDelete.enable(false); this.cmbRefresh.enable(false); this.lblKode.setText("0"); this.TxtNama.setText(""); this.TxtAlamat.setText(""); this.TxtTelepon.setText(""); }else if("Save".equals(this.cmbAdd.getText())) {

String sqlkode="Insert into anggota (`nama`,`alamat`,`tlp`) " + "values ('"+this.TxtNama.getText()+"'," + "'"+this.TxtAlamat.getText()+"'," + "'"+this.TxtTelepon.getText()+"')"; try { PreparedStatement p2=(PreparedStatement) c.prepareStatement(sqlkode); p2.executeUpdate(); p2.close();

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Terjadi kesalahan

"+ex.getMessage()); } this.cmbAdd.setText("Add"); this.cmbEdit.setText("Edit"); this.cmbDelete.enable(true); this.cmbRefresh.enable(true); }else if("Update".equals(this.cmbAdd.getText())) {

String sqlkode="Update anggota SET

`nama`='"+this.TxtNama.getText()+"'," + "`alamat`='"+this.TxtAlamat.getText()+"'," + "`tlp`='"+this.TxtTelepon.getText()+"' " + "Where ID='"+this.lblKode.getText()+"'"; try { PreparedStatement p2=(PreparedStatement) c.prepareStatement(sqlkode); p2.executeUpdate(); p2.close();

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Terjadi kesalahan

"+ex.getMessage()); } this.cmbAdd.setText("Add"); this.cmbEdit.setText("Edit"); this.cmbDelete.enable(true); this.cmbRefresh.enable(true); } }

(8)

this.cmbEdit.setText("Cancel"); this.cmbDelete.enable(false); this.cmbRefresh.enable(false); }else if("Cancel".equals(this.cmbEdit.getText())) { this.cmbAdd.setText("Add"); this.cmbEdit.setText("Edit"); this.cmbDelete.enable(true); this.cmbRefresh.enable(true); } }

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

Connection c=buka_koneksi();

String sqlkode="Delete from anggota "

+ "Where ID='"+this.lblKode.getText()+"'"; try { PreparedStatement p2=(PreparedStatement) c.prepareStatement(sqlkode); p2.executeUpdate(); p2.close();

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Terjadi kesalahan

"+ex.getMessage()); }

}

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

ambil_data_tabel();

}

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() { public void run() {

new FormKoneksi().setVisible(true); }

}); }

// Variables declaration - do not modify private javax.swing.JTextField TxtAlamat;

private javax.swing.JTextField TxtNama; private javax.swing.JTextField TxtTelepon; private javax.swing.JButton cmbAdd; private javax.swing.JButton cmbDelete; private javax.swing.JButton cmbEdit; private javax.swing.JButton cmbRefresh; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JPanel jPanel1;

private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1;

private javax.swing.JLabel lblKode;

// End of variables declaration }

Gambar

Tabel 9.1. Classes  defined  in  the  JDBC  API  Classes Function

Referensi

Dokumen terkait

Organisasi Tunjangan masih berdasarkan golongan bukan kinerja, tidak ada apresiasi terhadap motivasi berprestasi yang baik, sistem mutasi dan promosi tidak transparan,

6 (i) Kursus yang dipohon untuk pemindahan kredit mempunyai pertindihan sekurang-kurangnya 75% dengan kursus yang ditawarkan di Universiti ini; (ii) Gred atau mata gred

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

komponen public key system (PKS) diantaranya certification authority (CA) merupakan sebuah body/entity yang memberikan dan mengelola sertifikat digital yang dibutuhkan

Indra Tedjakumala, diketahui bahwa jumlah gigi minimum tergantung dari sudut jumlah gigi minimum tergantung dari sudut tegangan [.. tegangan [ 

Alasan masuk S1 Pendidikan Bahasa Inggris FKIP-UT karena tidak perlu meninggalkan tugas/fleksibel merupakan pilihan terbanyak yang di pilih oleh responden

Kelompok yang diberi pakan bungkil kelapa menghasilkan rata-rata jumlah kista yang paling sedikit tetapi mempunyai kista dengan ukuran diameter paling besar dan sebaliknya