Bab 5 model view controller (MVC)

 


Dalam perkembangan pemrograman berorientasi objek, MVC adalah nama metodologi atau pola desain untuk menghubungkan user interface dengan model data yang efisien. Pola MVC banyak digunakan dalam pengembangan program dengan berbagai bahasa pemrograman, seperti Java, Smalltalk, C, dan C++. Bagaimana cara mempresentasikan Model View Controller (MVC) dalam pemrograman berorientasi objek? Pada bab ini, akan dibahas lebih dalam lagi mengenai pola desain MVC dalam pemrograman berorientasi objek. Baca dengan saksama dan pahami lebih lanjut materi pada bab ini.

A Mengenal Konsep MVC

VC merupakan salah satu istilah yang sangat populer Mdalane 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.

controlle

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.




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

4 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 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

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;

6

7 public int getPanjang() {

8 return Panjang;

9

11 this. Panjang Panjang;

10 public void setPanjang (int Panjang) {

121

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)

b.View

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

Perhatikan kode program berikut.

1 2 package cluas Persegi Panjang: public View(

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

4 Nilluas NilPanjang Nillebar:

5System.out.println("Luas Persegi Panjang="

 + Nilluas);

6

7

 8 }

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;

5

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 getNilaiPanjang () (

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.printLuasDetails (model.getPanjang(), model.getLebar(), model.getLuas());

27}

28}

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 _Persegi_Panjang:

2 import java.util.Scanner/

4 public class MVC Pattern (

5 6 public static void main(String[] args) Scanner keyboard new Scanner(System.

7 Model model input tampil();

View view new View();

9

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: ");

int y keyboard.nextInt();

tampil.setLebar (y);

24 return tampil;

25)

26 

Hasil kompilasi kode program MVC tersebut adalah sebagai berikut.



C. Implementasi MVC dengan Swing Java

elain 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 penghitungand Perhatikan kode program berikut.

1 package mvc;

2 public class Model (

3

4 private int x;

5 public Model () (

6 x= 1;

7

8

9 public Model (int x) {

10 this.xx

11

12

13 public void incx() {

14 x = x + 2;

15)

16

17 public int getX() {

18 return x;

19 

20

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:

2

3 import javax.swing.*;

4 import java.awt.BorderLayout:

5

6 puniic class View

8 privete JFrame fram 9 private Jiabel Labels

10 private Button austo 23

12 public viewlstring coats 13 frame new JFrame "View"

14 frame.getContentPane().setLayoutthew BorderLayout)

15 frame.setDefaultCloseOperation(JFrame. ON CLOSE

16 frame.setSize(200, 60012 17 frame.setVisible(true)

19 label new JLabel ft 20 frame.getContentPane().add(label, BorderLayout.CENTER)

23 22 button new JButton("Button");

23 frame.getContentPane().add(button,

BorderLayout.SOUTHI

24)

25

26 public JButton getButton)

27 return buttons

28

29

30 public void setText(String text)

32

33

34

31 label.setText(tox

Kode program tersebut merupakan class View yang digunakan untuk membentuk tarnpilan 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.

123456 6

package m

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener:

7

8

Import mvc.Model.*;

import mvc.View.*:

9 public class Controller {

20 private Model model: private View view:

11  private ActionListener actionListener:

14 public Controller (Model model, View view) 

15 this.model model:

te this view view: 

18

19

 20 actionListener

new ActionListener() ( 

21 

 publienAndLabellionPerformed(ActionEvent actionEvent) 3linkBtnAndLabel();

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

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;

2

3 import javax.swing.SwingUtilities;

4

5 import mvc.Model.*;

6 import mvc.View.*;

7 import mvc.Controller.*;

8

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.







Komentar

Postingan populer dari blog ini

Membuat jam digital dengan arduino R3

Manajemen dan pengembangan usaha

Bab 3 pelajaran Pemrograman Berorientasi Objek Kls XII RPL