MVC adalah arsitektur aplikasi yang memisahkan kode-kode aplikasi dalam tiga lapisan, Model,View dan Control.
MVC termasuk dalam arsitektural design pattern yang menghendaki organisasi kode yang terstruktur dan tidak bercampur aduk. Ketika aplikasi sudah sangat besar dan menangani struktur data yang kompleks, harus ada pemisahan yang jelas antara domain model, komponen view dan kontroler yang mengatur penampilan model dalam view. Arsitektur MVC ini memungkinkan adanya perubahan dalam domain model tanpa harus mengubah code untuk menampilkan domain model tersebut. Hal ini sangat bermanfaat ketika aplikasi mempunyai domain model dan view komponen sangat besar dan kompleks.
Contoh Gambar : Alur kerja MVC
Di sini saya akan memberikan sebuah kasus yang sederhana dengan menggukan konsep MVC, di dalam sebuah aplikasi mahasiswa yang sederhana yang dapat melakukan CRUD (Create, Read, Update, Delete),
Baikkan teman-teman kita akan mulai belajar, sebelum membuatnya, siapkan dahulu mental kalian ya..hehe kayak udah mau perang aja, lalu gorengan sama susu bisa jga pake kopi, biar nambah aduhai dan yang terakhir ya laptop/pc ya yg paling penting, hehe
Saya menggunakan Tools Netbeans versi 7, dan MySQL sebagai Databasenya :
1. Langkah pertama yang di lakukan adalah membuat Databasenya dahulu, namanya tersereah teman-teman, yang penting jangan lupa.
2. Setelah membuat Databasenya, teman-teman buat tabelnya ya, namanya juga terserah teman- teman, nanti saya jelasin di letakkan di mana saja nama tabel teman- teman.
3. Buka Netbeans teman-teman ya, lalu Buat Project dengan nama "MVC_mahasiswa".
4. Teman- tema buat package fungsinya untuk memisahkan masing-masing fungsi, caranya klik kanan pada tulisan source Packages, lihat gambar
5. buat 4 buah package dengan masing- masing nama :
- com.controller *package ini nanti berfugsi sebagai penghubung dari model dan view
- com.model *package ini berfungsi sebagai memasukkan perintah,, cak-caknya bos lah
- com.view *package ini berfungsi sebagai tampilan program
- com.koneksi *package ini berfungsi sebagai jembatan hubungan database dan program
hasilnya seperti ini..
6. langkah selanjudnya kita buat form nya kalo tidak form ya tampilan lah, buat dengan nama "Form_Mahasiswa" tanpa tanda petik dua ya, buatnya harus di dalam package com.view, cara nya klik kana package nya,, nih saya kasih gambarnya biar kalian tidak tersesat..hehe
7. kalo sudah.. bikin tampilannya seperti saya ya, lalu ganti nama-namanya sesuai yang di gambar
sedikit penjelasan, untuk "cbjurusan" teman-teman masukkan item apa saja, yang di inginkan.
*Sedikit kesalahan dari saya di tutorial ini, ternyata saya tidak melakukan perubahan variable modifers yang defaultnya private, harus di rubah ke public, agar dapat di baca oleh class lain.
Langsung saja,cara nya sebagai berikut :
kita kli knan pada txtNim pilih properties-lalu pilih code - cari tulisan variable modifers - rubah privatenya menjadi public, lihat gambar
lakukan pada txtNama, rbLaki, rbPerempuan dan cbJurusan.
8. Sekarang kita masukkin dulu library yang di butuhkan, untuk saat ini kita hanya membutuhkan MYSQL JDBC Driver aja, cara nya kita klik kanan pada Libraries liat aja foldernya di project kita, kita pilih add Library.. lalu cari MYSQL JDBC Driver - klik add Library, nih contoh gambarnya
9. lanjud ya, sekarang kita menuju com.koneksi pilih Java Class buat dengan nama "koneksi", fungsinya sebagai penghubung ke database, bisa di liat Source Code nya:
10. Jika sudah sekarang kita ke package com.controller klik kanan pilih Java Interface, caranya seperti langkah ke 6, lalu buat dengan nama "controller_mahasiswa" .
Source Code :
Sedikit penjelasan public void Simpan(Form_Mahasiswa mhs) : Ini berfungsi sebagai pengubung untuk melakukan simpan data, yang lainnya bisa di artiin sendiri ya.
11. Masih belum pusing kan, hehe dikit lagi kok, Selanjudnya kita membuat model yang fungsinya sebagia tempat memasukkan perintah-perintah, cuma di sini ada yang unik, kita harus meng Override seluruh class yang mau dibuat, cuma sudah di buat otomatis kok. tinggal ikutin aja langkah-langkahnya, kita masuk ke com.model klik kanan kita pilih Java Class, buat dengan nama "Model_Mahasiswa.
kalo sudah liat gambarnya nya
kalo sudah liat gambarnya nya
jika anda benar akan muncul seperti ini..
untuk tulisan "throw new UnsupportedOperationException ("Not supported yet."); //To change body of generated methods, choose Tools | Templates" hapus saja
12. Masukkan perintah di dalam "public void Simpan(Form_Mahasiswa mhs)" untuk menyimpan data
13. Masukkan perintah di dalam "public void Ubah(Form_Mahasiswa mhs)" untuk mengubah data
14. Masukkan perintah di dalam "public void Hapus(Form_Mahasiswa mhs)" untuk menghapus data
15. Masukkan perintah di dalam "public void Baru(Form_Mahasiswa mhs)" untuk membuat keadaan tempat input form menjadi bersih / kosong.
16. Masukkan perintah di dalam "public void Tampil(Form_Mahasiswa mhs)" untuk menampilkan isi records di tabel database kita
17. Masukkan perintah di dalam "public void KlikTabel(Form_Mahasiswa mhs)" untuk memindahkan isi dari tabel ke input kita.
18. Sekarang kita masuk ke Form_Mahasiswa pilih Source, maskkan sintak ini kedalam sourcode nya ya... *tolong di baca baik-baik setiap komentar dari saya di source code nya
19. Kita kembali ke desain ya, klik 2x tombol Baru atau bisa juga klik kanan- Event - Klik Action.,
nanti kita akan masuk ke Soure code, cuma udah di dalam btnBaru, buat sintaknya
20. Selanjudnya klik tombol Simpan, masukkan kode seperti ini..
21. Klik tombol Ubah, masukkan kode seperti ini.
22. Klik tombol Hapus, masukkan kode seperti ini.
23. Klik tombol Keluar, masukkan kode seperti ini.
24. Yang terakhir, masuk ke Source, tarik cursor paling bawah, cari tulisan "public void main(String args[])" kita tambahkan isinya seperti ini :
Selesai, kita bisa jalankan dengan menekan Shift+F6 / run,
Bentuk Tampilannya
Selamat Mencoba*
Jika anda mual-mual karna melihat coding saya, mungkin anda harus banyak-banyak berlatih, dan saya pun hanya seorang Newbea di dalam dunia pemograman.
Jika saya ada kesalahan, dalam penulisan dan jika ada masukan bisa coret-coret di komentar
Salam.. :-)
*Sumber penjelasan Konsep MCV di ambil dari e-book ifnu Bima,
Mksh gan artikel ny sangat membantu..
ReplyDeleteSama-sama..
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeletekeren gan.. :D,
ReplyDeletemau tanya nih, klo mo pasang koding kek gitu di blogspot gmn caranya ya... hehheee... maaf OOT...
terima kasih
Mas Taufik : di sini caranya gist.github.com
ReplyDeletekalo nambahin action cari gmn mas?
ReplyDeletemisal
cari nip or nama di JTextfield trus pas di klik button cari nanti nama or nip yg ada di table muncul sesuai yang di cari?
pelajari tentang query mas... yang menggunakan like
DeleteResultSet st;
DeleteStatement st;
String Query="select * from Namatable where nip='"+txtnip.gettext()+"'";
rs=st.excuteQuery(Query);
while(rs.next())
{
isi tablenya atau
System.out.Println(rs.getstring("nip"));..dan seterusnya
}
mau tanya ketemu error
ReplyDelete"tabel.setModel(tblmodel)"
"tabel" tidak teridentifikasi, itu dibuat class / variable ya?
semua yang ada "tabel" error
thanks
This comment has been removed by the author.
Deletesetahu saya kalo gak salah nama tablenya di ganti default tableny jTable1 di ganti tabel dan midifienya public
Deletemaaf semoga membantu
silakan tekan control + S saat semua sintak dimasukan
Deleteatau
anda belum membuat defaut tabel model tblmodel = new defauttabel model
gan mhs itu apanya ya.....
ReplyDelete(newbie)
'mhs' itu hanya sekedar singkatan aja = 'mahasiswa'
Deletemintalink git hubnya gan, mau liat
ReplyDeleteini tutor yang saya cari2,trima kasih banyak sangat membantu
ReplyDeleteThis comment has been removed by the author.
ReplyDeletetblmodel = new DefaultTableModel(null, header);
ReplyDeletetabel.setModel(tblmodel);
tabel.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
model.Tampil(this);
setLebarKolom();
Syapa aja yg tau maksud dari kodingan ini tolong beri aq pencerahan.
"tblmodel = new defaulttable"
Deletemodel merupakan inisilisasi dari defauttabelmodel
"tabel.setModel(tblmodel)"
tabel yang ada di view di set modelnya yang di ambil defautl set model
"tabel.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);"
yaitu mematikan fungsi auto resize pada tabel
"model.Tampil(this);"
memanggil fungsi tampil pada model, jadi saat kita run aplikasinya data pada tabel langsung terisi dikarenakan fungsi Tampil
"setLebarKolom();"
memanggil methode mengatur lebar kolom
This comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
DeleteHey, mister, bagaimana dengan metode crud yang berkonsepkan MVC namun bekerja dengan data gambar, seperti ada hal yg disebut setbinarryStream atau setBlob.
ReplyDeleteContohnya mau bkin apa ?
Deletemas bro untuk event manggil klik tablenya itu dimana ya? ane blum jalan klik tablenyanih
ReplyDeletekalau ane simpen di event mouseClicked masalah ga mas bro?
Deletegan set.lebarkolom kok errorr lebarkolom dideklarasikan dimana?
ReplyDeletemin kok gua salahnya di tblmodel ya, tiap kodingan tblmodel ada merahnya min
ReplyDeleteTerima kasihh, postingannya sangat bermanfaat 😊🙏
ReplyDeletegan saya sudah ikuti dari awal sampai akhir di com.model ada tg error
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeletekak kenapa yaa kalo yang perintah di dalam "public void KlikTabel(Form_Mahasiswa mhs)" untuk memindahkan isi dari tabel ke input saya tdk bisa berfungsi ??
ReplyDeletebang di bagian klikTable nya ada yang error int pilih = mhs.""""tabel"""".getSelectedRow(); gimana ya cara ngatasinya
ReplyDeleteSamaa
DeleteCara biar jcombobox belum diisi terus ada JOptionPane.showmessagedialog, itu formatnya gimana ya bang?
ReplyDeletenice information min
ReplyDeletepinset 3in1
mas di table nya harus dibuat action mouseclicked dlu dan disambungkan ke model.kliktabel biar berfungsi
ReplyDelete