Pertemuan 6 Queue dengan Array

Slides:



Advertisements
Presentasi serupa
Queue (Antrian).
Advertisements

Dr. Anto Satriyo Nugroho, M.Eng
Pertemuan 5 Struktur Data
STRUKTUR DATA (7) single linked list circular
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK.
Struktur Data (Data Structure) – IS 2313
Pointer dalam Stack.
QUEUE (antrian).
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Queue.
QUEUE (ANTRIAN).
Queue.
Double Ended QUEUE (DeQue) 6.3 & 7.3 NESTED LOOP.
Algorithm and Data Structures.
Mempelajari tipe data queue dan bagaimana menggunakan fungsi insert, remove, is_empty dan is_full. Mempelajari bagaimana mengimplementasikan queue dengan.
Algoritma dan Struktur Data
Linear Data Structures (Queue)
Algoritma dan Struktur Data
Implementasi Queue Implementasi queue lebih sulit daripada stack. Pada stack, penambahan dan penghapusan data hanya dilakukan pada satu ujung saja, sehingga.
Tenia Wahyuningrum, S.Kom. MT
Circular Queue.
STRUKTUR DATA (4) array stack dan queue
1 Pertemuan Tree Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
STRUKTUR DATA QUEUE.
STRUKTUR DATA Queue atau Antrian.
Pertemuan 8 Stack dengan Array
Pertemuan 9 Stack dengan Linked-list
1 Pertemuan 7 Queue dengan Linked-list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Pertemuan 5 Abstract Data Type (ADT)
1 Pertemuan 4 Doubly Linked List Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Universitas Budi Luhur
Program Studi Teknik Informatika
BAB3 QUEUE 6.3 & 7.3 NESTED LOOP.
QUEUE Copyright 2008 by Yohana.
Defri Kurniawan ADT STACK Defri Kurniawan
Program Studi Teknik Informatika
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Defri Kurniawan QUEUE Defri Kurniawan
Queue (Antrian).
Struktur Organisasi Data 2
Queue.
STRUKTUR DATA QUEUE (Antrian)
STACK (Tumpukan).
Program Studi Teknik Informatika
Pertemuan 22 Graph Operation
Program Studi Teknik Informatika
STRUKTUR DATA Chapt 5 : QUEUE Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Program Studi Teknik Informatika
Pertemuan 5 Review Berbagai Struktur Data
Pertemuan 4 ALGORITMA lanjutan….
QUEUE Pertemuan ke-6 T 0026.
Program Studi Teknik Informatika
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
STACK (Tumpukan).
Algoritma dan Struktur Data
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).
Transcript presentasi:

Pertemuan 6 Queue dengan Array Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1 Pertemuan 6 Queue dengan Array

Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular ADT queue yang diimplementasikan dengan array

Kegunaan dan spesifikasi Queue Implementasi queue dengan array Outline Materi Pengertian Queue Kegunaan dan spesifikasi Queue Implementasi queue dengan array Operasi Queue Circular Queue

Queue D C B A Bentuk khusus dari ordered list Data di insert di akhir list Data di delete di awal list A R F B C D

Elemen paling belakang Queue sebagai ADT Misal, queue Q terdiri dari n elemen Q = ( ao , a1 , … , ai , ai+1 , …, an-1 ) Elemen paling depan FRONT Elemen paling belakang REAR ao : elemen yang diinsert pertama kali an-1 : elemen yang diinsert terakhir

Yang paling sederhana : array 1-D Disebut Sequential Queue Representasi Queue Yang paling sederhana : array 1-D Disebut Sequential Queue 2 variabel indikator REAR dan FRONT #define MAX_QUEUE_SIZE 100 eltype queue[MAX_QUEUE_SIZE]; int rear = -1; int front = -1;

Aplikasi Queue dengan Array 1-D front rear Q[0] Q[1] Q[2] Q[3] Comments -1 Queue kosong J1 Masuk Job 1 1 J2 Masuk Job 2 2 J3 Masuk Job 3 Hapus Job 1 Hapus Job 2

Sequential Queue : Add Queue void addq (int *rear, eltype item) { if (*rear == MAX_QUEUE_SIZE-1) { printf (“Queue penuh\n”); return; } queue[++*rear] = item; /* indeks rear di-increment sebelum insert data baru */

Sequential Queue : Delete Queue eltype deleteq(int *front, int rear){ if (front == rear) { printf (“queue empty\n”); return; } return queue(++*front); /*indeks front di-increment sebelum passing nilai yang disimpan di queue */

Kekurangan Sequential Queue Setelah beberapa data insert dan delete dari queue, REAR dan FRONT bergerak ke kanan, hingga REAR mencapai MAX_QUEUE_SIZE-1. Jika REAR mencapai maksimum, queue akan dideteksi PENUH, meskipun beberapa lokasi di depan FRONT kosong. Solusi : elemen queue harus digeser ke depan shg FRONT=-1 dan REAR != MAX_QUEUE_SIZE-1 Tetapi perlu waktu untuk menggeser elemen satu persatu. Lebih baik gunakan circular array untuk queue

Circular Queue : Empty Empty : front = rear [0] [1] [2] [3] [4] [5]

front = (rear + 1) % MAX_QUEUE_SIZE Circular Queue : Full [0] [1] [2] [3] [4] [5] J4 J5 J6 J7 J8 F R [0] [1] [2] [3] [4] [5] J1 J2 J3 J4 J5 F R Full : front = (rear + 1) % MAX_QUEUE_SIZE

Circular Queue : Insert [0] [1] [2] [3] [4] [5] J1 F R R [2] [3] J2 [1] J1 [4] [0] [5] F Insert : REAR berubah, FRONT tetap *rear = (*rear+1) % MAX_QUEUE_SIZE

Circular Queue : Delete [0] [1] [2] [3] [4] [5] J4 J5 J6 J7 J8 F R R [0] [1] [2] [3] [4] [5] J4 J5 J6 J7 J8 F Delete : FRONT berubah, REAR tetap *front = (*front+1) % MAX_QUEUE_SIZE

Circular Queue : Add Queue void addq(int front,int *rear, eltype item){ *rear = (*rear+1)%MAX_QUEUE_SIZE; if (front = *rear) { printf (“Queue full\n”); return; } queue[*rear] = item;

Circular Queue : Delete Queue eltype deleteq (int *front, int rear){ eltype item; if (*front == rear) { printf (“Queue empty\n”); return; } *front = (*front+1)%MAX_QUEUE_SIZE; return queue[*front];