24
STACK/TUMPUKAN R. Denny Ari Wibowo, S.Kom STMIK BINA NUSANTARA JAYA LUBUKLINGGAU

STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

Embed Size (px)

Citation preview

Page 1: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

STACK/TUMPUKAN

R. Denny Ari Wibowo, S.Kom

STMIK BINA NUSANTARA JAYA LUBUKLINGGAU

Page 2: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

STACK

Penjelasan :

Sebagai tumpukan dari benda

Sekumpulan data yang seolah-olahdiletakkan di atas data yang lain

Koleksi dari objek-objek homogen

Stack adalah bersifat ‘terakhir masukpertama keluar’ atau ‘last in first out(LIFO)’.

Page 3: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

Penghapusan serta pemasukanelemen pada stack hanya dapatdilakukan di satu posisi, yakniposisi akhir.

Posisi ini disebut puncak atautop dari stack.

Page 4: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

ILUSTRASI

Terdapat sebuah bejana/gelas yangdimasukan sebuah kotak-kotak. Pertamaadalah kotak A dimasukan, selanjutkankotak B diletakkan di atas kotak A. Demikianjuga dengan kotak C diletakkan diatas kotakB. Hingga kotak D dimasukkan, yang beradadi kotak C.

Page 5: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

ILUSTRASI

Page 6: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

Seandainya nama stack di atas adalahTUMPUKAN.

Maka datanya stacknya adalah

Tumpukan [A, B, C, D].

Sehingga TOP(Tumpukan) adalah D

Banyaknya elemen stack Tumpukan pada suatusaat tertentu disebut sebagai NOEL(Tumpukan).

Jadi untuk stack di atas, NOEL(Tumpukan) = D.

Page 7: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

DEKLARASI STACK

Dalam bahasa pemrograman, untuk menempatkanstack biasanya digunakan sebuah array. Tetapiperlu diingat di sini bahwa stack dan array adalahdua hal yang berbeda.

Misalkan suatu variabel Tumpukan adalah sebuahstack dengan 100 elemen. Diasumsikan elemenTumpukan adalah integer dan jumlah elemennyamaksimum adalah 100 elemen.

Sehingga pendeklarasiannya adalah :Var Tumpukan : Array [1..100] of Integer;

Page 8: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

OPERASI PADA STACK

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 padaposisi paling atas dari sebuah stack

Page 9: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

PUSH

Operator ini berfungsi untuk menambahkan satu elemen kedalam stack. Notasi yang digunakan adalah :

PUSH(E,Tumpukan)

Artinya : menambahkan elemen E ke dalam stackTumpukan.

Elemen yang baru masuk ini akan menempati posisi TOP.

Jadi : TOP(PUSH(E,Tumpukan)) = E.

Akibat dari operasi ini jumlah elemen dalam stack akanbertambah, artinya NOEL(Tumpukan) menjadi lebih besar.

Page 10: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

ILUSTRASI PUSH

Sebagai awal Tumpukan masih kosong

Page 11: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

PUSH elemen A

Diperoleh Tumpukan = [A]

Page 12: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

PUSH elemen B,

Diperoleh Tumpukan = [A,B]

Page 13: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

PUSH elemen C,

diperoleh Tumpukan = [A,B,C]

Page 14: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

PUSH elemen D,

diperoleh Tumpukan = [A,B,C,D]

Operasi Push berhenti jika jumlah tumpukansudah terpenuhi (penuh)

Page 15: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

ALGORITMA PUSH

1. Cek jumlah stack (Noel >= NoelStack).NoelStack adalah batas maksimal stacksedangkan Noel adalah posisi stack saat ini.

2. Jika penuh maka posisi Overflow (stackpenuh sehingga tidak bisa diisi data lagi).Tetapi jika tidak maka perbolehkan untukmengisi data.

3. Tambahkan Noel (Noel := Noel + 1) menjadisatu tingkat diatasnya, untuk menunjukkanbahwa posisi Noel telah bertambah.

4. Tambahkan data pada stack.

Page 16: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

PROSEDUR PUSH

Procedure Push (Var S : Data; DataPush : Char);

Begin

If Noel = NoelStack Then

Writeln ('Isi Stack sudah penuh....kondisioverflow')

Else

Begin

Noel := Noel + 1;

S[Noel] := DataPush;

End;

End;

Page 17: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

POP

Operator ini berfungsi untuk mengeluarkan satuelemen dari dalam stack.Notasinya :

POP(S)

Elemen yang keluar dari dalam stack adalahelemen yang berada pada posisi TOP. Akibat darioperasi ini jumlah elemen stack akan berkurangatau NOEL(Tumpukan) berkurang dan elemenpada posisi TOP akan berubah. Operator POP initidak dapat digunakan pada stack kosong

Page 18: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

ILUSTRASI POP

Sebagai awal Tumpukan (Penuh)

Page 19: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

POP Tumpukan = [A,B,C,D]

Page 20: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

POP Tumpukan = [A,B,C]

Page 21: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

POP Tumpukan = [A,B]

Page 22: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

POP Tumpukan = [A]

Page 23: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

ALGORITMA POP

1. Cek jumlah stack (Noel = 0), apakah posisistack sudah kosong ?

2. Jika posisi stack kosong maka posisiUnderflow (stack kosong, sehingga tidak adalagi data yang dikeluarkan). Tetapi jika tidakmaka perbolehkan untuk mengeluarkan data.

3. Kurangkan Noel (Noel := Noel - 1) menjadisatu tingkat dibawahnya, untuk menunjukkanbahwa posisi Noel telah berkurang.

Page 24: STACK/TUMPUKAN - dennyari.files.wordpress.com fileSTMIK BINA NUSANTARA JAYA LUBUKLINGGAU. STACK Penjelasan : Sebagai tumpukan dari benda Sekumpulan data yang seolah-olah diletakkan

PROSEDUR PUSH

Procedure Pop (Var S : Data; Var DataPop : Char);Begin

If Noel = 0 ThenWriteln ('Isi Stack sudah KOSONG....kondisiUNDERFLOW !')

ElseBegin

DataPop := S[Noel];Noel := Noel - 1;

End;End;