Pengertian Stack
Stack pada struktur
data adalah sebagai tumpukan dari benda, sekumpulan data yang seolah-olah
diletakkan di atas data yang lain, atau suatu urutan elemen yang elemennya
dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Stack pada struktur
data dapat diilustrasikan dengan dua buah kotak yang ditumpuk, kotak yang satu
akan ditumpuk diatas kotak yang lainnya. Jika kemudian stack 2 kotak tadi,
ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh
sebuah stack kotak yang terdiri N kotak.
Dari gambar ini kita bisa mengatakan bahwa kotak B
ada diatas kotak A dan ada dibawah kotak C. Gambar dibawah ini hanya
menunjukkan bahwa dalam tumpukan kita hanya bisa menambah atau mengambil sebuah
kotak lewat satu ujung, yaitu ujung bagian atas.
Deklarasi Struktur Data
Stack = Record
Isi : array[1..n] of Tipe Data
Atas : integer
End
Operasi-Operasi Pada Stack
Operasi dasar yang dilakukan Dalam Stack ada dua
yaitu :
1.
Menambah Komponen (Push)
2.
Menghapus Komponen (Pop)
Operasi Push
Operasi Push adalah Menambah elemen kedalam stack S,
dimana penambahan dapat dilakukan jika stack itu belum penuh.
Stack dikatakan penuh Jika posisi atas
sudah berada pada posisi N
(If S.atas = n then stack penuh)
POP(S)
Pop(s) adalah menghapus elemen dari stack, dimana
elemen yang dihapus adalah elemen yang terakhir Masuk (LIFO Last In First Out)
atau elemen penghapusan, dimana proses penghapusan dapat dilakukan jika stack
tidak dalam keadaan Kosong
If S.Atas > 0 then stack tidak kosong
Dimana Setiap melakukan penghapusan, maka posisi
yang paling atas akan berkurang
Procedure Pop( S: Stack)
If S.atas>0 then
Write
S.isi[S.atas]
S.Atas=
S.Atas – 1
Else
Stack Kosong
Fi
Create : berfungsi untuk membuat sebuah stack baru yang masih
kosong.
Spesifikasi :
Tujuan :
mendefinisikan stack yang kosong
Input : stack
Syarat awal : tidak
ada
Output stack : -
(kosong)
Syarat akhir :
stack dalam keadaan kosong
Clear : berfungsi untuk mengosongkan stack.
IsEmpty : berfungsi untuk mengecek apakah stack sudah kosong.
IsFull : berfungsi untuk mengecek apakah
stack sudah penuh.
Ilustrasi Stack
pada kondisi Full
- IsEmpty berfungsi untuk memeriksa apakah stack masih kosong atau tidak, dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong.
- Push berfungsi untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS). Tambah satu (increment) nilai top of stack lebih dahulu setiap kali ada penambahan elemen stack. Asalkan stack masih belum penuh, isikan data baru ke stack berdasarkan indeks top of stack setelah diincrement sebelumnya.
- Pop berfungsi untuk mengambil elemen teratas (data tang ditunjuk oleh TOS) dari stack. Ambil dahulu nilai element stack dengan mengakses top of stack, tampilkan nilai yang akan dipop, baru dilakukan decrement nilai top of stack sehingga jumlah elemen stack berkurang.
- Print berfungsi untuk menampilkan semua elemen-elemen stack dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil.
nice information min
ReplyDeleteLem lcd touch