B. PETA KONSEP
Konsep MVC
Lisensi Dokumen:
Copyright © 2019 maliki.id
Seluruh dokumen maliki.id dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk
tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut
penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak
diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari
maliki.id.
Dua minggu kemudian, aplikasi web yang diminta sudah selesai dikembangkan.
Dengan penuh senyuman anda mempresentasikan web yang telah
dikembangkan ke klien. Selesai presentasi, klien meminta beberapa perubahan.
Bentuk font-nya kurang bagus. Biru di warna latarnya coba digelapkan sedikit.
Elemen navigasi terlalu naik. Tolong ditambahkan data pengunjung halaman.
Dan masih banyak perubahan lainnya. Anda lalu kembali bekerja untuk
memperbaiki aplikasi, dan kemudian melakukan presentasi lagi. Hal ini terjadi
berulang kali, sampai akhirnya di akhir proyek, kode aplikasi web anda sudah
tidak dapat dikenali.
Kenapa kode tidak lagi dapat dikenali? Ada banyak faktor. Misalnya, kode untuk
menampilkan HTML tercampur dengan kode query basis data karena tambahan
fitur yang diminta oleh klien pada tengah malam. Waktu itu, anda terlalu
mengantuk untuk berpikir jernih dan akhirnya kode tercampur dan sulit diubah
lagi karena perubahan di satu tempat akan merusak kode di tempat lain.
Mungkin ada kode penanganan kesalahan yang bercampur dengan kode
penulisan tampilan, karena anda terburu-buru mengubahnya begitu selesai
rapat. Intinya adalah, kode menjadi buruk dan sulit dikembangkan. Kenapa?
Karena semua bagian kode sudah tercampur aduk seperti spaghetti.
Untuk menghindari kode agar tidak menjadi spaghetti, maka kita harus
menerapkan prinsip Pembagian Fokus (Separation of Concern). Secara singkat,
SoC atau Separation of Concern merupakan teknik di mana kita membagi-
bagikan kode ke dalam beberapa bagian. Masing-masing bagian kode ini
kemudian memiliki tanggung jawabnya masing-masing. Bisa saja ada bagian
kode yang khusus menangani basis data. Ada bagian kode yang menangani
tampilan. Ada bagian kode yang menghubungkan tampilan dengan basis data.
MVC, atau Model View Controller, merupakan salah satu implementasi prinsip
SoC untuk aplikasi yang kita kembangkan. MVC adalah konsep arsitektur dalam
pembangunan aplikasi berbasis web yang membagi aplikasi web menjadi 3
bagian besar. Yang mana setiap bagian memiliki tugas-tugas serta tanggung
jawab masing-masing. Tiga bagian tersebut adalah: model, view dan controller.
Secara kasar, berikut adalah arsitektur aplikasi web kita jika dikembangkan
dengan menggunakan pola MVC:
Alur kerja aplikasi web kita ketika user mengunjungi salah satu halaman yaitu:
1. Browser (user) berhubungan dengan server untuk akses halaman.
2. Request (permintaan) browser ditangani oleh bagian Controller dari kode
kita.
3. Controller akan melakukan pemanggilan ke Model untuk mendapatkan
data (database) yang relevan, dan kemudian mempersiapkan data
tersebut untuk ditampilkan.
4. Controller memberikan data yang diperlukan kepada view.
Pemrograman Web Dan Perangkat Bergerak 6
Dian Purwanto, S.Pd
Pemrograman Web Dan Perangkat Bergerak
Copyright @ 2019 maliki.id
Contoh Kasus:
Ketika anda memasuki perpustakaan kemungkinan anda diminta untuk mengisi
buku tamu. Kebetulan buku tamu di perpustakaan yang anda kunjungi
menggunakan aplikasi web. Jadi di sana sudah terdapat satu komputer, di mana
setiap pengunjung perpustakaan harus melewati dan mengisi datanya melalui
komputer tersebut.
1. Ketika anda melihat layar komputer, di sana ditampilkan form untuk
mengisi data diri pengunjung. Kita bisa simpulkan bahwa di sini, browser
(sebagai client) meminta aksi kepada server (yang ditangani oleh
controller) untuk menampilkan halaman form input data. Lalu controller
memutuskan dan mengerti bahwasanya ia hanya perlu menampilkan
view. Maka controller memanggil dan mengembalikan view (atau
halaman) yang diminta.
2. Anda kemudian mengisi data. Lalu menekan tombol submit. Di sini
browser (sebagai client) mengirimkan data anda kepada server. Data itu
ditangkap oleh controller dan controller tahu apa yang harus dia lakukan.
Yaitu memanggil model dan memberi data tersebut untuk kemudian
disimpan (oleh model) ke dalam database. Setelah proses penyimpanan
selesai, controller memanggil dan mengembalikan view kepada user
sebagai informasi bahwa data telah masuk.
3. Jika ada pengunjung baru, maka kembali ke step 1.
Apabila ingin mengembangkan aplikasi PHP baru, pilihlah PHP framework yang
sudah punya semua fungsionalitas yang dibutuhkan. Ada banyak framework
yang bisa digunakan, dan masing-masing menawarkan metode pengembangan
yang unik.
Bagi yang sudah pernah menggunakan framework sebelumnya, pasti tahu kalau
masing-masing tool beda dan punya keunikan tersendiri. Karena itulah, sebisa
mungkin kami menyediakan informasi yang diperlukan agar Anda bisa memilih
framework PHP terbaik yang sesuai dengan kebutuhan website atau aplikasi.
1. Laravel (https://laravel.com/)
Berbicara soal framework PHP, salah satu nama yang sudah familiar di
kalangan para developer adalah Laravel. Framework ini dikenal karena
memiliki syntax yang mudah dipahami dan digunakan.
Laravel, di sisi lain, terintegrasi dengan library dan platform pihak ketiga,
seperti Amazon Web Services (AWS), sehingga Anda dapat membuat
aplikasi yang mudah diskalakan. Untuk task yang membutuhkan waktu
penyelesaian yang lama (biasanya lebih dari 30 detik), Anda bisa
mengurutkannya agar dapat dijalankan secara asynchronously di
background. Performa pun dapat ditingkatkan dengan lebih baik.
Keunggulan Utama:
Memiliki syntax yang mudah dipahami dan dipelajari.
Fungsionalitas intinya dapat dikembangkan dengan menggunakan
add-ons.
Menyediakan fungsi bawaan untuk mengelola routing, manajemen
user, caching, dan lain sebagainya.
Terintegrasi dengan library dan platform pihak ketiga, seperti AWS.
Menjalankan task secara asynchronously di background untuk
meningkatkan performa.
2. CodeIgniter (https://www.codeigniter.com/)
adalah informasi bantuan atau tutorial yang lengkap. Anda dapat memahami
hal-hal dasar terkait penggunaan CodeIgniter dengan lebih mudah. Performa
CodeIgniter pun dapat diandalkan, terlebih jika Anda ingin membuat aplikasi
server sederhana.
Keunggulan Utama:
Framework ringan dengan performa yang dapat diandalkan.
Mudah dipahami dan digunakan berkat adanya informasi bantuan dan
tutorial.
Membuat aplikasi yang mudah diskalakan dengan menggunakan
arsitektur framework berbasis MVC.
Di samping kelebihan, juga ada kekurangan. Sebagai contoh, tidak ada
jadwal yang tetap dan teratur mengenai update CodeIgniter. Jadi, PHP
framework ini tidak di sarankan untuk digunakan bilamana aplikasi yang di
kembangkan memiliki standar keamanan tinggi.
3. Symfony (https://symfony.com/)
Seandainya ada kompetisi mana framework PHP yang paling baik, maka
Symfony berada di urutan ketiga setelah Laravel dan Codeigniter dari segi
popularitas. Apa, sih, alasannya? Anda akan tahu setelah mencobanya.
Selain memiliki nama yang unik, Symfony juga sangat fleksibel. Di dalamnya
terdapat sistem bundle dan sistem komponen yang memudahkan Anda
dalam memilih fungsi PHP sesuai dengan keinginan, atau menggunakan
keseluruhan framework. Pun framework ini menawarkan fungsionalitas
Pemrograman Web Dan Perangkat Bergerak 11
Dian Purwanto, S.Pd
Pemrograman Web Dan Perangkat Bergerak
Copyright @ 2019 maliki.id
Keunggulan Utama:
Framework yang sangat fleksibel sehingga Anda dapat mengaktifkan
masing-masing komponen.
Menyediakan fungsionalitas testing bawaan.
Memiliki informasi bantuan dan tutorial yang dapat diandalkan.
Soal modularitas, Symfony adalah opsi terkuat dalam dunia framework. Alih-
alih library secara keseluruhan, Anda bisa menggunakan suatu komponen
yang diinginkan. Karena itulah, Symfony dinobatkan sebagai framework PHP
terbaik bagi para user yang hanya membutuhkan sedikit bantuan.
4. Zend (https://framework.zend.com/)
berorientasi pada objek dan berbasis MVC sehingga Anda dapat me-load
komponen yang diinginkan sebagai library individual. Dengan kata lain, Zend
memudahkan Anda untuk fokus hanya pada komponen atau fungsi yang
dibutuhkan dan tidak perlu menyertakan yang lain.
Keunggulan Utama:
PHP framework yang berorientasi pada objek serta berarsitektur MVC.
Berkat desain platformnya, kode yang telah ditulis dapat digunakan
kembali.
Kemudahan dalam mengintegrasikan Zend dengan library eksternal.
Tidak perlu memasukkan banyak komponen. Cukup tambahkan
komponen yang diperlukan saja.
Tentu saja Zend juga punya kekurangan. Misalnya, platform ini tidak mudah
untuk dipahami. Katakanlah platform yang digunakan sebelumnya adalah
Laravel, kemudian Anda ingin pindah ke Zend. Tentu proses pemahaman
dan penggunaan tool ini bisa dibilang cukup menantang. Anda akan
merasakan perbedaannya karena Laravel merupakan framework yang
menawarkan kemudahan, bahkan bagi developer pemula. Meski demikian,
Zend tetap menjadi framework PHP terbaik bagi mereka yang sudah
berpengalaman dan kerap melakukan coding yang berorientasi pada objek.
5. Phalcon (https://phalconphp.com/en/)
6. CakePHP (https://cakephp.org/)
Setiap versi terbaru CakePHP yang telah diupdate memiliki performa yang
terus-menerus ditingkatkan serta sejumlah komponen baru. Akan tetapi,
kelebihan utamanya justru terletak pada metode konvensi dalam coding. Hal
ini berarti ketika Anda sudah mengerti serta memahami sekumpulan
konvensinya dengan benar, maka Anda dapat fokus ke pengembangan dan
menyelesaikan task lebih cepat.
Keunggulan Utama:
Memiliki beragam paket komponen.
Konvensi CakePHP untuk memprogramkan proyek agar dapat
terlesaikan dengan cepat.
Di satu sisi, karena konvensi yang dimilikinya, CakePHP bisa lebih terbatas.
Kalau Anda suka memprogramkan sesuatu dengan coding dan ingin lebih
kreatif, maka CakePHP bukan framework PHP yang paling ideal. Namun
tetap saja, kita tidak bisa memungkiri kalau software ini masih menjadi
pilihan developer.
7. Yii (https://www.yiiframework.com/)
Selanjutnya dalam daftar framework PHP terbaik ada Yii, yang juga menjadi
kompetitor yang patut diperhitungkan. Untuk saat ini, bisa dibilang yang
menjadi keunggulan utamanya adalah kemudahan setup-nya. Bahkan dari
segi performa, Yii dapat disandingkan dengan Phalcon dan hal ini menjadi
selling pointnya.
Sama seperti PHP framework lainnya yang sudah kami bahas, Yii
menawarkan paket komponen penting agar pengembangan aplikasi web
menjadi lebih cepat. Namun yang menjadi kelebihannya adalah sekumpulan
fitur kemanan yang canggih. Dengan Yii, Anda bisa membuat proyek aplikasi
web dengan standar keamanan yang tinggi.
Keunggulan Utama:
Kecepatan dan performa yang dapat diandalkan.
Anda bisa menggunakan default setup atau mengkustomisasinya
sesuai kebutuhan.
Menerapkan standar keamanan yang tinggi pada website dan aplikasi.
Kekurangan Yii terletak pada tidak mudahnya dipahami dan dipelajari oleh
para developer pemula atau yang menggunakan framework ini untuk
pertama kalinya. Meskipun dikategorikan sebagai framework PHP terbaik, Yii
bukanlah pilihan yang tepat bagi Anda yang baru saja mulai mempelajari
bahasa pemrograman.
8. FuelPHP (https://fuelphp.com/)
FuelPHP masih relatif baru di dunia PHP framework dan pertama kali
diperkenalkan ke publik pada tahun 2014. Pengembangnya menyatakan
bahwa FuelPHP merupakan hasil riset yang mereka lakukan terhadap
beberapa framework powerful. Beberapa aspek teruniknya dijelaskan di
bagian fitur.
Keunggulan Utama:
Mendukung HMVC.
Standar keamanan yang tinggi.
Baris perintah utilitas yang unik.
Framework ini mendukung PHP versi 5.4 dan di atasnya. Selain itu, FuelPHP
juga memiliki informasi bantuan dan tutorial yang memudahkan proses
pengembangan aplikasi web berjalan lancar dan cepat.
D. RANGKUMAN
MVC adalah konsep arsitektur dalam pembangunan aplikasi berbasis web yang
membagi aplikasi web menjadi 3 bagian besar. Yang mana setiap bagian
memiliki tugas-tugas serta tanggung jawab masing-masing. Tiga bagian tersebut
adalah: model, view dan controller.
E. EVALUASI
TUGAS Praktik (Mandiri)
1. Buatlah Rancangan sebuah program aplikasi berbasis web ( digital
Curriculum Vitae / Resume / Personal Website) menggunakan konsep
MVC.
2. Rancangan diilustrasikan menggunakan flowchart.
3. Buatlah Aplikasi sesuai rancangan yang anda buat sebelumnya.
4. Aplikasi Bersifat dinamis dan dilengkapi halaman admin (FrontEnd dan
BackEnd)
5. Untuk FrontEnd silahkan gunakan salah satu dari template berikut:
https://freshdesignweb.com/personal-website-templates/
https://colorlib.com/wp/html5-resume-templates/
https://freehtml5.co/category/personal/
6. Untuk BackEnd silahkan gunakan salah satu dari template berikut:
https://www.creative-tim.com/bootstrap-themes/admin-dashboard
https://startbootstrap.com/themes/
https://adminlte.io/
7. Durasi tugas 10 X 24 jam
8. Tugas dikumpulkan (file project, flowchart dan database) melalui email
dengan format: Tugas1_nama_kelas.zip
contoh: Tugas1_Dian Purwanto_XII RPL 1.zip
Job H1 H2 H3 H4 H5 H6 H7 H8 H9 H10
Perancangan Sistem (flowchart)
Perancangan database
FrontEnd
BackEnd
Testing
Pengumpulan Tugas