STACK

Stack atau Tumpukan adalah suatu struktur data yang terbentuk dari barisan yang terurut dari satuan data. Pada Stack, penambahan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir stack. Posisi ini disebut Puncak atau Top dari stack. tumpukan data ini  seolah - olah diletakkan di atas data yang lain. Kita dapat menambahkan (menyisipkan) data dan mengambil (menghapus) dan melalui ujung yang sama, yang disebut sebagai ujung atas stack (top of stack).  Stack bersifat LIFO (Last In First Out). Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack. contoh ilutrasi nya adalah sebagai berikut..

 


Kondisi di dalam STACK

Di dalam stack, kita harus meperhatikan beberapa kondisi diantaranya :

  1. Penuh: bila elemen stack mencapai kapasitas maksimum. Pada kondisi ini tidak mungkin dilakukan penambahan ke stack. Penambahan elemen menyebabkan kondisi kesalahan overflow
  2. Kosong: bila tidak ada elemen di stack. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari stack. Pengambilan elemen menyebabkan kondisi kesalahan underflow.

Bagian bagian dari stack

  1. Stack Revresentasi Statis :  
Biasanya diimplementasikan dengan menggunakan array. Karena itu, stack dengan representasi statis dapat mengalami kondisi elemen penuh. 
 
       2. Stack Revresentasi Dinamis : 
  • Biasanya diimplementasikan dengan menggunakan pointer yang menunjuk pada elemen-elemen yang dialokasikan pada memori. 
  • Elemen ditambahkan akan menggunakan penambahan elemen pada awal stack (addfirst)
  • Saat pengambilan atau penghapusan elemen menggunakan penghapusan di awal stack (delfirst).

 Operator - Operator didalam Stack 

  1. Operasi Push

    Adalah operasi menambahkan elemen baru pada sebuah stack  Aturan penambahan stack di dalam operasi Push adalah sebagai berikut : 

    • Sebagai kondisi awal ada sebuah stack yang telah memiliki beberapa elemen dengan elemen paling atas sebagai top
    • Dibuat sebuah elemen baru yang akan dimasukkan ke dalam stack
    • Elemen baru dimasukkan ke dalam stack.
    • Penunjuk top pada stack diubah menunjuk ke
      elemen yang baru saja ditambahkan.
       2. Operasi POP
 
Adalah operasi mengambil sebuah elemen dari sebuah stack. Aturan mengambil sebuah elemen dari  sebuah stack adalah sebagai berikut:
  • Sebagai kondisi awal ada sebuah stack yang telah memiliki beberapa elemen dengan elemen paling atas sebagai top
  • Penunjuk top diubah menjadi menunjuk elemen di bawah elemen atas
  • Elemen atas diambil dari stack
Contohnya adalah sebagai berikut :
Ada sekumpulan perintah stack yaitu push(3), push(5), pop, push(2), pop, pop. Maka apabila dijalankan maka hasilnya adalah : 
 
        3. Operasi Create
 
Operasi ini berfungsi untuk membuat suatu stack kosong

        4. Isempty
 
Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack kosong.                   Operasinya akan bernilai boolean, dengan definisi sebagai berikut :
   ISEMPTY(S) = true, jika S adalah stack kosong
   = false, jika S bukan stack kosong
   Atau 
ISEMPTY(S) = true, jika (S) = NULL
= false, jika (S)= 1

        5. Isfull
 
Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack penuh.    Operasinya akan bernilai boolean, dengan definisi sebagai berikut :
        ISFULL(S) = true, jika S adalah stack penuh
        = false, jika S bukan stack penuh