Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
Antrian (Queue) Desain dan Analisis Algoritma
Advertisements

Queue (Antrian).
STRUKTUR DATA array stack dan queue
QUEUE II. IMPLEMENTASI QUEUE
STRUKTUR DATA PERTEMUAN 6
QUEUE.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
Quiz struktur data Genap 2013.
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.
Queue.
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)
Circular Queue.
STRUKTUR DATA (4) array stack dan queue
Struktur Data List Linear : Linked List (Single Linkedlist)
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.
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
STRUKTUR DATA QUEUE.
STRUKTUR DATA Queue atau Antrian.
Pertemuan : Algoritma & Struktur Data
Stack.
QUEUE hms_sept.
Stack.
Sapta Candra Miarsa,S.T.,M.T.
QUEUE Denny Agustiawan,M.pd
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.
Defri Kurniawan QUEUE Defri Kurniawan
STRUKTUR DATA – Pertemuan 6
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.
NAMA : SITI HAJAR NIM : UNIT : B NO.HP : 0852 – 2000 – 3786.
Nama : Siti Hajar Nim : Unit : B/III No.Hp : 0852 –
Circular QUEUE 6.3 & 7.3 NESTED LOOP.
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
Algoritma dan Struktur Data
Algoritme dan Stuktur Data
Queue(Antrian).
QUEUE (Antrian) #Kulia 6 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
3.
Algoritma dan Struktur Data
Kode MK/ Pemrograman Terstruktur 2
STRUKTUR DATA Teknik Informatika S1
Queue Algoritma dan Struktur Data.
QUEUE (Antrian).
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

Algoritma dan Struktur Data Praktikum 2 SKS Dosen: Muhammad Fachrie, M.Cs. Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 QUEUE Queue (antrean) adalah salah satu metode pengorganisasian data di dalam sebuah program yang menggunakan pola FIFO (First In, First Out) Artinya, data yang pertama kali dimasukkan ke dalam program, akan dikeluarkan pertama kali. Ibarat sebuah antrean di loket bus, orang yang pertama kali antre akan dilayani lebih dahulu, sedangkan yang terakhir kali antre akan dilayani terakhir kali. Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 QUEUE OUT IN Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Elemen QUEUE Sebuah queue (antrean) memiliki elemen sebagai berikut: Head, yakni elemen yang berada pada urutan paling depan (pertama) Tail, yakni elemen yang berada pada urutan paling belakang Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Input Data Empty Queue Empty Queue  Head dan Tail posisinya sama Head 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Input Data Enqueue Enqueue  Pengisian satu data ke queue, tail++ Head 5 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Input Data Enqueue Enqueue  Pengisian satu data ke queue, tail++ Head 5 10 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Input Data Enqueue Enqueue  Pengisian satu data ke queue, tail++ Head 5 10 -5 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Input Data Enqueue Enqueue  Pengisian satu data ke queue, tail++ Head 5 10 -5 9 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Output Data Dequeue Dequeue  Mengeluarkan data pada head, head++ Head 10 -5 9 5 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Output Data Dequeue Dequeue  Mengeluarkan data pada head, head++ Head -5 9 5 10 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Circular Queue Jika Tail berada pada akhir array sedangkan awal array kosong, maka Tail bias pindah ke indeks awal array. Head -5 9 12 6 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Circular Queue Jika Tail berada pada akhir array sedangkan awal array kosong, maka Tail bias pindah ke indeks awal array. Head -5 9 12 6 10 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Circular Queue Full Queue Full Queue  Jika tail berada di depan head dan selisih antara head dan tail = 1 atau selisih head dan tail = -(N-1) Head -12 -5 9 12 6 10 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Circular Queue Circular queue membutuhkan satu slot kosong antara head dan tail sebagai batas akhir atau penanda bahwa queue sudah penuh. Head -12 -5 9 12 6 10 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Ilustasi Queue – Circular Queue Full Queue Full Queue  Jika tail berada di depan head dan selisih antara head dan tail = 1 atau selisih head dan tail = -(N-1) Head -12 8 -5 9 12 6 1 2 3 4 5 6 Tail Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Kode Program Queue Beberapa prosedur/ fungsi di bawah ini diperlukan untuk membangun sebuah queue: bool IsEmpty bool IsFull void enqueue int dequeue Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Fungsi IsEmpty IsEmpty merupakan fungsi yang bertipe boolean (logika “true” or “false”). Fungsinya adalah untuk mengecek apakah suatu queue kosong atau tidak. Jika queue kosong, maka fungsi akan mengembalikan nilai true, dan jika sebaliknya, maka fungsi akan mengembalikan nilai false. Queue dikatakan kosong jika head = tail. Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Fungsi IsFull IsFull merupakan fungsi yang juga bertipe boolean (logika “true” or “false”). Fungsinya adalah untuk mengecek apakah suatu queue penuh atau tidak. Jika queue penuh, maka fungsi akan mengembalikan nilai true, dan jika sebaliknya, maka fungsi akan mengembalikan nilai false. Queue dikatakan penuh jika head - tail = 1 Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Fungsi enqueue enqueue merupakan fungsi yang bertipe void (atau tipe lainnya, tergantung kasus). Fungsinya adalah untuk menambah/ memasukkan data ke dalam queue. Fungsi enqueue hanya bisa mengisi data ke dalam queue jika queue tersebut tidak penuh. Setiap kali melakukan enqueue, maka nilai tail bertambah 1 (tail++). Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Fungsi dequeue dequeue merupakan fungsi yang bertipe integer (atau tipe lainnya, tergantung kasus). Fungsinya adalah untuk mengeluarkan/ membaca data yang ada pada head di dalam queue. Fungsi dequeue hanya bisa mengeluarkan/ membaca data pada head jika queue tersebut tidak kosong. Setiap kali melakukan enqueue, maka nilai tail bertambah 1 (head++). Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Inisialisasi Queue Inisialiasi queue sebaiknya menggunakan record agar memudahkan programmer jika akan membuat lebih dari satu queue dalam satu program. Inisialisasi queue sebaiknya diletakkan di luar int main() (sebagai variabel global) agar dapat diakses oleh semua fungsi. int const MAX = 10; //membuat record queue struct DataQueue{ int data[MAX+1]; int head, tail; }; DataQueue queue1; //membuat variabel queue1 bertipe DataQueue queue1.head = 0; //head dan tail diset = 0 queue1.tail = 0; Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Kode Program – IsEmpty Jika queue kosong, maka fungsi akan mengembalikan nilai true, dan jika sebaliknya, maka fungsi akan mengembalikan nilai false. Queue dikatakan kosong jika head = tail. bool IsEmpty(DataQueue q){ if (q.head == q.tail) return true; else return false; } Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Kode Program – IsFull Jika queue penuh, maka fungsi akan mengembalikan nilai true, dan jika sebaliknya, maka fungsi akan mengembalikan nilai false. Queue dikatakan penuh jika head - tail = 1 ATAU head – tail = -(N-1) bool IsFull(DataQueue q){ if (((q.head-q.tail) == 1) || ((q.head-q.tail) == -(MAX-1))) return true; else return false; } Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Kode Program – enqueue void enqueue(DataQueue &q, int input){ if (IsFull(q)){ cout<<"Queue is Full!"<<endl; } else{ q.data[q.tail] = input; q.tail++; Praktikum Alstrukdat - Pertemuan 4

Praktikum Alstrukdat - Pertemuan 4 Kode Program – dequeue int dequeue(DataQueue &q){ int temp = 0; if (IsEmpty(q)){ cout<<"Queue kosong!"<<endl; } else{ temp = q.data[q.head]; q.head++; return temp; Praktikum Alstrukdat - Pertemuan 4