Top Banner
42

Apakah Stack itu ?

Jan 07, 2016

Download

Documents

osma

Apakah Stack itu ?. Pengertian STACK. Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah diletakkan di atas data yang lain koleksi dari objek-objek homogen. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Apakah Stack itu ?
Page 2: Apakah Stack itu ?

Apakah Stack itu ?

Page 3: 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

Page 4: Apakah Stack itu ?

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

Page 5: Apakah Stack itu ?

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

Page 6: Apakah Stack itu ?

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  

Page 7: Apakah Stack itu ?

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  

Page 8: Apakah Stack itu ?

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  

Page 9: Apakah Stack itu ?

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  

Page 10: Apakah Stack itu ?

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  

Page 11: Apakah Stack itu ?

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  

Page 12: Apakah Stack itu ?

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  

Page 13: Apakah Stack itu ?

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  

Page 14: Apakah Stack itu ?

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  

Page 15: Apakah Stack itu ?

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

Page 16: Apakah Stack itu ?

• Tumpukan

• LIFO (Last In First Out)

0

1

2

3

stack

elemen

top

Page 17: Apakah Stack itu ?

• Elemen isi stack

• Setiap elemen memiliki index

• top menunjukkan index yang siap ditempati elemen berikutnya

Page 18: Apakah Stack itu ?

0

1

2

3

• LIFO (Last In First Out)

Page 19: Apakah Stack itu ?

PUSH, memasukkan elemen POP, mengeluarkan elemen

Page 20: Apakah Stack itu ?

0

1

2

3PUSH

PUSH

top: 0

stack

top: 1

top: 2

top: 3

top: 4

Page 21: Apakah Stack itu ?

0

1

2

3

POPPOP

top: 0

stack

top: 1

top: 2

top: 3

top: 4

Page 22: Apakah Stack itu ?

• Stack–Buat array untuk stack–Buat variabel bertipe int untuk top

• Contoh:

#define MAX 20

int stack[MAX];int top;

Page 23: Apakah Stack itu ?

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

Page 24: Apakah Stack itu ?

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

Page 25: Apakah Stack itu ?

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;

Page 26: Apakah Stack itu ?

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!

Page 27: Apakah Stack itu ?

Stack

Ilustrasi Stack pada saat inisialisasi!

Page 28: Apakah Stack itu ?

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

Page 29: Apakah Stack itu ?

Ilustrasi Stack pada kondisi Full

Page 30: Apakah Stack itu ?

Fungsi IsEmpty

Untuk memeriksa apakah stack masih kosong?

Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong!

Page 31: Apakah Stack itu ?

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);

}

Page 32: Apakah Stack itu ?

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.

Page 33: Apakah Stack itu ?

Program Stack (push)

Page 34: Apakah Stack itu ?

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

Page 35: Apakah Stack itu ?

Program Stack (Pop)

Page 36: Apakah Stack itu ?

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!

Page 37: Apakah Stack itu ?

Program Stack (print)

Page 38: Apakah Stack itu ?

Double Stack

Merupakan pengembangan dari single stack Lebih menghemat memory Prinsip : dalam satu array terdapat dua stack

Page 39: Apakah Stack itu ?

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

Page 40: Apakah Stack itu ?

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;

Page 41: Apakah Stack itu ?

Fungsi Initialisasi void inisialisasi() {

top1 = -1;

tumpuk.top2 = MAX;

}

Fungsi Fullint IsFull() {

if (tumpuk.top1+1 = tumpuk.top2)

return 1;

else

return 0;

}

Page 42: Apakah Stack itu ?

Cari program C untuk fungsi empty, clear, push & pop

double stack