Transcript for:
Pengenalan Pola Arsitektur MVC

Halo teman-teman semua, kembali lagi di channel Web Programming Unpas bersama saya Sandika Gali dan kali ini senang banget kita bisa ketemu lagi untuk memulai sebuah seri baru yang dinamakan dengan MVC yaitu Model View Controller jadi teman-teman di seri kali ini kita nantinya akan membuat sebuah aplikasi sederhana yang menerapkan konsep MVC menggunakan teori object oriented yang sudah kita pelajari di seri sebelumnya ya jadi saya yakin pasti seru banget Tapi sekarang di video kali ini kita bahas dulu mengenai apa itu MVC, mulai dari definisinya apa. Jadi sederhananya, MVC ini definisinya adalah dia sebuah pola arsitektur pada perancangan perangkat lunak yang berorientasi objek. Jadi MVC ini sebetulnya bisa diterapkan untuk bahasa pengurangan yang lain selain PHP selama dia memiliki konsep objek oriented.

Yang dimana tujuan dari MVC ini adalah untuk memisahkan Antara tampilan, data, dengan proses. Salah satu tujuan utamanya adalah ini. Gitu ya teman-teman ya.

Nah kalau misalkan teman-teman ngikutin channel ini, kita pernah membuat sebuah seri mengenai PHP dasar ya. Dimana disitu kita membuat sebuah aplikasi secara prosedural. Dan itu tanpa menggunakan konsep MVC.

Jadi kalau misalkan kita lihat program kita tanpa menggunakan MVC itu seperti ini. Ya teman-teman bisa lihat kita menyimpan semuanya dalam satu halaman. Ya baik itu tampilan, atau kita sebut dengan presentasi, data, dan juga proses.

Nah sebetulnya ini kurang baik, terutama ketika nanti programnya sudah semakin besar. Dan kalian nggak kerja sendiri, kalian bekerja dalam tim secara kolaboratif. Ya, menggunakan prosedural ini pasti nantinya merepotkan.

Nah, nanti dengan menggunakan MVC, kita akan pisah-pisah tuh komponen-komponen di dalam halamannya. Menjadi tiga komponen utama yang dinamakan dengan model, view, dan controller. Ya, di mana teman-teman bisa lihat nih. Di sini controller adalah komponen utama yang mengendalikan alur prosesnya. Nanti detailnya ini kita lihat di belakang ya.

Nah, yang pasti ini kita lihat. Kita bisa anggap sebagai Data itu untuk model Tampilan itu untuk view Dan semua proses dilakukan di dalam controller Yang mengendalikan semuanya Sesuai dengan namanya Nah sekarang, kenapa sih kita mesti belajar MVC ini? Kenapa kok MVC?

Ada beberapa alasan utama Yang pertama tentu saja adalah Organisasi dan struktur kode yang baik Maksudnya disini organisasi Entah itu tempat kita menyimpan file membuat struktur folder dan lain sebagainya. Lalu alasan berikutnya adalah untuk memisahkan tadi logic atau proses dan tampilan. Lalu akan mempermudah juga dalam maintenance codenya.

Nantinya ya, ke depannya kalian butuh maintenance untuk kodenya, itu akan lebih mudah ketika kita menggunakan MVC. Dan yang paling penting adalah supaya kalian dapat gambaran bagaimana implementasi konsep MVC yang sudah kalian pelajari di seri sebelumnya. Karena di seri sebelumnya kita hanya mencoba konsepnya saja, belum sampai membuat sebuah program atau aplikasi yang berjalan. Nah dengan MVC ini adalah salah satu cara untuk mengimplementasikan konsep yang sudah kalian pelajari.

Dan yang terakhir adalah MVC ini digunakan oleh banyak sekali web application framework yang populer. Jadi harapannya ketika kalian sudah paham mengenai MVC, nanti begitu masuk ke dalam framework itu sudah tidak kesulitan lagi memahami konsep MVC-nya. Karena banyak banget framework-framework yang menggunakan konsep MVC untuk berbagai bahasa. Contohnya di PHP aja.

Kalian pasti pernah mendengar Coding Knight, Laravel, Yee, Symfony, Cake PHP, dan masih banyak lagi. Dan itu semua menerapkan konsep MVC. Begitu juga di Java, Python, Ruby, dan JavaScript. Banyak dari framework ini menggunakan konsep MVC. Walaupun arsitekturnya berbeda.

Begitu ya teman-teman. Jadi sekali lagi harapannya. Ketika kalian paham mengenai konsep MVC ini, nanti jika kita masuk ke framework-framework ini, itu kalian nggak kesulitan lagi memahami konsepnya.

Dan selanjutnya, apa sih yang akan kita buat di dalam seri ini? Aplikasi seperti apa? Nanti aplikasi yang kita buat adalah sebuah aplikasi sederhana.

Yang bukan aplikasi yang utuh, tidak akan jalan 100%. Yang minimal kita tahu nanti bagaimana konsep MVC diterapkan di aplikasi kita. Nanti ke depannya kalau kalian mau lengkapi silahkan Kita lihat apa yang akan kita buat Jadi ini ya teman-teman ya aplikasi yang akan kita buat Sangat sederhana sekali Mungkin kelihatannya biasa aja gitu ya Tapi ini sudah menerapkan konsep MVC yang sederhana Kita bisa lihatnya gimana Begini, jadi begitu kita buka folder MVC nya Ini yang terjadi adalah Halamannya akan menampilkan yang kita sebut dengan controller default Yang di dalamnya memiliki metode default Ya teman-teman ingat itu ya Jadi pada saat kita buka aplikasinya Itu yang dibuka pertama kali adalah sebuah controller default Yang memanggil metode default Nah nanti kita buat controller defaultnya namanya home Slash lalu metode defaultnya Nanti kita bikin namanya index Jadi kalau saya tulis ini, kalau saya pencet enter Tampilnya sama aja Nanti teman-teman bisa lihat nih URL yang kita panggil atau yang kita tulis disini akan rapih Beda dengan URL yang kita buat pada saat di prosedural Ini nanti kita buat dengan menggunakan sesuatu yang disebut dengan HT Access atau HT Access ya Untuk mengelola request yang dikirim lewat URL Oke kita kembali lagi Jadi ini adalah controller default dan method default Nah sekarang saya coba gini Kalau misalkan ini saya hapus ya Terus saya tulis sembarang begini. Terus saya pencet enter. Nah maka akan tampil seperti ini juga sama.

Kenapa? Nah karena nanti program kita akan ngecek. Kalau kita tulis di URL-nya begini, ini artinya program akan mencari controller yang namanya ASD-ASD.

Ada nggak di dalam program kita? Kalau nggak ada, maka tampilkan aja controller default-nya. Nah jadi sama aja dengan mengakses home.

Gini. Nah lalu kalau misalkan kontrolernya ada, lalu kita kasih metodenya sembarang juga. Begini.

Kalau saya enter, maka akan tampil yang sama juga. Karena ketika nggak ada metodenya, akan dipanggil metode defaultnya yang kebetulan adalah index. Gitu ya. Nah gimana jika ada? Nah kalau misalkan di dalam controller home ini, kita punya metode lain.

Misalkan metodenya namanya coba. Kebetulan kita punya ini ya. Saya pencet enter.

Maka dia akan memanggil metode itu. Karena kebetulan saya punya controller home yang di dalamnya ada dua buah metode. Ada metode index dan ada metode coba.

Kalau ada, maka ditampilkan isinya. Begitu ya teman-teman. Kalau misalkan kita panggil controller lain yang kebetulan kita punya juga. Misalnya kita panggil namanya about saja. Ini saya enter.

Ini kebetulan saya punya controller namanya about. Karena saya tidak mengirimkan metodenya, maka yang akan dipanggil adalah otomatis metode defaultnya, yaitu apa? Index.

Jadi kalian tidak perlu menulis indexnya lagi, karena sama saja. Jadi ketika kontrolernya ada, metodenya ada, maka nanti programnya akan mengakses view mana yang akan ditampilkan. Lalu selanjutnya, ini yang keren juga, kita bisa mengirimkan data ke dalam metode yang dipanggil ini. Ya, data atau parameter lah ya.

Misalnya, sebetulnya di controller about dan method index ini, dia punya parameter. Jadi kita bisa kirimkan parameter di sini. Kalau kita nggak ngirimin parameter, maka ada parameter default yang dikirimkan. Nah, parameter defaultnya saat ini adalah sandika dan dosen.

Itu parameter defaultnya. Kita bisa ganti. Caranya kita tinggal tambahin aja. Misalkan, sekarang saya kirim parameter namanya erik.

Lalu slash gamer gitu. Kita kirim di sini. Kalau saya pencet enter. Kalian bisa lihat sekarang data ini atau parameter yang ada di URL ini akan dikirimkan ke controller about dan method index. Untuk digunakan di dalam view-nya.

Jadi nanti kalau misalkan suatu saat kalian punya controller baru. Misalkan controller yang namanya mahasiswa gitu. Lalu di dalam mahasiswa ini kalian punya method yang namanya get.

Lalu kalian kirimkan parameter misalkan 10. Ini kebetulan sekarang saya tidak punya ya. Tapi nanti kalau kalian bikin ini, bisa saja halaman yang akan menampilkan data mahasiswa yang ID-nya 10. Hanya dengan menuliskan URL yang rapih seperti ini. Dan nanti mahasiswa yang tampil bisa saja dari database. Sehingga kita butuh model.

Ya begitu mungkin sederhananya aplikasi yang akan kita buat Mudah-mudahan teman-teman kebayang ya Apa yang akan kita buat nanti di seri ini Jadi kalau kita kembali ke sini Ya tadi kita ingat kita punya 3 komponen yang akan kita buat ya Komponen utama Yang tiap-tiap komponennya ini punya kerjaan seperti ini Ya misalnya kalian bisa lihat Controller ini merupakan perantara antar model dan view Yang akan kita buat untuk menangani pemrosesan pada aplikasi. Dan juga menangani aksi dari user. Misalnya tombol di klik. Atau user mengisi form.

Lalu untuk model dia adalah sebuah komponen yang mengelola data, representasi pengetahuan, dan juga bisnis logiknya. Atau logika bisnis. Sedangkan view yaudah tampilan aja.

Representasi visual apa yang dilihat oleh user. Begitu. Dan ini sekali lagi adalah komponen dasar dari MVC. Nah, sebetulnya framework-framework yang menggunakan MVC itu memiliki arsitektur yang lebih kompleks lagi dari ini.

Tidak hanya ada tiga komponen gitu ya, model, view, controller. Ada komponen tambahan lain. Nah, contohnya misalnya kita lihat arsitektur dari sebuah framework yang namanya Codingnator ya. Ini framework yang cukup populer.

Ini saya ambil langsung dari websitenya. Jadi ceritanya... Alur aplikasinya atau application flow dari Coding Netter ini seperti ini.

Jadi yang pertama yang kita akses itu pasti halaman indexnya, halaman utama. Dari situ dia akan diarahkan ke sebuah komponen yang namanya routing atau routing ya. Yang nantinya dia bekerja untuk menentukan bagian mana yang akan diakses. Kontroler mana yang akan diakses.

Nah setelah itu dia masuk dulu ke komponen security. Untuk membersihkan request yang dikirim di routing ini. Apabila ada sesuatu yang jahat Misalkan di URL-nya ada yang ngaco Nanti dibersihkan dulu oleh security-nya Baru setelah aman dia masuk ke controller Sesuai dengan routing-nya Controller mana nih yang dipilih?

Udah ketahuan misalkan controller home tadi Nah dari situ Controller-nya akan menentukan apakah saya butuh model tidak Apakah saya butuh sesuatu di dalam library apa tidak Dan seterusnya Nah kalau sudah diolah di controller Nanti controller akan menentukan view mana Yang akan digunakan Karena nanti view-nya atau halamannya banyak Oh misalkan saya mau menggunakan halaman HTML yang ini Sudah dipilih Sebelum diberikan lagi ke user Dia masuk sebuah komponen yang namanya caching dulu Caching ini digunakan agar aplikasinya tambah cepat Sehingga kalau misalnya halaman tersebut sudah pernah diakses oleh user Data tersebut sudah pernah dikirim oleh user Prosesnya tidak perlu dilakukan secara penuh Langsung aja lewat cachingnya Dan terakhir dikirimkan kembali ke user Jadi MVC-nya lebih kompleks daripada skema kita sebelumnya Ini untuk Codeigniter Nah kita akan coba sedikit mengadopsi dari skema Codeigniter ini Walaupun jauh lebih sederhana ya Nah nanti aplikasi yang kita buat itu strukturnya seperti ini Simple aja Jadi nanti kita akan punya juga halaman index sebagai Halaman pertama yang diakses oleh user Nah nanti disini kita akan Kirimkan ke sebuah komponen Routing juga Untuk menentukan nanti request di URL ini Yang bertanggung jawab controller yang mana Nah nanti kalau sudah ketahuan Dikirim ke controllernya Dari controller nanti ngecek butuh model gak? Butuh data gak? Kalau butuh dia akan akses model Ya kalau enggak juga gak apa-apa Dari situ setelah proses dilakukan Controller-nya akan menentukan saya mau pakai view yang mana.

Setelah view-nya dipilih, langsung dikirimkan ke index. Jadi sederhana saja seperti ini, saya tidak akan masukkan security, saya tidak akan masukkan caching, dan lain sebagainya. Yang penting nanti kalian paham alur dari MVC-nya saja.

Begitu teman-teman ya, jadi mudah-mudahan... Teman-teman dapat gambaran tentang apa yang akan kita buat di seri ini? Saya yakin pasti seru banget seri ini ya, mudah-mudahan teman-teman semangat juga nanti ngikutinnya.

Itu aja mungkin untuk video pengantarnya. Dan selanjutnya, nanti kita akan langsung mencoba membuat aplikasinya, tapi kita awali dulu dengan persiapan struktur dari aplikasinya. Kita akan siapin dulu foldernya seperti apa, file-filenya ada apa aja.

dan lain sebagainya. Itu saja mungkin, terima kasih teman-teman sudah menyaksikan. Kita ketemu lagi di video berikutnya, dan seperti biasa, jangan lupa titik koma. Terima kasih telah menonton!