Aplikasi Database Dengan Netbeans
Aplikasi Database Dengan Netbeans
Universitas Pamulang
Pertemuan II
[email protected] (2011-2012)
page 1 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 2 of 37
Universitas Pamulang
Gambar 2.5. Mengatur nama dan lokasi JFrame Form untuk FormUtama
Klik kanan pada desain FormUtama, pilih properties dan ubah nilai Title menjadi
Aplikasi Penilaian Mahasiswa.
[email protected] (2011-2012)
page 3 of 37
Universitas Pamulang
Pada FormUtama tambahkan Menu Bar, Menu, dan Menu Item (dari Swing Menus
pada Palette), kemudian atur sebagai berikut:
Komponen
jMenu
jMenuItem
jSeparator
jMenuItem
jMenu
jMenuItem
jMenuItem
jMenu
jMenuItem
jMenu
jMenuItem
jSeparator
jMenuItem
jMenuItem
Pada frame FormUtama tambahkan Desktop Pane (dari Swing Containers pada
Palette) dan atur agar memenuhi seluruh frame. Klik kanan pada Desktop Pane dan pilih
Change Variable Name, ubah menjadi mdiDesktopPane. Desain FormUtama setelah
ditambahkan menu, menu item dan desktop pane akan menjadi seperti gambar 2.7
berikut ini:
[email protected] (2011-2012)
page 4 of 37
Universitas Pamulang
Klik tombol Source yang berada di sebelah kiri atas, kemudian tambahkan kode
program untuk mengatur ukuran dan posisi frame menjadi seperti berikut ini:
public FormUtama() {
initComponents();
aturFrame(0.9, true);
}
private void aturFrame(double skala, boolean tengah){
Dimension dimensi = Toolkit.getDefaultToolkit().getScreenSize();
setSize((int)(skala*dimensi.getWidth()),
(int)(skala*dimensi.getHeight()));
if (tengah){
setLocation((int)((dimensi.getWidth()-getWidth())/2),
(int)((dimensi.getHeight()-getHeight())/2));
}
}
dengan cara mengetik di bawah pernyataan package, atau mengklik bola lampu di
sebelah kiri dan memilih Add import for ....
Untuk kembali ke desain frame, klik pada tombol Design yang berada di kiri atas
source code, atau melalui menu View >> Editors >> Design. Klik kanan pada menu item
Selesai, pilih Events >> Action >> actionPerformed seperti pada gambar 2.8 di bawah ini:
Berikutnya pada package view tambahkan JInternalFrame dengan cara klik kanan
pada nama package, pilih New dan Other seperti pada gambar 2.9. Jika diklik New sudah
ada pilihan JInternalFrame, maka bisa langsung diklik JInternalFrame.
[email protected] (2011-2012)
page 5 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 6 of 37
Universitas Pamulang
page 7 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 8 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 9 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 10 of 37
Universitas Pamulang
Kemudian klik tombol Next, maka akan tampil kotak dialog seperti pada gambar
2.18, kemudian isi Class Name dengan DaftarMahasiswa dan klik tombol finish.
page 11 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 12 of 37
Universitas Pamulang
Jendela navigator dari JDialog DaftarMahasiswa akan tampil seperti gambar 2.22 di
bawah ini:
[email protected] (2011-2012)
page 13 of 37
Universitas Pamulang
Tambahkan pernyataan import view.FormUtama dengan cara klik pada gambar bola
lampu kemudian pilih Add import for view.FormUtama seperti pada gambar berikut ini:
[email protected] (2011-2012)
page 14 of 37
Universitas Pamulang
Tambahkan event actionPerformed pada menu item Mata Kuliah (pada menu
Master Data), di dalamnya ketik kode program di bawah ini:
if (formMataKuliah.isVisible()) {
try {
formMataKuliah.setSelected(true);
} catch (Exception ex) {}
} else {
formMataKuliah = new FormMataKuliah ();
mdiDesktopPane.add(formMataKuliah);
formMataKuliah.setVisible(true);
}
[email protected] (2011-2012)
page 15 of 37
Universitas Pamulang
tbmatakuliah
tbmahasiswa
Condensed Type
Nullable
Column Name
Condensed Type
Nullable
kodematakuliah
varchar(6)
No
nim
varchar(15)
No
namamatakuliah
varchar(30)
Yes
nama
varchar(30)
Yes
jumlahsks
int
Yes
semester
int
Yes
kelas
varchar(1)
Yes
Column Name
tbnilai
Column Name
Condensed Type
Nullable
nim
varchar(15)
No
kodematakuliah
varchar(6)
No
tugas
int
Yes
uts
int
Yes
uas
int
Yes
Gambar 2.27. Desain tabel dan relasinya pada database penilaian mahasiswa
Untuk membuatnya gunakan pernyataan-pernyataan SQL di bawah ini atau
menggunakan aplikasi yang ada.
a. Membuat database dbaplikasipenilaianmahasiswa
create database dbaplikasipenilaianmahasiswa
[email protected] (2011-2012)
page 16 of 37
Universitas Pamulang
namamatakuliah varchar(30),
jumlahsks int,
constraint pktbmatakuliah primary key (kodematakuliah)
)
[email protected] (2011-2012)
page 17 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 18 of 37
Universitas Pamulang
int i;
char ch[] = new char[1];
semesterComboBox.removeAllItems();
for (i=1; i<=14; i++){
semesterComboBox.addItem(i);
}
kelasComboBox.removeAllItems();
for (i=0;i<26;i++){
ch[0]=(char)(i+65);
kelasComboBox.addItem(new String(ch));
}
[email protected] (2011-2012)
page 19 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 20 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 21 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 22 of 37
Universitas Pamulang
try{
Class.forName(Koneksi.driver);
} catch (Exception ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"JDBC Driver tidak
ditemukan atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
try {
cn =
DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass
word="+Koneksi.password+"");
} catch (Exception ex) {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Koneksi ke
"+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
try {
String SQLStatemen = "select * from tbmahasiswa
where nim='"+nim+"'";
Statement sta = cn.createStatement();
ResultSet rset = sta.executeQuery(SQLStatemen);
rset.next();
if (rset.getRow()>0){
this.nim = rset.getString("nim");
this.nama = rset.getString("nama");
this.semester = rset.getInt("semester");
this.kelas = rset.getString("kelas");
sta.close();
rset.close();
} else {
sta.close();
rset.close();
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"NIM
\""+nim+"\" tidak
ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);
}
} catch (SQLException | HeadlessException ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Tidak dapat
membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return !adaKesalahan;
}
public Object[][] bacaDaftar(){
boolean adaKesalahan = false;
Connection cn = null;
Object[][] daftarMahasiswa = new Object[0][0];
try{
Class.forName(Koneksi.driver);
[email protected] (2011-2012)
page 23 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 24 of 37
Universitas Pamulang
}
if (!adaKesalahan){
try {
cn =
DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass
word="+Koneksi.password+"");
} catch (Exception ex) {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Koneksi ke database
"+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
int jumlahHapus;
try {
String SQLStatemen = "delete from tbmahasiswa where
nim='"+nim+"'";
Statement sta = cn.createStatement();
jumlahHapus = sta.executeUpdate(SQLStatemen);
if (jumlahHapus>0){
sta.close();
JOptionPane.showMessageDialog(null,"Data
mahasiswa dengan NIM "+nim+" sudah
dihapus","Informasi",JOptionPane.INFORMATION_MESSAGE);
} else {
sta.close();
JOptionPane.showMessageDialog(null,"Data
mahasiswa dengan NIM "+nim+" tidak
ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);
adaKesalahan = true;
}
} catch (SQLException | HeadlessException ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Tidak dapat
membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return !adaKesalahan;
}
java.awt.HeadlessException;
java.sql.Connection;
java.sql.DriverManager;
java.sql.ResultSet;
java.sql.SQLException;
java.sql.Statement;
javax.swing.JOptionPane;
[email protected] (2011-2012)
page 25 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 26 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 27 of 37
Universitas Pamulang
FormUtama.formMahasiswa.setKelas("A");
}
} else {
JOptionPane.showMessageDialog(null,"NIM tidak boleh
kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
public void tampilkanDaftar(){
if (!daftarMahasiswa.isVisible()){
DaftarMahasiswa.listMahasiswa = mahasiswa.bacaDaftar();
daftarMahasiswa = new DaftarMahasiswa(null, true);
daftarMahasiswa.setVisible(true);
if (!DaftarMahasiswa.nimDipilih.equals("")) {
if (mahasiswa.baca(DaftarMahasiswa.nimDipilih)){
FormUtama.formMahasiswa.setNim(mahasiswa.getNim());
FormUtama.formMahasiswa.setNama(mahasiswa.getNama());
FormUtama.formMahasiswa.setSemester(mahasiswa.getSemester());
FormUtama.formMahasiswa.setKelas(mahasiswa.getKelas());
}
}
}
}
javax.swing.JOptionPane;
model.Mahasiswa;
view.DaftarMahasiswa;
view.FormUtama;
[email protected] (2011-2012)
page 28 of 37
Universitas Pamulang
Buatlah class MataKuliah dalam package model dengan properti sebagai berikut:
private String kodeMataKuliah, namaMataKuliah;
private int jumlahSks;
kemudian tambahkan metode getter dan setter, serta tambahkan metode simpan,
baca, bacaDaftar, dan hapus dengan kode program berikut ini:
public boolean simpan(){
boolean adaKesalahan = false;
Connection cn = null;
try{
Class.forName(Koneksi.driver);
} catch (Exception ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"JDBC Driver tidak ditemukan
atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
try {
cn =
DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass
word="+Koneksi.password+"");
} catch (Exception ex) {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Koneksi ke "+Koneksi.database+"
gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
int jumlahSimpan=0;
boolean simpan = false;
try {
String SQLStatemen = "select * from tbmatakuliah where
kodematakuliah='"+kodeMataKuliah+"'";
Statement sta = cn.createStatement();
ResultSet rset = sta.executeQuery(SQLStatemen);
rset.next();
if (rset.getRow()>0){
sta.close();
[email protected] (2011-2012)
page 29 of 37
Universitas Pamulang
rset.close();
Object[] arrOpsi = {"Ya","Tidak"};
int pilih=JOptionPane.showOptionDialog(null,"NIM sudah
ada\nApakah data
diupdate?","Konfirmasi",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_ME
SSAGE, null,arrOpsi,arrOpsi[0]);
if (pilih==0){
simpan = true;
SQLStatemen = "update tbmatakuliah set
namamatakuliah='"+namaMataKuliah+
"', jumlahsks='"+jumlahSks+
"' where
kodematakuliah='"+kodeMataKuliah+"'";
sta = cn.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}
} else {
sta.close();
rset.close();
simpan = true;
SQLStatemen = "insert into tbmatakuliah values ('"+
kodeMataKuliah +"','"+
namaMataKuliah+"','"+ jumlahSks +"')";
sta = cn.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}
if (simpan) {
if (jumlahSimpan > 0){
JOptionPane.showMessageDialog(null,"Data mata kuliah sudah
tersimpan","Informasi",JOptionPane.INFORMATION_MESSAGE);
} else {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Gagal menyimpan data mata
kuliah","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
} catch (SQLException | HeadlessException ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Tidak dapat membuka tabel
tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return !adaKesalahan;
}
public boolean baca(String kodeMataKuliah){
boolean adaKesalahan = false;
Connection cn = null;
try{
Class.forName(Koneksi.driver);
} catch (Exception ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"JDBC Driver tidak
ditemukan atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
[email protected] (2011-2012)
page 30 of 37
Universitas Pamulang
try {
cn =
DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass
word="+Koneksi.password+"");
} catch (Exception ex) {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Koneksi ke "+Koneksi.database+"
gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
try {
String SQLStatemen = "select * from tbmatakuliah where
kodematakuliah='"+kodeMataKuliah+"'";
Statement sta = cn.createStatement();
ResultSet rset = sta.executeQuery(SQLStatemen);
rset.next();
if (rset.getRow()>0){
this.kodeMataKuliah =
rset.getString("kodematakuliah");
this.namaMataKuliah =
rset.getString("namamatakuliah");
this.jumlahSks = rset.getInt("jumlahsks");
sta.close();
rset.close();
} else {
sta.close();
rset.close();
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Kode mata kuliah
\""+kodeMataKuliah+"\" tidak
ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);
}
} catch (SQLException | HeadlessException ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Tidak dapat membuka tabel
tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return !adaKesalahan;
}
public Object[][] bacaDaftar(){
boolean adaKesalahan = false;
Connection cn = null;
Object[][] daftarMataKuliah = new Object[0][0] ;
try{
Class.forName(Koneksi.driver);
} catch (Exception ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"JDBC Driver tidak ditemukan
atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
try {
[email protected] (2011-2012)
page 31 of 37
Universitas Pamulang
cn =
DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass
word="+Koneksi.password+"");
} catch (Exception ex) {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Koneksi ke
"+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
String SQLStatemen;
Statement sta;
ResultSet rset;
try {
SQLStatemen = "select kodematakuliah,namamatakuliah
from tbmatakuliah";
sta = cn.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
rset.last();
daftarMataKuliah = new Object[rset.getRow()][2];
rset.first();
int i=0;
do {
daftarMataKuliah[i] = new
Object[]{rset.getString("kodematakuliah"),
rset.getString("namamatakuliah")};
i++;
} while (rset.next());
sta.close();
rset.close();
} catch (Exception ex){
JOptionPane.showMessageDialog(null,"Tidak dapat
membuka tabel tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return daftarMataKuliah;
}
public boolean hapus(String kodeMataKuliah){
boolean adaKesalahan = false;
Connection cn = null;
try{
Class.forName(Koneksi.driver);
} catch (Exception ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"JDBC Driver tidak ditemukan
atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
try {
cn =
DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass
word="+Koneksi.password+"");
} catch (Exception ex) {
[email protected] (2011-2012)
page 32 of 37
Universitas Pamulang
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Koneksi ke database
"+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
if (!adaKesalahan){
int jumlahHapus;
try {
String SQLStatemen = "delete from tbmatakuliah where
kodematakuliah='"+kodeMataKuliah+"'";
Statement sta = cn.createStatement();
jumlahHapus = sta.executeUpdate(SQLStatemen);
if (jumlahHapus>0){
sta.close();
JOptionPane.showMessageDialog(null,"Data mata kuliah sudah
dihapus","Informasi",JOptionPane.INFORMATION_MESSAGE);
} else {
sta.close();
JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak
ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);
adaKesalahan = true;
}
} catch (SQLException | HeadlessException ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Tidak dapat membuka tabel
tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return !adaKesalahan;
}
java.awt.HeadlessException;
java.sql.Connection;
java.sql.DriverManager;
java.sql.ResultSet;
java.sql.SQLException;
java.sql.Statement;
javax.swing.JOptionPane;
[email protected] (2011-2012)
page 33 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 34 of 37
Universitas Pamulang
[email protected] (2011-2012)
page 35 of 37
Universitas Pamulang
FormUtama.formMataKuliah.setKodeMataKuliah(
mataKuliah.getKodeMataKuliah());
FormUtama.formMataKuliah.setNamaMataKuliah(
mataKuliah.getNamaMataKuliah());
FormUtama.formMataKuliah.setJumlahSks(
mataKuliah.getJumlahSks());
}
}
}
}
javax.swing.JOptionPane;
model.MataKuliah;
view.DaftarMataKuliah;
view.FormUtama;
[email protected] (2011-2012)
page 36 of 37
Universitas Pamulang
Referensi:
1. Supriyanto, (2010), Pemrograman Database Menggunakan Java & MySQL Untuk
Pemula, Cetakan Pertama, Media Kita
2. Hariyanto, Bambang, (2007), Esensi-esensi Bahasa Pemrograman Java, Edisi 2,
Informatika Bandung, November 2007.
3. Utomo, EkoPriyo, (2009), Panduan Mudah Mengenal Bahasa Java, Yrama Widya,
Juni 2009.
4. Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007
5. http://www.netbeans.com/
6. http://www.oracle.com/
[email protected] (2011-2012)
page 37 of 37