Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 1 of 37
Pertemuan II
APLIKASI DATABASE DENGAN NETBEANS 2.1. Membuat Desain Form
Untuk membuat aplikasi database dengan Netbeans, pertama kita buat project baru dengan nama AplikasiPenilaianMahasiswa (File >> New Project, Categories = Java, Projects = Java Application) seperti pada gambar 2.1 di bawah ini:
Gambar 2.1. Membuat project AplikasiPenilaianMahasiswa Pada project AplikasiPenilaianMahasiswa yang telah kita buat tambahkan 3 Java
Package dengan nama model, view, dan controller, dengan cara klik kanan pada Source Package, pilih New, kemudian Java Package seperti pada gambar 2.2 berikut ini:
Gambar 2.2. Menambahkan Java Package pada project AplikasiPenilaianMahasiswa
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 2 of 37
Gambar 2.3. Memberi nama Java Package Kemudian tambahkan JFrame Form pada package view dengan cara mengklik kanan
Package view, pilih New dan JFrame Form seperti gambar 2.4 di bawah ini:
Gambar 2.4. Menambahkan JFrame Form pada Package view Pada Class Name isikan FormUtama dan pastikan nama package adalah view seperti
pada gambar 2.5 di bawah ini:
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 3 of 37
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.
Gambar 2.6. Mengubah properti title
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 4 of 37
Pada FormUtama tambahkan Menu Bar, Menu, dan Menu Item (dari Swing Menus pada Palette), kemudian atur sebagai berikut:
Tabel 2.1. Daftar menu dan menu item
Komponen Properti Text Variable Name
jMenu Aplikasi aplikasiMenu
jMenuItem Deskripsi deskripsiMenuItem
jSeparator - jSeparator1
jMenuItem Selesai selesaiMenuItem
jMenu Master Data masterDataMenu
jMenuItem Mahasiswa mahasiswaMenuItem
jMenuItem Mata Kuliah mataKuliahMenuItem
jMenu Transaksi transaksiMenu
jMenuItem Nilai nilaiMenu
jMenu Laporan laporanMenu
jMenuItem Nilai nilaiLaporanMenuItem
jSeparator - jSeparator1
jMenuItem Mahasiswa mahasiswaLaporanMenuItem
jMenuItem Mata Kuliah mataKuliahLaporanMenuItem
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:
Gambar 2.7. Desain FormUtama
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 5 of 37
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));
}
}
Tambahkan pernyataan import berikut ini:
import java.awt.Dimension;
import java.awt.Toolkit;
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:
Gambar 2.8. Menambahkan Events actionPerformed pada menu Selesai Kemudian ketik kode program di bawah ini agar ketika diklik pada menu item
Selesai, program ditutup.
System.exit(0);
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.
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 6 of 37
Gambar 2.9. Menambahkan Other File Type Setelah dipilih Other maka akan tampil kotak dialog seperti pada gambar 2.10, pada
categories pilih Swing GUI Forms dan pada File Types pilih JInternalFrame Form.
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 7 of 37
Gambar 2.10. Memilih JInternalFrame Kemudian klik tombol Next, maka akan tampil kotak dialog seperti pada gambar
2.11, kemudian isi class name dengan FormMahasiswa dan klik tombol finish.
Gambar 2.11. Menambahkan JInternalFrame FormMahasiswa Klik kanan pada JInternalFrame-nya dan pilih properties. Kemudian ganti properti
title untuk mengubah judul frame menjadi Master Data Mahasiswadan beri tanda check pada properti closable seperti gambar 2.12.
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 8 of 37
Gambar 2.12. Properti JinternalFrame FormMahasiswa Setelah menambahkan FormMahasiswa, tambahkan juga JInternalFrame untuk
FormMatakuliah dan FormNilai. Tambahkan komponen-komponen yang diperlukan untuk membuat tampilan seperti gambar-gambar di bawah ini. Jangan lupa mengubah properti name setiap komponen dengan nama sesuai teksnya, dengan ketentuan kata pertama menggunakan huruf kecil semua dan huruf pertama pada kata berikutnya menggunakan huruf kapital.
Gambar 2.13. Desain FormMahasiswa
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 9 of 37
Gambar 2.14. Tampilan Navigator FormMahasiswa
Gambar 2.15. Desain FormMatakuliah
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 10 of 37
Gambar 2.16. Tampilan Navigator FormMataKuliah Tambahkan JDialog dengan cara klik kanan pada nama paket, pilih New kemudian
Other. Setelah dipilih Other maka akan tampil kotak dialog, pada categories pilih Swing GUI Forms dan pada file types pilih JDialog Form, sehingga seperti pada gambar 2.17.
Gambar 2.17. Memilih JDialog Form
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 11 of 37
Kemudian klik tombol Next, maka akan tampil kotak dialog seperti pada gambar 2.18, kemudian isi Class Name dengan DaftarMahasiswa dan klik tombol finish.
Gambar 2.18. Menambahkan JDialog DaftarMahasiswa Ubah properti title menjadi Daftar Mahasiswa seperti gambar 2.19.
Gambar 2.19. Mengubah properti title Pada desain Jdialog DaftarMahasiswa, tambahkan Table dari Swing Controls,
kemudian klik kanan dan pilih Change Variable Name, ubah nama table menjadi daftarMahasiswaTable. Klik kanan lagi pada table dan pilih Table Contents ..., kemudian klik pada tab Columns dan ubah menjadi seperti gambar 2.20 di bawah ini:
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 12 of 37
Gambar 2.20. Pengaturan properti kolom dari tabel daftar mahasiswa Pada tab Rows, ubah properti Count menjadi 0 dan klik tombol Close di bagian
bawah. Sehingga desain JDialog DaftarMahasiswa menjadi seperti gambar 2.21 berikut ini:
Gambar 2.21. Desain JDialog DaftarMahasiswa
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 13 of 37
Jendela navigator dari JDialog DaftarMahasiswa akan tampil seperti gambar 2.22 di bawah ini:
Gambar 2.22. Jendela Navigator JDialog DaftarMahasiswa Dengan cara yang sama, tambahkan Jdialog DaftarMataKuliah dengan desain
seperti gambar 2.23 di bawah ini:
Gambar 2.23. Desain JDialog DaftarMataKuliah
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 14 of 37
Gambar 2.24. Jendela Navigator JDialog DaftarMataKuliah Properti selectionModel dari semua tabel diatas di pilih Single Selection.
Gambar 2.25. Mengatur properti selectionModel Double klik Class Main (Main.java atau AplikasiPenilaianMahasiswa.java) yang ada
pada jendela Project, kemudian ketik kode di bawah ini di dalam static main-nya.
new FormUtama().setVisible(true);
Tambahkan pernyataan import view.FormUtama dengan cara klik pada gambar bola
lampu kemudian pilih Add import for view.FormUtama seperti pada gambar berikut ini:
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 15 of 37
Gambar 2.26. Add import for view.FormUtama Di bawah pendefinisian class FormUtama ketik kode berikut ini:
public static FormMahasiswa formMahasiswa = new FormMahasiswa();
public static FormMataKuliah formMataKuliah = new FormMataKuliah();
Tambahkan event actionPerformed pada menu item Mahasiswa (pada menu
Master Data), di dalamnya ketik kode program di bawah ini:
if (formMahasiswa.isVisible()) {
try {
formMahasiswa.setSelected(true);
} catch (Exception ex) {}
} else {
formMahasiswa = new FormMahasiswa();
mdiDesktopPane.add(formMahasiswa);
formMahasiswa.setVisible(true);
}
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);
}
2.2. Membuat Database Penilaian Mahasiswa
Setelah kita membuat desain aplikasi, selanjutnya kita buat database yang akan kita gunakan untuk menyimpan data. Pada aplikasi ini kita gunakan database MySQL.
Desain tabel dan relasinya pada database yang akan kita buat adalah sebagai berikut :
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 16 of 37
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
b. Mengaktifkan database dbaplikasipenilaianmahasiswa use dbaplikasipenilaianmahasiswa atau klik database dbaplikasipenilaianmahasiswa kalau menggunakan browser.
c. Membuat tabel tbmahasiswa create table tbmahasiswa(
nim varchar(15) not null,
nama varchar(30),
semester int,
kelas varchar(1),
constraint pktbmahasiswa primary key (nim)
)
d. Membuat tabel tbmatakuliah create table tbmatakuliah(
kodematakuliah varchar(6) not null,
tbmatakuliah
kodematakuliah varchar(6) No
namamatakuliah varchar(30) Yes
jumlahsks int Yes
Column Name Condensed Type Nullable
tbmahasiswa
nim varchar(15) No
nama varchar(30) Yes
semester int Yes
kelas varchar(1) Yes
Column Name Condensed Type Nullable
tbnilai
nim varchar(15) No
kodematakuliah varchar(6) No
tugas int Yes
uts int Yes
uas int Yes
Column Name Condensed Type Nullable
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 17 of 37
namamatakuliah varchar(30),
jumlahsks int,
constraint pktbmatakuliah primary key (kodematakuliah)
)
e. Membuat tabel tbnilai create table tbnilai(
nim varchar(15) not null,
kodematakuliah varchar(6) not null,
tugas int,
uts int,
uas int,
constraint pktbnilai primary key (nim,kodematakuliah),
constraint fkmahasiswa foreign key (nim) references
tbmahasiswa(nim),
constraint fkmatakuliah foreign key (kodematakuliah)
references tbmatakuliah(kodematakuliah)
)
2.3. Menambahkan Kode Program Untuk membuat koneksi, kita buat class Koneksi terlebih dulu dengan cara klik
kanan pada paket model, pilih New dan Java Class seperti pada gambar 2.28 berikut ini :
Gambar 2.28. Menambahkan Java Class
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 18 of 37
Gambar 2.29. Memberi nama Class Koneksi Di dalam class Koneksi ketik kode program berikut ini:
static String driver = "com.mysql.jdbc.Driver";
static String database =
"jdbc:mysql://localhost:3306/dbaplikasipenilaianmahasiswa";
static String user = "root";
static String password = "";
Tambahkan kode program di bawah ini di dalam metode internalFrameActivated
dari FormMahasiswa dengan cara klik kanan pada FormMahasiswa, pilih Events >> InternalFrame >> internalFrameActivated seperti gambar 2.30 di bawah ini:
Gambar 2.30. Menambahkan event internalFrameActivated pada FormMahasiswa
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 19 of 37
int i;
char ch[] = new char[1];
semesterComboBox.removeAllItems();
for (i=1; i
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 20 of 37
Gambar 2.32. Menambahkan Library MySQL JDBC Driver Tambahkan class Mahasiswa pada package model, dengan properti nim, nama,
semester dan kelas.
Gambar 2.33. Membuat class Mahasiswa pada package model
private String nim, nama, kelas;
private int semester;
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 21 of 37
Selanjutnya tambahkan metode untuk membaca dan mengubah properti (getter and setter) dengan cara meletakkan kursor (pointer) di dalam class Mahasiswa, kemudian klik kanan atau klik menu Source, pilih Insert Code, dan pilih Getter and Setter, sehingga tampil kotak dialog dan beri tanda cek semua seperti gambar 3.34 di bawah ini:
Gambar 2.33. Generate Getters and Setters Klik tombol Generate, kemudian 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 {
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 22 of 37
String SQLStatemen = "select * from tbmahasiswa
where nim='"+nim+"'";
Statement sta = cn.createStatement();
ResultSet rset = sta.executeQuery(SQLStatemen);
rset.next();
if (rset.getRow()>0){
sta.close();
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 tbmahasiswa set
nama='"+nama+
"', semester='"+semester+
"', kelas='"+kelas+
"' where nim='"+nim+"'";
sta = cn.createStatement();
jumlahSimpan =
sta.executeUpdate(SQLStatemen);
}
} else {
sta.close();
rset.close();
simpan = true;
SQLStatemen = "insert into tbmahasiswa(nim,
nama, semester, kelas) values ('"+
nim +"','"+ nama +"','"+ semester
+"','"+ kelas +"')";
sta = cn.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}
if (simpan) {
if (jumlahSimpan > 0){
JOptionPane.showMessageDialog(null,"Data
mahasiswa sudah tersimpan","Informasi",JOptionPane.INFORMATION_MESSAGE);
} else {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Gagal
menyimpan data mahasiswa","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
} catch (SQLException | HeadlessException ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Tidak dapat
membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return !adaKesalahan;
}
public boolean baca(String nim){
boolean adaKesalahan = false;
Connection cn = null;
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 23 of 37
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);
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 24 of 37
} 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){
String SQLStatemen;
Statement sta;
ResultSet rset;
try {
SQLStatemen = "select nim,nama from tbmahasiswa";
sta = cn.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
rset.last();
daftarMahasiswa = new Object[rset.getRow()][2];
if (rset.getRow()>0){
rset.first();
int i=0;
do {
daftarMahasiswa[i] = new
Object[]{rset.getString("nim"), rset.getString("nama")};
i++;
} while (rset.next());
}
sta.close();
rset.close();
} catch (Exception ex){
JOptionPane.showMessageDialog(null,"Tidak dapat
membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
return daftarMahasiswa;
}
public boolean hapus(String nim){
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);
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 25 of 37
}
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;
}
Untuk melengkapi program di atas, tambahkan pernyataan import di bawah ini di
bawah nama package.
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
Di atas konstruktor dari class DaftarMahasiswa dalam package view tambahkan
kode program berikut ini:
private DefaultTableModel daftarMahasiswaDefaultTableModel;
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 26 of 37
public static String nimDipilih = "";
public static Object[][] listMahasiswa; Di dalam konstruktor dari class DaftarMahasiswa (di bawah pernyataan
initComponents();) tambahkan kode program berikut ini:
daftarMahasiswaDefaultTableModel = (DefaultTableModel)
daftarMahasiswaTable.getModel();
Tambahkan kode program di bawah ini di dalam metode windowActivated dari
JDialog (class DaftarMahasiswa), dengan cara klik kanan pada Form (Jdialog bukan komponen), pilih Event >> Window >> windowActivated.
if (listMahasiswa.length>0){
daftarMahasiswaDefaultTableModel.setRowCount(0);
for (int i=0; i0){
nimDipilih = daftarMahasiswaTable.getValueAt(
daftarMahasiswaTable.getSelectedRow(), 0).toString();
dispose();
} else {
JOptionPane.showMessageDialog(null,"Belum ada yang dipilih");
} Tambahkan pernyataan import di bawah nama package.
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
Di dalam class FormMahasiswa tambahkan beberapa metode berikut ini:
public void setNim(String nim){
nimTextField.setText(nim);
}
public void setNama(String nama){
namaTextField.setText(nama);
}
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 27 of 37
public void setSemester(int semester){
semesterComboBox.setSelectedItem(semester);
}
public void setKelas(String kelas){
kelasComboBox.setSelectedItem(kelas);
}
Di dalam package Controller tambahkan class MahasiswaController dan tambahkan
kode program di bawah ini di dalamnya.
private Mahasiswa mahasiswa = new Mahasiswa();
private DaftarMahasiswa daftarMahasiswa = new
DaftarMahasiswa(null,true);
public void simpan(javax.swing.JTextField nim, javax.swing.JTextField
nama, javax.swing.JComboBox semester, javax.swing.JComboBox kelas){
if (!nim.getText().equals("")){
mahasiswa.setNim(nim.getText());
mahasiswa.setNama(nama.getText());
mahasiswa.setSemester(Integer.parseInt(
semester.getSelectedItem().toString()));
mahasiswa.setKelas((String) kelas.getSelectedItem());
if (mahasiswa.simpan()){
FormUtama.formMahasiswa.setNim("");
FormUtama.formMahasiswa.setNama("");
FormUtama.formMahasiswa.setSemester(1);
FormUtama.formMahasiswa.setKelas("A");
}
} else {
JOptionPane.showMessageDialog(null,"NIM tidak boleh
kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
public void hapus(javax.swing.JTextField nim){
if (!nim.getText().equals("")){
if (mahasiswa.hapus(nim.getText())){
FormUtama.formMahasiswa.setNim("");
FormUtama.formMahasiswa.setNama("");
FormUtama.formMahasiswa.setSemester(1);
FormUtama.formMahasiswa.setKelas("A");
}
} else {
JOptionPane.showMessageDialog(null,"NIM tidak boleh
kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
public void cari(javax.swing.JTextField nim){
if (!nim.getText().equals("")){
if (mahasiswa.baca(nim.getText())){
FormUtama.formMahasiswa.setNama(mahasiswa.getNama());
FormUtama.formMahasiswa.setSemester(mahasiswa.getSemester());
FormUtama.formMahasiswa.setKelas(mahasiswa.getKelas());
} else {
FormUtama.formMahasiswa.setNama("");
FormUtama.formMahasiswa.setSemester(1);
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 28 of 37
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());
}
}
}
}
Jangan lupa untuk menambahkan pernyataan import yang dibutuhkan, yaitu:
import javax.swing.JOptionPane;
import model.Mahasiswa;
import view.DaftarMahasiswa;
import view.FormUtama;
Double klik simpanButton pada FormMahasiswa untuk menambahkan kode
program di bawah ini pada metode actionPerformed.
new MahasiswaController().simpan(nimTextField, namaTextField,
semesterComboBox, kelasComboBox);
Dalam metode actionPerformed dari hapusButton tambahkan kode program
berikut ini:
new MahasiswaController().hapus(nimTextField);
Dalam metode actionPerformed dari daftarButton tambahkan kode program
berikut ini:
new MahasiswaController().tampilkanDaftar();
Dalam metode actionPerformed dari tutupButton tambahkan kode program berikut
ini:
dispose();
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 29 of 37
Tambahkan kode program di bawah ini di dalam metode keyPressed dari nimTextField, dengan cara klik kanan pada nimTextField, kemudian pilih Events >> Key >> keyPressed.
if (evt.getKeyCode()==KeyEvent.VK_ENTER){
new MahasiswaController().cari(nimTextField);
} Lengkapi program dengan menambahkan pernyataan import berikut ini:
import controller.MahasiswaController;
import java.awt.event.KeyEvent;
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();
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 30 of 37
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){
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 31 of 37
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 {
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 32 of 37
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) {
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 33 of 37
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;
}
Lengkapi dengan pernyataan import berikut ini:
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
Di atas konstruktor class DaftarMataKuliah tambahkan pernyataan berikut ini:
private DefaultTableModel daftarMataKuliahDefaultTableModel;
public static String kodeMataKuliahDipilih = "";
public static Object[][] listMataKuliah;
Kemudian di dalam kontruktor class DaftarMataKuliah di bawah pernyataan
initComponents(); tambahkan pernyataan berikut ini:
daftarMataKuliahDefaultTableModel = (DefaultTableModel)
daftarMataKuliahTable.getModel();
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 34 of 37
Tambahkan kode program di bawah ini di dalam metode windowActivated dari JDialog (class DaftarMataKuliah), dengan cara klik kanan pada Form (Jdialog bukan panel), pilih Event >> Window >> windowActivated.
if (listMataKuliah.length>0){
daftarMataKuliahDefaultTableModel.setRowCount(0);
for (int i=0; i0){
kodeMataKuliahDipilih = daftarMataKuliahTable.getValueAt(
daftarMataKuliahTable.getSelectedRow(), 0).toString();
dispose();
} else {
JOptionPane.showMessageDialog(null,"Belum ada yang dipilih");
}
Tambahkan pernyataan import di bawah nama package.
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
Di dalam class FormMataKuliah tambahkan beberapa metode berikut ini:
public void setKodeMataKuliah(String kodeMataKuliah){
kodeMataKuliahTextField.setText(kodeMataKuliah);
}
public void setNamaMataKuliah(String namaMataKuliah){
namaMataKuliahTextField.setText(namaMataKuliah);
}
public void setJumlahSks(int jumlahSks){
jumlahSksComboBox.setSelectedItem(jumlahSks);
}
Di dalam package Controller tambahkan class MataKuliahController dan tambahkan
kode program di bawah ini di dalamnya.
private MataKuliah mataKuliah = new MataKuliah();
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 35 of 37
private DaftarMataKuliah daftarMataKuliah = new
DaftarMataKuliah(null,true);
public void simpan(javax.swing.JTextField kodeMataKuliah,
javax.swing.JTextField namaMataKuliah, javax.swing.JComboBox jumlahSks){
if (!kodeMataKuliah.getText().equals("")){
mataKuliah.setKodeMataKuliah( kodeMataKuliah.getText());
mataKuliah.setNamaMataKuliah( namaMataKuliah.getText());
mataKuliah.setJumlahSks(Integer.parseInt(
jumlahSks.getSelectedItem().toString()));
if (mataKuliah.simpan()){
FormUtama.formMataKuliah.setKodeMataKuliah("");
FormUtama.formMataKuliah.setNamaMataKuliah("");
FormUtama.formMataKuliah.setJumlahSks(2);
}
} else {
JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak boleh
kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
public void hapus(javax.swing.JTextField kodeMataKuliah){
if (!kodeMataKuliah.getText().equals("")){
if (mataKuliah.hapus(kodeMataKuliah.getText())){
FormUtama.formMataKuliah.setKodeMataKuliah("");
FormUtama.formMataKuliah.setNamaMataKuliah("");
FormUtama.formMataKuliah.setJumlahSks (2);
}
} else {
JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak boleh
kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
public void cari(javax.swing.JTextField kodeMataKuliah){
if (!kodeMataKuliah.getText().equals("")){
if (mataKuliah.baca(kodeMataKuliah.getText())){
FormUtama.formMataKuliah.setNamaMataKuliah(
mataKuliah.getNamaMataKuliah());
FormUtama.formMataKuliah.setJumlahSks(
mataKuliah.getJumlahSks());
} else {
FormUtama.formMataKuliah.setNamaMataKuliah("");
FormUtama.formMataKuliah.setJumlahSks(2);
}
} else {
JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak boleh
kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
public void tampilkanDaftar(){
if (!daftarMataKuliah.isVisible()){
DaftarMataKuliah.listMataKuliah = mataKuliah.bacaDaftar();
daftarMataKuliah = new DaftarMataKuliah(null, true);
daftarMataKuliah.setVisible(true);
if (!DaftarMataKuliah.kodeMataKuliahDiPilih.equals("")) {
if (mataKuliah.baca(
DaftarMataKuliah.kodeMataKuliahDiPilih)){
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 36 of 37
FormUtama.formMataKuliah.setKodeMataKuliah(
mataKuliah.getKodeMataKuliah());
FormUtama.formMataKuliah.setNamaMataKuliah(
mataKuliah.getNamaMataKuliah());
FormUtama.formMataKuliah.setJumlahSks(
mataKuliah.getJumlahSks());
}
}
}
}
Jangan lupa untuk menambahkan pernyataan import yang dibutuhkan, yaitu:
import javax.swing.JOptionPane;
import model.MataKuliah;
import view.DaftarMataKuliah;
import view.FormUtama;
Double klik simpanButton pada FormMataKuliah untuk menambahkan kode
program di bawah ini pada metode actionPerformed.
new MataKuliahController().simpan(kodeMataKuliahTextField,
namaMataKuliahTextField, jumlahSksComboBox);
Dalam metode actionPerformed dari hapusButton tambahkan kode program
berikut ini:
new MataKuliahController().hapus(kodeMataKuliahTextField);
Dalam metode actionPerformed dari daftarButton tambahkan kode program
berikut ini:
new MataKuliahController().tampilkanDaftar();
Dalam metode actionPerformed dari tutupButton tambahkan kode program berikut
ini:
dispose();
Tambahkan kode program di bawah ini di dalam metode keyPressed dari
kodeMataKuliahTextField, dengan cara klik kanan pada kodeMataKuliahTextField, kemudian pilih Events >> Key >> keyPressed.
if (evt.getKeyCode()==KeyEvent.VK_ENTER){
new MataKuliahController().cari(kodeMataKuliahTextField);
}
Di dalam metode windowActivated dari InternalFrame FormMataKuliah tambahkan
kode program berikut ini:
for (int i=2;i
Materi Pemrograman II (Pertemuan II) Universitas Pamulang
[email protected] (2011-2012) page 37 of 37
Lengkapi program dengan menambahkan pernyataan import berikut ini:
import controller.MataKuliahController;
import java.awt.event.KeyEvent;
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/
Top Related