Home » Kuliah IT » Pemrograman » Contoh Stack : Fungsi, Jenis dan Implementasinya

Contoh Stack : Fungsi, Jenis dan Implementasinya

by Anindya Putri Arunawati
by Anindya Putri Arunawati

Apa itu Stack?

Stack merupakan suatu order list yang dalam pemrosesannya pengambilan dan penambahan elemen hanya dilakukan pada satu ujung.

Jika queue menggunakan prinsip FIFO (First In Firs Out) beda halnya dengan stack, stack menggunakan prinsip LIFO (Last In Fist Out) dimana elemen atau data yang terakhir disisipkan menjadi elemen yang paling dulu diambil, stack juga disebut pushdown list.

Untuk lebih mudahnya umpamakan kita menumpuk suatu buku, buku yang terakhir di tumpuk akan menjadi buku pertama untuk diambil karena berada dibagian paling atas tumpukan, untuk memindahkan sebuah elemen dari tempat atas tersebut dalam sebuah stack, maka dilakukan operasi pop seperti pada gambar dibawah ini.

Fungsi dalam Stack

  • Fungsi init : fungsi ini digunakan untuk menginisialisasi atau membuat stack baru yang belum terisi atau masih kosong.
  • Fungsi full : fungsi untuk mengetahui apakah stack dalam keadaan penuh.
  • Fungsi empty : digunakan untuk mengetahui apakah stack dalam keadaan kosong atau telah terisi
  • Fungsi clear : digunakan untuk mengosongkan stack dimana stack dianggap kosong apabila puncak stack berada pada posisi -1.
  • Fungsi push : digunakan untuk menambahkan data ke dalam stack yang dalam penambahanya data tidak dapat ditambahkan jika stack dalam keadaan full (penuh)
  • Fungsi pop : digunakan untuk mengambil data teratas stack dengan syarat bahwa stack dalam keadaan tidak kosong.

Operasi pada stack

  • Push : Untuk menambahkan elemen atau data, dimana data paling akhir akan diletakkan di paling atas
  • Pop : untuk mengambil atau mengeluarkan data dimana data yang diambil adalah data terakhir atau paling atas.
  • Clear : digunakan untuk mengosongkan stack
  • IsEmpty : untuk memeriksa apakah stack sudah kosong
  • IsFull : untuk memeriksa apakah stack dalam keadaan penuh

Implementasi Stack dengan Array menggunakan bahasa Java

public class StackArr implements Stack {
T value[] ;
int topOfStack ;
public boolean isEmpty(){…}
public T pop(){…}
public void push(T item){…}
public T peek(){…}
public int size() {…}
}

Stack dengan Linked List


Linked List merupakan sekumpulan elemen atau data dengan tipe yang sama, mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian.

Selain dapat diimplemtasikan dengan array, stack juga dapat diimplementasikan dengan single linked list dimana dengan menggunakan linked list dapat menghemat dalam pengalokasian memori yang dinamis.

Perbandingan Stack dengan Linked List dan Stack dengan Array

ARRAYLINKED LIST
Array bersifat Statis, jumlah memori yang telah dipesan tidak dapat diubah lagiLinked list bersifat Dinamis, jumlah memori dapat diubah
Penambahan / penghapusan data terbatasPenambahan / penghapusan data tidak terbatas
Random accessSequential access
Array tidak dapat dihapusLinked list dapat dihapus dengann mudah

You may also like