Stack dan Queue

Prasyarat:


Objek Stack dan Queue adalah dua struktur data yang datang dari COM object .NET Framework. Dan sayangnya kedua object ini hanya bisa digunakan melalui binding Object dengan cara Late Binding saja.

Dengan Late Binding artinya kita tidak akan mendapatkan IntelliSense dari kedua object ini. Sehingga Property dan Method yang dimiliki kedua object ini harus ditulis dengan tepat.

Apa itu Stack dan Apa itu Queue?

Stack

Stack merupakan struktur data yang mengikuti prinsip LIFO (Last In, First Out), di mana elemen terakhir yang dimasukkan akan menjadi elemen pertama yang diambil.

Objek Stack sangat berguna dalam implementasi algoritma seperti rekursi, pengelolaan riwayat (history management), dan evaluasi ekspresi matematika.

Cara Menggunakan Stack di VBA

Sebelum digunakan, tentunya kita harus mendeklarasikan terlebih dahulu object dari Stack. Deklarasi Stack bisa di buat seperti dibawah ini tentunya dengan teknik Late Binding.

Dim stack as Object
Set stack = CreateObject("System.Collections.Stack") 'Membuat Stack

Untuk memasukan data kedalam Stack bisa menggunakan Method Push. Push kemudian diikuti data yang akan dimasukan kedalam stack. Untuk contohnya seperti dibawah ini :

stack.Push "Apel"
stack.Push "Semangka"
stack.Push "Jeruk"
stack.Push "Jambu"

Untuk melihat Data terkahir (Last In First Out) tanpa mengeluarkan dari Stack, bisa gunakan Method Peek. Pada contoh data diatas, Peek akan menghasilkan “Jambu”

DataStack = stack.Peek()

Sedangkan untuk mengambil data didalam Stack bisa gunakan Pop. Pop Juga akan menghasilkan “Jambu”, karena posisi jambu berada diatas Stack.

AmbilStack = stack.Pop()

Selain mengambil dan memasukan data kedalam Stack, kita juga bisa mencari data kedalam sebuah stack.

Misalnya, apakah didalam stack ada data “Jeruk” ?.

maka kita bisa menulis script seperti berikut ini.

CekJeruk = stack.Contains("Jeruk")

CekJeruk akan menghasilkan TRUE atau FALSE sesuai hasil apakah Jeruk ada didalam Stack.

Terkahir, untuk membersihkan seluruh data didalam stack bisa gunakan Method Clear.

stack.Clear

Queue

Kebalikan dari Stack, Queue mengikuti prinsip FIFO (First In, First Out), di mana elemen pertama yang dimasukkan akan menjadi elemen pertama yang diambil.

Queue sering digunakan dalam skenario antrian pesan (message queueing), penjadwalan tugas (task scheduling), dan pengelolaan sumber daya terbatas.

Cara Menggunakan Queue di VBA

Untuk menggunakan Queue pertama kali tentu saja harus melakukan deklarasi object Queue. Untuk deklarasi Object Queue dengan cara Late Binding bisa dibuat seperti dibawah ini.

Dim queue as Object
Set queue = CreateObject("System.Collections.Queue") 'Membuat Queue

Untuk memasukan data kedalam Queue bisa menggunakan Method Enqueue, misalnya :

queue.Enqueue "Apel"
queue.Enqueue "Semangka"
queue.Enqueue "Jeruk"
queue.Enqueue "Jambu"

Untuk melihat data yang pertama masuk sama seperti Stack menggunakan Peek. Disini Peek akan menghasilkan “Apel” karena “Apel” yang pertama kali masuk.

DataQueue= queue.Peek()

Sedangkan untuk mengambil dan mengeluarkan data dari Queue bisa menggunakan Dequeue.

firstInQueue = queue.Dequeue()

Untuk selebihnya masih sama dengan stack. Seperti membersihkan mengunakan Clear dan untuk mencari menggunakan containts.

Berikut beberapa perbedaan antara Stack dan Queue

KeteranganStackQueue
Deklarasi ObjectDim stack as Object
Set stack = CreateObject("System.Collections.Stack")
Dim queue as Object
Set queue = CreateObject("System.Collections.Queue")
Insert Datastack.Push "Apel"queue.Enqueue "Apel"
Melihat Datastack.Peek()queue.Peek()
Mengeluarkan Datastack.Pop()queue.Dequeue()
Membersihkan Datastack.Clearqueue.Clear

Leave a Reply

Your email address will not be published. Required fields are marked *