Dalam dunia pemrograman, stack dan queue menjadi dua struktur data yang sering digunakan untuk menyimpan dan mengelola data. Meski keduanya memiliki tugas serupa, prinsip kerja dan cara akses data di dalamnya sangatlah berbeda.
Untuk tahu lebih lanjut mengenai stack dan queue, simak tulisan di bawah yang akan membahas tentang pengertian, perbedaan, dan bagaimana contoh penerapannya sampai tuntas.
Mengenal Stack dan Algoritmanya
Stack adalah salah satu struktur data yang paling umum dijumpai dalam pemrograman. Cara kerja stack dapat diibaratkan seperti tumpukan buku.
Ketika kita ingin menambah buku ke dalam tumpukan, kita hanya bisa menambahnya di bagian atas. Begitu juga ketika ingin mengambil buku, kita harus mengambil yang paling atas terlebih dahulu.
Proses ini disebut dengan prinsip LIFO (Last In, First Out), yang berarti elemen terakhir yang dimasukkan akan menjadi elemen pertama yang keluar.
Ada beberapa operasi dasar yang digunakan untuk algoritma stack bekerja, yakni:
- Push: Operasi ini digunakan untuk menambahkan elemen baru ke bagian paling atas dari stack.
- Pop: Operasi ini digunakan untuk mengeluarkan elemen paling atas dari stack.
- Peek: Operasi ini digunakan untuk melihat elemen teratas dari stack tanpa mengeluarkannya.
- isEmpty: Digunakan untuk mengecek apakah stack kosong atau tidak.
Mengenal Queue dan Algoritmanya
Sementara stack bekerja berdasarkan prinsip LIFO, queue bekerja dengan prinsip FIFO (First In, First Out).
Queue dapat dianalogikan sebagai antrian di bioskop, di mana orang yang pertama kali masuk ke antrian adalah orang pertama yang dilayani. Dengan kata lain, elemen yang pertama kali dimasukkan akan menjadi elemen pertama yang keluar.
Dalam queue, ada beberapa operasi dasar yang digunakan untuk memasukkan dan mengeluarkan data, yakni:
- Enqueue: Operasi ini digunakan untuk menambahkan elemen ke akhir antrian.
- Dequeue: Operasi ini digunakan untuk mengeluarkan elemen dari antrian, yaitu elemen yang berada di paling depan.
- Front: Ini adalah operasi untuk melihat elemen pertama dalam antrian tanpa mengeluarkannya.
- isEmpty: Operasi ini digunakan untuk mengecek apakah antrian kosong atau tidak.
Baca juga: Apa itu ERD? Arti, Komponen, dan Contohnya
Perbedaan Stack dan Queue
Stack dan queue adalah dua struktur data yang sering digunakan dalam pemrograman, namun cara kerja keduanya sangat berbeda. Berikut adalah beberapa perbedaannya.
1. Prinsip Kerja
Stack bekerja dengan prinsip LIFO (Last In, First Out), artinya elemen yang terakhir dimasukkan ke dalam stack akan menjadi elemen pertama yang keluar.
Sementara itu, queue bekerja dengan prinsip FIFO (First In, First Out), artinya elemen yang pertama dimasukkan akan menjadi elemen pertama yang keluar.
2. Operasi Utama
Dalam stack, operasi dasar yang digunakan adalah Push (menambahkan elemen di atas tumpukan) dan Pop (mengeluarkan elemen teratas).
Sementara queue, operasi utamanya adalah Enqueue (menambahkan elemen di akhir antrean) dan Dequeue (mengeluarkan elemen dari depan antrean).
3. Penggunaan
Stack sering digunakan dalam sistem undo/redo, di mana aksi terakhir yang dilakukan akan dibatalkan atau diulang lebih dulu.
Queue sering digunakan dalam sistem antrian seperti antrian pelanggan di layanan telepon atau pengiriman pesan, di mana urutan kedatangan sangat penting.
Baca juga: Data Flow Diagram: Pengertian, Fungsi, dan Cara Membuatnya
Contoh Penerapan Stack dan Queue
Berikut adalah beberapa contoh penerapan stack dan queue dalam pemrograman yang sering digunakan.
1. Undo/Redo di Aplikasi Pengolah Kata
Salah satu penerapan paling umum dari stack adalah fitur Undo/Redo dalam aplikasi pengolah kata seperti Microsoft Word.
Setiap kali pengguna melakukan perubahan, perubahan ini disimpan di stack. Saat pengguna menekan “Undo“, program akan menghapus tindakan terakhir yang dimasukkan di stack, dan ketika pengguna ingin “Redo“, program akan menambahkan kembali perubahan tersebut.
2. Penyelesaian Ekspresi Matematika (Postfix/Infix Expression)
Dalam perhitungan ekspresi matematika yang kompleks, stack digunakan untuk mengelola operator dan operand saat menghitung ekspresi dalam notasi postfix atau infix yang biasanya digunakan di banyak aplikasi kalkulator.
3. Sistem Antrian pada Call Center
Pada sistem call center, setiap panggilan yang masuk diproses sesuai urutan kedatangan. Panggilan pertama yang masuk adalah panggilan pertama yang akan dilayani.
Hal ini bisa direpresentasikan menggunakan queue, di mana setiap panggilan masuk ditambahkan di belakang antrian, dan panggilan yang dijawab akan dikeluarkan dari antrian.
4. Penjadwalan Tugas di CPU
Queue digunakan untuk mengatur proses yang akan dijalankan oleh CPU. Proses pertama yang masuk ke dalam antrian akan diproses terlebih dahulu, sesuai dengan prinsip FIFO.
Kesimpulan
Baik stack maupun queue adalah struktur data yang esensial dalam pemrograman. Meski begitu, keduanya memiliki prinsip kerja yang berbeda. Dengan memahami perbedaan antara keduanya sangat penting untuk efisiensi dalam penulisan program dan pengelolaan data.
Stack lebih cocok digunakan dalam situasi di mana kita hanya membutuhkan akses pada elemen terbaru yang dimasukkan, seperti dalam rekursi atau undo/redo sistem. Sedangkan queue sangat ideal digunakan dalam situasi antrian atau penjadwalan tugas yang memerlukan pengolahan data secara berurutan.
Dengan penerapan yang tepat, kedua struktur data ini dapat meningkatkan performa aplikasi dan memudahkan pengelolaan data dalam berbagai penggunaan.