PENDAHULUAN
Latar Belakang
SIAKAD Generik merupakan suatu sistem yang memiliki fungsi generik yang dapat digunakan di perguruan tinggi lain [1]. SIAKAD bersifat modular, yaitu suatu sistem yang perancangan dan pengembangannya dibagi menjadi beberapa modul sehingga perguruan tinggi dapat memilih modul-modul yang diperlukan namun tidak sesuai dengan fungsi yang berlaku.
Rumusan Masalah
Oleh karena itu, pada Tugas Akhir ini kami akan membangun kembali SIAKAD dengan desain dan kebutuhan baru. Yang akan dikembangkan pada Tugas Akhir ini adalah pengembangan dari segi keamanan yaitu penggunaan standar keamanan untuk otorisasi dengan protokol OAuth2, API, implementasi JWT (JSON Web Token) untuk mengakses API, implementasi RBAC ke sistem, dengan pemberitahuan push ke sistem, Logging, Internasionalisasi, dan Perutean.
Batasan Masalah
Cara menerapkan metode JSON Web Token (JWT) dan protokol OAuth2 untuk mengotorisasi SIAKAD.
Tujuan
Manfaat
Metodologi
- Penyusunan Proposal Tugas Akhir
- Studi Literatur
- Analisis dan Desain Perangkat Lunak
- Implementasi Perangkat Lunak
- Pengujian dan Evaluasi
- Penyusunan Buku Tugas Akhir
Pada tahap ini, kita mempelajari kebutuhan umum aplikasi web framework melalui aplikasi serupa yang dikembangkan. Tahap ini dilakukan guna menghasilkan desain kerangka yang sesuai dengan kebutuhan pada tahap selanjutnya.
Sistematika Penulisan Laporan Tugas Akhir
Bab ini akan menjelaskan bagaimana pengujian dilakukan pada sistem, pengujian setiap fitur yang telah diimplementasikan, seperti pengujian OAuth2, RBAC, internasionalisasi, logging, API, push notifikasi, dan pengujian modul pengaturan, serta menjelaskan hasil pengujian yang dilakukan. Bab ini merupakan bab terakhir yang menyampaikan kesimpulan mengenai sistem yang telah dibangun dan saran untuk pengembangan perangkat lunak kedepannya.
TINJAUAN PUSTAKA
- Sistem Informasi Akademik Generik
- Perangkat Lunak Modular
- Model-View-Controller
- Hierarchical Model-View-Controller (HMVC)
- Repository Service Pattern
- PHP (Hypertext Preprocessor)
- Framework Phalcon
- SQL Server
- OAuth2
- JSON Web Token (JWT)
- Role Based Access Control (RBAC)
- RESTful API
Hal ini memungkinkan kode akses database yang dibuat untuk aplikasi desktop agar mudah digunakan untuk aplikasi web. Semua kode khusus untuk implementasi akses database berhenti di sini, lapisan atas tidak boleh mengetahui bagaimana akses database diimplementasikan, apakah menggunakan alat ADO.NET murni atau ORM/Micro ORM seperti Dapper.NET, Entity Framework atau Hibernate.
ANALISIS DAN PERANCANGAN PERANGKAT LUNAK
Analisis
- Analisis Permasalahan
- Deskripsi Umum Sistem
- Kebutuhan Fungsional
- Kasus Penggunaan
- Kebutuhan Non Fungsional
- Ketergantungan Data Antar Modul
Pengguna yang mempunyai lebih dari satu hak akses SIAKAD dapat mengubah hak aksesnya. Dalam hal perubahan hak akses, pengguna yang dapat mengubah hak akses adalah pengguna yang mempunyai lebih dari satu hak akses.
Perancangan Perangkat Lunak
- Desain Arsitektur
- Mekanisme Login
- RBAC
- Restful API
- Routing
- Internationalization (i18n)
- Logging
- Push Notification
- Konvensi Kode
- Perancangan Antar Muka
IMPLEMENTASI
Lingkungan Implementasi
Implementasi Modularitas
Setelah semua modul terdefinisi di loader.php, selanjutnya definisikan file Module.php untuk masing-masing modul pada file module.php. Source code 4.2 adalah contoh definisi Module.php pada modul penilaian di module.php. Untuk mendaftarkan setiap modul di module.php, kriteria yang diperlukan adalah menentukan nama kelas, dimana nama kelas tersebut akan dijadikan namespace pada file module.php. Kriteria selanjutnya adalah path yang menentukan letak file module.php pada modul, dalam contoh ini modul penilaian.
Setiap modul pada SIAKAD memiliki file module.php yang berguna untuk mengatur kebutuhan modul. Pengontrol dan tampilan yang terdapat dalam setiap modul akan ditentukan di module.php dan penggunaan format tampilan .volt sebagai mesin tampilan juga akan ditentukan di module.php. File Module.php akan menentukan persyaratan layanan untuk modul penilaian.Kode sumber 4.3 menunjukkan cara menentukan pengontrol dan tampilan yang dimiliki modul penilaian dalam file Module.php.
Definisi yang diterapkan pada SIAKAD yang terdapat pada setiap Module.php di setiap modul adalah sebagai berikut. Pada dua contoh pengontrol di atas (Kode Sumber 4.4 dan Kode Sumber 4.5), skrip namespace di pengontrol harus sesuai dengan namespace yang ditentukan dalam file Module.php di modul. Implementasi pengontrol pada Source Code 4.4 dan Source Code 4.5 memperluas ControllerBase dimana kelas ControllerBase seperti pada Source Code 4.6.
Implementasi Routing
Perutean akan merespons dengan 404 tidak ditemukan jika rute yang diminta tidak tersedia. Source code 4.8 merupakan implementasi dari routing SIAKAD. Berbeda dengan aturan perutean untuk menangani permintaan API, format yang ditentukan adalah untuk dapat meminta API. Misalnya, jika Anda ingin mengakses API versi 1 dan mengambil data daftar bangunan dari modul penjadwalan, format yang digunakan adalah 'BaseUrl/api/v1/scheduling/building list'.
Jika user adalah mahasiswa dan mengakses modul frs untuk melihat jadwal perkuliahan, maka rute yang diterapkan adalah 'baseUrl/frs/jadwal-kuliah'. Untuk mengimplementasikan Pola Layanan Repositori, setiap model dalam modul ditempatkan pada satu tempat, pada SIAKAD model ditempatkan pada folder config sehingga semua pengontrol dapat mengakses model tersebut. Pada folder models terdapat folder service yang berguna untuk menangkap permintaan dari controller dan mengolah data dengan logika yang disediakan yang kemudian akan dikirim ke repositori.
Untuk mengimplementasikan pola layanan penyimpanan, semua pengontrol yang terkait dengan database harus memanggil kelas layanan seperti pada kode sumber 4.9. Pada baris 3 kode sumber 4.9, kelas indexAction memanggil kelas layanan Sar dan menunjuk ke fungsi getAllSar1(), layanan akan meneruskan permintaan dari pengontrol ke repositori seperti pada kode berikut. Apa yang akan dilakukan kelas penyimpanan sar dengan fungsi getAllSar() adalah seperti pada kode sumber 4.11.
Implementasi Repository Service Pattern
Folder layanan berisi semua file layanan yang berguna untuk memproses logika terkait database, sedangkan folder repositori berisi file repositori yang berguna untuk berkomunikasi dengan database. Di repositori, file-file ini akan menggunakan kelas model Phalcon dan menggunakan kueri mentah. Berikut ini contoh kode yang diterapkan pada kelas layanan Activity.php, seperti pada kode sumber 4.12. Kelas repositori mengembalikan data ke kelas layanan untuk kemudian dikirim kembali ke pengontrol yang memanggil layanan tersebut.
Implementasi Modul Service Pada Kerangka Kerja
- Implementasi OAuth2
- Implementasi RBAC
- Implementasi Internationaliation (i18n)
- Implementasi Logging
- Implementasi API
- Implementasi Push Notification
- Implementasi Modul Pengaturan
Kode sumber 4.14 adalah contoh ketika SIAKAD meminta akses token ke myITS melalui endpoint /token. Source code 4.21 merupakan implementasi untuk mengarahkan pengguna ke halaman berdasarkan hak akses pengguna yaitu nama peran pada informasi pengguna yang diperoleh dari myITS. Kode sumber 4.36 merupakan implementasi fungsi untuk memvalidasi permintaan dan parameter yang dikirim oleh pengguna.
Implementasi Perancangan Antarmuka
- Antarmuka Halaman Login SIAKAD
- Antarmuka Halaman Dashboard Untuk Mengganti
- Antarmuka Halaman Modul Pengaturan
Untuk lebih mengembangkan modul setting, jika ada modul tambahan yang ingin menggunakan file settings.JSON, programmer harus membuat controller dan view pada folder yang tersedia, kemudian programmer membuat form sesuai dengan data yang dibutuhkan. Seluruh halaman pada SIAKAD mempunyai desain dan bentuk elemen top bar yang sama, sehingga pemilihan bahasa dapat dilakukan pada seluruh halaman dashboard SIAKAD. Pengguna yang mempunyai lebih dari satu hak akses SIAKAD dapat memilih hak akses pengguna pada baris teratas SIAKAD.
Halaman yang akan ditampilkan pertama kali jika pengguna mengakses modul pengaturan adalah halaman yang berisi informasi daftar modul yang termasuk dalam SIAKAD. Modul pengaturan menyediakan pengaturan umum, dimana informasi pengaturan umum tersebut dapat digunakan pada seluruh modul yang ada di SIAKAD. Untuk dapat mengubah data pada halaman tersebut, pengguna harus mengklik tombol berwarna biru.
Implementasi Pada Server
Test case ini dijalankan untuk memeriksa apakah sistem mampu melakukan proses otentikasi dan otorisasi. Dalam uji kasus ini, pengguna pada sistem akan mencoba masuk ke sistem menggunakan akun yang terdaftar pada sistem. Test case ini dijalankan untuk memverifikasi bahwa sistem mampu menentukan RBAC berdasarkan data yang dimasukkan oleh pengguna.
Test case ini dilakukan untuk memeriksa dan menguji apakah sistem dapat mengimplementasikan fungsi internasionalisasi dengan benar. Test case ini dilakukan untuk mengecek apakah logging pada SIAKAD berhasil dilaksanakan atau tidak. Test case ini dijalankan untuk memverifikasi bahwa mekanisme API yang disediakan berfungsi dengan benar.
Test case ini dijalankan untuk memeriksa apakah fitur push notifikasi berfungsi dengan baik atau tidak. Dalam uji kasus ini, pengguna akan menggunakan alat tukang pos untuk mengirimkan pesan notifikasi kepada pengguna yang telah mengaktifkan fitur notifikasi push. Test case ini dijalankan untuk memeriksa apakah modul pengaturan dapat berjalan dengan baik atau tidak.
UJI COBA DAN EVALUASI
Lingkungan Uji Coba
Lingkungan pengujian adalah kombinasi perangkat keras dan perangkat lunak yang digunakan untuk melakukan pengujian.
Skenario Pengujian
- Kasus Pengujian Oauth2
- Kasus Pengujian RBAC
- Kasus Pengujian Internationalization
- Kasus Pengujian Logging
- Kasus Pengujian API
- Kasus Pengujian Push Notification
- Kasus Pengujian Modul Pengaturan
Hasil yang Diharapkan: Pengguna dapat masuk ke dashboard SIAKAD dan memenuhi hak akses pengguna. Untuk membuktikan bahwa RBAC dapat bekerja dengan baik, maka akan dilakukan pengujian dengan mengimpor data dari pengguna dengan berbagai data pengguna yang memiliki hak akses berbeda. Hasil yang Diharapkan Pengguna login dan diarahkan ke dashboard siswa dan diberikan menu sesuai hak akses siswa.
Hasil yang diharapkan User login dan diarahkan ke dashboard dosen dan diberikan menu-menu berdasarkan hak akses dosen. Kondisi akhir : Pengguna diarahkan dan mendapatkan menu sesuai hak akses dosen Skenario 3. Pengguna adalah dosen dan. Hasil yang diharapkan : Pengguna login dan diarahkan ke dashboard RMK Presiden dan mendapatkan menu berdasarkan hak akses Presiden RMK, dan pengguna dapat mengubah hak akses sebagai dosen dan mendapatkan menu berdasarkan hak akses dosen.
Kondisi akhir Pengguna dikontrol dan menerima menu sesuai dengan hak akses ketua RMK dan guru. Hasil pengujian dilakukan dengan memasukkan kredensial pengguna yang mempunyai hak akses guru dan kepala RMK (Skenario 3). Hasil pengujian dilakukan dengan memasukkan data pengguna yang berisi informasi ID negara dan mengubah bahasa ke Bahasa Inggris (Skenario 3).
KESIMPULAN DAN SARAN
Kesimpulan
Analisis tingkat proses bisnis dan kebutuhan fungsi-fungsi baru pada SIAKAD dilakukan, sehingga diambil kesimpulan untuk membangun kembali SIAKAD secara modular dengan framework Phalcon dan membangun SIAKAD dengan lapisan integrasi, yang diimplementasikan pada tugas akhir ini, seperti OAuth2, RBAC, internasionalisasi, logging dan pemberitahuan push. SIAKAD yang dibangun berhasil mengimplementasikan desain modular dengan menggunakan arsitektur Hierarchical Model-View-Controller dan menggunakan pola Repository Service. Sistem yang dibangun telah berhasil mengimplementasikan RBAC (Roled Based Access Control) untuk penentuan dan pembatasan hak akses pengguna.Untuk implementasi RBAC dibangun aplikasi SIAKAD sebagai aplikasi client dari aplikasi myITS.
Sistem telah berhasil mengimplementasikan JSON Web Token dan OAuth2 dengan mengimplementasikan SIAKAD sebagai aplikasi klien pada myITS, dimana pada myITS for. Sistem yang dibangun telah berhasil mengimplementasikan push notifikasi sebagai fungsi untuk dapat mengirimkan pesan notifikasi kepada pengguna menggunakan Firebase Cloud Messaging, API sebagai fungsi untuk berbagi data dengan sistem lain, logging sebagai fungsi mekanisme logging yang dilakukan oleh pengguna SIAKAD menggunakan kelas Phalcon\Logger\AdapterInterface, internasionalisasi sebagai fitur untuk mekanisme terjemahan bahasa.
Saran