Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular...

19
Queue

Transcript of Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular...

Page 1: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Queue

Page 2: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Materi� Pengenalan Struktur Data

� Queue

� Implementasi Queue MenggunakanArray

� Operasi Queue� Push (Enqueue)� Push (Enqueue)

� Pop (Dequeue)

� Is Empty

� Is Full

Page 3: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Struktur Data� struktur data adalah cara penyimpanan, penyusunan dan

pengaturan data di dalam media penyimpanan komputersehingga data tersebut dapat digunakan secara efisien

� Beberapa algoritma dalam struktur data:� QueueStack� Stack

� Linked List :� Single Linked List� Double Linked List� Circular Linked List� Double Circular Linked List

� Tree

Page 4: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Queue� Merupakan pola struktur data yang susunannya seperti

antrian.

� Data disusun berurutan mulai data yang masuk pertama(FRONT) hingga data yang masuk terakhir (REAR)

� Ketika diambil suatu data, maka data yang masuk pertama� Ketika diambil suatu data, maka data yang masuk pertamakali yang akan terambil

� Dan data yang terakhir masuk ke dalam antrian yang akanterakhir terambil

Page 5: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Queue� Disebut juga FIFO (First In First Out)

� Data yang pertama masuk, maka akan pertama kali keluar

� Sebaliknya, data yang terakhir masuk, maka juga akan paling akhir keluar

Page 6: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Ilustrasi Queue� Baris antrian menuju teller di bank

$ $

FrontRear

Page 7: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

� Ketika ada antrian baru, maka posisinya akan berada di paling belakang

$ $

FrontRear

Page 8: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

� Ketika antrian terlayani, maka yang ada di paling depan yang akan terlayani:

$ $ $ $

FrontRear

Page 9: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Operasi dalam Queue� Push (Enqueue): merupakan operasi memasukkan data baru

ke dalam queue

� Pop (Dequeue): merupakan operasi mengambil ataumengeluarkan data dari dalam queue

� Is Empty : merupakan operasi pengecekan apakah queue � Is Empty : merupakan operasi pengecekan apakah queue dalam keadaan kosong

� Is Full ; merupakan operasi pengecekan apakah queue dalamkeadaan full

Page 10: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Implementasi Queue dengan Array

� Queue bisa diimplementasikan menggunakanArray

� Misal dibuat Array dengan ukuran 5

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

SebuahSebuahArray dg Array dg tipetipedata data intint untukuntukmembuatmembuat queue queue dengandengan isiisi data data berupaberupabilanganbilangan intint

4 8 6

Page 11: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Implementasi Queue dengan Array� Data 4 (FRONT) masuk pertama kali ke dalam queue,

kemudian diikuti dengan 8 dan 6 (REAR)

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

4 8 6

Page 12: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Implementasi Queue dengan Array

� Untuk memudahkan implementasi, dalam suatuqueue perlu disimpan banyak data yang adalamqueue, indeks elemen array yang berposisi sebagaiFRONT, dan indeks elemen array yang berposisisebagai REAR

sizesize3

firstfirst0sebagai REAR

lastlast2

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

4 8 6

Page 13: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Operasi Dequeue

� Ketika ada operasi pengambilan data dari queue (dequeue/pop), maka size berkurang satu

� Demikian juga dengan first juga akan berubah

� Tetapi last tidak berubah

sizesize2

firstfirst1

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

4 8 6

lastlast2

Page 14: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Operasi Enqueue

� Ketika ada data baru masuk ke dalam queue, nilaisize akan bertambah satu.

� Nilai last akan berubah

� Tetapi nilai first tetap

sizesize3

firstfirst1

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

28 6

lastlast3

Page 15: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Jika Berada di Akhir Index Array

� Terdapat perilaku khusus, jika data sudah ada diAKHIR Array

� Misal, jika akan dilakukan operasi Enqueue, sedangkan data terakhir queue (last) berada diindex terakhir dari Array

sizesize3

firstfirst2index terakhir dari Array

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

6 1

firstfirst2

lastlast4

2

Page 16: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Jika Berada di Akhir Index Array

� Data baru yang akan masuk ke dalam queue, akanditaruh di indeks pertama dari array, jika data dalam indeks tersebut kosong atau tidak ada datanya

� Jika ternyata indeks pertama array tersebut adadatanya, maka ini berarti queue FULL

sizesize4

datanya, maka ini berarti queue FULL

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

6 1

firstfirst2

lastlast0

24

Page 17: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Kondisi Empty� Jika size = 0

sizesize0

firstfirst

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

lastlast

Page 18: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Kondisi Full� Jika size = panjang array

sizesize5

firstfirst2

[ 0 ][ 0 ] [1][1] [ 2 ][ 2 ] [ 3 ][ 3 ] [ 4 ][ 4 ]

6 1

firstfirst2

lastlast1

24 10

Page 19: Queue - ifrozi.files.wordpress.com fileLinked List : Single Linked List Double Linked List Circular Linked List Double Circular Linked List Tree. Queue Merupakanpolastrukturdata yang

Kelebihan n Kekurangan Queue

menggunakan Array

� Simpel untuk diimplementasikan

� Kapasitas queue yang statis, maksudnya ukuran queue – nyatetap.

� Jika dibuat queue untuk 5 data, maka maksimal queue tersebut hanya bisa digunakan untuk menyimpan 5 data saja. tersebut hanya bisa digunakan untuk menyimpan 5 data saja. Tidak bisa lebih