Welcome to Soryanto Tay Blogspot
Here..

We will learn together, share together, and discuss together. No word of "teaching" but we are learning from each others..

Friday, December 31, 2010

Stack (Tumpukan)

Apa itu STACK ??

Stack merupakan bentuk khusus dari suatu struktur data, dimana node yang ditambahkan ke dalam list dan diambil dari list hanya pada 'kepala'nya, atau dengan kata lain prinsip pengolahannya adalah last-in first-out (LIFO).

data yang terakhir kali dimasukkanakan pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri Stack :
1. Elemen TOP (puncak) diketahui
2. penisipan dan penghapusan elemen selalu dilakukan di TOP
3. LIFO (Last In First Out)

 LIFO

 Jika ingin mengambil 90, maka harus melakukan
pop untuk 37 dan 12 terlebih dahulu ke mudian
pop untuk 90.
Lalu jika ingin 90 tetap ada, maka harus
melakukan push untuk 90, kemudian push untuk
12 dan 37.
Data hanya bisa diambil secara berurutan, tidak
bias diambil secara langsung



pekerjaan pada komputer diolah berdasarkan pengalamatan-pengalamatan yang diatur sedemikian rupa. Begitu juga saat terjadi suatu interrupt. Saat komputer menyelesaikan suatu interrupt yang ditemukannya, maka komputer kembali melacak pekerjaan sebelumnya. Informasi pengalamatan tentang pekerjaan sebelumnya tadi disimpan dalam suatu register khusus yang dikenal sebagai sebuah stack.

Ilustrasi STACK (tumpukan)



kita mempunyai dua buah kotak yang kita tumpuk, sehingga kotak kita letakkan di atas kotak yang lain. Jika kemudian tumpukan dua buah kotak itu kita tambah dengan kotak ketiga, keempat dan seterusnya, maka akan kita peroleh sebuah tumpukan kotak, yang terdiri dari N kotak.



Contohnya kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen  teratas dalam tumpukan. Sebaliknya,  karena kita menumpuk Televisi pada saat  pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika  kita mengambil elemen dari tumpukan,  maka secara otomatis akan terambil elemen teratas, yaitu Compo juga.

Dengan demikian, pada stuktur ini hanya ada dua fungsi utama, yaitu push (memasukkan node/data ke dalam stack), dan pop (mengambil node/data dari stack). 

Underflow (kekurangan data) yang diakibatkan pengambilan data sedangkan tong stack sudah kosong.

OverFlow (kelebihan data) yang diakibatkan oleh penambahan data dimana tong stack sudah penuh.

Operasi-operasi/fungsi Stack
- Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
- Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
- Clear : digunakan untuk mengosongkan stack
- IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
- IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh

OPERASI PUSH (menambah data)


OPERASI POP (mengambil data)
  
OPERASI PUSH DAN POP
CONTOH PEMANFAATAN STACK

Pemanfaatan stack antara lain untuk menulis ungkapan dengan menggunakan notasi tertentu.
Contoh :
( A + B ) * ( C – D )
Tanda kurung selalu digunakan dalam penulisan ungkapan numeris untuk mengelompokkan bagian mana yang akan dikerjakan terlebih dahulu.
Dari contoh ( A + B ) akan dikerjakan terlebih dahulu, kemudian baru ( C– D ) dan terakhir hasilnya akan dikalikan.
A + B * C – D
B * C akan dikerjakan terlebih dahulu, hasil yang didapat akan berbeda dengan hasil notasi dengan tanda kurung

KESIMPULAN
Pada “STACK” Data hanya bisa diambil secara berurutan, tidak bisa diambil secara langsung. Hal ini berbeda dengan sistem yang ada pada “LINKED LIST” dimana data dapat diambil secara acak, bisa di tengah, di atas atau di akhir, bahkan dapat data dapat langsung dihapus.

No comments:

Post a Comment