Makalah ini membahas implementasi struktur data stack dan non-binary tree pada aplikasi file explorer untuk mengelola navigasi maju mundur dan pencarian file. Aplikasi dibuat menggunakan bahasa pemrograman Java dengan framework JavaFX.
1. IMPLEMENTASI STRUKTUR DATA PADA APLIKASI FILE EXPLORER
Fajar Zuhri Hadiyanto NRP 5025201248
Program Studi Teknik Informatika,
Fakultas Teknologi Elektro dan Informatika Cerdas
Institut Teknologi Sepuluh Nopember
Keputih, Sukolilo, Surabaya, Jawa Timur 60117
fajarzuhri76@gmail.com
ABSTRAK
Makalah ini akan membahas struktur data yang diimplementasikan pada aplikasi file explorer.
Fitur-fitur yang dibahas mencakup fitur navigasi backward dan forward menggunakan stuktur data
stack, dan fitur search pada apikasi file explore menggunakan algoritma traversal pada non binary
tree. Bahasa pemrograman yang digunakan untuk membuat duplikasi file explorer yaitu bahasa
pemrograman java, dengan bantuan framework JavaFx sebagai GUI framework.
Kata kunci : non-binary tree, stack, struktur data, tree
I. PENDAHULUAN
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).
2. II. LANDASAN TEORI
2.1. Struktur Data Stack
2.1.1.Konsep Stack
Stack merupakan salah satu struktur data linear yang menerapkan konsep LIFO (Last In First
Out), dimana data yang masuk terakhir yang dapat diakses terlebih dahulu. Stack memiliki
tiga operasi utama, yaitu push, untuk memasukkan data ke tumpukan paling atas, lalu pop
untuk mengeluarkan dan mengembalikan nilai yang berada di tumpukan paling atas, dan
peek yang digunakan untuk melihat isi data pada tumpukan paling atas tanpa menghapusnya.
2.1.2.Stack pada file explorer
Pada file explorer, struktur data stack digunakan pada fitur navigasi backward dan forward.
Ketika pertama kali membuka aplikasi file explorer, aplikasi tersebut akan menginisiasi dua
buah stack, yaitu stack untuk menampung backward state dan forward state. Backward state
bertujuan untuk mengakses beberapa state yang sebelumnya sudah diakses, sedangkan
forward state digunakan untuk menyimpan state setelah diberi action backward. Pada
awalnya, ketiga state tersebut akan seperti berikut
3. Ketika kita mengakses folder baru, maka state yang berada di current state akan berpindah
ke backward state, sehingga menjadi seperti berikut
Lalu, setelah mengakses beberapa folder lain, state akan menjadi kurang lebih seperti berikut
Ketka kita melakukan aksi backward, maka yang berada di current state akan berpindah ke
forward state, dan data yang berada di paling atas backward state akan berpindah ke current
state, sehingga akan menjadi seperti berikut
4. Lalu ketika kita melakukan aksi forward, maka yang berada di current state akan berpindah
ke backward state dan yang berada di paling atas forward state akan berpindah ke current
state, sehingga hasilnya sama dengan ketika sebelum dilakukan aksi backward, yaitu sebagai
berikut
5. 2.2. Struktur Data Tree
2.2.1.Konsep Tree
Tree merupakan salah satu struktur data non linear. Pada struktur data tree, setiap node dapat
memiliki beberapa child node. Tree secara umum terdiri dari 2 jenis, yaitu binary dan non
binary tree. Pada binary tree, setiap node hanya diperbolehkan memiliki maksimal dua child
node. Sedangkan pada non binary tree, tidak ada Batasan jumlah child node untuk setiap
node.
2.2.2.Tree pada file explorer
Pada file explorer, sistem pengorganisasian filenya menggunakan struktur data non binary
tree, dimana setiap folder dapat menampung lebih dari dua entitas (file ataupun folder
lainnya).
Untuk melakukan pencarian pada sistem file tree seperti ini, algoritma yang digunakan yaitu
traversal algorithm pada non binary tree. Algoritma ini mirip dengan traversal algorithm
pada binary tree, hanya saja, sub masalah tidak hanya sebatas pada dua elemen saja, tetapi
bisa lebih dari dua elemen, oleh karena ini digunakan perulangan untuk mengakses tiap-tiap
sub masalah. Algortitma yang digunakan dapat digambarkan dengan diagram alur sebagai
berikut.
6.
7. III. IMPLEMENTASI
3.1. Data model
Data model merupakan representasi dari tipe atau entitas yang akan digunakna di dalam
aplikasi. Pada file explorer, terdapat dua entitas utama, yaitu folder dan file. Kedua entitas
tersebut dapat digambarkan menggunakan UML diagram sebagai berikut.
8. 3.2. Main Model
Main model merupakan representasi dari kumpulan data yang digunakan di dalam aplikasi.
Pada aplikasi ini, model dibagi menjadi 2, yaitu class FileTreeModel yang berperan menjadi
file tree system di aplikasi, dan class StateModel yang bertugas untuk menyimpan setiap state
yang diperlukan pada aplikasi. Kedua model tersebut dihubungkan dengan sebuah helper
class atau main class, yaitu class Model. Model tersebut dapat digambarkan menggunakan
UML diagram sebagai berikut.
3.3. Project Structure
Secara umum, projek ini terbagi menjadi dua bagian, yaitu logic dan resource. Bagian logic
berisi semua source code java yang diperlukan untuk mengatur bagaimana aplikasi berjalan.
Sedangkan bagian resource berisi sumber daya yang diperlukan untuk membangun aplikasi
ini, dalam hal ini yaitu template view yang digunakan untuk mengatur tampilan dari aplikasi
dan resource lain berupa gambar. Projek lengkap dapat dilihat di link berikut
https://github.com/fajarzuhrihadiyanto/file-explorer-simulation .
10. V. KESIMPULAN
File explorer merupakan aplikasi yang digunakan untuk menjelajahi dan juga mengorganisasi
file dan folder dengan struktur tertentu. Struktur data yang digunakan untuk mengorganisasi
kumpulan file dan folder tersebut yaitu non binary tree, dimana setiap folder dapat
menampung beberapa file dan folder lainnya. Untuk mencari file dan folder dengan nama
tertentu, maka digunakan algoritma traversal pada non binary tree yang prinsipnya sama
dengan algoritma traversal pada binary tree. Pada file explorer juga terdapat fitur navigasi
backward dan forward yang mengandalkan struktur data Stack, karena prinsip pengaksesan
setiap state yang bersifat LIFO.
DAFTAR PUSTAKA
Carnegie Mellon University. (2021, June 26). Non-Binary Trees. Retrieved from Carnegie Mellon
University School of Computer Science: https://www.cs.cmu.edu/~aiton/split/Manual-
2.6.master005.html
Geeks for Geeks. (2021, June 28). Stack Data Structure (Introduction and Program). Retrieved from
Geeks for Geeks: https://www.geeksforgeeks.org/stack-data-structure-introduction-program/
Microsoft Corporation. (2021, June 26). FindAllFiles: Algorithm for Finding All Files Under a Directory.
Retrieved from Microsoft Documentation: https://docs.microsoft.com/en-
us/openspecs/windows_protocols/ms-fsa/1cab22b6-4502-45f5-b97f-783b7b5e6c1a
The University of Alabama. (2021, June 26). Data Structures and Algorithms Non-Binary Trees and
Traversals. Retrieved from Computer Science of The University of Alabama:
http://cs360.cs.ua.edu/lectures-new/36%20Non-Binary%20Trees%20and%20Traversals.pdf
Tutorials Point. (2021, June 26). Data Structure and Algorithms - Tree. Retrieved from Tutorialspoint:
https://www.tutorialspoint.com/data_structures_algorithms/tree_data_structure.htm