Ketika menjelajah web/internet, kita menggunakan sebuah browser (misal Firefox, Chrome

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

Ketika menjelajah web/internet, kita menggunakan sebuah browser (misal Firefox, Chrome dll). Terdapat sebuah fitur yang memungkinkan kita untuk bergerak dari satu halaman yang sudah kita kunjungi ke halaman lainnya, yaitu dengan menekan tombol Back dan Forward. Misalnya, kita mengunjungi halaman A, kemudian B, lalu C. Jika kita kemudian menekan tombol Back, dari halaman C kita akan kembali ke halaman B. Jika kita tekan lagi tombol Back (pada saat ada di B), kita akan kembali ke A. Jika kemudian kita tekan tombol Forward, kita akan kembali halaman B, dan jika kita tekan sekali lagi tombol Forward, kita akan kembali ke halaman C. Oleh karena itu, aplikasi browser tersebut harus menyimpan (dan mengingat) semua halaman yang sudah pernah kita kunjungi sebelumnya (biasa disebut Riwayat atau History). Bentuk penyimpanan yang manakah (stack atau queue) yang paling tepat digunakan untuk menyimpan Riwayat pada browser?BERIKAN ALASAN!​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Bentuk penyimpanan yang paling tepat digunakan untuk menyimpan riwayat/history pada browser adalah STACK.

Secara singkat, alasannya adalah mekanisme back dan forward pada browser membutuhkan data alamat terakhir yang dikunjungi atau ditinggalkan, sehingga lebih tepat menggunakan struktur data stack sebagai implementasi LIFO (Last In First Out).

  • Ketika pengguna memberi instruksi back, browser akan mengarahkan ke alamat terakhir yang dikunjungi sebelum alamat situs yang sedang diakses.
  • Ketika pengguna memberi instruksi forward, browser akan mengarahkan ke alamat terakhir yang ditinggalkan sebelum alamat situs yang sedang diakses.

Pembahasan

Mekanisme back dan forward pada browser pada hakikatnya sama dengan mekanisme undo dan redo, yang lebih tepat menggunakan struktur data stack (tumpukan). Pada stack, elemen yang dapat diakses adalah elemen teratas (elemen terakhir) yang dimasukkan (di-push).

Pada mekanisme back dan forward, aplikasi browser membutuhkan 2 stack, anggap saja memiliki nama stack Back dan stack Forward.

Agar lebih jelas, kita telusuri dengan ilustrasi saja.

  1. Pertama-tama, browser dibuka/dijalankan.
  2. Pengguna mengunjungi situs A.
    Kondisi stack Back dan Forward kosong.
  3. Pengguna mengunjungi situs B.
    ⇒ Push A ke dalam stack Back.
    \begin{array}{|c|c|c|}\sf Back&\sf Yang\ sedang\ dibuka&\sf Forward\\A&B&\ \\\end{array}
  4. Pengguna mengunjungi situs C.
    ⇒ Push B ke dalam stack Back.
    \begin{array}{|c|c|c|}\sf Back&\sf Yang\ sedang\ dibuka&\sf Forward\\B&C&\ \\A&&\\\end{array}
  5. Pengguna mengunjungi situs D.
    ⇒ Push C ke dalam stack Back.
    \begin{array}{|c|c|c|}\sf Back&\sf Yang\ sedang\ dibuka&\sf Forward\\C&D&\ \\B&&\ \\A&&\ \\\end{array}
  6. Pengguna menginstruksikan Back.
    ⇒ Pop (ambil elemen teratas) dari stack Back, diperoleh alamat C.
    ⇒ Browser membuka C
    ⇒ Push D ke dalam stack Forward.
    \begin{array}{|c|c|c|}\sf Back&\sf Yang\ sedang\ dibuka&\sf Forward\\B&C&D\\A&&\ \\\end{array}
  7. Pengguna menginstruksikan Back.
    ⇒ Pop (ambil elemen teratas) dari stack Back, diperoleh alamat B.
    ⇒ Browser membuka B
    ⇒ Push C ke dalam stack Forward.
    \begin{array}{|c|c|c|}\sf Back&\sf Yang\ sedang\ dibuka&\sf Forward\\A&B&C\\&&D\\\end{array}
  8. Pengguna menginstruksikan Forward.
    ⇒ Pop (ambil elemen teratas) dari stack Forward, diperoleh alamat C.
    ⇒ Browser membuka C
    ⇒ Push B ke dalam stack Back
    \begin{array}{|c|c|c|}\sf Back&\sf Yang\ sedang\ dibuka&\sf Forward\\B&C&D\\A&&\ \\\end{array}
  9. Pengguna menginstruksikan Forward.
    ⇒ Pop (ambil elemen teratas) dari stack Forward, diperoleh alamat D.
    ⇒ Browser membuka D
    ⇒ Push C ke dalam stack Back
    \begin{array}{|c|c|c|}\sf Back&\sf Yang\ sedang\ dibuka&\sf Forward\\C&D&\ \\B&&\ \\A&&\ \\\end{array}

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, 07 Nov 22