Anda di halaman 1dari 16

m m




 

m  

Secara sederhana diartikan dengan :
’ sebagai tumpukan dari benda
’ sekumpulan data yang seolah-olah
diletakkan di atas data yang lain
’ koleksi dari objek-objek homogen

Dengan konsep utamanya adalah LIFO


Last In First Out
m   

m m
   m
 

   m

§ Y  Y
m m

V operasi dasar yang bisa dilaksanakan


pada sebuah stack, yaitu:
’ Operasi Push (menyisipkan data)
memasukkan data ke dalam stack
’ Operasi Pop (menghapus data)
menghapus elemen yang terletak pada
posisi paling atas dari sebuah stack
m m

’ Operasi Push

Ô 
 


 
 
 


m m

’ Operasi Pop

 
 


 
 !"#$  % 
 
 






  
¦isal dalam Pascal di deklarasikan :

onst
Max = 4;
ype
ipeData = byte;
tack = array [1..Max] of ipeData
Var
op : ipeData;
¦
’ Yuat Stack (Create)
membuat stack baru yang masih kosong
4
Procedure reate;
Begin 3
op := 0;
End; V

1
0

Konsepnya adalah bahwa Top menunjukkan tingginya


tumpukkan stack. Jika tinggi Top adalah 0, berarti tumpukan
kosong. Prosedur ini digunakan juga dalam penghapusan isi
stack (Clear).
Stack Kosong (empty)
mengecek apakah stack dalam keadaan
kosong atau tidak

xunction Empty : Boolean;


Begin
Empty := xalse;
If op := 0 then Empty := rue;
End;
Stack Penuh (Full)
mengecek apakah stack dalam keadaan
penuh atau tidak

xunction xull : Boolean;


Begin
xull := xalse;
If op = Max then xull := rue;
End;
 

 ¦
  
D Stack menggunakan array D
include <stdio.h>
include <conio.h>
define max 50
define True 1
define False 0
int top=0, stack[max];
void buatstack();
int stackkosong ();
int stackpenuh ();
void push (int IY);
void pop ();
void cetakstack ();
void main () void buatstack () void push (int IY)
{ { stack[top] = 0; } { if (stackpenuh() )
buatstack (); int stackkosong () printf (³stack overflow \n´);
else
push (10); { if (top==0)
{ top++;
push (76); return (True);
stack[top] = IY;
push (1V); else stack[0] = top; } }
push (V1); return (False); } void pop ()
cetakstack (); int stackpenuh () { int IP;
getche; { if (top==max) if (stackkosong() )
printf (³\n\n´); return (True); printf (³stack underflow \n´);
pop (); else else
pop (); return (False); } { IP = stack[top];
top --;
pop ();
stack[0] = top; } }
cetakstack ();
void cetakstack();
getche(); { int i = 1;
} while ( i <=top )
{printf (³%d\n´, stack [i]);
i++; } }

Overflow adalah suatu keadaan di mana
kita melakukan operasi PUSH terhadap
stack dalam keadaan penuh. Underflow
adalah keadaan di mana kita melakukan
operasi POP terhadap stack kosong.
Pada pascal, Eon adalah elemen yang
akan dimasukkan ke dalam stack dan Eoff
adalah elemen yang akan dikeluarkan dari
dalam stack.
 

 ¦

  
D Stack menggunakan record D
include <stdio.h>
include <alloc.h>
include <conio.h>
define max 50
define True 1
define False 0
ypedef struct typestack { int top;
int elemen [max];
};
void buatstack();
void cetakstack ();
void push (int IY);
void pop ();
int stack kosong ();
int stack penuh ();
void main () void buatstack () void push (int IY)
{ { stack.top = -1; } { if (stackpenuh() )
buatstack (); int stackkosong () printf (³stack overflow \n´);
else
push (10); { if (stack.top==-1)
{ stack.top++;
push (76); return (True);
stack.elemen [stack.top] =
push (1V); else IY; } ;
push (1); return (False); } void pop ()
cetakstack (); int stackpenuh () { int IP;
printf (³\n\n´); {if (stack.top==max) if (stackkosong() )
pop (); return (True); printf (³stack underflow \n´);
else
pop (); else
{ IP = stack.elemen [stack.top];
pop (); return (False); }
stack.top--; } ; }
cetakstack ();
void cetakstack();
getche(); { int i = 0;
} while ( i <= stack.top )
{ printf (³%d\n´, stack.elemen[i]);
i++; } }