Upload
nandaadeputra
View
438
Download
8
Embed Size (px)
DESCRIPTION
How to create Client Server Database Application Using Java and Mysql
Citation preview
Membangu
un Aplikasi databaase Client‐Server ssederhana mengggunakan java‐my
ysql (©2010)
1
Sebelumdigunaka
Membangu
m memulai pan :
J
N
M
Dalam p
membua
pembua
Sebelum
database
CREATE
USE dbp
CREATE
nip v
nama
tglla
jk va
alama
jabat
photo
PRIMA
) ENGIN
CREATE
usern
passw
statu
PRIMA
) ENGIN
INSERT
'Admin
INSERT
'cobala
un Aplikasi databa
pembuatan a
Jdk (Dalam
Netbeans ID
Mysql Serv
pembuatan a
at form dan
atan databas
m memulai m
e nya:
DATABASE
pegawai;
TABLE ka
varchar(10
varchar(5
ahir date
archar(7)
at varcha
tan varcha
o blob NOT
ARY KEY (n
NE=MyISAM
TABLE use
name varch
word varch
us varcha
ARY KEY (u
NE=MyISAM
INTO use
');
INTO use
agi', 'Ka
ase Client‐Server s
aplikasi ini,
kasus ini m
DE (Dalam k
er (Dalam k
aplikasi ini
memahami
e dan table
merancang f
dbpegawai
ryawan (
0) NOT NUL
50) NOT NU
NOT NULL
NOT NULL
r(100) NOT
ar(30) NOT
T NULL,
nip)
;
ers (
har(50) NO
har(50) NO
r(50) NOT
username)
;
rs (userna
rs (userna
ryawan');
sederhana mengg
pastikan so
menggunaka
kasus ini me
kasus ini me
diharapkan
i penggunaa
menggunak
form, kita si
i;
LL,
ULL,
,
,
T NULL,
T NULL,
OT NULL,
OT NULL,
NULL,
ame, passw
ame, passw
gunakan java‐my
oftware berik
an versi 6u2
enggunakan
enggunakan
saudara tela
an java Swin
kan mysql se
iap kan data
word, stat
word, stat
ysql (©2010)
kut telah ter
1)
n versi 6.9.1
n versi 5.1.48
ah memaham
ng (jbutton,
erver.
abase yang a
tus) VALUE
tus) VALUE
rinstal di com
)
8) atau phpt
mi cara mem
jtextfield, j
akan diguna
ES ('Nanda
ES ('Nanda
mputer yang
triad
mbuat proje
label, dll), s
akan, Beriku
a', 'cobac
a Ade Putr
2
g akan
ect baru,
serta
ut struktur
coba',
ra',
Membangu
Langkah
Tampila
un Aplikasi databa
pertama, de
an form kos
ase Client‐Server s
esain form in
ong :
sederhana mengg
put seperti p
gunakan java‐my
pada gambar
ysql (©2010)
r berikut : (na
ama form : sa
atu)
Jtextfield
Jtextfield
Jlabel (va
JdateChoo
JRadioBu
JPanel
JLabel (tid
JTextArea
JComboB
JTable
3
d (var : xnip)
(var : xnama)
ar : photo)
oser (var : xtan
utton (var : xpr
dak terlihat, v
a (var : xalama
Box (var : xjab
nggal)
ria dan xwanit
var : Dir)
at)
batan)
ta)
Membangu
Setelah
Pertama
private
{
DriverM
}
Tambah
pri
pri
pri
Lalu pan
Lalu kit
Posisika
un Aplikasi databa
selesai desa
a kita akan m
e void kon
try {
Clas
con
Manager.ge
stat
JOpt
} catch
JOpt
}
hkan variabl
ivate Conn
ivate Stat
ivate Resu
nggil metho
ta akan mem
an syntax pa
ase Client‐Server s
ain form kit
membuat me
neksi()
ss.forName
=
etConnecti
t = con.cr
tionPane.s
(Exceptio
tionPane.s
le baru :
nection co
tement sta
ultSet res
od koneksi t
mbuat syntax
ada tombol b
sederhana mengg
a akan masu
ethod untuk
e("com.mys
ion("jdbc
reateState
showMessag
on e) {
showMessag
on;
at;
s;
tersebut pad
x untuk men
browse pho
gunakan java‐my
uk ke syntax
k koneksi ke
ini ada
sql.jdbc.D
:mysql://1
ement();
geDialog(r
geDialog(r
da saat form
nampilkan p
oto :
ysql (©2010)
x program,
e database se
alah ip comp
Driver");
192.168.4.
rootPane,
rootPane,
dijalankan
photo ke for
erver :
puter server
.1/dbpegaw
"koneksi
"Koneksi
:
rm :
r
wai","root
ok...");
gagal "+e
4
t","");
e);
5
Membangun Aplikasi database Client‐Server sederhana menggunakan java‐mysql (©2010)
int jes = Chooser.showOpenDialog(this);
if(jes == JFileChooser.APPROVE_OPTION){
File f = Chooser.getSelectedFile();
Dir.setText(f.getPath());
String dir = Dir.getText();
javax.swing.ImageIcon img = new javax.swing.ImageIcon(dir);
photo.setIcon(img);
}
tambahkan variable baru :
private JFileChooser Chooser = new JFileChooser();
Selanjutnya kita akan masuk ke syntax untuk memfilter tanggal : Pisisikan syntax pada action PropertyChange : if(xtanggal.getDate()!=null){
SimpleDateFormat Format=new SimpleDateFormat("yyyy-MM-dd");
tanggal=Format.format(xtanggal.getDate());
}
Tambahkan variable baru : private String tanggal;
Buat method baru untuk mengosongkan field² yang ada pada form : private void kosong()
{
xalamat.setText("");
xjabatan.setSelectedIndex(-1);
xnama.setText("");
xnip.setText("");
xpria.setSelected(true);
xtanggal.setDate(null);
Dir.setText("");
String dir = Dir.getText();
javax.swing.ImageIcon img = new javax.swing.ImageIcon(dir);
photo.setIcon(img);
xnip.requestFocus();
}
Langkah berikutnya yaitu membuat syntax untuk mengimpan data ke database :
6
Membangun Aplikasi database Client‐Server sederhana menggunakan java‐mysql (©2010)
Posisikan syntax pada tombol save : String kelamin = (xpria.isSelected() ? "Pria" : "Wanita");
try {
FileInputStream fis = null;
PreparedStatement statement = con.prepareStatement("insert into
karyawan (nip, nama, tgllahir, jk, alamat, jabatan, photo) values (?, ?, ?,
?, ?, ?, ?)");
File file = new File(Dir.getText());
fis = new FileInputStream(file);
statement.setString(1, xnip.getText());
statement.setString(2, xnama.getText());
statement.setString(3, tanggal);
statement.setString(4, kelamin);
statement.setString(5, xalamat.getText());
statement.setString(6, (String) xjabatan.getSelectedItem());
statement.setBinaryStream(7, fis, (int) file.length());
statement.executeUpdate();
JOptionPane.showMessageDialog(rootPane, "Data berhasil disimpan");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, "Data Gagal disimpan,
kesalahan pada "+e);
}
Setelah itu, kita akan membuat syntax pemanggilan data dari database untuk keperluan edit dan
delete data :
Posisikan syntax pada tombol cari data : try {
res = stat.executeQuery("select * from karyawan where nip =
'"+xnip.getText()+"'");
if (res.next());
{
xnama.setText(res.getString("nama"));
xtanggal.setDate(res.getDate("tgllahir"));
if (res.getString("jk").equals("Pria")) {
xpria.setSelected(true);
}
if (res.getString("jk").equals("Wanita")) {
xwanita.setSelected(true);
}
xalamat.setText(res.getString("alamat"));
7
Membangun Aplikasi database Client‐Server sederhana menggunakan java‐mysql (©2010)
xjabatan.setSelectedItem(res.getString("jabatan"));
Blob blob = res.getBlob("photo");
byte[] data = blob.getBytes(1, (int) blob.length());
ImageIcon icon = new ImageIcon(data);
photo.setIcon(icon);
}
} catch (Exception e) {
xalamat.setText("");
xjabatan.setSelectedIndex(-1);
xnama.setText("");
xpria.setSelected(true);
xtanggal.setDate(null);
Dir.setText("");
String dir = Dir.getText();
javax.swing.ImageIcon img = new javax.swing.ImageIcon(dir);
photo.setIcon(img);
xnama.requestFocus();
}
Berikut syntax untuk edit data : String kelamin = (xpria.isSelected() ? "Pria" : "Wanita");
try {
int ok=JOptionPane.showConfirmDialog(rootPane, "Apakah anda juga
melakukan perubahan pada photo???","Tanya",JOptionPane.OK_OPTION);
if (ok==0)
{
FileInputStream fis = null;
PreparedStatement statement = con.prepareStatement("update
karyawan set nama=?, tgllahir=?, jk=?, alamat=?, jabatan=?, photo=? where
nip=?");
File file = new File(Dir.getText());
fis = new FileInputStream(file);
statement.setString(1, xnama.getText());
statement.setString(2, tanggal);
statement.setString(3, kelamin);
statement.setString(4, xalamat.getText());
statement.setString(5, (String) xjabatan.getSelectedItem());
statement.setBinaryStream(6, fis, (int) file.length());
statement.setString(7, xnip.getText());
statement.executeUpdate();
}else
8
Membangun Aplikasi database Client‐Server sederhana menggunakan java‐mysql (©2010)
{
PreparedStatement statement = con.prepareStatement("update
karyawan set nama=?, tgllahir=?, jk=?, alamat=?, jabatan=? where nip=?");
statement.setString(1, xnama.getText());
statement.setString(2, tanggal);
statement.setString(3, kelamin);
statement.setString(4, xalamat.getText());
statement.setString(5, (String) xjabatan.getSelectedItem());
statement.setString(6, xnip.getText());
statement.executeUpdate();
}
JOptionPane.showMessageDialog(rootPane, "Data berhasil update");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, "Data Gagal diupdate,
kesalahan pada "+e);
}
Berikut syntax untuk delete data : try {
PreparedStatement statement = con.prepareStatement("delete
from karyawan where nip=?");
statement.setString(1, xnip.getText());
statement.executeUpdate();
JOptionPane.showMessageDialog(rootPane, "Data berhasil
dihapus...");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, "Data gagal dihapus...");
}
Setelah itu buat method untuk menampilkan data ke dalam table : private void tampiltabel(String sql)
{
DefaultTableModel tbl = new DefaultTableModel();
tbl.addColumn("No");
tbl.addColumn("NIP");
tbl.addColumn("NAMA");
tbl.addColumn("TANGGAL LAHIR");
tbl.addColumn("JK");
tbl.addColumn("ALAMAT");
tbl.addColumn("JABATAN");
Membangu
}
Tampilk
Berikut kosong
tampilt
Berikut dispose
Setelah
un Aplikasi databa
try {
int
res
whil
{
}
} catch
JOpt
}
kan data ke
syntax untu
();
tabel("sel
syntax untu
e();
form input
ase Client‐Server s
n=1;
= stat.ex
le (res.ne
tbl.addRo
res.getSt
res.getSt
res.getSt
res.getSt
res.getSt
res.getSt
});
jTable1.s
(Exceptio
tionPane.s
dalam table
uk tombol c
lect * fro
uk tombol cl
selesai, bua
sederhana mengg
xecuteQuer
ext())
ow(new Obj
tring(1),
tring(2),
tring(3),
tring(4),
tring(5),
tring(6)
setModel(t
on e) {
showMessag
e saat form d
ancel :
om karyawa
lose :
at form login
gunakan java‐my
ry(sql);
ject[]{(n+
tbl);
geDialog(n
dibuka :
an");
n sederhana
ysql (©2010)
++),
null, "Err
a, berikut de
ror "+e);
sainnya : (n
nama form :
9
login)
Membangu
Pada for
dengan
Setelah
try {
usernam
Selamat
salah!
Tombol
xuser.s
Tombol
System
un Aplikasi databa
rm login ini
pada form y
koneksi ok,
res
me='"+xuse
if(
{
t datang u
}
else
{
!!");
}
} catch
}
l cancel :
setText(""
xpass.se
xuser.re
l Close :
.exit(0);
ase Client‐Server s
i, anda haru
yang pertam
, kita lanjutk
= stat.ex
er.getText
res.next()
new satu(
JOptionPa
user "+xus
this.disp
e
JOptionPa
(Exceptio
");
etText("")
equestFocu
sederhana mengg
s melakukan
ma tadi.
kan dengan
xecuteQuer
t()+"' and
))
().show()
ane.showMe
ser.getTex
pose();
ane.showMe
on e) {
);
us();
gunakan java‐my
JTextfield
JPassword
n koneksi k
syntax pada
ry("select
d password
;
essageDial
xt()+"");
essageDial
ysql (©2010)
d (var : xuser)
dfield (var : xp
kedatabase, k
a tombol log
t * from u
d='"+xpass
log(rootPa
log(rootPa
pass)
koneksi ke d
gin :
users wher
s.getText(
ane, "Logi
ane, "User
database sam
re
()+"'");
in sukses,
r / Passwo
10
ma
,
ord
Membangu
Langka
server,
Jika an
langkah
B P
I U P D L
un Aplikasi databa
ah berikutn
nda menggu
h ini :
Buka databaPilih databa
Isi host User Password Dan yang laLalu klik Go
ase Client‐Server s
nya adalah
unakan data
ase mysql mase mysql, la
: ‘%’ : ‘root’ :
ainnya pilih o
sederhana mengg
yang terpe
abase mysq
menggunakaalu pilih tab
value ‘Y’
gunakan java‐my
nting, yaitu
ql dari phpt
an Phpmyadble user, dan
ysql (©2010)
u melakuka
triad2-2-1,
dmin atau EMn klik insert
an setting p
tidak perlu
MS SQL M
pada databa
u lagi meng
Manager
11
ase mysql
gikuti
Membangu
un Aplikasi databaase Client‐Server ssederhana mengggunakan java‐myysql (©2010)
12
Membangu
Sk
1.
Berarti dmengata
Lalu tam
Pilih My
un Aplikasi databa
Setelah settike database
driver conneasinya : pad
mpil form be
ysql JDBC
ase Client‐Server s
ingan ini seseperti :
ector mysqlda jendela pr
erikut :
Driver, alau
sederhana mengg
lesai, aplika
l nya belum rojent klik k
u klik Add L
gunakan java‐my
asi siap digu
di add padakanan pada L
Library
ysql (©2010)
unakan, dan
a library proLibraries, p
n jika terjadi
ogram yang ilih add libr
error pada
kita rancanrary.
13
koneksi
ng, cara
Membangu
2.
Cara me
3.
Cara memysql,la
4.
Cara meini akan
un Aplikasi databa
engatasinya
engatasinya akukan lang
engatasinya n hilang.
ase Client‐Server s
: pastikan f
: anda belugkah² setting
: koneksi g
sederhana mengg
firewall com
um menambg diatas den
gagal saat ak
gunakan java‐my
mputer anda
ahkan host ngan benar.
kan mengek
ysql (©2010)
dalam kead
‘%’ pada ta
ksekusi print
daan off
abel user di d
tah SQL, jik
database
ka koneksi O
14
OK, error
Membangu
Tips &
Jbt
J
Letakka
J
Syntax i
un Aplikasi databa
Trik
Jika tidak inbawaan daritidak menduJika bingun
an method b
Jika terjadi
import berik
ase Client‐Server s
ngin repot² mi phptriad, nukung untukg meletakka
berikutnya se
error pada s
kut yang ber
sederhana mengg
melakukan snamun kelemk pembuatanan syntax m
ecara beruru
syntax, pada
rada pada b
gunakan java‐my
setting databmahannya dn View.
method, letak
utan agar tid
ahal sudah m
agian paling
ysql (©2010)
base mysql,database baw
kkan saja di
dak bingung
mengetik de
g atas sourc
Posisika
variebe
disini
, lebih baik waan phptria
sini :
g.
engan benar
ce program :
an
el
menggunakad ini versi
, silahkan co
:
15
kan mysql 3, jadi
ocokkan
Membangu
U U S
kx
Ahm
Jika ada
- F- a
un Aplikasi databa
Untuk tanggUkuran phoSyntax padakecil pada sxuser.setT
Agar memphuruf awal, memilih dan
a yang ingin
Facebook.coadeputranan
ase Client‐Server s
gal lahir gunoto tidak leba java bersifsyntax. ContText("");
percepat dalalalu tekan C
n tekan ente
n ditanyakan
om/nandaadnda@gmail.
sederhana mengg
nakan jcalenbih dari 500kfat case senstoh : Connecberbeda denam mengetiCtrl + Spaceer. Contoh :
n silahkan hu
deputra .com
gunakan java‐my
ndar kb sitive, jadi, pction berbengan xuserik syntax, ane, maka akan
ubungi saya
ysql (©2010)
perhatihan peda dengan .settext(
nda cukup mn muncul pi
a di :
penggunaanconnectio
""); mengetik satilihan synta
n huruf besaon,
tu huruf atauax, anda ting
16
ar dan
u dua ggal
Membangu
un Aplikasi databaase Client‐Server ssederhana mengg
gunakan java‐myysql (©2010)
17