pertemuan 7 stackc2a0

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

STACK 

 

Pertemuan 7 
 
Waktu  

 

 

 

 

 




5 menit 

Tujuan Pembelajaran 

: Mahasiswa mampu menjelaskan teknik pemrograman  

Substansi Materi 

: Stack 

 

 

  menggunakan Stack. 

Tabulasi Kegiatan Perkuliahan 
 


No 
 
 
 

Tahap 
Kegiatan Pengajar 
Kegiatan 
Pendahuluan  . Membuka pertemuan 
. Mengulang materi pertemuan 
sebelumnya 
Penyajian 
. Pengertian stack 
Materi 
. Jenis‐jenis stack 
. Stack dengan Array 
 
Penutup 
. Menyimpulkan materi 

pertemuan 
. Memberikan tugas kecil 
. Menutup pertemuan 

 

Kegiatan 
Media & 
Waktu 
Mahasiswa 
Alat 
Menyimak 
Papan Tulis 
 
Bertanya 
Menit 

Menyimak 
Bertanya 
Menjawab 

Pertanyaan 
Menyimak 

Papan Tulis  8  
Menit 
Papan tulis 


Menit 

M A T E R I    K U L I A H

STACK 
Stack  adalah  suatu  tumpukan.  Konsep  utama  dari  stack  adalah  L)FO  Last  )n  First  Out , 

yaitu  benda  yang  terakhir  masuk  ke  dalam  stack  akan  menjadi  benda  pertama  yang 
dikeluarkan  dari  tumpukan.  Dalam  pascal  ada  dua  cara  penerapan  stack,  yaitu  dengan 
array dan linked list. 
 
 

 

 

V3/2009‐2010  1 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

STACK 

 

Single Stack dengan Array 
Sesuai  dengan  sifat  stack,  maka  pengambilan/penghapusan  elemen  dalam  stack  harus 

dimulai  dari  elemen  teratas.  Deklarasi  konstanta,  tipe,  dan  variable  yang  akan  dipakai 
dalam penjelasan operasi‐operasi stack dengan array adalah : 
 


Const 

 

Type 

 

Max = {jumlah tumpukan} 

 

 

 

Var 

 


 

 

 

 

TipeData = {   }; 

Stack = array [ ..Max] of TipeData; 
Top : TipeData; 

Operasi­operasi pada Single Stack dengan Array 


Create : Membuat stack baru yang masih kosong 
Procedure Create; 
   Begin 
 


   End; 


Top :=  ; 

 

Full : Fungsi untuk memeriksa apakah stack yang ada sudah penuh 
Function Full : Boolean; 
   Begin 
    
 

   End; 

Full := False; 

)f top = max then Full := True; 


V3/2009‐2010  2 
 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

STACK 

 



Push : Menambahkan sebuah elemen‐elemen ke dalam stack. Tidak bisa dilakukan 
lagi jika stack sudah penuh. 

Procedure Push elemen:TipeData ; 
   Begin 
    
 


   Begin 

 

 

 
 

   End; 


)f not Full then 

 

   End; 

Top := Top+ ; { atau )nc Top  } 
Stack[Top] := elemen; 


 

Empty : Fungsi untuk menentukan apakah stack kosong atau tidak. 
Function Empty : Boolean; 
   Begin 

   Empty := False; 

   )f Top =   then Empty := True; 
   End; 


 

Pop : Mengambil elemen teratas dari stack. Stack tidak boleh kosong. 
Procedure Pop elemen:TipeData ; 
   Begin 
 

)f not Empty then 

 

    

 
 
 

   End; 
 

   Begin 
 

   End; 

Elemen := stack[Top]; 

Top := Top‐ ; { atau Dec Top  } 

V3/2009‐2010  3 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

STACK 

 



Clear : Mengosongkan stack   Jika top =  , maka stack dianggap kosong  
Procedure Clear; 
   Begin 
 

   End; 

Top :=  ; 

 

Double Stack dengan Array 
Merupakan  teknik  yang  dikembangkan  untuk  menghemat  pemakaian  memory  dalam 

pembuatan  dua  stack  dengan  array.  )ntinya  adalah  menggunakan  sebuah  array  untuk 
menampung dua stack. 

Contoh  deklarasi  konstanta,  tipe,  dan  variable  yang  akan  dipakai  dalam  operasi‐operasi 
double stack array. 
 

Const 

 

Type 

 

Max = {jumlah tumpukan} 

 

 

TipeData = {   }; 

 

 

Stack = array [ ..Max] of Byte; 

 

 

Top : array[ .. ] of Byte; 

 

Var 

 

Operasi­operasi pada Double Stack dengan Array 


Create : Membuat stack baru yang masih kosong 
Procedure Create; 
   Begin 
 
 

 

Top[ ] :=  ; 

Top[ ] := max +  ; 

V3/2009‐2010  4 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

STACK 

 

   End; 


 

Full : Fungsi untuk memeriksa apakah stack yang ada sudah penuh 
Function Full : Boolean; 
   Begin 
    
 

   End; 


Full := False; 

)f top[ ]+  > = top[ ] then Full := True; 

 

Push : Menambahkan sebuah elemen‐elemen ke dalam stack. Tidak bisa dilakukan 
lagi jika stack sudah penuh. 

Procedure Push elemen:TipeData; NoStack : Byte ; 
   Begin 
    

)f not Full then 

 

   Begin 

 

 

 

 
 
 

   End; 

 

 

Case NoStack of 

 : Top[ ] := Top[ ] +  ; 
 : Top[ ] := Top[ ] ‐ ; 

   Stack[Top[NoStack]] := elemen; 

   End; 

 
 
 
 

V3/2009‐2010  5 
 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

STACK 

 



Empty : Fungsi untuk menentukan apakah stack kosong atau tidak. 
Function Empty NoStack : Byte  : Boolean; 
   Begin 

   Empty := False; 

   Case NoStack of 
 

 : if Top[ ]=  then 

 

   Empty := True; 

 

   Empty := True; 

 
   End; 

 : if Top[ ] = Max +   then 

   End; 


 

Pop : Mengambil elemen teratas dari stack. Stack tidak boleh kosong. 
Procedure Pop var elemen:TipeData; NoStack:Byte ; 
   Begin 
 

)f not Empty NoStack  then 

 

   Begin 

 

 

Case NoStack of 

 

 

     : Top[ ] := Top[ ] + ; 

 

   End; 

 
 
 

   End; 

    
 

 

Elemen := stack[Top[NoStack]]; 

     : Top[ ] := Top[ ] ‐ ; 

End; 

 
 

 

V3/2009‐2010  6 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

STACK 

 



Clear : Mengosongkan stack   Jika top =  , maka stack dianggap kosong  
Procedure Clear NoStack:Byte ; 
   Begin 
 

Case NoStack Of 

 

     : Top[ ]:= Max +  ; 

 
 

   End; 

     : Top[ ] :=  ; 

End; 

V3/2009‐2010  7