Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005

Slides:



Advertisements
Presentasi serupa
Double Linked List.
Advertisements

Queue (Antrian).
STRUKTUR DATA (7) single linked list circular
Pertemuan 2 STRUKTUR DATA LINKED LIST
QUEUE II. IMPLEMENTASI QUEUE
QUEUE.
LINKED LIST.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
STACK (Tumpukan).
Struktur Data (Data Structure) – IS 2313
QUEUE (antrian).
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Queue.
Queue.
Single Linked List Yuliana Setiowati, S.Kom.
Queue.
LINKED LIST by Yohana N.
Struktur Data List Linear : Linked List (Double Linkedlist)
Mempelajari tipe data queue dan bagaimana menggunakan fungsi insert, remove, is_empty dan is_full. Mempelajari bagaimana mengimplementasikan queue dengan.
Linear Data Structures (Queue)
Algoritma dan Struktur Data
Tenia Wahyuningrum, S.Kom. MT
Circular Queue.
Struktur Data List Linear : Linked List (Single Linkedlist)
Struktur Data (Data Structure) – IS 2313
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.
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
STRUKTUR DATA QUEUE.
STRUKTUR DATA Queue atau Antrian.
Pertemuan : Algoritma & Struktur Data
Pertemuan 8 Stack dengan Array
Pertemuan 9 Stack dengan Linked-list
Stack.
Queue By Serdiwansyah N. A. 1. Queue Penambahan data dilakukan pada sebuah ujung sebuah list, sedangkan penghapusan data dilakukan pada ujung yang lain.
1 Pertemuan 7 Queue dengan Linked-list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Defri Kurniawan ADT STACK Defri Kurniawan
STRUKTUR DATA QUIZ.
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Defri Kurniawan QUEUE Defri Kurniawan
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Struktur Organisasi Data 2
Queue.
STRUKTUR DATA QUEUE (Antrian)
STACK (Tumpukan).
STRUKTUR DATA Chapt 5 : QUEUE Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
Pertemuan 5 Review Berbagai Struktur Data
QUEUE Pertemuan ke-6 T 0026.
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
Algoritme dan Stuktur Data
Queue(Antrian).
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Pertemuan 6 Queue dengan Array
Algoritma dan Struktur Data
Algoritma dan Struktur Data
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
STRUKTUR DATA Teknik Informatika S1
Queue Algoritma dan Struktur Data.
QUEUE (Antrian).
Struktur Data Linear Created by Fifth Group, S3B TI Anggota
Transcript presentasi:

Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005 Pertemuan 07 QUEUE

Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : mendemonstrasikan TDA Queue (TIK-06). menerapkan TDA Queue pada program aplikasi komputer (TIK-06).

Basis Operasi Abstraksi Implementasi Outline Materi Obyek Operasi/fungsi Implementasi Array Linier Circular Linked List

Basis Operasi Basis operasi FIFO (First In First Out), Elemen yang diambil / dihapus adalah elemen yang pertama dimasukkan / diinsert QUEUE A B C D E F DEQUEUE ENQUEUE

TDA Queue ADT Queue Structure Queue is Objects : a finite ordered list with zero or more elements. function : For all queue Є Queue, item Є element, max_queue_size Є positive integer. Queue Create(max_queue_size) ::= create an empty queue whose maximumsize is max_queue_size. Boolean IsFull(queue, max_queue_size)::= if (number of elements in queue== max_queue_size ) return TRUE else return FALSE Queue Enqueue(queue,item)::= if (IsFull(queue)) queue-full else insert item at rear of queue and return queue Boolean IsEmptyQ(queue)::= if (queue==Create(max_queue_size)) return TRUE else return FALSE Element Dequeue(queue)::= if (IsEmpty(queue)) return else remove and return the item at front of queue.

Operasi CREATE() Untuk menciptakan QUEUE yg baru dan kosong. CLEAR() Untuk menghapus semua elemen dalam QUEUE. ENQUEUE (ElementType e) Untuk memasukkan 1 elemen ke dalam QUEUE. DEQUEUE (ElementType *e) Untuk mengambil 1 elemen dari QUEUE, disebut juga operasi SERVE. int EMPTY() Untuk mengecek apakah QUEUE masih kosong atau sudah berisi data. int FULL() Untuk mengecek apakah QUEUE sudah penuh atau masih bisa menampung data.

Implementasi dg Array-Linear TAIL HEAD Max ( i ) Empty HEAD TAIL Max ( ii ) TAIL HEAD Max ( iii ) Empty HEAD TAIL Max ( iv ) HEAD TAIL ( v ) Full Max QUEUE sudah penuh meskipun masih ada tempat yg kosong di depan => ( v )

Implementasi dg Array-Circular Untuk mengoptimalkan QUEUE, maka ruang yg kosong bisa dimanfaatkan. Yg dilakukan adalah dg memindahkan / memutar posisi TAIL ke depan ( tempat kosong ) saat dilakukan ENQUEUE dan juga posisi HEAD saat dilakukan DEQUEUE Linear HEAD TAIL Full Max Circular TAIL HEAD Circular TAIL HEAD

Simulasi Circular Queue Contoh operasi pd Circular QUEUE yang memiliki 4 sel ( jumlah maksimum 3 ) : CREATE() ENQUEUE(50) ENQUEUE(30) ENQUEUE(20) H H T H T H 1 1 1 50 50 30 50 1 30 20 T T 3 2 3 2 3 2 3 2 ENQUEUE(80) DEQUEUE(*e) CLEAR() DEQUEUE(*e) H H 1 1 1 1 50 30 30 20 20 T H 3 3 2 3 2 2 2 3 H T T T

Implementasi Circular Queue Implementasi Circular QUEUE dengan Bahasa C void CREATE() { HEAD = 0; TAIL = PJG_MAX - 1;} void ENQUEUE(ElemenType e) { if (FULL()) printf("Queue sudah penuh\n"); else{ TAIL = TAIL++ % PJG_MAX; Q[TAIL]=e; } } void DEQUEUE(ElemenType *e) { if (EMPTY()) printf("Queue kosong\n"); else{ *e = Q[HEAD]; HEAD = HEAD++ % PJG_MAX; }

Implementasi Circular Queue(2) int EMPTY() { if (((TAIL+1) % PJG_MAX) == HEAD) return(1); else return(0); } int FULL() { int x; x = TAIL+2; x = x % PJG_MAX; if (x == HEAD) return(1);

Implementasi dg Linked List #include <stdio.h> #include <malloc.h> typedef int ElemenType; struct Node{ ElemenType data; struct Node *next; }; struct QUEUE{ struct Node *Head; struct Node *Tail; struct QUEUE Q; void create() { Q.Head = NULL; Q.Tail = NULL; }

Implementasi dg Linked List(2) void enqueue(ElemenType e) { struct Node *Temp; Temp=(struct Node*)malloc(sizeof(struct Node)); Temp->data = e; Temp->next = NULL; if(empty()){ Q.Head = Temp; Q.Tail = Temp; } else{ Q.Tail->next = Temp; Q.Tail = Temp; };

Implementasi dg Linked List(3) void dequeue(ElemenType *e) { struct Node *Temp; if(!empty()) { Temp = Q.Head; Q.Head = Q.Head->next; *e = Temp->data; free(Temp); };

Selesai