Site icon UNYDeveloperNetwork

Fun & Tutorial: Queue OR Stack

Reading Time: 5 minutes

Selamat datang di UNYDeveloperNetwork. Kali ini kita akan bersenang-senang dengan Java untuk sebuah case pemrograman yang sangat populer. Case pemrograman ini adalah melibatkan sebuah algoritma yang juga sangat umum di dunia pemrograman yakni Queue dan Stack. Seperti apakah kasusnya? dan bagaimanakah kita akan bersenang-senang? Mari kita simak postingan ini sampai akhir.

Sebelum bersenang-senang, kita akan mengetahui terlebih dahulu kasus apakah yang akan kita selesaikan. Berikut adalah kasusnya:

Dalam suatu SPBU atau Pom Bensin terdapat 3 tempat pengisian bahan bakar yang masing-masing berisi premium, pertalite, dan solar. Di tempat itu terdapat 15 kendaraan yang akan mengisi bahan ba-kar 
Simulasikan kasus di atas secara bertahap dengan menggunakan konsep queue, stack, atau deque. Pilih minimal 2 konsep, kemudian jelaskan secara simulasi dari konsep tersebut dengan jelas, dengan rincian sebagai berikut: 
– 5 mobil menggunakan bahan bakar premium 
– 5 mobil menggunakan bahan bakar pertalite 
– 5 mobil menggunakan bahan bakar solar

Sebelum kita memulai proses koding, ada baiknya kita akan mem-“breakdown” bagaimana cara kita menyelesaikan permasalahan ini.

Untuk mensimulasikan situasi di SPBU atau Pom Bensin dengan menggunakan konsep queue, stack, atau deque, kita dapat menggunakan dua pendekatan berbeda: queue dan stack. Deque (double-ended queue) juga bisa digunakan, tapi untuk kasus ini, queue dan stack cukup untuk menunjukkan perbedaan pendekatan.

Pendekatan Menggunakan Queue

Queue adalah struktur data yang mengikuti prinsip First In First Out (FIFO). Dalam konteks SPBU, ini berarti kendaraan yang datang lebih dulu akan dilayani lebih dulu.

Simulasi dengan Queue:

Simulasi dengan Stack:

Perbandingan antara Queue dan Stack

Queue mencerminkan skenario yang lebih realistis di SPBU, di mana kendaraan yang datang lebih dulu dilayani lebih dulu.

Stack, sementara itu, adalah pendekatan yang kurang realistis untuk SPBU karena ini berarti kendaraan yang datang terakhir dilayani lebih dulu, yang jarang terjadi dalam skenario nyata.

Dalam kasus ini, menggunakan queue adalah pendekatan yang lebih sesuai untuk mensimulasikan antrian di SPBU.


Baik, sudah paham dari breakdown yang saya jelaskan di atas? kali ini kita akan mengaplikasikan ke dalam Bahasa Pemrograman Java. Pertama, kita akan memulai dengan pendekatan Queue terlebih dahulu. Untuk membuat program Java yang menggunakan pendekatan queue untuk mensimulasikan antrian di SPBU, kita akan menggunakan LinkedList yang merupakan implementasi dari Queue di Java. Berikut adalah struktur dasar program tersebut:

import java.util.LinkedList;
import java.util.Queue;

public class SPBUSimulation {

    public static void main(String[] args) {
        Queue<String> premiumQueue = new LinkedList<>();
        Queue<String> pertaliteQueue = new LinkedList<>();
        Queue<String> solarQueue = new LinkedList<>();

        // Mengisi antrian dengan 5 mobil untuk masing-masing jenis bahan bakar
        for (int i = 1; i <= 5; i++) {
            premiumQueue.add("Mobil Premium " + i);
            pertaliteQueue.add("Mobil Pertalite " + i);
            solarQueue.add("Mobil Solar " + i);
        }

        // Proses pengisian bahan bakar
        while (!premiumQueue.isEmpty() || !pertaliteQueue.isEmpty() || !solarQueue.isEmpty()) {
            if (!premiumQueue.isEmpty()) {
                System.out.println(premiumQueue.poll() + " sedang mengisi bahan bakar Premium.");
            }

            if (!pertaliteQueue.isEmpty()) {
                System.out.println(pertaliteQueue.poll() + " sedang mengisi bahan bakar Pertalite.");
            }

            if (!solarQueue.isEmpty()) {
                System.out.println(solarQueue.poll() + " sedang mengisi bahan bakar Solar.");
            }
        }

        System.out.println("Semua mobil telah selesai mengisi bahan bakar.");
    }
}

Penjelasan dari kode di atas adalah sebagai berikut:

Kita coba jalankan program ini, keluaran dari program ini adalah sebagai berikut:

Program ini merupakan simulasi sederhana dari antrian di SPBU dengan menggunakan konsep queue. Anda bisa menjalankan dan memodifikasi kode ini sesuai dengan kebutuhan lebih lanjut.


Kita sudah selesai dengan selesai dengan Queue, kali ini kita coba dengan menggunakan Stack. Untuk membuat program Java yang menggunakan pendekatan stack dalam mensimulasikan antrian di SPBU, kita dapat menggunakan Stack dari Java util library. Berikut adalah contoh programnya:

import java.util.Stack;

public class SPBUSimulationStack {

    public static void main(String[] args) {
        Stack<String> premiumStack = new Stack<>();
        Stack<String> pertaliteStack = new Stack<>();
        Stack<String> solarStack = new Stack<>();

        // Mengisi stack dengan 5 mobil untuk masing-masing jenis bahan bakar
        for (int i = 1; i <= 5; i++) {
            premiumStack.push("Mobil Premium " + i);
            pertaliteStack.push("Mobil Pertalite " + i);
            solarStack.push("Mobil Solar " + i);
        }

        // Proses pengisian bahan bakar
        while (!premiumStack.isEmpty() || !pertaliteStack.isEmpty() || !solarStack.isEmpty()) {
            if (!premiumStack.isEmpty()) {
                System.out.println(premiumStack.pop() + " sedang mengisi bahan bakar Premium.");
            }

            if (!pertaliteStack.isEmpty()) {
                System.out.println(pertaliteStack.pop() + " sedang mengisi bahan bakar Pertalite.");
            }

            if (!solarStack.isEmpty()) {
                System.out.println(solarStack.pop() + " sedang mengisi bahan bakar Solar.");
            }
        }

        System.out.println("Semua mobil telah selesai mengisi bahan bakar.");
    }
}

Penjelasan dari kode di atas adalah sebagai berikut:

Perlu diperhatikan bahwa pendekatan ini kurang realistis untuk simulasi antrian di SPBU karena biasanya kendaraan yang datang lebih dulu yang dilayani lebih dulu, bukan sebaliknya. Namun, ini adalah contoh bagaimana stack dapat digunakan dalam konteks pemrograman. Selanjutnya, kita akan jalankan program ini dan menghasilkan keluaran berikut ini:


Bagaimana? apakah sudah paham dengan konsep Queue dan Stack? Jika Anda masih belum paham, Anda dapat meninggalkan komentar di kolom komentar postingan ini. Bahkan, jika Anda memiliki masalah pemrograman yang lain dan menarik untuk di bahas, Anda juga dapat mengirimkannya melalui kolom komentar postingan ini.

Semoga postingan bermanfaat bagi Anda para pembaca. Apabila ada pertanyaan mengenai postingan ini, Anda dapat meninggalkannya di kolom komentar. Dan, Apabila Anda menemukan artikel ini berguna, Anda dapat membagikannya. Anda juga dapat mencuplik beberapa bagian dari artikel ini, namun jangan lupa untuk sertakan URL nya. Terima kasih.

^_^

Exit mobile version