Minggu, 06 Oktober 2024

Bab 5 Pemrograman Berorientasi Objek Kelas XII RPL


 Model View Controller (MVC)

A. Mengenal Konsep Mvc

MVC merupakan salah satu istilah yang sangat populer  dalam dunia pemrograman modern saat ini. MVC adalah singkatan dari Model, View, dan Controller. MVC merupakan pola desain dalam dunia pemrograman yang salah satu keuntungannya adalah memudahkan programmer melakukan analisis terhadap kesalahan kode program. Pola MVC telah digunakan oleh banyak developer sebagai pola yang berguna mengurangi waktu yang diperlukan untuk mengembangkan aplikasi dengan user interface dan fitur-fitur lainnya secara signifikan. 

1. Bagian-bagian MVC 

Konsep MVC (Model, View, Controller) dalam Java adalah sebuah teknik untuk mengatur struktur dari aplikasi yang dibuat dalam class-class kerja. Bagian-bagian dari MVC adalah sebagai berikut. 

a. Model 

Model bertugas mengatur, menyiapkan, memanipulasi, dan mengorganisasikan data (dari basis data) atau kumpulan instruksi atau perintah sesuai dengan instruksi dari controller. 

b. View 

View adalah bagian yang bertugas menyajikan data yang telah diolah menjadi sebuah informasi yang dibutuhkan oleh user. Objek dalam view dapat berupa form input data, grafik, diagram, dan tampilan lainnya yang dapat membantu user dalam menggunakan data.

c. Controller 

Controller bertugas mengatur kegiatan view dan model sesuai dengan input instruksi dari user atau pengguna. Setiap controller mengatur aktivitasnya sendiri dan dapat pula berinteraksi dengan objek dari controller lainnya.



Untuk memperjelas konsep MVC pada pemrograman Java, perhatikan gambar berikut.


Keterangan: 

1. Pengguna atau user memberikan input berupa perintah untuk mengakses basis data dari server. 

2. Input user tersebut akan ditangkap oleh controller dan diolah untuk menjadi perintah yang akan mengakses library perintah yang ada pada model. 

3. Perintah tersebut akan disinkronkan dengan library perintah yang ada pada model. 

4. Hasil akhir pengolahan perintah tersebut akan ditampilkan dalam view data kepada pengguna (user). 

2. Kelebihan dan Kekurangan MVC 

Berikut adalah kelebihan dan kekurangan penerapan MVC dalam pemrograman. 

a. Kelebihan MVC 

Beberapa kelebihan MVC adalah sebagai berikut. 

1) Pengembangan simultan 

Penerapan MVC dapat membantu developer dalam mengembangkan project karena metode ini memungkinkan pengembangan model, view, dan controller secara bersamaan. 

2) Low coupling 

Bentuk MVC membuat ketergantungan antarkomponen menjadi rendah sehingga perubahan pada salah satu komponen tidak akan berpengaruh besar pada komponen yang lain.

3) High cohesion 

MVC memungkinkan penggabungan logika dari aksi-aksi yang serupa. Hal ini memudahkan developer karena dapat menggunakan kembali kode yang memiliki fungsi serupa untuk aksi yang berbeda. 

4) Kemudahan modifikasi 

Adanya pembagian tugas dalam program memudahkan developer untuk melakukan modifikasi. Setiap perubahan yang akan dilakukan dapat disesuaikan dengan modul yang terkait. Dengan demikian, developer tidak harus melihat keseluruhan kode untuk melakukan perubahan tertentu. 

b. Kekurangan MVC 

Beberapa kekurangan MVC adalah sebagai berikut. 

1) Kesulitan dalam pencarian kode Pembagian komponen dalam MVC terkadang dapat menyulitkan developer yang belum terbiasa menggunakannya. Adanya pemisahan letak kode sesuai dengan fungsinya tersebut mengharuskan developer yang masih awam untuk beradaptasi dengan kriteria pembagian MVC. 

2) Perlunya konsistensi tinggi dalam pengembangan Sistem multi-artefak dalam MVC yang membagi project dalam tiga bagian utama, yaitu model, view, dan controller dapat menyebabkan tidak adanya konsistensi dan tersebarnya project yang dibuat. Pada metode MVC, developer perlu memperhatikan konsistensi dalam setiap perubahan yang dilakukan, misalnya dalam hal penamaan project. 

3) Kebutuhan akan banyak developer Pembagian MVC menjadi tiga bagian tersebut membutuhkan banyak developer untuk mengembangkannya. Hal tersebut membuat MVC kurang cocok diterapkan pada project berskala kecil. 

4) Perlunya pemahaman teknologi Dalam penerapan MVC, pengetahuan akan teknologi menjadi sebuah keharusan bagi developer. Hal ini dikarenakan MVC memiliki tingkat kerumitan dan penerapan teknologi yang lebih tinggi dibandingkan metode pengembangan dasar.


B. Penerapan MVC pada Bahasa Pemrograman Java

 Agar Anda memahami penerapan MVC pada pemrograman Aga Java, akan dicontohkan pembuatan project untuk menghitung luas persegi panjang. Bagian yang perlu dibentuk adalah sebagai berikut.

1. Package 

Buatlah package dengan nama Luas Persegi Panjang. Package ini akan berisi class-class pembentuk sistem MVC.


2. Class 

Sistem MVC yang akan dioperasikan dibentuk pada class. Class-class yang digunakan untuk membentuk sistem MVC, antara lain sebagai berikut. 

a. Model 

Class model merupakan otak dari operasi MVC. Dalam class model, dibentuk variabel dan method yang dibutuhkan untuk mengakomodasi proses pengolahan data. Perhatikan kode program berikut.

1 package Luas_Persegi_Panjang; 

2 public class Model { 

3 private int Panjang; 

4 private int Lebar; 

5 private int Luas; 

7 public int getPanjang () { 

8 return Panjang; 

9 } 

10 public void setPanjang (int Panjang) ( 

11 this.Panjang Panjang; 

12 } 

13 public int getLebar() { 

14 return Lebar; 

15} 

16 public void setLebar (int Lebar) { 

17 this. Lebar Lebar; 

18 } 

19 public int getLuas() { 

20 return Luas; 

21 } 

22 public void setLuas (int Luas) { 

23 this. Luas Luas; 

24}

25}

Hasil dari apk J studio


b. View 

Class view berguna menerima nilai dari class control, mengoperasikan nilai tersebut, dan menampilkan hasil akhir. Perhatikan kode program berikut. 

1 package Luas Persegi_Panjang; 

2 public class View { 

3 public void printLuasDetails(int NilPanjang, int Nillebar, int Nilluas) { 

4 Nilluas = NilPanjang Nillebar; 

5 System.out.println("Luas Persegi Panjang=" + Nilluas); 

7 } 

8

C. Control Class control digunakan untuk mengontrol variabel yang masuk serta mengarahkan variabel ke class lainnya. Perhatikan kode program berikut.

1 package Luas_Persegi_Panjang; 

2 public class Control { 

3 private Model model; 

4 private View view; 

6 public Control (Model model, View view) { 

7 this.model = model; 

8 this.view view; 

9 } 

10 public void setNilai Panjang (int panjang) { 

11 model.setPanjang (panjang); 

12 } 

13 public int getNilai Panjang() { 

14 return model.getPanjang(); 

15 } 

16 public void setNilai Lebar (int lebar) { 

17 model.setLebar (lebar); 

18 } 

19 public int getNilai Lebar() { 

20 return model.getLebar(); 

21 }

22 public void setNilaiLuas (int luas) { 

23 model.setLebar (luas); 

24 }

25 public void updateView() { 

26 view.printLuas Details (model.getPanjang(), model.getLebar(), model.getLuas()); 

27 } 

28 }

Hasil dari apk j studio


d. MVC Pattern 

Class MVC pattern merupakan class utama dan merupakan tampilan utama. Class ini akan dieksekusi pertama kali oleh program. Semua nilai diinputkan dari class ini. Perhatikan kode program berikut. 

1 package Luas_Persegi_Panjang; 

2 import java.util.Scanner; 

4 public class MVC_Pattern { 

5 public static void main(String[] args) 

6 Scanner keyboard = new Scanner(System. in); Model model input_tampil(); 

8 View view new View(); = 

10 Control controller = new Control (model, view); 

11 controller.updateView(); 

12 } 

13 private static Model input_tampil() { 

14 System.out.println("HITUNG LUAS PERSEGI PANJANG DENGAN MVC"); 

15 Scanner keyboard new Scanner(System. in); 

16 Model tampil = new Model(); 

17 System.out.print("INPUT PANJANG: "); 

18 int x = keyboard.nextInt(); 

19 tampil.setPanjang (x); 

20 

21 System.out.print("INPUT LEBAR: "); 

22 int y keyboard.nextInt(); 

23 tampil.setLebar(y); 

25 } 

24 return tampil; 

26 }

Hasil kompilasi kode program MVC tersebut adalah sebagai berikut.


C. Implementasi MVC dengan Swing Java 

Selain menggunakan scanner untuk menerima input data, Anda dapat pula membuat MVC dengan dikombinasikan komponen Swing Java. Berikut akan dijelaskan pembuatan MVC dengan komponen Swing. 

1. Class Model.java 

Bagian ini digunakan sebagai otak dari operasi MVC dan keseluruhan program. Dalam class ini, terdapat method dan variabel untuk melakukan penghitungan. Perhatikan kode program berikut.

1 package mvc; 

2 public class Model { 

4 private int x; 

5 public Model() ( 

6 x=1; 

7 } 

9 public Model (int x) ( 

10 this.x 

11} 

12 

13 public void incX() { 

14 x = x + 2; 

15} 

16 

17 public int getX() ( 

18 return x; 

19} 

20 }

Hasil kodingan dari j studio 


Penjelasan kode program tersebut adalah sebagai berikut. Kode program tersebut merupakan class Model yang digunakan sebagai inti operasi pada program yang melakukan penjumlahan variabel x dengan nilai 2 atau x = x + 2. 


2. Class View.java 

Bagian ini digunakan untuk membentuk user interface dengan memasukkan komponen-komponen Swing Java. Perhatikan kode program berikut. 

1 package mvc; 

3 import javax.swing.*; 

5 import java.awt.BorderLayout;

6 public class View { 

8 private JFrame frame; 

9 private JLabel label; 

10 private JButton button; 

11 

12 public View (String text) ( 

13 frame new JFrame ("View"); 

14 frame.getContentPane().setLayout (new BorderLayout()); 

15 frame.setDefaultCloseOperation(JFrame.EXIT_ ON_CLOSE); 

16 frame.setSize(200, 600); 

17 frame.setVisible(true); 

18 

19 label = new JLabel (text); 

20 frame.getContentPane().add(label, BorderLayout.CENTER); 

21 

22 button = new JButton("Button"); 

23 frame.getContentPane().add(button, BorderLayout.SOUTH); 

24 }

25 

26 public JButton getButton() { 

27 return button; 

28 } 

29 

30 public void setText (String text) { 

31 label.setText(text); 

32 }

33 

34 }

Hasil kodingan dari apk J Studio 

Kode program tersebut merupakan class View yang digunakan untuk membentuk tampilan program dengan menggunakan frame Swing Java. Program akan dibentuk dalam frame dan memiliki satu tombol.

3. Class Controller.java 

Bagian ini berisi ActionListener interface yang akan diakses oleh tombol yang dibentuk pada class View. Perhatikan kode program berikut. 

1 package ave;

2

3 import java.awt.event.ActionEvent; 

4 import java.awt.event.ActionListener; 

5

6 import mvc.Model.*; 

7 import mve.View.*: 

8

9 public class Controller {

10 private Model model; 

11 private View view; 

12 private ActionListener actionListener; 

13 

14 public Controller (Model model, View view) { 

15 this.model model; 

16 this.view view; 

17 

18 } 

19 

20 public void control () { 

21 actionListener = new ActionListener() { 

22 public void actionPerformed (ActionEvent actionEvent) ( 

23 linkBtnAndLabel(); 

24 } 

25}; 

26 view.getButton().addActionListener(actionListener); 

27 }

28 

29 private void linkBtnAndLabel() { 

30 model.incX(); 

31 view.setText(Integer.toString (model.getX())); 

32 }

33 }


Hasil kode program dari apk J Studio:

Kode program tersebut merupakan class Controller yang digunakan untuk membuat sebuah ActionListener button yang akan mengatur aktivitas yang dilakukan ketika button ditekan atau onclick.

4. Class Main.java 

Bagian ini adalah class yang akan dieksekusi pertama kali dan akan memanggil class lainnya. Perhatikan kode program berikut.

1 package mvc; 

3 import javax.swing.SwingUtilities; 

5 import mvc.Model.*; 

6 import mvc.View.*; 

7 import mvc.Controller.*; 

9 public class Main { 

10 public static void main(String[] args) { 

11 SwingUtilities.invokeLater (new Runnable() { 

12 @Override 

13 public void run() ( 

14 Model model new Model (1); 

15 View view new View("-");

16 Controller controller Controller (model, view); = new 

17 controller.control(); 

18 } 

19 }); 

20 } 

21 }

Kode program tersebut adalah main program atau program utama yang akan dieksekusi pertama kali ketika program dijalankan. Pada main program dilakukan import semua model yang diperlukan dalam MVC main program, yaitu sebagai berikut. 

import javax.swing.SwingUtilities; 

import mvc.Model.*; 

import mvc.View.*; 

import mvc.Controller.*; 

Hasil kompilasi kode program tersebut adalah sebagai berikut.






Tidak ada komentar:

Posting Komentar

Ulangan Akhir Bab 5

 A. Pilihlah salah satu jawaban yang tepat.  1. Jenis usaha yang memiliki uang kas sebagai modal dan biaya produksi dengan besaran tidak leb...