Tumpukan
Page 1
Stack
Tumpukan
Merupakan bentuk khusus dari Linier List
yang pemasukan dan penghapusan
elemennya hanya dapat dilakukan pada
satu posisi, yaitu posisi akhir dari List (Top)
Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO).
Page 2
Operasi Stack
• ISEMPTY
Untuk memeriksa apakah stack kosong
• ISFULL
Untuk memeriksa apakah stack sudah penuh
• PUSH
Untuk menambahkan item pada posisi paling atas(TOP)
• POP
Untuk menghapus item paling atas (TOP)
• CLEAR
Untuk mengosongkan stack
Page 3
Stack Pada Array
Deklarasi MAX_STACK
#define MAX_STACK 5
Deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;
int data[5];
};
Deklarasi variabel stack dari struct
STACK tumpuk;
Page 4
Page 5
Inisialisasi
• Pada mulanya isi top dengan void inisialisasi ()
-1, karena array dalam {
C/C++ dimulai dari 0, berarti tumpuk.top = -1
stack adalah KOSONG }
Page 6
Fungsi IsEmpty
int IsEmpty ()
• Digunakan untuk {
memeriksa apakah if (tumpuk.top == -1
return 1;
stack masih dalam
else
kondisi kosong return 0;
}
• Dengan cara memeriksa
TOP of STACK.
4 MAX_STACK
Jika TOP masih = -1
maka berarti stack 3
masih kosong 2
1
0 TOP = -1
Page 7
Fungsi IsFull
Page 8
int IsFull ()
{
if (tumpuk.top == MAX_STACK-1
return 1;
else
return 0;
}
4 E MAX_STACK
TOP = 4
3 D
2 C
1 B
0 A
Page 9
Fungsi PUSH
Page 10
void push (char d[5])
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top],d);
}
Page 11
Fungsi POP
Page 12
void pop ()
{
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]);
tumpuk.top--;
}
Page 13
Fungsi CLEAR
Page 14
Latihan Soal
Diketahui suatu stack dgn max_stack = 6
1. Bila dilakukan PUSH 3 elemen kedalam stack,
kemudian di PUSH lagi 2 elemen dan di POP 3 elemen.
Maka dimana posisi Top of Stack ?
2. IsEmpty pada kondisi terakhir adalah ?
3. Dari kondisi diatas, Berapa elemen yg hrs di PUSH
untuk mencapai kondisi penuh Top of Stack =
max_stack ?
4. Berapa elemen yg hrs di POP unt mencapai kondisi
IsEmpty = True
Page 15
Jawaban
1. mis: data yang ditambah adalah A,B,C
a. Push 3
Page 17
c. POP 3
Page 18
Jika TOP of STACK < MAX_STACK-1 maka
Belum penuh.
Top Of Stack = Top-POP
Top =4-3
Top=1
Penuh Jika
TOP = Max_stack -1
=6-1
=5
Page 19
3. Mak Stack
Top Of Stack = Max Of
stack-1
=6-1
=5
Page 20
4. Banyaknya yang di POP
Page 21