Pengertian, Karakteristik, dan Operator-Operator Stack
Pengertian Stack
A. Pengertian Stack
Stack merupakan tumpukan data yang seolah-olah diletakkan di atas data yang lain.
Kita dapat menambahkan (menyisipkan) data dan mengambil (menghapus) data 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.
B. Karakteristik Stack
- Elemen stack yaitu item-item data di elemen stack.
- Top (elemen puncak dari stack)
- Jumlah elemen pada stack.
- Status / kondisi stack.
Kondisi stack yang perlu diperhatikan adalah :
- Penuh: bila elemen stack mencapai kapasitas maksimum. Pada kondisi ini tidak mungkin dilakukan penambahan ke stack. Penambahan elemen menyebabkan kondisi kesalahan overflow.
- Kosong: bila tidak ada elemen di stack. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari stack. Pengambilan elemen menyebabkan kondisi kesalahan underflow.
Stack Representasi Statis :
- Biasanya diimplementasikan dengan menggunakan array.
- Karena itu, stack dengan representasi statis dapat mengalami kondisi elemen penuh.
Stack Representasi 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).
C. Operator-Operator di Dalam Stack
- Operasi Push : operasi menambahkan elemen baru pada sebuah stack.
- Operasi Pop : operasi mengambil sebuah elemen dari sebuah stack.
- Create : Operator ini berfungsi untuk membuat sebuah stack kosong.
- IsEmpty : Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack kosong.
- IsFull : Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack penuh.
Penggunaan Stack
Dalam dunia komputer, penggunaan stack (tumpukan) merupakan suatu hal yang umum digunakan seperti untuk penentuan alamat memory, penempatan ruang data dan aplikasi lain.
Aplikasi stack juga digunakan untuk berbagai macam keperluan seperti pengujian kalimat palindrome, penguji tanda kurung (matching parentheses), dan juga berfungsi sebagai konversi dari notasi infix menjadi notasi postfix.
Notasi Infix dan Postfix
Suatu perhitungan aritmatika biasanya berhubungan dengan operand dan operator. Operand merupakan suatu karakter atau elemen yang nilainya dioperasikan dengan bantuan suatu operator untuk menghasilkan suatu solusi.
Notasi Postfix
Bentuk aplikasi stack yang lain adalah mengubah suatu ekspresi aritmatik (string) ke dalam notasi postfix. Notasi postfix ini digunakan oleh compiler untuk menyatakan suatu ekspresi aritmatik dalam bahasa tingkat tinggi (high level language). Stack digunakan oleh compiler untuk mentransformasikan ekspresi aritmatik menjadi suatu ekspresi dalam bentuk/notasi postfix.
Contoh :
Misal diberikan ekspresi aritmatik : A + B ;
Maka bentuknya dalam notasi postfix menjadi : AB+
3 + 2 * 5 = 325*+
(A + B) * (C – D) / E; = AB+*CD-E/
Urutan (prioritas) dari operator adalah :
Perpangkatan (^)
Perkalian (*) atau Pembagian (/)
Penjumlahan (+) atau Pengurangan (-)
Komentar
Posting Komentar