Implementasi Queue Implementasi queue lebih sulit daripada stack. Pada stack, penambahan dan penghapusan data hanya dilakukan pada satu ujung saja, sehingga.

Slides:



Advertisements
Presentasi serupa
Queue (Antrian).
Advertisements

Dr. Anto Satriyo Nugroho, M.Eng
Dr. Anto Satriyo Nugroho, M.Eng
Dr. Anto Satriyo Nugroho, M.Eng
Pertemuan 5 Struktur Data
bentuknya, yang dapat berubah pada saat runtime.
QUEUE II. IMPLEMENTASI QUEUE
PERTEMUAN KE-7 Kamis, 14 Oktober QUEUE (Antrian) Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasi penyisipan (insertion)
List, Stack & Queue (1) Dr. Anto Satriyo Nugroho, M.Eng
Kuliah Ke-4 Antrian / Queue (Bab 4)
QUEUE.
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
STACK (Tumpukan).
Struktur Data (Data Structure) – IS 2313
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Queue.
Queue.
Queue.
Algoritma dan Struktur Data
Linear Data Structures (Queue)
Linear Data Structures (Stack)
Algoritma dan Struktur Data
Circular Queue.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
ANTRIAN Farid Wajdi Yusuf Pendidikan Teknik Informatika dan Komputer
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
STRUKTUR DATA Queue atau Antrian.
Pertemuan : Algoritma & Struktur Data
STACK.
Pertemuan Linked list jual [Valdo] Lunatik Chubby Stylus.
Queue By Serdiwansyah N. A. 1. Queue Penambahan data dilakukan pada sebuah ujung sebuah list, sedangkan penghapusan data dilakukan pada ujung yang lain.
STRUKTUR DATA Linked List
Program Studi Teknik Informatika
QUEUE Copyright 2008 by Yohana.
STRUKTUR DATA QUIZ.
Program Studi Teknik Informatika
Defri Kurniawan QUEUE Defri Kurniawan
Queue (Antrian).
Struktur Organisasi Data 2
Queue.
STRUKTUR DATA QUEUE (Antrian)
QUEUE Anifuddin Azis.
STACK (Tumpukan).
Program Studi Teknik Informatika
Program Studi Teknik Informatika
STRUKTUR DATA Chapt 5 : QUEUE Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
Program Studi Teknik Informatika
NAMA : SITI HAJAR NIM : UNIT : B NO.HP : 0852 – 2000 – 3786.
QUEUE Pertemuan ke-6 T 0026.
Program Studi Teknik Informatika
STACK (Tumpukan).
Queue(Antrian).
STACK & QUEUE Struktur Data.
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Pertemuan 6 Queue dengan Array
Algoritma dan Struktur Data
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
3.
DEQUE Deque (Deck atau Dequeue) adalah suatu list linier atau linier list, yang penambahan dan penghapusan elemennya dapat dilakukan pada kedua sisi ujung.
Algoritma dan Struktur Data
Pertemuan – 7 Antrian / Queue (Bab 4).
TIF 4201 Algoritma Dan Struktur Data Abstract Data Type
STRUKTUR DATA Teknik Informatika S1
Queue Algoritma dan Struktur Data.
QUEUE (Antrian).
Struktur Data Linear Created by Fifth Group, S3B TI Anggota
Transcript presentasi:

Implementasi Queue Implementasi queue lebih sulit daripada stack. Pada stack, penambahan dan penghapusan data hanya dilakukan pada satu ujung saja, sehingga cukup mengubah posisi pointer sesuai dengan penambahan/pengurangan data Implementasi queue, harus mengubah posisi DUA buah pointer, yaitu pointer yang menunjuk ke FRONT, dan pointer yagn menunjuk ke REAR Ada dua cara implementasi queue: rear front stack queue

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 … Array x ujung depan ujung belakang Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 … Array x ujung depan ujung belakang Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 … Array x ujung depan ujung belakang Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x ujung depan ujung belakang Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x ujung depan ujung belakang Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT front rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x Queue adalah pada bagian yang berwarna hijau

Cara 1 Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR Saat data ditambahkan ke queue, naikkan posisi pointer REAR Saat data dihapus dari queue, naikkan posisi pointer FRONT Saat front==rear, berarti queue kosong front==rear … x3 x4 x5 x6 x7 x8 x9 x10 x11 x11 x12 … Array x Queue adalah pada bagian yang berwarna hijau

Masalah yang timbul pada Cara 1 Front dari rear selalu bertambah secara motononik, sehingga memerlukan array dengan ukuran tak terhingga Menyambungkan FRONT dan REAR dari array itu sehingga membentuk cincin (RING BUFFER) front rear x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 array x … Pointer selalu bergerak ke kanan, tak pernah kembali

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 front rear Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 front rear Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 rear front Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 rear front Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 rear front Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 rear front Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 rear front Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 rear front Queue adalah pada bagian yang berwarna hijau

Cara 1 Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama Menambahkan data ke queue: nilai rear dinaikkan satu Menghapus data dari queue: nilai front dinaikkan satu Queue kosong pada saat front==rear n-1 n-2 1 rear==front Queue adalah pada bagian yang berwarna hijau

Masalah pada Ring Buffer Pada saat rear==front , ada dua interpretasi yang muncul, “queue kosong” ataukah “queue full” n-1 n-1 n-2 1 n-2 1 empty full rear==front rear==front Queue adalah pada bagian yang berwarna hijau

Masalah pada Ring Buffer Solusi Menyiapkan sebuah FLAG untuk memberi tanda kalau queue kosong Queue dijaga agar tidak pernah full, dengan menyisakan sebuah elemen yang kosong n-1 1 n-2

Contoh hasil eksekusi [1] tambahkan task [2] eksekusi [3] selesai 1 Isi task: baca buku Kondisi QUEUE: [0] baca buku Isi task: membuat program [0] baca buku [1] membuat program [1] tambahkan task [2] eksekusi [3] selesai  2 Menjalankan task: baca buku [1] membuat program

Hint Dalam fungsi enqueue/dequeue, posisi pointer front dan rear harus diupdate sehingga menunjuk ke posisi yang benar Pengubahan posisi tsb. Memakai fungsi next() Pada fungsi next(), sisa pembagian dihitung dengan cara membaginya dengan QUEUE_SIZE, sehingga jika nilai itu melebih QUEUE_SIZE, dia akan kembali ke ujung depan queue. Posisi berikutnya dihitung dengan posisiberikutnya =next(posisi saat ini)