17
Algoritma dan Struktur Data http://www.unhas.ac.id/amil/S1TIF/StrukturData/ L3. Queue Amil Ahmad Ilham 1

Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Algoritma dan Struktur Datahttp://www.unhas.ac.id/amil/S1TIF/StrukturData/

L3. Queue

Amil Ahmad Ilham

1

Page 2: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Stacks (Review)

• A stack is a LIFO (LAST IN FIRST OUT) sequence.• Addition and removal takes place only at one end, called

the top.

• Examples:• Stacks of plates

• Trains

• Vending Machines

• Expression Evaluation

• Navigating a maze

• Map coloring

Page 3: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Queue

• A Queue is a FIFO (FIRST IN FIRST OUT) sequence.• Addition takes place only at the tail, and removal takes

place only at the head.

• Examples:• Line of cars at a light

• Line of people at a bank

• CPU access, disk access, printer access.

• Packets waiting at a router

• Simulation

Page 4: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Lifetime of a Queue

Page 5: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

The Effects of Queue OperationsOperation State of the Queue

after the operationValue Returned

Comment

Initially, the queue is empty

enqueue(a) a The queue contains item a.

enqueue(b) a b a is the front of the queue and b is the rear

enqueue(c) a b c c is added to the rear.

isEmpty() a b c false The queue is not empty

size() a b c 3 The queue contains 3 items.

peek() a b c a Returns the front item of the queue without removing it

dequeue() b c a Remove the front item from the queue and return it. b is now the front item.

dequeue() c b Remove and return b

dequeue() c Remove and return c

isEmpty() true The queue is empty.

dequeue() exception Trying to dequeue an empty queue throws an exception

Page 6: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

The Interface for the Queue Prototype (QueuePT)

Type Description

void enqueue(Object item)Adds an item to the rear of the queue. Throws an exception if the item is null or the queue is full.

Object dequeue()Returns the item at the front of this queue and removes from the queue. Throws an exception if the queue is empty.

Object peek()Returns the item at the front of this queue without removing it from the queue. Throws an exception if the queue is empty.

boolean isEmpty()Return true if this queue contains no items.

boolean isFull()Returns true if this queue is full.

int size()Returns the number of items in this queue.

Page 7: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Implementation of the Queue Prototype

• Queue Library implemention using array• Queue.java

• ArrayQueue.java

• QueueEmptyException.java

• QueueFullException.java

• QueueTest.java

Page 8: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Queue.java• adalah interface yang berisi daftar method yang digunakan untuk implementasi queue.

8

Page 9: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

ArrayQueue.java• Implementasi interface

Queue menggunakanArray

9

Page 10: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

ArrayQueue.java• Implementasi interface

Queue menggunakanArray

10

Tugas #1:Lengkapi kode pada setiapmethod

Page 11: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

QueueEmptyException.java• adalah class yang dipanggil jika operasi peek atau dequeue dilaksanakan pada

saat antrian sudah kosong.

11

Page 12: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

QueueFullException.java• adalah class yang dipanggil jika operasi enqueue dilaksanakan pada saat antrian

sudah penuh.

12

Page 13: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

QueueTest.java

• Class yang berisimethod ‘main”

• Berisi object ArrayQueue

13

Page 14: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Output QueueTest.java

14

Page 15: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Tugas #2

Modifikasi class QueueTest.java untuk melakukan pengaturan antriansbb:

• jumlah orang yang mau antri: diinput dari keyboard

• maksimun antrian 5 orang

• Proses enqueue dan dequeue dilakuan secara bergantian sampai semua antriandilayani.

• Lihat output program di slide 16

• Hint: gunakan method size, enqueue, peek, dequeue, isEmpty yang ada di class ArrayQueue

15

Page 16: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

Ouptut Tugas #2

16

Page 17: Algoritma dan Struktur Data - unhas.ac.id Struktur Data OL.pdf · Tugas #2 Modifikasi class QueueTest.java untuk melakukan pengaturan antrian sbb: •jumlah orang yang mau antri:

SIKOLA

• Buat dalam 1 file zip:• File ArrayQueue.java yang sudah dilengkapi (Tugas #1)

• Print screen output QueueTest.java (untuk menguji ArrayQueue.java yang sudah dilengkapi)

• File java (Tugas #2)

• Print screen output (Tugas #2)

• Upload 1 file zip ke Sikola paling lambat Senin, 20 April 2020 Pukul13.30 Wita.

17