Final Project Struktur Data 2021
Ide
Final project yang saya kerjakan terinspirasi dari aplikasi yang sering kita buka, yaitu aplikasi file explorer. File explorer merupakan software yang digunakan untuk menjelajah file dengan menggunakan GUI based application sehingga user dapat secara interaktif menjelajah setiap folder dan file di dalam sistem. File explorer dapat menyimpan dua jenis entitas, yaitu folder dan file dengan beragam mimetype. Setiap folder dapat menampung beberapa file dan folder lainnya. Sistem penyimpanan file seperti ini memanfaatkan struktur data berupa non-binary tree. Beberapa entitas dapat dikumpulkan dalam satu folder berdasarkan kriteria tertentu.
Aplikasi file explorer juga memiliki salah satu fitur berupa navigasi backward dan forward yang berfungsi mirip dengan fitur undo dan redo pada text editor, dimana fitur backward memungkinkan kita untuk Kembali ke state (folder) sebelumnya, dan fitur forward memungkinkan kita Kembali ke state (folder) sebelum melakukan backward (jika sudah terlanjur backward). Fitur tersebut memanfaatkan struktur data Stack untuk menyimpan setiap state (folder) yang kita akses dengan konsep LIFO (Last In First Out).
Arsitektur Aplikasi
Arsitektur yang saya terapkan dalam mengembangkan aplikasi ini yaitu Model-View-Controller (MVC). Sesuai namanya, arsitektur ini membagi aplikasi menjadi tiga bagian terpisah, yaitu Model, View, Controller. Tujuan digunakannya arsitektur ini yaitu untuk mempermudah dalam pengembangan dan penelusuran setiap loop hole atau bug yang ditemukan di dalam aplikasi. Model bertugas untuk menyediakan setiap data yang diperlukan oleh aplikasi. View digunakan untuk menampilkan data ke user dengan format atau aturan tertentu. Controller digunakan sebagai penghubung antara Model dan View.
Implementasi
Struktur Project
Pada implementasinya, saya menggunakan bahasa pemrograman java dengan bantuan JavaFX sebagai GUI framework yang digunakan untuk membuat GUI dengan lebih mudah. Saya membagi projek menjadi dua module
Modul pertama yaitu modul java yang digunakan untuk menyimpan semua file java yang diperlukan untuk mengatur bagaimana aplikasi berjalan. Modul ini mengandung tiga jenis file, yaitu Model, Controller, dan Main Application. File model berperan dalam menyediakan setiap data yang diperlukan oleh aplikasi. File controller berperan dalam mengatur setiap action yang mungkin terjadi di dalam aplikasi. File main application digunakan sebagai file atau class utama yang menjalankan keseluruhan projek menjadi satu kesatuan aplikasi.
Modul kedua yaitu modul resources yang digunakan untuk menyimpan semua file yang diperlukan sebagai komponen dalam pembuatan aplikasi. Modul ini berperan sebagai View pada arsitektur aplikasi. Modul ini mengandung dua jenis file, yaitu file template view (extensi fxml) yang digunakan sebagai tampilan aplikasi, dan file resource lainnya berupa asset gambar yang digunakan oleh aplikasi.
Data Object dan Model
Source Code
Dikarenakan struktur projek yang kompleks, untuk source code aplikasi tidak disertakan di dalam blog ini. Source code dari projek ini dapat di akses di sini
Hasil
Berikut ini merupakan hasil dari projek yang sudah dibuat.
Berikut ini merupakan tampilan ketika sedang melakukan pencarian.
Comments
Post a Comment