Selasa, 23 Februari 2010

Struktur Data - TUMPUKAN (STACK)

Tumpukan (stack) adalah sekumpulan data yang organisasi atau strukturnya berupa tumpukan. Elemen-elemen baru atau biasa disebut simpul (node) dapat diletakkan maupun diambil dari sebuah tumpukan hanya dari bagian akhir (atas). Oleh sebab itu, maka tumpukan mengacu pada struktur LIFO (Last In First Out), yaitu elemen yang terakhir masuk adalah yang awal dapat dikeluarkan. Kadang juga disebut struktur FILO (First In Last Out).
Aaron M. Tenenbaum mendefinisikan stack sebagai berikut : (Tenenbaum, Aaron:1996)
“A stack is an ordered collection of items into which new items may be inserted and from which items may be deleted at one end, called the top of the stack”
Beberapa contoh ilustrasi yang dapat menggambarkan tumpukan dan cara beroperasinya adalah tumpukan sate, tumpukan Compact Disk (CD), dan lain-lain. Sate misalnya, si pembuat sate menusukan (memasukan) daging sate ke tusukan satu per satu dari ujung tusukan (ujung yang runcing) menuju/mendekati batas pangkal, jika telah dimasak, maka si pemakan sate akan mengeluarkan (memakan) sate satu persatu dari ujung (yang akhir-akhir dimasukan si pembuat, itulah yang awal-awal dimakan). Demikian juga dengan tumpukan CD, orang akan mengambil CD dari tumpukan teratas yang mana merupakan yang terakhir dimasukan di dalam tumpukan.
Struktur data tumpukan banyak digunakan di beberapa aplikasi komputer. Sebagai contoh adalah sebuah prosessor yang mengeksekusi sebuah program, ketika pemanggil fungsi (function call) tercipta, maka fungsi yang dipanggil tersebut harus mengetahui bagaimana untuk kembali ke program, oleh sebab itu alamat (address, di memori komputer) saat ini dari eksekusi program harus dimasukan (push) kedalam tumpukan. Suatu ketika fungsi tersebut selesai dilaksanakan, alamat yang disimpan/dimasukan kedalam tumpukan tadi dikeluarkan kembali dari tumpukan. Jika deretan pemanggil fungsi muncul, maka nilai pengembalian (return value) berturut-turut akan dimasukan kedalam tumpukan dengan mengikuti struktur LIFO, sehingga masing-masing fungsi dapat kembali bersesuaian fungsinya untuk memanggil program.
Tumpukan juga digunakan oleh compiler didalam memproses evaluasi ekspresi dan men-generate kode bahasa mesin. Tumpukan juga digunakan untuk mengelola/menyimpan alamat kembalian (return address) dalam sebuah rantai pemanggil method (method calls) selama eksekusi program.


sumber
http://imamshofi.wordpress.com/2009/03/11/struktur-data-tumpukan-stack/

Tidak ada komentar:

Posting Komentar