Stack
Pengertian Stack
Salah
satu konsep yang efektif untuk menyimpan dan mengambil data adalah terakhir
masuk sebagai yang pertama keluar (Last In First Out / LIFO). Dengan konsep
ini, pengambilan data akan berkebalikan urutannya dengan penyimpanan data.
Stack
adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain.
Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO. Dengan
demikian, elemen terakhir yang disimpan dalam stack menjadi elemen pertama
yang diambil. Dalam
proses komputasi, untuk
meletakkan sebuah elemen
pada bagian atas dari stack,
maka kita melakukan
push. Dan untuk memindahkan dari
tempat yang atas tersebut, kita
melakukan pop.
Ada
beberapa cara untuk menyajikan
sebuah stack tergantung
pada permasalahan yang akan
kita selesaikan. Dalam
bab ini kita
akan menggunakan cara
yang paling sederhana,
tipe data yang sudah kita
kenal, yaitu array. Kita
dapat menggunakan array
untuk menyajikan sebuah stack, dengan anggapan
bahwa banyaknya elemen maksimum
dari stack tersebut tidak akan
melebihi batas maksimum banyaknya
elemen dalam array. Pada saat ukuran
stack, kalau kita
teruskan menambah data lagi,
akan terjadi overflow.
Dengan demikian
perlu data tambahan
untuk mencatat posisi
ujung stack. Dengan kebutuhan seperti ini, kita dapat
menyajikan stack dengan
menggunakan tipe data struktur
(struct) yang terdiri dari
dua field. Field pertama
bertipe array untuk menyimpan elemen
stack, medan kedua bertipe
integer untuk mencatat
posisi ujung stack
Gambar 3.1 Ilustrasi
Sebuah Stack
Penyajian Stack
Ada
beberapa cara untuk menyajikan sebuah stack tergantung pada permasalahan yang
akan kita selesaikan. Kita dapat menggunakan array untuk menyajikan sebuah
stack, dengan anggapan bahwa banyaknya elemen maksimum dari stack tersebut
tidak akan melebihi batas maksimum banyaknya elemen dalam array.
Pada
saat ukuran stack, kalau kita teruskan menambahkan data lagi, akan terjadi
overflow. Dengan demikian perlu data tambahan untuk mencatat posisi ujung
stack. Dengan kebutuhan seperti itu, kita dapat menyajikan stack dengan
menggunakan tipe data struktur (struct) yang terdiri dari dua field. Field
pertama bertipe array untuk menyimpan elemen stack, medan kedua bertipe integer
untuk mencatat posisi ujung stack.
Operasi Pada Stack
Operasi-operasi
dasar pada stack adalah sebagai berikut :
1.
Push
: digunakan untuk menambah item pada stack pada tumpukan paling atas
2.
Pop
: digunakan untuk mengambil item pada stack pada tumpukan paling atas
3.
Clear : digunakan untuk
mengosongkan stack
4.
IsEmpty
: fungsi yang digunakan untuk mengecek apakah stack sudah kosong
5.
IsFull : fungsi yang
digunakan untuk mengecek apakah stack sudah penuh
Notasi POLISH
Salah
satu pemanfaatan stack adalah untuk menulis ungkapan menggunakan notasi
tertentu. Seperti kita ketahui, dalam penulisan ungkapan, khususnya ungkapan
numeris, kita selalu menggunakan tanda kurung untuk mengelompokkan bagian mana
yang akan dikerjakaan lebih dahulu. Sebagai contoh, dalam ungkapan :
(A + B) * (C – D)
Suku (A + B) akan dikerjakan lebih
dahulu, kemudian suku (C – D), dan terakhir mengalikan hasil yang diperoleh
dari dua suku tersebut. Cara penulisan ungkapan tersebut sering disebut dengan
notasi infix, yang artinya adalah bahwa operator ditulis diantara dua operand.
Seorang ahli matematika mengembangkan
satu cara penulisan ungkapan numeris yang selanjutnya disebut notasi polish
atau notasi prefix, yang artinya adalah operator ditulis sebelum kedua operand
yang akan disajikan. Sebagai contoh :
Infix Prefix
A – B / (C * D ^ E) -A/B*C^DE
Notasi lain, yang merupakan kebalikan
notasi prefix, adalah notasi postfix atau notasi suffix, atau lebih dikenal
dengan notasi Polish Terbalik (Reverse
Polish Notation atau RPN). Dalam hal ini operator ditulis sesudah operand.
Sebagai contoh :
Infix Postfix
A – B / (C * D ^ E) ABCDE^*/-
Selengkapnya download disini DOWNLOAD
0 komentar:
Post a Comment