Apakah Stack itu ?
description
Transcript of Apakah Stack itu ?
Apakah Stack itu ?
Pengertian STACKSecara sederhana diartikan
dengan : • sebagai tumpukan dari benda • sekumpulan data yang seolah-olah
diletakkan di atas data yang lain• koleksi dari objek-objek homogen
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi PUSH : Menambahkan elemen pada sebuah
stack
1
PUSH
top== bottom
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi PUSH : Menambahkan elemen pada sebuah
stack
PUSH
Apakah Stack itu ?
1
2 top bottom
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi PUSH : Menambahkan elemen pada sebuah
stack
PUSH
Apakah Stack itu ?
1
2
3
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi PUSH : Menambahkan elemen pada sebuah
stack
PUSH
Apakah Stack itu ?
1
2
3
4
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi PUSH : Menambahkan elemen pada sebuah
stack
PUSH
Apakah Stack itu ?
1
2
3
4
5
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi PUSH : Menambahkan elemen pada sebuah
stack
PUSH
Apakah Stack itu ?
1
2
3
4
5
6
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi POP : Menghapus sebuah elemen dari sebuah
stack
POP
Apakah Stack itu ?
1
2
3
4
5
6
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi POP : Menghapus sebuah elemen dari sebuah
stack
POP
Apakah Stack itu ?
1
2
3
4
5
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi POP : Menghapus sebuah elemen dari sebuah
stack
POP
Apakah Stack itu ?
1
2
3
4
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi POP : Menghapus sebuah elemen dari sebuah
stack
POP
Apakah Stack itu ?
1
2
3
bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi POP : Menghapus sebuah elemen dari sebuah
stack
POP
Apakah Stack itu ?
1
2bottom
top
Penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling depan
Yang dihapus adalah elemen yang paling terakhir ditambahkan
Nama lain : LIFO (Last In First Out) Operasi POP : Menghapus sebuah elemen dari sebuah
stack
POP
Apakah Stack itu ?
1 top==bottom
• Tumpukan
• LIFO (Last In First Out)
0
1
2
3
stack
elemen
top
• Elemen isi stack
• Setiap elemen memiliki index
• top menunjukkan index yang siap ditempati elemen berikutnya
0
1
2
3
• LIFO (Last In First Out)
PUSH, memasukkan elemen POP, mengeluarkan elemen
0
1
2
3PUSH
PUSH
top: 0
stack
top: 1
top: 2
top: 3
top: 4
0
1
2
3
POPPOP
top: 0
stack
top: 1
top: 2
top: 3
top: 4
• Stack–Buat array untuk stack–Buat variabel bertipe int untuk top
• Contoh:
#define MAX 20
int stack[MAX];int top;
Operasi-operasi/fungsi Stack
Init : digunakan untuk inisialisasi atau membuat stack baru yang masih kosong
Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
Clear : digunakan untuk mengosongkan stackIsEmpty : fungsi yang digunakan untuk
mengecek apakah stack sudah kosongIsFull : fungsi yang digunakan untuk mengecek
apakah stack sudah penuh
Stack - Array of Struct Definisikan Stack dengan menggunakan
struct Definisikan konstanta MAX_STACK
untuk menyimpan maksimum isi stack Buatlah variabel array data sebagai
implementasi stack Deklarasikan operasi-operasi/function di
atas dan buat implemetasinya
Program Stack Deklarasi MAX_STACK#define MAX_STACK 10
Deklarasi STACK dengan struct dan array datatypedef struct STACK{
int top;char data[10][10];
}; Deklarasi/buat variabel dari structSTACK tumpuk;
Inisialisasi Stack
Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG!
Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!
Stack
Ilustrasi Stack pada saat inisialisasi!
Fungsi IsFull
Fungsi IsFull Untuk memeriksa apakah stack sudah
penuh? Dengan cara memeriksa top of stack, jika
sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full
Ilustrasi Stack pada kondisi Full
Fungsi IsEmpty
Untuk memeriksa apakah stack masih kosong?
Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong!
Fungsi Clear Untuk mengosongkan stack Stack akan dianggap kosong bila ujung
atas stack pada posisi -1void clear(){
tumpuk.top=-1;
printf(“Stack telah dikosongkan\n);
}
Fungsi Push Untuk memasukkan elemen ke stack,
selalu menjadi elemen teratas stack (yang ditunjuk oleh Top of stack)
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.
Program Stack (push)
Fungsi Pop Untuk mengambil elemen teratas
(data yang ditunjuk oleh Top of stack) dari stack.
Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nilai yang akan dipop, baru dilakukan decrement nilai top of stack sehingga jumlah elemen stack berkurang
Program Stack (Pop)
Fungsi Print
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!
Program Stack (print)
Double Stack
Merupakan pengembangan dari single stack Lebih menghemat memory Prinsip : dalam satu array terdapat dua stack
Ilustrasi double stack
Stack 1 bergerak ke kanan sedangkan stack 2 bergerak ke kiri.
Double stack dikatakan penuh apabila top1 bertemu dengan top2
stack 1 stack 2
0 max-1
top1 top2
Program Double Stack Deklarasi MAX_STACK#define MAX_STACK 10
Deklarasi STACK dengan struct dan array datatypedef struct STACK{
int top1;int top2;char data[10][10];
}; Deklarasi/buat variabel dari structSTACK tumpuk;
Fungsi Initialisasi void inisialisasi() {
top1 = -1;
tumpuk.top2 = MAX;
}
Fungsi Fullint IsFull() {
if (tumpuk.top1+1 = tumpuk.top2)
return 1;
else
return 0;
}
Cari program C untuk fungsi empty, clear, push & pop
double stack