struktur data queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-queue.pdfaplikasi queue...

21
Struktur Data Queue Nisa’ul Hafidhoh Teknik Informatika – S1

Upload: vuongthien

Post on 11-Apr-2019

240 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Struktur Data Queue

Nisa’ul Hafidhoh

Teknik Informatika – S1

Page 2: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue

• List linear yang:

– Dikenali elemen awal (FRONT / HEAD) dan elementerakhir (REAR / TAIL)

– Penghapusan elemen dapat terjadi hanya padaujung awal (head), dan penyisipan dapat terjadihanya di ujung akhir (Tail)

– Disusun secara FIFO (First In First Out)

2 5 1 6 9

Head Tail

Page 3: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Aplikasi Queue

• Antrian yang ditangani oleh sistem operasi(Job Scheduling)

• Antrian dalam dunia nyata

Antrian pembelian tiket

Page 4: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Komponen Lojik Queue

1. Head

2. Tail

3. Elemen / Data

4. Queue Kosong

Page 5: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Proses dalam Queue

• Menginisialisasi antrian kosong

• Menentukan jika antrian kosong atau tidak

• Menentukan jika suatu antrian penuh atau tidak

• Menambah elemen baru setelah elemen terakhirpada antrian (jika antrian tidak penuh)

• Mengambil elemen pertama dari suatu antrian(jika antrian tidak kosong)

• Menghapus elemen pertama pada antrian (jikaantrian tidak kosong)

Page 6: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Representasi Queue - Array

• Memori tempat penyimpanan adalah

sebuah tabel / Array dengan indeks

0..IdxMax

X[0] X[1] X[2] X[3] X[4] X[5] X[6] X[7]

8 10 61 9 12 1

Head Tail IdxMax

Page 7: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue dengan Linier Array

0 1 2 3 … n

Head = -1

Tail = -1

Page 8: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue dengan Linier Array

0 1 2 3 … n

Head

Tail

Page 9: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue dengan Linier Array

0 1 2 3 … n

Head Tail

Page 10: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue dengan Linier Array

0 1 2 3 … n

Head Tail

Page 11: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue dengan Linier Array

0 1 2 3 … n

Head Tail

Page 12: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue dengan Linier Array

0 1 2 3 … n

Head Tail

Page 13: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Queue dengan Linier Array

• Deklarasi Queue

– Struktur Queue berisi head, tail, data

• Create()- inisialisasi Queue: Head dan Tail = -1

Page 14: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

IsEmpty

- Fungsi untuk memeriksa apakah antriankosong/tidak, dengan cara memeriksa Tail = -1

int IsEmpty() {

if(antrian.tail==-1)

return 1;

else

return 0;

}

Page 15: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

IsFull

- Fungsi untuk memeriksa apakah antrian penuh/ tidak, dengan cara memeriksa Tail = MAX-1

int IsFull() {

if(antrian.tail==MAX-1)

return 1;

else

return 0;

}

Page 16: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Enqueue / Add

• Menambahkan elemen ke dalam antrian

• Penambahan elemen menggerakkan variable Tail dengan cara increment counter tail

Page 17: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Dequeue / Delete

• Menghapus elemen paling depan dari antrian

• Menggeser semua elemen ke depan danmengurangi Tail dengan 1

Page 18: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Dequeue / Delete [2]

1 2 3 4 5 6 7 8 9 10

Head Tail

Add() Del()

xxxxxxxx

Tail

Page 19: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Clear

• Menghapus semua elemen antrian

• Tail dan head = -1

Page 20: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Tampil

• Menampilkan elemen antrian

void Tampil() {

if(IsEmpty()==0) {

for(int i=antrian.head;i<=antrian.tail;i++) {

printf("%d",antrian.data[i]);

}

}else printf("data kosong! \n");

}

Page 21: Struktur Data Queue - dinus.ac.iddinus.ac.id/repository/docs/ajar/4-Queue.pdfAplikasi Queue •Antrian yang ditangani oleh sistem operasi (Job Scheduling) •Antrian dalam dunia nyata

Terimakasih