Pada sebagian besar lingkungan, pengguna harus diautentikasi dan diautorisasi oleh sistem sebelum mereka diizinkan melakukan beberapa tindakan tertentu. Dengan kata lain, pengguna sistem harus ”log into” ke dalam sistem.
Sebagian besar log-in membutuhkan User ID dan Password.
Terdapat beberapa model untuk membuka dan mengatur sebuah hak istimewa. Satu petunjuk penting adalah menentukan hak istimewa untuk peran/role, bukan untuk individu. Untuk masing-masing peran, perlu ditetapkan hak-hak
Modul 2, Rekayasa Perangkat Lunak
istimewa khusus yang akan diberikan kepada peran. Hak istimewa tersebut meliputi iin untuk membaca tabel atau view tertentu; izin membuat, mengubah atau menghapus record pada tabel atau view khusus dan sebagainya. View pengguna yang berbeda-beda dapat digunakan untuk mengkustomisasi antarmuka pengguna untuk kategori pengguna yang berbeda-beda. Misalnya cukup mudah untuk ”ghost”
(mengubah font dari hitam ke abu-abu) dan men-disable opsi menu dan dialogue box yang dilarang untuk beberapa kelompok pengguna sistem.
Online Help. Orang menginginkan akses langsung dan segera ke context sensitive help, yakni help yang cukup pintar untuk menggambarkan apa yang dapat mereka lakukan. Help system yang lengkap meliputi daftar isi, berbagai perintah, contoh dan sebuah index yang rinci.
Help wizards memandu pengguna melalui proses yang kompleks dengan cara menampilkan sebuah urutan dialogue box yang membutuhkan input dari user dan feedback dari sistem. Perhatikan hal-hal berikut:
• Sebagai help wizards tipikal, dialogue baisanya memasukkan serangkaian perintah atau pertanyaan untuk mendapatkan respons pengguna. • Wizard berisi penjelasan untuk membantu pemahaman pengguna dan pengambilan keputusan.
• Wizard juga menyediakan sebuah tombol untuk meminta help yang lebih detail guna menyelesaikan tugas.
• Tombol ”Next” menganjurkan langkah tambahan atau lanjutan untuk didukung oleh help wizard (tombol ”Next” biasanya diubah menjadi
”Finish” setelah serangkaian dialogue box selesai).
e. Model View Controller (MVC)
Model View Controller atau MVC adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework dalam aplikasi dan website adalah berbasis MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan
bagian yang menjadi kontrol dalam sebuah aplikasi web.
Komponen MVC, terdiri atas:
1) Model, model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
2) Viewers, viewers adalah bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa halaman web.
3) Controller, controller merupakan bagian yang menjembatani model dan view.
Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.
Gambar 4.42. Komponen MVC Jenis-jenis MVC
Setidaknya terdapat tiga jenis MVC, yaitu:
• Server Side MVC, Server Side MVC biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side seperti Javascript, Java applet, Flash, dan lain-lain. Server Side MVC menyerahkan keseluruhan proses bisnis pada server, aplikasi pada sisi pengguna hanya dapat menerima. MVC jenis ini kadang-kadang disebut juga dengan nama Thin Client.
Modul 2, Rekayasa Perangkat Lunak
• Mixed Client Side and Server Side MVC, Pada Mixed Client Side and Server Side MVC 1 client tidak menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan Server Side MVC, arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1. Pada Mixed Client Side and Server Side MVC 2, client menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan arsitektur MVC yang lain, arsitektur ini memiliki tingkat kompleksitas yang paling tinggi karena lebih banyak komponen yang terlibat, sehingga membutuhkan sumber daya yang lebih besar pula. Untuk selanjutnya arsitektur ini disebut dengan Mixed MVC 2.
• Rich Internet Application MVC, Application MVC Rich Internet Application (RIA) disebut juga dengan nama Fat Client, merupakan aplikasi web yang memiliki kemampuan dan fungsi hampir seperti aplikasi desktop. RIA pada sisi client, memiliki mesin untuk mengambil data yang berada pada server, sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.
Sebagian besar framework telah menggunakan konsep MVC. Untuk framework PHP, ada cukup banyak dan hampir semuanya menggunakan konsep MVC, yaitu Laravel, Symfony, CakePHP, Zend, Codeigniter (versi 3 kebawah sudah tidak recommended untuk dipelajari dan lain-lain. Untuk framework Python di antaranya: Django, Turbogears2, Watson-Framework. Untuk framework Nodejs di antaranya: Express, Adonis, Sails.js, Total.js, Mean.js, Mojito dan lain-lain.
Contoh Kasus
Ketika pengunjung memasuki perpustakaan kemungkinan akan diminta untuk mengisi buku tamu. Kebetulan buku tamu di perpustakaan yang dikunjungi 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 pengunjung melihat layar komputer, di sana ditampilkan form untuk mengisi data diri pengunjung. Dapat disimpulkan bahwa, 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) Pengunjung 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.
Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrograman berorientasi objek (Object Oriented Programming).
MVC model pada Java
Gambar 4.43. Konsep MVC Pada Java
Modul 2, Rekayasa Perangkat Lunak
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.
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 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 tersebut, bisa dirancang file-file kelas dengan package sebagai berikut:
Gambar 4.44. Package aplikasi menu restoran Selanjutnya dirancang diagram kelas sebagai berikut:
Modul 2, Rekayasa Perangkat Lunak
Gambar 4.45. Class diagram aplikasi Hasil running dari program adalah sebagai berikut:
Gambar 4.46. Screen shoot aplikasi