Anda di halaman 1dari 20

STACK (TUMPKUAN)

DISUSUN OLEH : Dimas Wahyu Pratomo


Defenisi :

 Secara sederhana, tumpukan bisa diartikan sebagai suatu kumpulan data yang
seolah-olah ada data yang diletakan diatas data yang lain. 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).

 Untuk menjelaskan pengertian diatas kita ambil contoh sebagai berikut. Misalnya kita
mempunyai dua buah kotak yang kita tumpuk, sehingga kotak kita letakkan diatas kotak
yang lain. Jika kemudian tumpukan duah buah kotak itu kita tambah dengan kotak
ketiga, keempat dan seterusnya, maka akan kita peroleh sebuah tumpukan kotak yang
terdiri dari N kotak.
Dari gambar ini kita bisa mengatakan
bahwa kotak B ada diatas kotak A dan
D ada dibawah kotak C. Gambar
dibawah ini hanya menunjukkan
C bahwa dalam tumpukan kita hanya
bisa menambah atau mengambil
B sebuah kotak lewat satu ujung, yaitu
ujung bagian atas

A
Deklarasi StrukturData
5 Stack = Record
Maximum Isi [5]
4 Isi : ar ay[1..n] of Tipe Data
Isi [4]
3 Atas : integer
Isi [3]
2 End
Isi [2]
1
Isi [1]
0

StackS
OPERASI – OPERASI / FUNGSI
STACK
 P u s h : digunakan untuk menambah item pada stackpada
tumpukan paling atas
 Po p :digunakan untuk mengambil item pada stack pada
tumpukan paling atas
Operasi
Operasi dasar yang dilakukan Dalam Stack ada dua yaitu :
1. Menambah Komponen (Push)
2. Menghapus Komponen (Pop)

Operasi Push
Operasi Push adalah Menambah elemen kedalam stack S, dimana penambahan
dapat dilakukan jika stack itu belum penuh.
Stack dikatakan penuhJika posisi atas sudahberada pada posisi N
(If S.atas = n then stack penuh)

Push( x,s) adalah Memasukkan x kedalam Stack S


Push(x,s)
Procedure Push(x :Tipe data,
S : Stack)
If s.atas< n then
s.atas= s.atas+1
s.isi[s.atas] = x
Else
stack sudah penuh Atas = 0
fi

Stack S
Push(x,s)
Procedure Push(x :Tipe data,
S : Stack)
If s.atas< n then
S.Atas = s.atas + 1
s.isi[s.atas] = x
Atas = 1
Else
stack sudah penuh
fi

Stack S
Push(x,s)
Procedure Push(x :Tipe data,
S : Stack)
If s.atas< n then
S.atas= s.atas+1
S.isi[S.atas] = k
Atas = 1
Else
stack sudah penuh
fi

Stack S
Push(x,s)
Procedure Push(x :Tipe data,
S : Stack)
If s.atas< n then
S.Atas = s.atas + 1 Atas = 2
s.isi[s.atas] = x
Else
stack sudah penuh
fi

Stack S
Push(x,s)
Procedure Push(x :Tipe data,
S : Stack)
If s.atas< n then
S.atas= s.atas+1 Atas = 2
S.isi[S.atas] = k
Else
stack sudah penuh
fi

Stack S
Push(x,s)
Procedure Push(x :Tipe data,
S : Stack)
Atas = 3
If s.atas< n then
S.Atas = s.atas + 1
s.isi[s.atas] = x
Else
stack sudah penuh
fi

Stack S
Push(x,s)
Procedure Push(x :Tipe data,
S : Stack)
Atas = 3
If s.atas< n then
S.atas= s.atas+1
S.isi[S.atas] = k
Else
stack sudah penuh
fi

Stack S
Push(x,s) Atas = 5

Procedure Push(x :Tipe data,


S : Stack)
If s.atas< n then
S.atas= s.atas+1
S.isi[S.atas] = k
Else
stack sudah penuh
fi

Stack S
P OP (S )
Pop(s) adalah menghapus elemen dari stack, dimana elemen yang dihapus
adalah elemen yang terakhir Masuk (LIFO Last In First Out) atau elemen
penghapusan, dimana proses penghapusan dapat dilakukan jika stack tidak
dalam keadaan Kosong

If S.Atas > 0 then stack tidak kosong


Dimana Setiap melakukan penghapusan, maka posisi yang paling atas akan
berkurang 1 (S.Atas = S.Atas -1)
Procedure Pop( S: Stack)
If S.atas>0 then

Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi
Pop(s) Atas = 5

Procedure Pop( S: Stack)


If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi

Stack S
Pop(s)
Procedure Pop( S: Stack) Atas = 4

If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi

Stack S
Pop(s)
Procedure Pop( S: Stack) Atas = 4
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi

Stack S
Pop(s)
Procedure Pop( S: Stack)
If S.atas>0 then
Atas = 3
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi

Stack S
Pop(s)
Procedure Pop( S: Stack)
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi Atas = 0

Stack S

Anda mungkin juga menyukai