Jika dilakukan operasi queue secara berurutan sebagai berikut: Enqueue(Q, 19)

Berikut ini adalah pertanyaan dari tt721202 pada mata pelajaran TI untuk jenjang Sekolah Menengah Pertama

Jika dilakukan operasi queue secara berurutan sebagai berikut:Enqueue(Q, 19)
Enqueue(Q, 14)
Dequeue(Q, 54)
Enqueue(Q)
Enqueue(Q, 76)
Dequeue(Q)
Enqueue(Q, 100)
Apa output yang dihasilkan jika kita print info queue mulai dari Head? *
a.)54, 76, 100
b.)19, 14, 54, 76, 100
c.)100, 14, 19
d.)100, 76, 54​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Output yang dihasilkan jika kita print info queue mulai dari Head adalah:
14, 76, 100 (tidak ada pada opsi jawaban).

Pembahasan

Operasi dasar pada struktur data queue adalah:

  • Enqueue(<Queue>, <elemen>) : memasukkan sebuah elemen pada queue. Elemen tersebut menjadi elemen terakhir pada urutan elemen queue.
  • Dequeue(<Queue>) : membuang/mengeluarkan elemen HEAD (elemen terdepan) dari queue. Tidak perlu parameter <elemen>.

Pada implementasi queue dengan array, Dequeue tidak benar-benar membuang elemen dari array queue. Yang dilakukan oleh Dequeue adalah inkrementasi HEAD, sehingga HEAD yang baru bernilai HEAD + 1.

Asumsi untuk Penelusuran
(Asumsi ditetapkan karena pada pertanyaan tidak diberikan algoritma atau kode program implementasi Queue.)

  • Kondisi awal queue kosong.
  • HEAD = –1
  • Queue diimplementasikan dalam bentuk array, dengan nama variabel Q (dengan melibatkan variabel global HEAD).
  • Indeks elemen pertama array adalah 1.

Urut-urutan operasi queue dan hasilnya

  1. Enqueue(Q, 19)
    \large\text{$\begin{aligned}Q&=\boxed{\bf9}\\&\quad\:\,\uparrow\\&\quad{}^{\sf HEAD}\end{aligned}$}
    ⇒ Array Q = [19]
    ⇒ HEAD = 1
    ⇒ Q[HEAD] = 19
  2. Enqueue(Q, 14)
    \large\text{$\begin{aligned}Q&=\boxed{\bf9}\boxed{\bf14}\\&\quad\:\,\uparrow\\&\quad{}^{\sf HEAD}\end{aligned}$}
    ⇒ Array Q = [19, 14]
    ⇒ HEAD = 1
    ⇒ Q[HEAD] = 19
  3. Dequeue(Q, 54)
    ⇒ terjadi ERROR, karena tidak sesuai definisi fungsi Dequeue.
  4. Enqueue(Q)
    ⇒ terjadi ERROR, karena tidak sesuai definisi fungsi Enqueue.
  5. Enqueue(Q, 76)
    \large\text{$\begin{aligned}Q&=\boxed{\bf9}\boxed{\bf14}\boxed{\bf76}\\&\quad\:\,\uparrow\\&\quad{}^{\sf HEAD}\end{aligned}$}
    ⇒ Array Q = [19, 14, 76]
    ⇒ HEAD = 1
    ⇒ Q[HEAD] = 19
  6. Dequeue(Q)
    \large\text{$\begin{aligned}Q&=\boxed{9}\boxed{\bf14}\boxed{\bf76}\\&\qquad\ \:\,\uparrow\\&\qquad\:\,{}^{\sf HEAD}\end{aligned}$}
    ⇒ Array Q = [19, 14, 76], queue sebenarnya = [14, 76]
    ⇒ Hasil Dequeue = 19
    ⇒ HEAD = 2
    ⇒ Q[HEAD] = 14
  7. Enqueue(Q, 100)
    \large\text{$\begin{aligned}Q&=\boxed{9}\boxed{\bf14}\boxed{\bf76}\boxed{\bf100}\\&\qquad\ \:\,\uparrow\\&\qquad\:\,{}^{\sf HEAD}\end{aligned}$}
    ⇒ Q = [19, 14, 76, 100], queue sebenarnya = [14, 76, 100]
    ⇒ HEAD = 2
    ⇒ Q[HEAD] = 14

Yang terakhir adalah: PrintInfo(Q)
⇒ Output: 14, 76, 100.

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Mon, 14 Nov 22