stack - institut teknologi telkom purwokerto

44
stack ==tumpukan== Tenia wahyuningrum st3 telkom purwokerto www.st3telkom.ac.id

Upload: others

Post on 22-Dec-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: stack - Institut Teknologi Telkom Purwokerto

stack ==tumpukan==

Tenia wahyuningrum st3 telkom purwokerto www.st3telkom.ac.id

Page 2: stack - Institut Teknologi Telkom Purwokerto

Stacks everywhere ...

Page 3: stack - Institut Teknologi Telkom Purwokerto

definisi...

“A stack is an ordered collection of items into which new items may be inserted and from which items may be deleted at one end, called top of the stack”

* Yedidyah L, Moshe J. A., and Aaron M. Tenenbaum; Data Structures Using C and C++

Page 4: stack - Institut Teknologi Telkom Purwokerto

definisi...

“Secara sederhana, tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakan diatas data yang lain.”

Page 5: stack - Institut Teknologi Telkom Purwokerto

Satu hal yang perlu kita ingat adalah bahwa kita bisa menambah (menyisipkan) data, dan mengambil (menghapus) data lewat ujung yang sama, yang disebut sebagai ujung atas tumpukan (top of stack)

Page 6: stack - Institut Teknologi Telkom Purwokerto

LIFO ( Last In First Out )

“data yang disimpan terakhir akan diambil lebih dahulu, data yang disimpan pertama kali akan diambil paling akhir”

Page 7: stack - Institut Teknologi Telkom Purwokerto

operasi stack...

Page 8: stack - Institut Teknologi Telkom Purwokerto

d c b a

push

e d c b a

e

mula-mula setelah ditumpuk

“Menyisipkan / menambahkan data pd ujung atas stack”

Page 9: stack - Institut Teknologi Telkom Purwokerto

d c b a

pop

e d c b a

e

mula-mula setelah tumpukan diambil

“Menghapus / mengeluarkan data dr ujung atas stack”

Page 10: stack - Institut Teknologi Telkom Purwokerto

Kode

program

Page 11: stack - Institut Teknologi Telkom Purwokerto

deklarasi

#define max 10

struct Tumpukan{

int atas;

int data[max];

}T;

Page 12: stack - Institut Teknologi Telkom Purwokerto

int penuh(){

if(T.atas==max-1)

return 1;

else

return 0;

}

void awal(){

T.atas=-1;

}

int kosong(){

if(T.atas== -1)

return 1;

else

return 0;

}

nilai awal

Page 13: stack - Institut Teknologi Telkom Purwokerto

Mula-mula stack kosong

T.atas = -1 Return = 1

push

Page 14: stack - Institut Teknologi Telkom Purwokerto

push

void push(int data){

if(kosong()==1)

{T.atas++;

T.data[T.atas]=data;

cout<<"Data "<<T.data[T.atas]<<" masuk ke stack";}

else if(penuh()==0)

{T.atas++;

T.data[T.atas]=data;

cout<<"Data "<<T.data[T.atas]<<" masuk ke stack";}

else

cout<<"Tumpukan penuh";

}

Page 15: stack - Institut Teknologi Telkom Purwokerto

T.atas –

T.Atas dikurangi 1

pop

Page 16: stack - Institut Teknologi Telkom Purwokerto

pop

void pop(){

if(kosong()==0){

cout<<"Data teratas sudah terambil";

T.atas--;

}

else

cout<<"Data kosong";

}

Page 17: stack - Institut Teknologi Telkom Purwokerto

void tampil(){

if(kosong()==0)

{for(int i=T.atas;i>=0;i--)

{cout<<T.data[i];}

}

else

cout<<"Tumpukan kosong";

}

Page 18: stack - Institut Teknologi Telkom Purwokerto

tampil • Dicetak mulai dari

tumpukan teratas, lalu sampai tumpukan terbawah

Page 19: stack - Institut Teknologi Telkom Purwokerto
Page 20: stack - Institut Teknologi Telkom Purwokerto

Palindrom

“sebuah kata, frasa, angka maupun

susunan lainnya yang dapat

dibaca dengan sama baik

dari depan maupun belakang (spasi

antara huruf-huruf biasanya

diperbolehkan)”

* Kata "palindrom" berasal dari bahasa Yunani: palin ("balik") dan dromos ("pacuan kuda").

Page 22: stack - Institut Teknologi Telkom Purwokerto

Mengecek Kalimat Polindrom

Kalimat : KAKAK

K

A

K K

A

K

K

A

K

A

K

A

K

A

K

Operasi Push

Page 23: stack - Institut Teknologi Telkom Purwokerto

Operasi Pop

K

A

K

K

A

K

A

K

A

K

A

K K

A

K

Hasil =‘’

Hasil = K

Hasil = KA

Hasil = KAK

Hasil = KAKA

Hasil = KAKAK

Jika Kalimat = hasil

Palindrom

Page 24: stack - Institut Teknologi Telkom Purwokerto

Ungkapan Aritmatika

Untuk menuliskan ungkapan

aritmatika dapat dilakukan dengan

tiga metode :

infix, prefix, postfix

Page 25: stack - Institut Teknologi Telkom Purwokerto
Page 26: stack - Institut Teknologi Telkom Purwokerto

Derajat operator

() ----- tanda kurung

^ ----- pangkat

* dan / ----- kali dan bagi

+ dan - ------ tambah dan kurang

Page 27: stack - Institut Teknologi Telkom Purwokerto

Infix A*B + C*D

Prefix

*AB + C * D

*AB + *CD

+*AB*CD

Postfix

AB* + C*D

AB* + CD*

AB*CD*+

Page 28: stack - Institut Teknologi Telkom Purwokerto

Infix : A + B * (C – D) / E

Prefix

A + B * -CD / E

A + *B-CD / E

A + /*B-CDE

+A/*B-CDE

Postfix

A + B * CD- / E

A + BCD-* / E

A + BCD-*E/

ABCD-*E/+

Page 29: stack - Institut Teknologi Telkom Purwokerto

Langkah manual

infix-prefix-postfix

Page 30: stack - Institut Teknologi Telkom Purwokerto

A * ( B + C ) / D ^ E – F

Page 31: stack - Institut Teknologi Telkom Purwokerto
Page 32: stack - Institut Teknologi Telkom Purwokerto
Page 33: stack - Institut Teknologi Telkom Purwokerto

Menggunakan stack

infix-prefix-postfix

Page 34: stack - Institut Teknologi Telkom Purwokerto

• Stack adalah tumpukan (jadi,

memori diibaratkan dengan

tumpukan) yang memiliki cara kerja,

“yang pertama masuk ke kotak, maka

akan terakhir kali diambil kembali”

atau “first in last out”.

Page 35: stack - Institut Teknologi Telkom Purwokerto

Langkah-

langkah

Page 36: stack - Institut Teknologi Telkom Purwokerto
Page 37: stack - Institut Teknologi Telkom Purwokerto
Page 38: stack - Institut Teknologi Telkom Purwokerto
Page 39: stack - Institut Teknologi Telkom Purwokerto
Page 40: stack - Institut Teknologi Telkom Purwokerto
Page 41: stack - Institut Teknologi Telkom Purwokerto
Page 42: stack - Institut Teknologi Telkom Purwokerto
Page 43: stack - Institut Teknologi Telkom Purwokerto
Page 44: stack - Institut Teknologi Telkom Purwokerto

good bye !