Apakah Stack itu ?

Post on 07-Jan-2016

89 views 5 download

description

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

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