Politeknik Elektronika Negeri Surabaya

dokumen-dokumen yang mirip
Praktikum Queue dan PriorityQueue

Gambar 23.1 Konsep Queue sepertiantrian

Queue dan Priority Queue

Jika Anda ingin bisa/sukses dalam kuliah SDA ini, rajinlah mengimplementasikan ADT dan mengerjakan soal-soal yang diberikan.

C. TUGAS PENDAHULUAN Buatlah resume 1 halaman mengenai Priority Queue dan berikan penjelasannya.!

Algoritma Dan Struktur Data II. Queue

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

Algoritma dan Struktur Data. Queue

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

KUM 5 IMPLEMENTASI QUEUE

BAB IV Antrian(Queue)

Gambar 1. Single Linked List

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

A. TUJUAN PEMBELAJARAN 1. Memahami konsep Class LinkedList di Collection 2. Memahami penggunaan method-method pada Class LinkedList.

Gambar 1. Single Linked List

Gambar 1. Single Linked List

Struktur Data dan Algoritma

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Algoritma Dan Struktur Data II

LAPORAN PRAKTIKUM RESMI QUEUE

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

Algoritma dan Struktur Data STACK

ARNA FARIZA YULIANA SETIOWATI

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Struktur Data Array. Rijal Fadilah S.Si

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Gambar 1. Ilustrasi Stack

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

Pertemuan 7. REVIEW dan QUIS

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

Gambar 1. Single Linked List

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

A. TUJUAN PEMBELAJARAN

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

BAB III QUEUE (ANTRIAN)

TIF 4201 Algoritma Dan Struktur Data

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

MINGGU X : COLLECTIONS

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

Politeknik Elektronika Negeri Surabaya

Materi 9 : QUEUE (ANTREAN) Dosen:

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak,

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

Politeknik Elektronika Negeri Surabaya

QUEUE (ANTRIAN) Struktur Data - Queue

03/04/2018. Collection set List Map. Pemrograman Berorientasi Object

Algoritma dan Struktur Data. Ramos Somya

BAB 2 COLLECTION & THREAD

DIG1G3 Implementasi Struktur Data

Pada pembuatan game di java, sering kali para programer. mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Praktikum 5. Antrian (Queue)

Antrian (Queue) Susunan koleksi data dimana proses penambahan data (add) dilakukan dari belakang dan penghapusan data (delete) dilakukan dari depan.

Algoritma Pemrograman & Struktur Data

Algoritma Dan Struktur Data II

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Gambar 1. Ilustrasi Stack

Algoritma Pemrograman [BS204]

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

Praktikum Exception Handling

05. Double Linked List

PRAKTIKUM 17 MENANGANI EXCEPTION

Arrays, Collections and Generics. Sisilia Thya Safitri, MT Agus Priyanto, MKom

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

IKG2I4 / Software Project I

BAB IV QUEUE ATAU ANTREAN

STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )

B. DASAR TEORI AlGORITMA TRAVERSAL GRAPH Terdapat beberapa perbedaan Tree dan Graph dijelaskan pada tabel Tabel 31.1 Perbedaan Tree dan Graph

Stack. Gambar 1.1 Stack

Politeknik Elektronika Negeri Surabaya

MODUL IV STACK A. TUJUAN

Java Generic & Collection

Pemrograman Berorientasi. Array dan Collections

KUM 3 IMPLEMENTASI LIST

LOGO STRUKTUR DATA QUEUE

Materi 8 : STACK (TUMPUKAN) Dosen:

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBYEK

QUEUE (ANTRIAN) Depan=1 Belakang=

Modul Praktikum Algoritma dan Struktur Data

Queue Priority Queue STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 6 : 7 Juli 2015

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

Politeknik Elektronika Negeri Surabaya

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

STACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.

Badiyanto, S.Kom., M.Kom. PBO java

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Transkripsi:

PRAKTIKUM 23 QUEUE A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami konsep Queue dan operasi-operasi pada queue 2. Memahami implementasi Queue pada Collection 3. Mengimplementasikan Queue menggunakan List 4. Mengimplementasikan Bounded Queue menggunakan Array B. DASAR TEORI Antrian (queue) adalah sekumpulan elemen, jika ada elemen baru yang ditambahkan, maka elemen tersebut akan berada di bagian belakang antrian Jika ada elemen yang harus dihapus atau keluar dari antrian, maka elemen yang keluar adalah elemen yang berada di sisi depan antrian. Atau konsep ini sering juga disebut dengan konsep FIFO (First In First Out). Operasi yang terdapat pada queue adalah: Enqueue atau push adalah proses untuk memasukkan elemen artinya menambah data baru. Dequeue atau pop adalah proses untuk mengeluarkan elemen artinya menghapus data. Peek adalah proses untuk mengetahui elemen yang paling depan. Array pada Queue Array pada Queue adalah suatu array yang dibuat seakan-akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. Pada gambar 1 merupakan implementasi queue menggunakan array. qfront untuk menandai elemen yang pertama, sedangkan qback untuk menambahkan elemen baru pada queue. 5 3 2 qfront qback 5 3 2 10 172

qfront qback Enqueue(10) Dequeue() elemen : 5 3 2 10 qfront Circular Bounded Queue qback peek() elemen : 3 Cara mensimulasikan antrian secara circular dalam array linear menggunakan arithmetic modular. Arithmetic modular menggunakan ekspresi rumus (X % N) untuk menjaga besarnya nilai X pada range 0:N-1. Jika indeks telah sampai pada N dengan penambahan atau pengurangan tersebut, maka indeks akan diset pada angka 0. Hal yang sama juga dilakukan pada Front jika dilakukan pengambilan item dari antrian. Setelah mengambil item dari antrian, kita melakukan increment terhadap Front untuk penunjukan pada posisi sesudahnya. Apabila indeks telah berada pada N, maka indeks diset juga pada angka 0. Move qback forward: qback = (qback + 1) % qcapacity; Move qfront forward: qfront = (qfront + 1) % qcapacity; C. TUGAS PENDAHULUAN 173

Jelaskan mengenai Queue. Buatlah queue dengan array, panjang 5. Kondisi awal queue adalah sebagai berikut: 5 3 2 qfront qback Lakukan langkah-langkah berikut: - Enqueue(7) - Enqueue(8) - Enqueue(9) - Dequeue() - Peek() - Dequeue() - Enqueue(9) D. PERCOBAAN D.1 Queue Collection Percobaan 1 : LinkedList menerapkan interface Queue (1) import java.util.linkedlist; import java.util.queue; public class MainDemo { public void queueexample() { Queue queue = new LinkedList(); queue.add("java"); queue.add("dotnet"); queue.offer("php"); queue.offer("html"); System.out.println("remove: " + queue.remove()); System.out.println("element: " + queue.element()); System.out.println("poll: " + queue.poll()); System.out.println("peek: " + queue.peek()); new MainDemo().queueExample(); 174

Percobaan 2 : LinkedList menerapkan interface Queue (2) import java.util.arraylist; import java.util.linkedlist; import java.util.list; import java.util.queue; public class Main { Queue<String> myqueue = new LinkedList<String>(); myqueue.add("a"); myqueue.add("b"); myqueue.add("c"); myqueue.add("d"); List<String> mylist = new ArrayList<String>(myQueue); for (Object thefruit : mylist) System.out.println(theFruit); D.2 Implementasikan Interface Queue menggunakan List Buatlah interface Queue seperti dibawah ini: Interface Queue boolean isempty() T peek() T pop() void push(t item) int size() Mengembalikan nilai true jika queue kosong dan false jika queue terdapat minimal satu elemen. Mengembalikan elemen di depan queue. Jika queue kosong melempar exception yaitu: throws NoSuchElementException. Menghapus elemen di depan queue dan mengembalikan nilainya. Jika queue kosong maka melempar exception yaitu : NoSuchElementException. Menyisipkan item di akhir queue Mengembalikan jumlah elemen dari queue. Isilah method-method yang merupakan implementasi dari interface Queue import java.util.linkedlist; public class LinkedQueue<T> implements Queue<T>{ private LinkedList<T> qlist = null; public LinkedQueue () { qlist = new LinkedList<T>(); 175

public boolean isempty() { public T peek() { return qlist.getfirst(); public T pop() { public void push(t item) { public int size() { Selanjutnya, ujilah class LinkedQueue dengan program dibawah ini. public class TestQueue { LinkedQueue<String> queue = new LinkedQueue<String>(); System.out.println(queue.isEmpty()); queue.push("java"); queue.push("dotnet"); queue.push("php"); queue.push("html"); System.out.println("remove: " + queue.pop()); System.out.println("peek: " + queue.peek()); System.out.println("size: " + queue.size()); D.3 Implementasikan Interface Bounded Queue menggunakan Array dan Circular Bounded Queue 176

Bounded Queue adalah queue yang berisi elemen dengan size tertentu. Implementasikan interface BQueue yang merupakan perluasan dari Interface Queue Interface BQueue extends Queue boolean full() Mengembalikan nilai true jika queue penuh sesuai dengan size yang ditentukan dan false jika queue belum penuh. public class ArrQueue<T> implements BQueue<T>{ private T Arr[] ; private int qfront = 0 ; private int qback = 0 ; private int qcapacity = 0 ; public ArrQueue() { Arr = (T[]) new Object[50]; qcapacity = 50; public ArrQueue(int size) { Arr = (T[]) new Object[size]; qcapacity = size; public boolean isempty() { public T peek() { public T pop() { public void push(t item) { public int size() { 177

public boolean full() { Selanjutnya, ujilah class LinkedQueue dengan program dibawah ini. public class Main { try { ArrQueue<Integer> arr = new ArrQueue<Integer>(5); arr.push(1); arr.push(4); arr.push(10); arr.push(2); arr.push(7); arr.pop(); arr.pop(); arr.push(17); arr.push(3); arr.push(27); catch (NoSuchElementException e) { System.out.println(e.getMessage()); E. LATIHAN Ilustrasikan menggunakan gambar untuk bounded queue dibawah ini: public class Main { try { ArrQueue<Integer> arr = new ArrQueue<Integer>(5); arr.push(1); arr.push(4); arr.push(10); arr.push(2); arr.push(7); arr.pop(); arr.pop(); arr.push(17); arr.push(3); arr.push(27); catch (NoSuchElementException e) { System.out.println(e.getMessage()); 178

F. LAPORAN RESMI Kerjakan hasil percobaan(d) dan latihan(e) di atas dan tambahkan analisa. 179