Stack and Queue
A. Stack
Stack atau tumpukan adalah sebuah data struktur penting di mana setiap elemennya memiliki urutan tertentu. Dapat juga diartikan sebagai kumpulan data yang seolah terlihat membentuk suatu tumpukan atau seperti ada data yang diletakkan di atas data lainnya.
Stack dapat dianalogikan seperti ketika kita memiliki setumpuk piring di mana setiap piring diletakkan di atas piring lainnya atau ditumpuk ke atas. Ketika ingin mengeluarkan sebuah piring dari tumpukan tersebut, yang pertama kali diambil adalah piring yang paling atas. Oleh karena itu, kita hanya bisa menambahkan dan mengurangi piring pada satu posisi, yaitu posisi yang paling atas.
Stack merupakan sebuah data struktur linear yang dapat diimplementasikan menggunakan array atau linked list. Elemen-elemen yang ditumpuk hanya bisa ditambah atau dikurangi dari ujungnya, yaitu yang paling atas (top). Maka, kaidah utama dalam konsep stack adalah LIFO yang merupakan singkatan dari Last In First Out. Artinya, data yang terakhir kali dimasukkan atau disimpan adalah data yang pertama kali akan diakses atau dikeluarkan.
Operasi-operasi dalam stack :
1. Push : memasukkan atau menyimpan sebuah data ke dalam stack.
2. Pop : mengeluarkan atau menghapus data terakhir (yang berada pada posisi paling atas) dari stack.
B. Infix, Postfix, and Prefix Notation
Ada tiga notasi operasi yang dilakukan untuk suatu operasi aritmatika, yaitu Infix, Postfix, dan Prefix. Notasi-notasi tersebut terbentuk dari operand dan operator. Operand adalah data atau nilai, sedangkan operator adalah fungsi yang digunakan dalam proses.
Pada notasi Infix, operator terletak di antara operand. Contoh :
4 + 6 * (5 - 2) / 3
Pada notasi Prefix, operator berada di depan operand. Contoh :
+ 4 / * 6 - 5 2 3
Pada notasi Postfix, operator berada di belakang operand. Contoh :
4 6 5 2 - * 3 / +
Mengapa kita membutuhkan notasi Prefix atau Postfix? Karena notasi tersebut tidak membutuhkan tanda kurung () untuk memprioritaskan operator-operator (operator precedence). Notasi Prefix dan Postfix lebih mudah untuk diproses oleh komputer.
Latihan Soal :
Infix : ( (1 + 3) / (100 * 5) ^ 30 )
Prefix : / + 1 3 ^ * 100 5 30
Postfix : 1 3 + 100 5 * 30 ^ /
C. Queue
Queue atau antrian merupakan struktur data linear di mana penambahan dilakukan di satu ujung, dan pengurangan dilakukan di ujung lainnya. Dapat dianalogikan seperti orang-orang yang bergerak di eskalator. Orang yang pertama menaiki eskalator akan lebih dulu keluar dari eskalator.
Kaidah utama dalam konsep queue adalah First In First Out (FIFO). Artinya, data yang pertama kali dimasukkan atau disimpan adalah data yang pertama kali akan diakses atau dikeluarkan.

Operasi-operasi dalam queue :
1. Enqueue : memasukkan sebuah data ke dalam queue.
2. Dequeue : menghapuskan sebuah data yang paling awal masuk ke dalam queue.
D. Perbedaan Stack dan Queue
1. Stack merupakan tumpukan, sedangkan queue merupakan antrian.
2. Stack bersifat LIFO, sedangkan queue bersifat FIFO.
3. Penambahan dan penghapusan elemen pada stack dilakukan di satu ujung, sedangkan pada queue dilakukan pada ujung yang berbeda.

Comments
Post a Comment