• Tidak ada hasil yang ditemukan

3. Atur agar Layout dari FormDataMahasiswa menjadi BorderLayout

N/A
N/A
Protected

Academic year: 2021

Membagikan "3. Atur agar Layout dari FormDataMahasiswa menjadi BorderLayout"

Copied!
15
0
0

Teks penuh

(1)

Modul 4

Implementasi DAO + MVC

1. Pastikan project anda sebelum mid semester masih ada

2. Tambahkan 1 buah JFrame dengan nama FormDataMahasiswa sebagai view pada project anda yang sudah ada

3. Atur agar Layout dari FormDataMahasiswa menjadi BorderLayout

4. Tambahkan 2 buah Jpanel

5. Atur agar Layout dari jPanel1 menjadi FlowLayout, dan layout dari jPanel2 menjadi BorderLayout

(2)

6. Klik kanan pada jPanel1  Properties  Ubah direction menjadi South  Close

7. Klik kanan pada jPanel2  Properties Ubah direction menjadi Center  Close

8. Tambahkan 1 buah Jtable ke jPanel2

9. Maka diinspector akan tampak seperti berikut

(3)

11. Klik kanan pada FlowLayout  Properties kemudian atur agar Alignment nya menjadi Right  Close

(4)

13. Ubah properties dari button dan tabel sesuai tabel berikut

Komponen Variabel name lama

Variabel name baru

Text

JTabel jTabel1 tbMahasiswa

JButton jButton1 btnTambah Tambah

JButton jButton2 btnUbah Ubah

JButton jButton3 btnHapus Hapus

JButton jButton4 btnTutup Tutup

(5)

Di tampilan seperti gambar berikut

15. Klik kanan pada tbMahasiswa, kemudian pilih Tabel Contents ...

(6)

16. Ubah count menjadi 5, kemudian atur agar value dari Title dan Type sama dengan gambar dibawah ini, apabila sudah sama klik Close

17. Tambahkan kode program yang dicetak tebal

18. Tambahkan 1 buah JDialog bernama FormDetailMahasiswa sebagai View private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JTable tbMahasiswa; // End of variables declaration public JTable getTbMahasiswa() { return tbMahasiswa;

} }

(7)

19. Pilih Swing GUI Forms pada Categories, kemudian pilih JDialog Form pada File Types

 Next beri nama FormDetailMahasiswa  Finish

20. Buka kembali FormMhs anda yang tampilannya seperti berikut

Silahkan anda buat agar FormDetailMahasiswa anda memiliki desain yang sama persis dengan FormMhs (Modul 2 nomor 8 sampai 22)

(8)

21. Tambahkan 1 buah Jbutton di jPanel4 dari FormDetailMahasiswa

Tampak form seperti berikut

22. Ubah variabel name btnUbah menjadi btnSimpan, ubah textnya menjadi Simpan, ubah variabel name dari jButton1 menjadi btnBatal, ubah textnya menjadi Batal

(9)

Untuk formnya tampak seperti gambar berikut

23. Sekarang silahkan anda buka kelas MahasiswaImpl.java, kemudian cari method dengan nama insertMahasiswa, ketik kode program yang ditebali public int insertMahasiswa(Mhs mhs) {

try {

String sql = "insert into mahasiswa(nim,nama,kelas,jurusan,jenis_kelamin) values("; sql += "'" + mhs.getNim() + "','" + mhs.getNama() + "', "; sql += "'" + mhs.getKelas() + "','" + mhs.getJurusan() + "',"; if (mhs.getJenisKelamin()) { sql += "1";//bernilai true } else { sql += "0";//bernilai false } sql += ")"; return c.createStatement().executeUpdate(sql); } catch (SQLException ex) {

Logger.getLogger(MahasiswaImpl.class.getName()).log(Level.SEVERE, null, ex); return -1;

} }

(10)

24. Cari method dengan nama DeleteMahasiswa, ketik kode program yang ditebali

25. Silahkan anda buka kode program dari FormDetailMahasiswa, tambahkan method berikut

public boolean deleteMahasiswa(Mhs mhs) { try {

String sql = "delete from mahasiswa where nim='" + mhs.getNim() + "'"; c.createStatement().executeUpdate(sql);

return true;

} catch (SQLException ex) {

Logger.getLogger(MahasiswaImpl.class.getName()).log(Level.SEVERE, null, ex); return false;

} }

public void setInsert(boolean insert) { txtNim.setEnabled(insert);

}

public JRadioButton getRbLakiLaki() { return rbLakiLaki;

}

public JTextField getTxtJurusan() { return txtJurusan;

}

public JTextField getTxtKelas() { return txtKelas;

}

public JTextField getTxtNama() { return txtNama;

}

public JTextField getTxtNim() { return txtNim;

}

public void setData(Mhs mhs) { txtNim.setText(mhs.getNim()); txtNama.setText(mhs.getNama()); txtJurusan.setText(mhs.getJurusan()); txtKelas.setText(mhs.getKelas()); rbLakiLaki.setSelected(mhs.getJenisKelamin()); }

public void reset(){ txtNim.setText(""); txtNama.setText(""); txtJurusan.setText(""); txtKelas.setText(""); }

(11)

Hapus method main beserta isinya yang ada di FormDetailMahasiswa 26. Sekarang silahkan anda buka kelas MhsController.java, tambahkan 4 buah

field berikut

private FormDataMahasiswa formDataMahasiswa; private FormDetailMahasiswa formDetailMahasiswa; private DefaultTableModel dtm;

private JTable table;

27. Tambahkan 2 buah import berikut

import latihan2.view.FormDataMahasiswa; import latihan2.view.FormDetailMahasiswa;

28. Kemudian tambahkan 1 buah method dengan nama refresh untuk merefresh tampilan di tbMahasiswa

29. Tambahkan 1 buah controller untuk mendukung 2 buah view yang baru anda buat

public void refresh() { dtm.setRowCount(0);

Mhs[] arrayMhs = mahasiswaImpl.getAllMahasiswa(); for (Mhs m : arrayMhs) {

Vector v = new Vector(); v.add(m.getNim()); v.add(m.getNama()); v.add(m.getKelas()); v.add(m.getJurusan());

if (m.getJenisKelamin()) {//bisa juga ditulis if(m.getJenisKelamin()){ v.add("Pria"); } else { v.add("Wanita"); } dtm.addRow(v); } }

public MhsController(FormDataMahasiswa formDataMahasiswa, FormDetailMahasiswa formDetailMahasiswa) { this.formDataMahasiswa = formDataMahasiswa; this.formDetailMahasiswa = formDetailMahasiswa; this.table = formDataMahasiswa.getTbMahasiswa(); dtm = (DefaultTableModel) this.table.getModel(); mahasiswaImpl = DaoFactory.create().getMahasiswaDao(); refresh(); }

(12)

30. Tambahkan 1 buah method insertMhs

31. Tambahkan 1 buah method updateMhs dengan 1 buah parameter yaitu mhs, parameter ini memiliki type Mhs, biarkan saja method updateMhs tanpa parameter yang sudah ada

public void tambahMhs(Mhs mhs) {

if (formDetailMahasiswa.getTxtNim().getText().trim().length() == 0) {

JOptionPane.showMessageDialog(formDetailMahasiswa, "NIM mahasiswa harus diisi"); return;

}

if (formDetailMahasiswa.getTxtNama().getText().trim().length() == 0) {

JOptionPane.showMessageDialog(formDetailMahasiswa, "Nama mahasiswa harus diisi"); return; } mhs = new Mhs(formDetailMahasiswa.getTxtNim().getText().trim(), formDetailMahasiswa.getTxtNama().getText().trim()); mhs.setKelas(formDetailMahasiswa.getTxtKelas().getText().trim()); mhs.setJurusan(formDetailMahasiswa.getTxtJurusan().getText().trim()); mhs.setJenisKelamin(formDetailMahasiswa.getRbLakiLaki().isSelected()); if (mahasiswaImpl.insertMahasiswa(mhs) > 0) { formDetailMahasiswa.setVisible(false); formDetailMahasiswa.reset(); refresh(); } else {

JOptionPane.showMessageDialog(formDetailMahasiswa, "insert gagal"); }

}

public void ubahMhs(Mhs mhs) {

if (formDetailMahasiswa.getTxtNim().getText().trim().length() == 0) {

JOptionPane.showMessageDialog(formDetailMahasiswa, "NIM mahasiswa harus diisi"); return;

}

if (formDetailMahasiswa.getTxtNama().getText().trim().length() == 0) {

JOptionPane.showMessageDialog(formDetailMahasiswa, "Nama mahasiswa harus diisi"); return; } mhs = new Mhs(formDetailMahasiswa.getTxtNim().getText().trim(), formDetailMahasiswa.getTxtNama().getText().trim()); mhs.setKelas(formDetailMahasiswa.getTxtKelas().getText().trim()); mhs.setJurusan(formDetailMahasiswa.getTxtJurusan().getText().trim()); mhs.setJenisKelamin(formDetailMahasiswa.getRbLakiLaki().isSelected()); if (mahasiswaImpl.updateMahasiswa(mhs)) { formDetailMahasiswa.setVisible(false); formDetailMahasiswa.reset(); refresh(); } else {

JOptionPane.showMessageDialog(formDetailMahasiswa, "Update gagal"); }

(13)

32. Tambahkan 1 buah method hapusMhs

33. Tambahkan 2 buah method berikut public void hapusMhs() {

int barisTerpilih = table.getSelectedRow(); if (barisTerpilih == -1) {

JOptionPane.showMessageDialog(formDetailMahasiswa, "Pilih data yang hendak dihapus"); return;

}

mhs = new Mhs(table.getValueAt(barisTerpilih, 0).toString(), table.getValueAt(barisTerpilih, 1).toString());

if (mahasiswaImpl.deleteMahasiswa(mhs)) { formDetailMahasiswa.setVisible(false); refresh();

} else {

JOptionPane.showMessageDialog(formDetailMahasiswa, "Delete gagal"); }

}

public void showFormTambah(){ formDetailMahasiswa.reset();

formDetailMahasiswa.setInsert(true); formDetailMahasiswa.setVisible(true); }

public void showFormUbah(){

int barisTerpilih = table.getSelectedRow(); if (barisTerpilih == -1) {

JOptionPane.showMessageDialog(formDetailMahasiswa, "Pilih data yang hendak diubah"); return;

}

mhs = new Mhs(table.getValueAt(barisTerpilih, 0).toString(), table.getValueAt(barisTerpilih, 1).toString()); mhs.setKelas(table.getValueAt(barisTerpilih, 2).toString()); mhs.setJurusan(table.getValueAt(barisTerpilih, 3).toString()); mhs.setJenisKelamin(table.getValueAt(barisTerpilih, 4).toString().equals("Pria")); formDetailMahasiswa.setData(mhs); formDetailMahasiswa.setInsert(false); formDetailMahasiswa.setVisible(true); }

(14)

34. Tambahkan field berikut pada FormDetailMahasiswa private MhsController mhsController;

35. Tambahkan method pada kelas FormDetailMahasiswa

36. Tambahkan event actionPerformed pada btnSimpan, kemudian ketik kode program yang dicetak tebal

37. Tambahkan event actionPerformed pada btnBatal, kemudian ketik kode program yang dicetak tebal

38. Tambahkan field berikut pada FormDataMahasiswa private MhsController mhsController;

39. Tambahkan method pada FormDataMahasiswa

public void setMhsController(MhsController mhsController) { this.mhsController = mhsController;

}

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

if (txtNim.isEnabled()) { mhsController.tambahMhs(); } else { mhsController.ubahMhs(); } }

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

reset();

setVisible(false); }

public void setMhsController(MhsController mhsController) { this.mhsController = mhsController;

(15)

40. Pada FormDataMahasiswa, tambahkan eventAction performed pada btnTambah,btnUbah,btnHapus dan btnTutup, kemudian ketik kode program yang dicetak tebal

41. Ubah method main pada kelas Main.java anda seperti kode program berikut

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

mhsController.showFormTambah(); }

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

mhsController.showFormUbah(); }

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

mhsController.hapusMhs(); }

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

System.exit(0); }

public static void main(String[] args) { // TODO code application logic here // FormMhs formMhs = new FormMhs(); // formMhs.setVisible(true);

//

// FormDokumenMhs formDokumenMhs = new FormDokumenMhs(); // formDokumenMhs.setVisible(true);

//

// MhsController mhsController = new MhsController(formDokumenMhs, formMhs); //

// formMhs.setMhsController(mhsController);

FormDataMahasiswa formDataMahasiswa = new FormDataMahasiswa(); formDataMahasiswa.setVisible(true);

FormDetailMahasiswa formDetailMahasiswa = new FormDetailMahasiswa(formDataMahasiswa, true);

MhsController mhsController=new MhsController(formDataMahasiswa, formDetailMahasiswa);

formDataMahasiswa.setMhsController(mhsController); formDetailMahasiswa.setMhsController(mhsController); }

Referensi

Dokumen terkait

Berdasarkan Tabel 5 dapat diketahui bahwa rata-rata persepsi mahasiswa terhadap manfaat penerapan penilaian autentik (authenthic assessment) pada perkuliahan Teknik

Candida albicans dianggap sebagai spesies yang paling patogen dan menjadi penyebab terbanyak kandidiasis, tetapi spesies lain ada juga yang dapat menyebabkan penyakit

Teknik pengumpulan data dalam penelitian ini adalah tes dan wawancara kemudian dianalisis dengan uji proporsi dan kualitatif deskriptif yang mengacu pada indikator

Kemudian dihitung energi harian (dalam Wh) yang dikeluarkan tiap lampu dan untuk tiap unit SPTS serta mencari jumlah energi harian yang dihasilkan oleh modul

Mengacu pada isu yang beredar tentang tidak berlakunya beberapa jenis uang logam, Sebagian besar responden, baik responden bank, pedagang, maupun perorangan menyatakan tidak

105, tersimpan di Perpustakaan Royal Asiatic Society, London sebuah naskhah yang diperolehi oleh Maxwell dari Raja Othman, Bendahara Perak, tentunya naskhah ini

Foto morfologi permukaan dari spesimen baja dalam larutan NaCl yang telah dilapisi ekstrak daun teh selama 24 jam, setelah itu direndam pada medium korosif pada perendaman

Evaluasi Pengembangan Kompetensi Pedagogik Guru di SMK Bandung Timur dan SMK Bakti Nusantara dilaksanakan dengan kegiatan Supervisi (kunjungan kelas), rapat sekolah,