Tumpukan (Stack)
•
Susunan koleksi data dimana proses
penambahan data (add) dan penghapusan data
(delete) selalu dilakukan melalui posisi akhir data.
•
Posisi akhir data
Æ
top of stack
•
Stack bersifat LIFO (Last In First Out)
LIFO
Æ
Data yang terakhir masuk ke dalam stack
Operasi Stack
Macam-macam operasi stack:
• Push: menambah data pada stack (tumpukan paling atas) • Pop: menghapus data pada stack (tumpukan paling atas) • IsEmpty: menguji apakah stack dalam keadaan kosong • IsFull: menguji apakah stack dalam keadaan penuh
• Print: menampilkan semua elemen (isi) stack
• Clear: mengosongkan atau menghapus semua elemen (isi) stack
Implementasi stack dengan struct
Langkah-langkah...
• Definisikan konstanta MAX_STACK untuk menyimpan nilai maksimum isi stack
• Definisikan stack menggunakan tipe data struct (struct stack) • Elemen struct stack adalah:
int top dan int data[MAX_STACK - 1] (top Æ mencatat posisi data teratas
data Æ mencatat isi stack)
Deklarasi awal
• Deklarasi MAX_STACK
#define MAX_STACK 8
• Deklarasi STACK dengan tipe data struct
typedef struct STACK {
int top;
int data[MAX_STACK - 1]; };
• Deklarasi tumpuk yang bertipe STACK
Inisialisasi
Inisialisasi Stack
• Inisialisasi isi top = -1 , berarti isi stack
masih kosong, atau belum berisi data.
(
ingat indeks array dalam bahasa C dimulai dari 0)
• top
Æ
variabel penanda yang
Stack dalam keadaan kosong
Stack dalam keadaan penuh
Fungsi IsEmpty dan IsFull
Fungsi IsEmpty (
memeriksa apakah Stack masih kosong?)
• Memeriksa top, jika top == -1, berarti stack masih kosongFungsi IsFull (
memeriksa apakah Stack sudah penuh?)
Fungsi Push
Fungsi Push
• Untuk menambah data pada stack (tumpukan paling atas). Data yang diinputkan selalu menjadi elemen teratas Stack (Top of Stack).
Algoritma Push
• Apabila stack belum terisi penuh, lakukan: – Perbarui nilai top, dengan menambah satu
(increment) nilai top (top=top+1 atau top++)
– Isikan data baru ke stack (pada posisi top yang baru) • Apabila stack telah terisi penuh, batalkan penambahan
Ilustrasi
fungsi
P
ush
struktur data
-tumpukan
1
Fungsi POP
Fungsi Pop
• Untuk menghapus data pada stack (tumpukan paling
atas). Data yang dihapus selalu menjadi elemen teratas Stack (Top of Stack)
Algoritma Pop
• Apabila stack tidak dalam keadaan kosong, lakukan: – Tampilkan data yang akan dihapus, hapus data
tersebut.
– Perbarui nilai top, dengan mengurangi satu (decrement) nilai top (top=top-1 atau top--) • Apabila stack dalam keadaan kosong, batalkan
Ilustrasi
fungsi
P
op
struktur data
-tumpukan
1
Fungsi Print
Fungsi Print
•
Untuk menampilkan semua elemen (isi) stack.
•
Menggunakan proses perulangan, dimulai dari
indeks array terbesar, diteruskan ke indeks yang
lebih kecil.
•
Nilai top tidak diubah
Fungsi Clear
Fungsi Clear
• Untuk mengosongkan atau menghapus semua elemen
(isi) stack
• Cara1. Menggunakan proses Pop yang diulang
sebanyak Top+1 kali
Perhatikan, perulangan bukan sebanyak MAX_STACK