Algoritma dan Struktur Data. Queue

dokumen-dokumen yang mirip
Algoritma dan Struktur Data STACK

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

Algoritma Dan Struktur Data II. Queue

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

ADT Graph. Disusun untuk Memenuhi Laporan Praktikum Algoritma dan Struktur Data. Oleh: NIM : Asisten:

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

KUM 5 IMPLEMENTASI QUEUE

BAB III QUEUE (ANTRIAN)

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

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

Pertemuan 7. REVIEW dan QUIS

LAPORAN PRAKTIKUM RESMI QUEUE

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

ARNA FARIZA YULIANA SETIOWATI

Algoritma dan Struktur Data GRAF

Algoritma Pemrograman & Struktur Data

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

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

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

Gambar 1. Single Linked List

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

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

BAB IV Antrian(Queue)

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

Linked List dan Implementasinya dalam Bahasa Java

QUEUE (ANTRIAN) Struktur Data - Queue

Struktur Data Array. Rijal Fadilah S.Si

MODUL III ARRAYLIST TUGAS PENDAHULUAN

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

05. Double Linked List

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

Gambar 1. Single Linked List

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

Politeknik Elektronika Negeri Surabaya

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

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

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

Gambar 1. Single Linked List

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

LOGO STRUKTUR DATA QUEUE

Materi 9 : QUEUE (ANTREAN) Dosen:

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

QUEUE (ANTRIAN) Depan=1 Belakang=

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

LAPORAN PRAKTIKUM IX. Oleh:

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Review : Sifat Implementasi Linear List dengan Array

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

Modul Praktikum Bahasa Pemrograman 1

Algoritma dan Struktur Data. Ramos Somya

Struktur Data dan Algoritma

KUM 3 IMPLEMENTASI LIST

Stack. Gambar 1.1 Stack

Algoritma & Struktur Data. Array. Oleh : Nur Hayatin, M.Kom

Algoritma Dan Struktur Data II

Algoritma Pemrograman [BS204]

STRUKTUR DATA Pertemuan 6

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

TIF 4201 Algoritma Dan Struktur Data

Modul Praktikum 4 Pemograman Berorientasi Objek

Gambar 1. Single Linked List

BAB VIII QUEUE (ANTRIAN)

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

BAB IV QUEUE ATAU ANTREAN

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

BAB 2 LANDASAN TEORI

Algoritma dan Struktur Data

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Algoritma Dan Struktur Data II

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

SATUAN ACARA PENGAJARAN

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

Everybody in this country should learn how to program a computer because it teaches you how to think. Steve Jobs

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

KONSEP POINTER DAN LINKED LIST

04. Single Linked List

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

IF PEMROGRAMAN LANJUT GENERIC. Oleh : Andri Heryandi, M.T.

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

DIG1G3 Implementasi Struktur Data

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

DIG1G3 Implementasi Struktur Data

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

BAB 7. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk tiap variabel.

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

Materi 8 : STACK (TUMPUKAN) Dosen:

(3) BAHAN KAJIAN (materi ajar)

Pertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail

MODUL PEMROGRAMAN 2. Queue (Antrian)

STRUKTUR DATA (2) Single Linked List

STRUKTUR DATA. Literatur

DIG1G3 Implementasi Struktur Data

Modul 3: Tipe Data Abstrak Dinamis List, LinkList dan Model Antrian Stack & Queue

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Transkripsi:

Algoritma dan Struktur Data Queue Teknik Informatika Universitas Muhammadiyah Malang 2016

Tujuan Instruksional Mahasiswa mampu : Memahami struktur data queue Memahami cara pengoperasian struktur data queue Mengimplementasikan struktur data queue dengan array dan linked list

Pengertian Queue (antrian) adalah struktur data dimana proses pengambilan dan penambahan element dilakukan pada ujung yang berbeda. Queue mengikuti konsep FIFO. FIFO (First In First Out) : elemen yang pertama masuk akan menjadi elemen yang pertama kali keluar.

Enqueue dan Dequeue 1. Enqueue proses penambahan element pada queue. 2. Dequeue proses pengambilan element pada queue. Penambahan dilakukan pada bagian belakang. Sedangkan pengambilan dilakukan pada bagian depan (element yang pertama masuk). enqueue Queue dequeue

Front dan Rear Front : pointer bantu yang digunakan untuk menunjuk element yang paling depan. Rear : pointer bantu yang digunakan untuk menunjuk element yang paling belakang. Enqueue Rear Queue Dequeue Front

Gambaran Proses Queue (Antrian)

Operasi pada Queue 1. Deklarasi 2. Inisialisasi 3. Cek kosong 4. Cek penuh 5. Penambahan 6. Pengambilan 7. Pengaksesan

(1) Deklarasi Proses yang harus dilakukan pertama kali adalah deklarasi/menyiapkan tempat. Langkah yang harus dilakukan adalah : Deklarasi class Deklarasi struktur data (menggunakan array atau linked list) Deklarasi pointer front dan rear Deklarasi variabel size untuk menyimpan besar array. Deklarasi variabel jumlah untuk mengetahui banyak item yang disimpan pada queue.

Deklarasi Queue dengan Array 1. Pembuatan class contoh : 2. Pembuatan variabel front dan rear: int front, rear; 3. Pembuatan variabel size : int array_size; (mendeklarasikan variabel bernama array_size dengan tipe integer) 4. Pembuatan variabel Array : int antrian[];(deklarasi variabel array bernama antrian) 5. Pembuatan variabel jumlah: int jumlah_item;

Program Deklarasi Queue (Array)

Deklarasi Queue dengan Linked-list 1. Pembuatan class queue contoh : 2. Pembuatan class Node 3. Pembuatan variabel head, tail, front dan rear bertipe Node. Ketiga variabel ini dideklarasikan pada class queue Node head,tail,front, rear;

Contoh Class Node

Program Deklarasi Queue (QueueLinkedList.java)

(2) Inisialisasi Merupakan proses pemberian nilai awal. Pada Array : 1. Pembentukan obyek array beserta ukurannya. antrian= new int[10]; (pembentukan obyek array yang memiliki 10 element, dan alamat obyek akan disimpan pada variabel bernama antrian) 2. Pemberian nilai awal pada variabel front=0 dan belakang=-1. front = 0; rear=-1;

Program Inisialisasi Queue (Array)

(2) Inisialisasi...(lanjutan) Pada Linked List: Proses inisialisasi dilakukan dengan memberikan nilai awal pada variabel head, tail front dan rear dengan nilai null. head = tail = front=rear= null;

Program Inisialisasi Queue (Linked List)

(3) Cek Kosong Operasi yang digunakan untuk mengecek kondisi queue dalam keadaan kosong. Pada array : menggunakan pengecekan pada variabel jumlah_item. Jika nilainya = 0 berarti queue dalam kondisi kosong. Pada linked list : dapat menggunakan pengecekan front atau rear jika nilainya null berarti queue kosong. Operasi ini harus dapat mengembalikan nilai true jika queu kosong dan false jika sebaliknya.

Program isempty Queue (Array)

Program isempty Queue (Linked List)

(4) Cek Penuh Operasi yang hanya dapat diterapkan pada queue yang menggunakan array. Operasi ini digunakan untuk mengecek kondisi queue dalam keadaan penuh. Caranya : melihat nilai pada variabel jumlah item. Jika nilainya = size-1 (dimana size adalah ukuran array) maka dapat diindikasikan queue dalam kondisi penuh. Operasi ini harus dapat mengembalikan nilai true jika queue penuh dan false jika sebaliknya.

Program isfull (Array)

(5) Operasi Dequeue Dequeue adalah proses pengambilan data pada queue. Ketika dequeue terjadi, element pada queue akan berkurang, yaitu element yang pertama kali ditambahkan. Pada Array : akan terjadi pergeseran data dari belakang ke depan. Rear berkurang 1. Pada linked list : front akan menunjuk pada node yang ditunjuk oleh head setelah operasi remove.

(5) Operasi POP...(lanjutan) Langkah-langkah : 1. Pengecekan queue dalam kondisi kosong dengan memanggil method isempty(). 2. Data dari element yang diambil akan menjadi return value (nilai yang dikembalikan) 3. Perubahan nilai pada variabel front dan rear

Program Dequeue (Array)

Program Dequeue (Linked List)

Program removefirst

(6) Operasi Enqueue Enqueue adalah proses penambahan element pada queue. Ketika enqueue terjadi, element pada queue akan bertambah 1. Posisi pointer rear akan bergeser menunjuk pada element baru yang ditambahkan. Pada array : rear akan di-increment. Pada linked list : rear akan menunjuk ke node baru yang ditunjuk oleh tail.

(6) Operasi Enqueue...(lanjutan) Langkah-langkah : 1. Penambahan element baru pada bagian belakang queue. 2. Perubahan posisi rear. Khusus untuk array, terlebih dahulu harus dicek kondisi queue penuh dengan memanggil method isfull(). Jika nilai yang dikembalikan true maka bisa ditampilkan pesan kesalahan atau dilakukan resizing array.

Program Enqueue (Array)

Program Rezising()

Program Enqueue (Linked List)

Program addlast

(7) Operasi peek Peek pada queue adalah proses pengaksesan element yang ditunjuk oleh front (yaitu element yang pertama kali ditambahkan). Operasi ini berbeda dengan enqueue karena tidak disertai dengan penghapusan data yang ada hanya pengaksesan (pengembalian data saja).

Program Peek (Array)

Program Peek (Linked List)

Contoh Penerapan Queue mailbox dalam komunikasi antar proses simulasi dan modeling (misalnya simulasi sistem pengendali lalu lintas udara) dalam memprediksi performansi Waiting Line pada Sistem Operasi

QUEUE DENGAN CIRCULAR ARRAY

Circular Array Mampu melakukan proses penghapusan elemen tanda melakukan pergeseran.

Aturan Circular Array 1. Proses penghapusan dilakukan dengan cara nilai depan (front) ditambah 1 : depan=depan + 1. 2. Proses penambahan elemen sama dengan queue linear array yaitu nilai belakang ditambah 1 : belakang=belakang + 1. 3. Jika depan = maks dan ada elemen yang akan dihapus, maka nilai depan = 1. 4. Jika belakang = maks dan depan tidak 1 maka jika ada elemen yang akan ditambahkan, nilai belakang=1. 5. Jika hanya tinggal 1 elemen di queue (depan = belakang), dan akan dihapus maka depan diisi 0 dan belakang diisi dengan 0 (queue kosong).

Circular Array

Proses Circular Array

Proses Circular Array

Class CircularQueue

Inisialisasi Awal class CircularQueue { private int maxsize; private int[] quearray; private int front; private int rear; private int nitems;

Constructor public CircularQueue(int s) { maxsize = s; quearray = new int[maxsize]; front = 0; rear = -1; nitems = 0; }

Method isempty() public boolean isempty() { return (nitems==0); }

Method peekfront() public int peekfront() { return quearray[front]; }

public void insert(int j) { if(rear == maxsize-1) rear = -1; quearray[++rear] = j; nitems++; } Method insert()

Method remove() public int remove() { int temp = quearray[front++]; if(front == maxsize) front = 0; nitems--; return temp; }

Method main() public static void main(string[] args) { CircularQueue thequeue = new CircularQueue(5); // queue holds 5 items System.out.println("front : " + thequeue.front + "rear : " + thequeue.rear); thequeue.insert(10); thequeue.insert(20); thequeue.insert(30); thequeue.insert(40); thequeue.remove(); System.out.println( remove 1x, front : " +thequeue.front +" rear : " +thequeue.rear); thequeue.insert(50); thequeue.insert(60); System.out.println("add 2 elemen, front : " +thequeue.front+"rear: +thequeue.rear); thequeue.remove(); System.out.println( remove 1x, front : " +thequeue.front+ rear : " +thequeue.rear); while(!thequeue.isempty() ) { int n = thequeue.remove(); System.out.print(n); System.out.print(" "); }

Pustaka Sartaj Sahni, Presentation L5 & L10 Jokonowo, Bambang S.Si, Pemrograman Berorientasi Obyek, Pusat pengembangan bahan ajar UMB, 2006. Noviyanto, Pemrograman Berorientasi Obyek (PBO) Array, 2005 Nugroho, Adi, Algoritma dan Struktur Data Dalam Bahasa Java, ANDI Yogyakarta, 2008. Michaell Waite, Data Structures and Algorithms in Java, SAMS, 2001