Top Banner
18

Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Apr 18, 2019

Download

Documents

lytruc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru
Page 2: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Materi� Stack

� Implementasi Stack Menggunakan Array

� Operasi Stack

Push� Push

� Pop

� Is Empty

� Is Full

Page 3: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Stack� Merupakan pola struktur data yang susunannya seperti

suatu tumpukan.

� Data masuk pertama akan menempati tumpukan paling bawah

Ketika ada data baru masuk, data tsb akan ditumpuk di� Ketika ada data baru masuk, data tsb akan ditumpuk diatasnya, dst

� Ketika diambil suatu data, maka data yang masuk terakhirkali (yang berada pada tumpukan paling atas) yang akanterambil

� Dan data yang pertama masuk ke dalam tumpukan (yang berada pada posisi paling bawah tumpukan) yang akanterakhir terambil

Page 4: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Queue� Disebut juga LIFO (Last In First Out)

� Data yang terakhir masuk, maka akan pertama kali keluar

� Sebaliknya, data yang pertama masuk, maka akan� Sebaliknya, data yang pertama masuk, maka akanpaling akhir keluar

Page 5: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Ilustrasi Stack� Tumpukan CD

Page 6: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Contoh Aplikasi Stack� Stack-Based Memory Allocation

� Setiap proses yang jalan dalam komputer, memilikimemori yang teralokasi untuknya

� Alokasi memori tersebut disusun menggunakan model StackAlokasi memori tersebut disusun menggunakan model Stack

� Ketika suatu proses dieksekusi, mungkin ia membutuhkanalokasi memori untuk data yang dibutuhkan. Maka data tersebut akan ditempatkan di posisi paling atastumpukan/stack

� Ketika data tersebut sudah tidak diperlukan lagi, makaproses yang sedang dieksekusi tsb bertanggung jawabuntuk menghapusnya dari stack

Page 7: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Ilustrasi Operasi dalam Stack� Pada awal proses maka Stack masih dalam posisi

kosong atau belum ada data dalam Stack

Page 8: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Ilustrasi Operasi dalam Stack� Ketika ada data pertama masuk, maka data tersebut

akan berada pada posisi paling bawah tumpukan

� Karena data dalam tumpukan masih ada 1 data, makadata tersebut juga berada pada posisi atasdata tersebut juga berada pada posisi atas

Page 9: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Ilustrasi Operasi dalam Stack� Ketika ada data kedua masuk,

maka data tersebut akanberada pada posisi tumpukandi atasnya.

� Demikian juga ketika ada data masuk lagi ke dalamtumpukan, ia akan diposisikandi atas data yang masuksebelumnya

� Misal dimasukkan data 25 dan5

Page 10: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Ilustrasi Operasi dalam Stack� Ketika ada data yang hendak

diambil, maka data yang berada pada posisi tumpukanpaling atas yang akan terambilpaling atas yang akan terambil

� Dari gambar disamping, ketikadiambil, maka data 5 akanterambil dan keluar dari Stack

Page 11: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Operasi dalam Stack� Push : merupakan operasi memasukkan data baru ke

dalam stack/tumpukan

� Pop : merupakan operasi mengambil ataumengeluarkan data dari dalam tumpukanmengeluarkan data dari dalam tumpukan

� Is Empty : merupakan operasi pengecekan apakahstack dalam keadaan kosong

� Is Full ; merupakan operasi pengecekan apakah stack dalam keadaan full

Page 12: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Implementasi Stack dengan Array

� Stack bisa diimplementasikan menggunakan Array

� Misal dibuat Array dengan ukuran 5

SebuahSebuah Array dg Array dg [ 4 ][ 4 ]

SebuahSebuah Array dg Array dg tipetipe data data intint untukuntukmembuatmembuat stack stack dengandengan isiisi data data berupaberupa bilanganbilanganintint [ 0 ][ 0 ]

[ 1 ][ 1 ]

[ 2 ][ 2 ]

[ 3 ][ 3 ]

4

8

6

Page 13: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Implementasi Stack dengan Array

� Data 4 (BAWAH) masuk pertama kali ke dalam stack, kemudian diikuti dengan 8 dan 6 (ATAS)

[ 0 ][ 0 ]

[ 1 ][ 1 ]

[ 2 ][ 2 ]

[ 3 ][ 3 ]

[ 4 ][ 4 ]

4

8

6

BAWAH

ATAS

Page 14: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Implementasi Stack dengan Array

� Untuk memudahkan implementasi, dalamsuatu stack perlu disimpan banyak data yang adalam stack (variabel size) danindeks elemen array yang berposisi sebagaiATAS (var. last), dan indeks elemen array

sizesize3

firstfirst0ATAS (var. last), dan indeks elemen array yang berposisi sebagai BAWAH (var. first)

lastlast2

[ 0 ][ 0 ]

[ 1 ][ 1 ]

[ 2 ][ 2 ]

[ 3 ][ 3 ]

[ 4 ][ 4 ]

4

8

6

Page 15: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Operasi Pop� Ketika ada operasi pengambilan data dari

stack (pop), maka size berkurang satu

� Demikian juga dengan last juga akanberubah

Tetapi first tidak berubah

sizesize2

firstfirst0

� Tetapi first tidak berubah

lastlast1

[ 0 ][ 0 ]

[ 1 ][ 1 ]

[ 2 ][ 2 ]

[ 3 ][ 3 ]

[ 4 ][ 4 ]

4

8

6

Page 16: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Operasi Push� Ketika ada data baru masuk ke dalam

queue, nilai size akan bertambah satu.

� Nilai last akan berubah

� Tetapi nilai first tetap

sizesize3

firstfirst0

lastlast2

[ 0 ][ 0 ]

[ 1 ][ 1 ]

[ 2 ][ 2 ]

[ 3 ][ 3 ]

[ 4 ][ 4 ]

4

8

10

Misal data 10

dimasukkan ke

dalam stack

Page 17: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Kondisi Empty� Jika size = 0 sizesize0

firstfirst[ 4 ][ 4 ]

lastlast

[ 0 ][ 0 ]

[ 1 ][ 1 ]

[ 2 ][ 2 ]

[ 3 ][ 3 ]

Page 18: Materi - ifrozi.files.wordpress.com fileStack Merupakanpolastrukturdata yang susunannyaseperti suatutumpukan. Data masukpertamaakanmenempatitumpukanpaling bawah Ketika ada data baru

Kondisi Full� Jika size = panjang array

sizesize5

firstfirst0[ 3 ][ 3 ]

[ 4 ][ 4 ]

100

35firstfirst0

lastlast4

[ 0 ][ 0 ]

[ 1 ][ 1 ]

[ 2 ][ 2 ]

[ 3 ][ 3 ]

4

8

10

100