struktur data (4) - kautsarsophan's weblog | belajar dan ... · pdf filedefinisi queue...

21
STRUKTUR DATA (4) STRUKTUR DATA (4) STRUKTUR DATA (4) STRUKTUR DATA (4) queue queue queue queue Oleh M. Kautsar Sophan M. Kautsar Sophan M. Kautsar Sophan M. Kautsar Sophan

Upload: trinhkhue

Post on 01-Feb-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

STRUKTUR DATA (4)STRUKTUR DATA (4)STRUKTUR DATA (4)STRUKTUR DATA (4)

queuequeuequeuequeue

Oleh M. Kautsar SophanM. Kautsar SophanM. Kautsar SophanM. Kautsar Sophan

Page 2: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Outline

• Definisi Queue / antrian

• Operasi Queue

• Tugas• Tugas

Page 3: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Definisi Queue (baca:

Kiuiu)

• Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang baru masuk akan diletakkan di data sebelumnya, data yang keluar adalah data sebelumnya, data yang keluar adalah data yang masuk pertama kali

• Data masuk dari pintu depan, data keluar dari pintu belakang ( ada 2 pintu)

• FIFO, First in – First Out

Page 4: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Operasi Queue

• Enqueue, memasukkan 1 elemen data ke antrian

• Dequeue, mengeluarkan 1 elemen data • Dequeue, mengeluarkan 1 elemen data dari antrian

Page 5: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Penyajian Queue

• Array

• Linked List

Page 6: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue Dengan ArrayQueue Dengan ArrayQueue Dengan ArrayQueue Dengan Array

• Bersifat FIFO (First In First Out)

• Elemen yang pertama masuk ke antrian akan keluar pertamakalinya

• DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian

• Antrian dapat dibuat dengan menggunakan: Liniear Array dan • Antrian dapat dibuat dengan menggunakan: Liniear Array dan Circular Array

Page 7: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue Linier ArrayQueue Linier ArrayQueue Linier ArrayQueue Linier Array

• Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya

• Sehingga membutuhkan 2 variabel: Head dan Tail

Page 8: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (2)

• Operasi-operasi:

Create()

• Untuk menciptakan dan menginisialisasi Queue

• Dengan cara membuat Head dan Tail = -1

Page 9: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (3)

Page 10: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (4)

• IsEmpty()• Untuk memeriksa apakah Antrian sudah penuh atau belum

• Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty

• Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty

• Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah

• Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail

Page 11: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (5)

Page 12: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (6)

Fungis IsFull

• Untuk mengecek apakah Antrian sudah penuh atau belum

• Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 • Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh

Page 13: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (7)

Enqueue

• Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakangditambahkan di elemen paling belakang

• Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu

Page 14: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (8)

Page 15: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (9)

• Dequeue()

• Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian

• Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1

• Penggeseran dilakukan dengan menggunakan looping

Page 16: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (10)

Page 17: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (11)

• Clear()

• Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1

• Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca

Page 18: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (12)

Page 19: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Queue (13)

• Tampil()

• Untuk menampilkan nilai-nilai elemen Antrian

• Menggunakan looping dari head s/d tail• Menggunakan looping dari head s/d tail

Page 20: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Tugas

1. Buat program implementasi Queue, dengan operasi

1. Enqueue

2. Dequeue2. Dequeue

3. Fungsi Cari nilai total, rata-rata, terbesar dan terkecil dari elemen-elemen queue.

4. Lihat isi elemen Queue

2. Buat program calculator sederhana, dengan menghitung formula yang diinputkan:contoh : 3*2=6; (4+2)*4=24

Page 21: STRUKTUR DATA (4) - Kautsarsophan's Weblog | Belajar dan ... · PDF fileDefinisi Queue (baca: Kiuiu) •Konsep penyimpanan data, terdiri dari beberapa data, dengan aturan data yang

Tugas (2)

Petunjuk utk soal no 2

1. Ekspresi ubah ke bentuk postfix

2. Dari Postfix, di evaluasi hasil operasinya, 2. Dari Postfix, di evaluasi hasil operasinya, lihat panduan algoritma

Tugas dikerjakan tim, 1 tim max 3 orang