MODUL 2 IMPLEMENTASI MODEL VIEW CONTROLLER (MVC) DESIGN PATTERN
Latihan 2 Pada latihan kedua ini akan dibuat sebuah aplikasi pengolahan data akademik sederhana untuk menggambarkan penggunaan konsep MVC. 1.
Buat project baru -> latihan 2 a.
Project name
: Latihan2
b. Project Location
:
c.
: Select
Create Main Class
d. Set as Main Project e.
: Select
Use Dedicated Folder for Storing Libraries : Select
Klik Finish 2. Dalam project Latihan2 buat package baru dengan nama model, paket model ini adalah sub paket dari paket latihan2
3. Pastikan tampilan anda seperti gambar berikut
4. Kemudian buatlah 1 buah kelas dengan nama Mhs pada paket latihan2.model
5. Silahkan lengkapi Mhs.java seperti kode program berikut public class Mhs { private String nim; private String nama; private String jurusan; private String kelas; private boolean jenisKelamin; public Mhs(String nim, String nama) { this.nim = nim; this.nama = nama; } public boolean getJenisKelamin() { return jenisKelamin; } public void setJenisKelamin(boolean jenisKelamin) { this.jenisKelamin = jenisKelamin; } public String getJurusan() { return jurusan; } public void setJurusan(String jurusan) { this.jurusan = jurusan; } public String getKelas() { return kelas; } public void setKelas(String kelas) { this.kelas = kelas; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public String getNim() { return nim; } public void setNim(String nim) { this.nim = nim; } }
6. Tambahkan 1 buat paket dengan nama view, paket ini adalah sub paket dari paket latihan2. Pastikan seperti gambar berikut
7. Buatlah 1 buah JFrame kedalam paket latihan2.view, beri nama FormMhs
8. Atur agar layout dari FormMhs menjadi GridLayout, jika dilihat dari inspector tampak seperti gambar berikut
9. Atur properties dari GridLayout dengan cara klik kanan pada GridLayout
10. Atur agar properties seperti tabel berikut Column 2 Horizontal Gap 0 Row 1 Vertical Gap 5 11. Tambahkan 2 buah JPanel dengan cara klik kanan pada tulisan Jframe di inspector Add From Palette Swing Containers Panel. Tampak di inspector menjadi seperti berikut
12. Atur agar layout dari jPanel1 dan jPanel2 menjadi GridLayout, atur agar properties dari GridLayout milik jPanel1 dan jPanel 2 seperti tabel berikut Column
1
Horizontal Gap 0 Row 6 Vertical Gap 0 13. Tambahkan 5 buah Jlabel pada jPanel1 kemudian pada jPanel2 tambahkah 3 buah JTextField diikuti 1 buat JPanel kemudian 1 buah JTextField dan 1 buah JPanel
14. Atur agar layout dari jPanel3 dan jPanel 4 adalah FlowLayout
15. Tambahkan 2 buah JRadioButton pada jPanel3 kemudian 1 buah Jbutton pada jPanel4
16. Pada Other Components tambahkan ButtonGroup
17. Buka jendela properties dari jRadioButton1, atur agar buttonGroupnya menjadi buttonGroup1, perlakukan hal yang pada jRadioButton2.
18. Pastikan tampilan form anda seperti gambar berikut
19. Ikuti tabel berikut untuk mengubah properties dari setiap komponen Komponen
Variabel Name yang lama
Variabel Name yang baru
Text
JLabel JLabel
jLabel1 jLabel2
jLabel1 jLabel2
NIM Nama
JLabel JLabel
jLabel3 jLabel4
jLabel3 jLabel4
Jurusan Jenis Kelamin
JLabel JTextField
jLabel5 jTextField1
jLabel5 txtNim
Kelas
JTextField JTextField
jTextField2 jTextField3
txtNama txtJurusan
JTextField JRadioButton
jTextField4 jRadioButton1
txtKelas rbLakiLaki
Laki – laki
JRadioButton Jbutton1
jRadioButton2 jButton1
rbWanita btnUbah
Wanita Ubah
20. Atur agar properties selected dari rbLakiLaki terpilih (tanda check) 21. Pastikan tampilan dari desain form anda seperti berikut
22. Tambahkan kode program yang ditebali berikut pada FormMhs.java
// End of variables declaration 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; } 23. Tambahkan 1 buah View lagi dengan nama FormDokumenMhs, atur agar layoutnya menjadi GridLayout 24. Atur agar layout atur agar properties dari GridLayout milik FormDokumenMhs menjadi seperti tabel berikut Column Horizontal Gap Row Vertical Gap
1 0 5 0
25. Tambahkan 5 buah JLabel, sehingga tampak seperti gambar berikut
26. Jika dilihat dari inspector tampak seperti berikut
27. Ikutilah tabel berikut untuk mengubah properties dari setiap komponen Komponen
Variabel Name yang lama
Variabel Name yang baru
Text
JLabel JLabel JLabel
jLabel1 jLabel2 jLabel3
lblNim lblNama lblJurusan
NIM : Nama : Jurusan :
JLabel JLabel
jLabel4 jLabel5
lblJenisKelamin lblKelas
Jenis Kelamin : Kelas :
28. Apabila dilihat maka FormDokumenMhs akan tampak seperti berikut
29. Tambahkan kode program yang ditebali mengikuti posisi seperti yang dicontohkan pada FormDokumenMhs.java
public class FormDokumenMhs extends javax.swing.JFrame { /** Creates new form FormDokumenMhs */ public FormDokumenMhs() { initComponents(); }
public void refresh(Mhs mhs) { lblNim.setText("Nim : " + mhs.getNim()); lblNama.setText("Nama : " + mhs.getNama()); lblJurusan.setText("Jurusan : " + mhs.getJurusan()); lblKelas.setText("Kelas : " + mhs.getKelas()); if (mhs.getJenisKelamin()) { lblJenisKelamin.setText("Jenis Kelamin : Pria"); } else { lblJenisKelamin.setText("Jenis Kelamin : Wanita"); } } 30. Buatlah 1 buah paket lagi dengan nama controller, paket ini adalah sub paket dari latihan2 31. Pada paket controller ini tambahkan MhsController 32. Tulislah kode program yang ditebali pada MhsController.java
public class MhsController {
private FormDokumenMhs formDokumenMhs; private FormMhs formMhs; private Mhs mhs; public MhsController(FormDokumenMhs formDokumenMhs, ,FormMhs formMhs) { this.formDokumenMhs = formDokumenMhs; this.formMhs=formMhs; mhs = new Mhs("10.10.1010", "Testing"); formDokumenMhs.refresh(mhs); } public void updateMhs() { mhs.setNim(formMhs.getTxtNim().getText()); mhs.setNama(formMhs.getTxtNama().getText()); mhs.setJurusan(formMhs.getTxtJurusan().getText()); mhs.setJenisKelamin(formMhs.getRbLakiLaki().isSelected()); mhs.setKelas(formMhs.getTxtKelas().getText()); formDokumenMhs.refresh(mhs); } }
33. Tambahkan kode program yang ditebali FormMhs.java
public class FormMhs extends javax.swing.JFrame {
private MhsController mhsController; /** Creates new form FormMhs */ public FormMhs() { initComponents(); }
public void setMhsController(MhsController mhsController) { this.mhsController = mhsController; } 34. Berikan event actionPerformed pada btnUbah yang terdapat pada FormMhs.java
35. Tambahkan kode program yang ditebali
private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: mhsController.updateMhs(); } 36. Pada Main.java ketikkan kode program yang ditebali
public class Main { /** * @param args the command line arguments */ 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); } }