Stack (Tumpukan)
1. Pengertian Stack
lainya, seperti sebuah tumpukan. Dengan demikian, stack merupakan salah satu
struktur data yang menerapkan prinsip LIFO (Last In First Out). Dimana elemen
yang terakhir disimpan dalam stack, menjadi elemen yang pertama diambil.
Untuk meletakkan sebuah elemen pada bagian atas dari stack, maka dilakukan
operasi push. Sedangkan untuk memindahkan sebuah elemen dari tempat atas
Misalnya kita mempunyai dua buah kotak yang kita tumpuk, sehingga kotak
kedua kita letakkan di atas kotak yang pertama. Jika kemudian tumpukan dua
buah kotak itu kita tambah lagi dengan kotak ketiga, keempat, dan seterusnya,
maka akan kita peroleh sebuah tumpukan kotak yang terdiri dari N kotak
Dari gambar di atas kita bisa mengatakan bahwa kotak B ada di atas kotak A dan
kita hanya bisa menambah atau mengambil sebuah kotak lewat satu ujung, yaitu
bagian atas
• Push adalah operasi untuk memasukkan data tumpukan paling atas, dimana
penambahan dapat dilakukan jika stack itu belum penuh (full). Operasi ini
biasa dinyatakan dengan push (S, d). Dalam hal ini S menyatakan
• Pop adalah operasi untuk mengambil data dari tumpukan paling atas.
Operasi ini biasa dinyatakan dengan pop (S). dalam hal ini data teratas
Operasi Penjelasan
Stack contoh = new Stack(); Membuat stack kosong
Selain operasi dasar push dan pop, berikut operasi/method lainnnya yang ada
• Peek, digunakan untuk melihat data yang berada di posisi paling atas
• Clear, digunakan untuk mengapus seluruh data yang ada pada Stack
Contoh :
misalkan ada data sebagai berikut : 1 3 5 6, maka data tersebut dapat tersimpan
Contoh lain adalah ada sekumpulan perintah stack yaitu push(5), push(7),
pop, push(3), pop. Jika dijalankan, maka yang akan terjadi adalah :
Selain operasi dasar stack (push dan stack), ada lagi operasi lain yang dapat
kosong.
dilakukan adalah push(1), push(2), pop, push(5), push(8), pos. Untuk lebih detail,
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? Top 8 X
? ? Top 2 X Top 5 5 Top 5
? Top 1 1 Top 1 1 1 1
Queue
Antrian (Queue) adalah struktur data yang mempunyai sifat yakni data
yang masuk duluan akan diproses lebih dahulu. Dengan kata lain, struktur data ini
mempunyai sifat yang dinamakan FIFO (First In First Out). Di dalam Antrian
Dapat kita perhatikan dari gambar di atas, bahwa queue memiliki limitasi
dalam storage-nya. Itulah kenapa disebut queue, yang berarti antrian. Yakni suatu
sedang di proses. Dalam komputer pun juga ada antrian, namun karena kecepatan
proses sangat cepat, jadi seolah olah seluruh instruksi dijalankan bersama – sama.
Dalam gambar tersebut juga dapat kita perhatikan terdapat empat istilah:
terutama dalam system operasi yang memerlukan manajemen sumber daya dan
insert (d). dalam hal ini, A menyatakan Antrian dan d menyatakan item
• Remove, menyatakan operasi untuk mengambil data dari antrian. Operasi ini
biasa dinyatakan dengan remove (A) atau remove () saja. Dalam hal
ini, data yang berada di depan dalam antrian A akan dikeluarkan dan menjadi
array. Kalau tidak disebutkan lain, maka antrian kita sajikan dalam array
QUEUE, dengan dilengkapi dua variabel penunjuk. FRONT, berisi lokasi dari
elemen DEPAN antrian dan REAR, berisi lokasi dari elemen BELAKANG
dalam sebuah array QUEUE dengan N elemen. Gambar itu juga menunjukkan
Dapat kita lihat bahwa pada setiap kali penghapusan, nilai lokasi FRONT
akan bertambah 1. Untuk setiap kali pemasukan elemen, nilai REAR akan
dari antrian hampa), maka lokasi QUEUE(N) telah diduduki. Di sini mungkin
saja tidak sebanyak N elemen ada dalam antrian (karena sudah dilakukan
beberapa penghapusan).
hal ini, kita menggunakan array sirkular, yakni bahwa QUEUE(1) datang sesudah
Secara yang sama, jika FRONT = N dan kita akan melakukan penghapusan,
DEQUE
DEQUE adalah suatu linear list atau daftar linear, yang penambahan dan
penghapusan elemennya dapat dilakukan pada kedua sisi ujung list, tetapi tidak
dapat dilakukan di tengah-tengah list. Dari sini, kita boleh mengatakan bahwa
Ada banyak cara penyajian suatu deque di dalam komputer. Namun yang
biasa digunakan adalah penyajian dengan cara penempatan di dalam sebuah array
Di sini kita menggunakan dua pointer atau penunjuk, LEFT dan RIGHT,
yang berturut-turut menunjuk pada sisi kiri dan sisi kanan dari deque. Kita
adalah hampa.
Selain deque dengan sifat yang telah kita sebutkan di atas, masih ada 2
model variasi deque. Kedua variasi tersebut adalah deque input terbatas, dan
deque output terbatas, yang merupakan tengah-tengah antara deque dan antrian.
elemen hanya pada satu ujung dari list, sementara penghapusan elemen boleh
DEQUE
LEFT : 4
RIGHT : 6 AAA BBB CCC DDD
1 2 3 4 5 6 7 8
(a)
DEQUE
LEFT : 7
RIGHT : 2
YYY ZZZ WWW XXX
1 2 3 4 5 6 7 8
Gambar - Deque
deque, yakni apabila (a) terjadi overflow, yakni pada saat suatu elemen
dimasukkan ke dalam deque yang sudah berisi penuh, dan (b) terjadi underflow,
yakni bila suatu elemen harus dihapus dari deque yang sudah hampa.
ANTRIAN BERPRIORITAS
adalah himpunan elemen, yang setiap elemennya telah diberikan sebuah prioritas,
2. Dua elemen dengan prioritas yang sama, diproses sesuai dengan urutan
sini pro-gram dengan prioritas yang lebih tinggi diproses terlebih dahulu, dan
sejumlah program dengan prioritas yang sama akan membentuk queue yang
standar.
memori. Kita akan membahas dua di antaranya, yakni yang pertama kita
pergunakan cara penyimpanan dalam one-way list, dan yang kedua dengan cara
1. Setiap simpul dalam list akan berisi 3 buah data atau field, yakni field
dengan urutan pada antrian berprioritas. Priority number akan beroperasi seperti
cara yang biasa dipakai, yakni simpul dengan priority number terendah, akan
diagram skematik dari antrian berprioritas dengan 7 elemen. Diagram tidak dapat
menceritakan kepada kita apakah BBB dimasukkan ke dalam list sebelum atau
sesudah DDD. Di lain pihak, diagram dapat memperlihatkan kepada kita, bahwa
BBB dimasukkan sebelum CCC, karena BBB dan CCC mempunyai priority
number yang sama dan BBB berada sebelum CCC di dalam list.
START
DDD 4 EEE 4 X
muncul dalam memori, dengan menggunakan array INFO, PRN, dan LINK.
Sifat utama dari penyajian one-way list dari sebuah antrian berprioritas
adalah bahwa elemen dalam antrian yang seharusnya diproses pertama kali selalu
muncul pada bagian permulaan one-way list. Oleh karena itu, adalah sangat
kita tersebut.
Terimakasih
Eko Budiarto, S. Kom., M.M.
ekobudiarto@pelitabangsa.ac.id
0878.4405.5481