Transcript
Page 1: Stack & queue by stanly maarende

STACK & QUEUEMateri V: Struktur Data

By. Gladly C. Rorimpandey, ST, MISDLaidy Manoppo, S.Pd

Page 2: Stack & queue by stanly maarende

Stack (tumpukan) dapat diartikan sebagai list (urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi yang disebut top (puncak) dari stack.

Arti lain dari Stack (tumpukan) adalah salah satu konsep struktur data yang memiliki sistem kerja yang terakhir masuk adalah yang pertama keluar (LIFO = Last In First Out)

Pengertian STACK (Tumpukan)

Page 3: Stack & queue by stanly maarende

Ilustrasi Stack (tumpukan)

Catatan:Yang terakhir masuk ke

dalam tumpukan, itu yang pertama keluar

seperti kotak nomor 5.

Page 4: Stack & queue by stanly maarende

Operasi-operasi pada Stack (Tumpukan)

1. Operasi Push, yaitu operasi menambahkan elemen baru pada sebuah stack.

Aturan-aturan dalam operasi Push sbb: kondisi awal ada sebuah stack yang telah

memiliki beberapa elemen dengan elemen teratas disebut “TOP”

Buat sebuah elemen baru elemen baru dimasukkan ke dalam stack penunjuk awal TOP diubah ke elemen yang

baru ditambahkan

Page 6: Stack & queue by stanly maarende

2. Operasi Pop, yaitu operasi mengambil sebuah elemen dari sebuah stack

Aturan-aturan dalam operasi Pop sbb: kondisi awal ada sebuah stack yang

telah memiliki beberapa elemen dengan elemen teratas disebut “TOP”

penunjuk awal TOP diubah menunjuk elemen yang ada di bawahnya (TOP)

Elemen teratas diambil dari stack

Page 8: Stack & queue by stanly maarende

3. Operasi IsFull yaitu operasi yang memeriksa apakah stack sudah penuh atau tidak.

Dengan cara, memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1)  maka belum full

Page 10: Stack & queue by stanly maarende

4. Operasi IsEmpty yaitu operasi yang memeriksa apakah stack masih kosong atau tidak. Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong.

Page 11: Stack & queue by stanly maarende

5. Operasi Print yaitu operasi yang menampilkan semua elemen-elemen stack dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil.

Page 12: Stack & queue by stanly maarende

Antrian adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisi belakang, dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front)

Arti lain dari antrian adalah salah satu konsep struktur data yang memiliki sistem kerja yang pertama masuk adalah yang pertama keluar (FIFO = First In First Out)

Pengertian QUEUE (Antrian)

Page 13: Stack & queue by stanly maarende

Ilustrasi Queue (antrian)

Catatan: orang pertama yang masuk dalam antrian, maka orang itu juga yang pertama

keluar dari antrian

Page 14: Stack & queue by stanly maarende

Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front, belakang/rear). Karakteristik Queue atau antrian :1. elemen antrian2. front (elemen terdepan antrian)3. tail (elemen terakhir)4. jumlah elemen pada antrian5. status antrian

Page 15: Stack & queue by stanly maarende

Operasi-operasi pada antrian1. Create()Untuk menciptakan dan menginisialisasi QueueDengan cara membuat Head dan Tail  = -1

Page 16: Stack & queue by stanly maarende

2.IsEmpty()Untuk memeriksa apakah Antrian masih kosong

Dengan cara memeriksa nilai Tail, jika Tail = -1 maka emptyKita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubahPergerakan pada Antrian terjadi dengan penambahan elemen Antrian ke belakang, yaitu menggunakan nilai Tail

Page 17: Stack & queue by stanly maarende

3. IsFull yaitu operasi yang mengecek apakah Antrian sudah penuh atau belum

Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh

Page 18: Stack & queue by stanly maarende

4. EnqueueUntuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang

Penambahan elemen selalu menggerakan variabel Tail dengan

cara increment counter Tail terlebih

dahulu

Page 19: Stack & queue by stanly maarende

5. Dequeue()Digunakan untuk menghapus elemen terdepan/pertama (head) dari AntrianDengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1Penggeseran dilakukan dengan menggunakan looping.

Page 20: Stack & queue by stanly maarende

6. Clear()Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1

Page 21: Stack & queue by stanly maarende

7. Tampil()Untuk menampilkan nilai-nilai elemen AntrianMenggunakan looping dari head s/d tail

 4 45 1 8

Maka yang muncul adalah angka secara berturut-turut adalah 4, 45, 1

dan 8


Top Related