Friday, April 7, 2017

Konsep MVC pada Java

Konsep MVC (Model-View-Controller) merupakan salah satu penerapan compound design pattern dalam pemrograman berorientasi objek, dimana konsep ini membedakan kelas-kelas yang merepresentasikan data (Model) dengan kelas-kelas yang mengatur tampilan program (View) dan kelas-kelas pengaturan data (Controller).

Sesungguhnya, membangun program dengan menerapkan konsep MVC akan lebih merepotkan dibandingkan cara biasa karena developer harus membuat lebih banyak kelas dan package sesuai dengan konsep MVC di atas. Membangun program dengan cara biasa umumnya hanya membuat 1 buah kelas untuk satu tampilan (contoh: NewStudentForm.java) dan fungsi-fungsi seperti: pengontrollan data, koneksi ke database, dan pemrosesan data dilakukan pada 1 kelas tersebut. Pada MVC, fungsi-fungsi tersebut dipisah menjadi kelas-kelas baru dan saling terhubung.

Walaupun konsep MVC sangat merepotkan di awal, namun dalam jangka panjang, kode-kode program yang telah dibuat akan lebih mudah dalam maintenance karena developer bisa mengubah salah satu kode program tanpa harus mengganggu kode program yang lainnya. Contohnya, jika anda telah membangun Aplikasi Rumah Sakit yang berjalan pada Desktop dan anda ingin membuatnya menjadi berbasis web, maka anda cukup mengganti kelas-kelas bagian View-nya saja tanpa perlu mengubah kelas-kelas Controller dan Model.



Dalam hal koneksi aplikasi ke database, penerapan MVC pada Java ditambahkan dengan pembuatan kelas DAO (Data Access Object), yaitu kelas yang khusus menyediakan operasi Insert, Update, Delete, dan Query ke database.

Menurut penulis, berdasarkan skema di atas, developer hendaknya membuat 5 buah package, yaitu: view, controller, model, dao, dan database.


  • Bagian View merupakan kelas-kelas yang mengimplementasikan user interface dari program yang dibangun. Bagian inilah yang dilihat oleh user dan menjadi media user untuk berinteraksi. Setiap ada request atau aksi yang diminta oleh user yang berhubungan dengan data akan diteruskan ke bagian controller yang sesuai.
  • Bagian Controller merupakan kelas-kelas yang mengendalikan alur program secara keseluruhan, mengandung business logic, dan sebagai penghubung antara view dengan model dan dao. Kelas ini akan merespon permintaan atau aksi dari view ke kelas dao yang diinginkan.
  • Bagian Model pada Java menggambarkan struktur data pada database. Bagian ini direpresentasikan oleh POJO (Plain Old Java Object), yaitu kelas Java biasa yang lengkap dengan property (atribut) dan method getter-setter terhadap atribut-atributnya. Biasanya tidak memiliki method lain selain getter-setter. Contoh: Kelas Mahasiswa yang memiliki atribut: nip, nama, jenisKelamin, alamat. Kelas Mahasiswa hanya memiliki method getter-setter yang sesuai dengan atributnya yaitu: getNip, setNip, getNama, setNama, getJenisKelamin, setJenisKelamin, getAlamat, setAlamat.
  • Bagian DAO (Data Access Object) merupakan kelas-kelas yang melakukan manipulasi data yang terdapat pada database. Manipulasi bisa berupa Create, Read, Update, atau Delete (CRUD). Bagian ini terhubung ke Model (karena merupakan representasi data) dan Database (untuk mendapatkan koneksi).
  • Bagian Database, berisi kelas yang bertugas untuk membuka koneksi dengan database tertentu dan memberikan objek connection ke kelas dao yang membutuhkan koneksi.

CONTOH STUDI KASUS: APLIKASI DAFTAR MENU RESTORAN

Anda sebagai developer Java diminta membuatkan aplikasi untuk menginputkan daftar menu yang ada pada restoran dan menampilkannya dalam bentuk tabel. Buatlah aplikasi dengan menerapkan konsep MVC!

Jawaban: (Diasumsikan bahwa anda telah memahami database MySQL dan koneksinya ke Java, pemakaian Java Swing, pembuatan package, serta penggunaan interface).

Berdasarkan kasus di atas, bisa dirancang file-file kelas dengan package sebagai berikut:


Selanjutnya dirancang diagram kelas sebagai berikut:



hasil running dari program adalah sebagai berikut:



EmoticonEmoticon