Dokumen tersebut menjelaskan tentang stack dan operasi-operasinya seperti push, pop, clear, isEmpty, isFull. Stack merupakan struktur data yang mengimplementasikan prinsip Last In First Out (LIFO), di mana elemen terakhir yang dimasukkan akan menjadi elemen pertama yang diambil.
3. Kumpulan data dimana penambahan dan
penghapusan data hanya dapat dilakukan
diposisi akhir (TOP)
(TOP).
Data yang terakhir masuk ke dalam stack
maka akan menjadi data pertama yang
keluar.
Sifat stack ini dikenal dengan
Last In – First Out (LIFO)
4. OPERASI KETERANGAN
Push Menambahkan item pada tumpukan
p p
teratas
Pop Mengambil item pada tumpukan
teratas
Clear Mengosongkan stack
IsEmpty Mengecek apakah stack kosong
IsFull Mengecek apakah stack penuh
5. Implementasi stack dalam pemrograman
dapat dilakukan dengan 2 cara :
1. Dengan Array : jumlah elemen stack dibatasi
tergantung batas atas array
2. Dengan singgle linked list : jumlah elemen
stack tidak dibatasi
6. Definisikan Stack dengan suatu struct.
f
Definisikan konstanta MAX_STACK untuk
menyimpan maksimum ini stack.
k k
Elemen struct Stack adalah array data
Posisi teratas adalah TOP
d l h
7. Contoh deklarasi MAX_STACK
C t h d kl i MAX STACK
#define MAX_STACK 10
Contoh deklarasi STACK dengan struct dan
array data
struct STACK{
int top;
int data[MAX_STACK];
};
Deklarasi/buat variabel dari struct
STACK S;
8. struct STACK
{
int top;
int data[MAX_STACK];
;
};
top data[10]
Index ke - 9
..
..
..
..
..
..
..
..
..
..
..
Index ke - 0
14. int IsEmpty()
IsEmpt ()
{
if (S.top == -1)
return 1;
top data[10] else
Index ke - 9 return 0;
..
.. }
-1
..
..
..
..
..
..
(stack kosong) ..
..
..
Index ke - 0
15. Untuk memasukkan elemen ke data Stack.
Unt k memas kkan Stack
Data yang diinputkan selalu menjadi elemen
teratas Stack (yang ditunjuk oleh Top)
Proses penambahan dil k k d
P b h dilakukan dengan pengecekan
k
stack terlebih dahulu :
Jika data belum penuh maka :
p
▪ Tambah satu (increment) nilai top of stack lebih dahulu
setiap kali ada penambahan ke dalam array data Stack.
▪ Isikan data baru ke stack berdasarkan indeks top ofp
stack yang telah di‐increment sebelumnya.
Jika stack penuh maka informasikan kepada user.
16. void Push (char d)
oid P sh
{
S.top++;
S.data[S.top] = d;
top data[10] }
Index ke - 9
..
..
..
..
..
-1 + 1 = 0 ..
..
..
..
d
..
..
Index ke - 0
18. void Pop ()
oid
{
S.data[S.top] = NULL;
S.top--;
top data[10] }
Index ke - 9
..
..
..
..
..
0 - 1 = -1 ..
..
..
.. d
..
..
d
NULL Index ke - 0
19. Untuk mengosongkan semua elemen‐elemen
U t k k l l
data Stack
Dengan menggunakan perulangan untuk
mengosongkan semua nilai array secara
terbalik ( d t di k
data diakses d i i d k array
dari indeks
tertinggi terlebih dahulu baru ke indeks yang
lebih kecil )
20. void Clear()
{
for (int i=S.top;i>-1;i--)
{S.data[i] = NULL;}
}
top data[10]
Index ke - 9
..
..
..
..
.. Mengosongkan data
..
.. dari atas ke bawah
..
..
..
..
Index ke - 0
21. Untuk menampilkan semua elemen‐elemen
U t k ilk l l
data Stack
Dengan menggunakan perulangan untuk
menampilkan semua nilai array secara
terbalik ( d t di k
data diakses d i i d k array
dari indeks
tertinggi terlebih dahulu baru ke indeks yang
lebih kecil )
22. void Print ()
{
for (int i=S.top;i>-1;i--)
{cout<<S.data[i]<< " “;}
}
top data[10]
Index ke - 9
..
..
..
..
.. Print dari atas ke bawah
..
..
..
..
..
..
Index ke - 0