Pengelolaan antrian kendaraan di SPBU (Stasiun Pengisian Bahan Bakar Umum) merupakan salah satu aspek penting dalam operasional sehari-hari. Dalam studi kasus ini, kita akan mensimulasikan antrian kendaraan di SPBU menggunakan dua konsep struktur data: Queue dan Stack. Kedua konsep ini memiliki cara kerja yang berbeda dan dapat digunakan untuk memahami bagaimana pengelolaan antrian dapat dioptimalkan dalam situasi yang berbeda.
PENJELASAN STUDI KASUS
Di SPBU tersebut, terdapat tiga tempat pengisian bahan bakar dengan jenis bahan bakar yang berbeda: premium, pertalite, dan solar. Ada 15 kendaraan yang akan mengisi bahan bakar, dengan pembagian sebagai berikut:
- 5 mobil menggunakan bahan bakar premium
- 5 mobil menggunakan bahan bakar pertalite
- 5 mobil menggunakan bahan bakar solar
Kita akan menggunakan dua konsep struktur data, yaitu queue (antrian) dan stack (tumpukan), untuk mensimulasikan proses pengisian bahan bakar ini.
SIMULASI MENGGUNAKAN QUEUE
Queue (antrian) adalah struktur data di mana elemen yang masuk pertama kali akan keluar pertama kali (First In, First Out – FIFO). Konsep ini sangat cocok untuk situasi antrian di mana kendaraan yang datang terlebih dahulu dilayani terlebih dahulu.
Kode Java untuk Simulasi Queue
import java.util.LinkedList;
import java.util.Queue;
public class SPBUSimulationQueue {
public static void main(String[] args) {
// Membuat queue untuk setiap jenis bahan bakar
Queue<String> premiumQueue = new LinkedList<>();
Queue<String> pertaliteQueue = new LinkedList<>();
Queue<String> solarQueue = new LinkedList<>();
// Menambahkan kendaraan ke queue premium
for (int i = 1; i <= 5; i++) {
premiumQueue.add("Mobil Premium " + i);
}
// Menambahkan kendaraan ke queue pertalite
for (int i = 1; i <= 5; i++) {
pertaliteQueue.add("Mobil Pertalite " + i);
}
// Menambahkan kendaraan ke queue solar
for (int i = 1; i <= 5; i++) {
solarQueue.add("Mobil Solar " + i);
}
// Melayani kendaraan di setiap queue
serveQueue(premiumQueue, "Premium");
serveQueue(pertaliteQueue, "Pertalite");
serveQueue(solarQueue, "Solar");
}
public static void serveQueue(Queue<String> queue, String fuelType) {
System.out.println("Melayani kendaraan untuk bahan bakar " + fuelType + ":");
while (!queue.isEmpty()) {
System.out.println(queue.poll() + " dilayani");
}
}
}
Berikut adalah tangkapan layar ketika kita mengeksekusi kode program di atas
Penjelasan:
- Tiga queue dibuat untuk masing-masing jenis bahan bakar.
- Kendaraan ditambahkan ke dalam queue sesuai dengan jenis bahan bakarnya.
- Kendaraan dalam queue dilayani satu per satu hingga queue kosong.
SIMULASI MENGGUNAKAN STACK
Stack (tumpukan) adalah struktur data di mana elemen yang masuk terakhir akan keluar pertama kali (Last In, First Out – LIFO). Konsep ini biasanya digunakan dalam situasi di mana elemen yang paling baru dimasukkan adalah yang pertama kali dikeluarkan, meskipun mungkin kurang cocok untuk antrian kendaraan di SPBU.
Kode Java untuk Simulasi Stack
import java.util.Stack;
public class SPBUSimulationStack {
public static void main(String[] args) {
// Membuat stack untuk setiap jenis bahan bakar
Stack<String> premiumStack = new Stack<>();
Stack<String> pertaliteStack = new Stack<>();
Stack<String> solarStack = new Stack<>();
// Menambahkan kendaraan ke stack premium
for (int i = 1; i <= 5; i++) {
premiumStack.push("Mobil Premium " + i);
}
// Menambahkan kendaraan ke stack pertalite
for (int i = 1; i <= 5; i++) {
pertaliteStack.push("Mobil Pertalite " + i);
}
// Menambahkan kendaraan ke stack solar
for (int i = 1; i <= 5; i++) {
solarStack.push("Mobil Solar " + i);
}
// Melayani kendaraan di setiap stack
serveStack(premiumStack, "Premium");
serveStack(pertaliteStack, "Pertalite");
serveStack(solarStack, "Solar");
}
public static void serveStack(Stack<String> stack, String fuelType) {
System.out.println("Melayani kendaraan untuk bahan bakar " + fuelType + ":");
while (!stack.isEmpty()) {
System.out.println(stack.pop() + " dilayani");
}
}
}
Berikut adalah tangkapan layar ketika kita mengeksekusi kode program di atas
Penjelasan:
- Tiga stack dibuat untuk masing-masing jenis bahan bakar.
- Kendaraan ditambahkan ke dalam stack sesuai dengan jenis bahan bakarnya.
- Kendaraan dalam stack dilayani satu per satu hingga stack kosong.
Melalui simulasi ini, kita dapat melihat perbedaan antara konsep queue dan stack dalam pengelolaan antrian kendaraan di SPBU. Queue memastikan bahwa kendaraan yang datang pertama kali akan dilayani pertama kali, sehingga lebih cocok untuk situasi antrian di kehidupan nyata seperti SPBU. Di sisi lain, stack melayani kendaraan yang datang terakhir kali terlebih dahulu, yang mungkin lebih cocok untuk situasi lain seperti undo-redo dalam aplikasi komputer.
Dengan memahami kedua konsep ini, kita dapat mengaplikasikan struktur data yang sesuai dengan kebutuhan dan situasi yang berbeda dalam berbagai aspek kehidupan sehari-hari dan pengembangan perangkat lunak.
Menarik bukan? Kini kita telah berhasil mensimulasikan pengelolaan antrian kendaraan di SPBU menggunakan dua konsep struktur data yang berbeda, yaitu Queue dan Stack, dengan bahasa pemrograman Java. Dengan memahami kedua konsep ini, Anda dapat memilih metode yang paling sesuai untuk berbagai situasi antrian dalam kehidupan sehari-hari maupun dalam pengembangan perangkat lunak.
Bagaimana? Apakah Anda sudah paham dengan penjelasan dan contoh kode di atas? Jika masih ada yang kurang jelas, jangan ragu untuk meninggalkan komentar di kolom komentar postingan ini. Bahkan, jika Anda memiliki masalah pemrograman lain yang menarik untuk dibahas, Anda juga dapat mengirimkannya melalui kolom komentar.
Semoga postingan ini bermanfaat bagi Anda, para pembaca. Apabila ada pertanyaan mengenai konten ini, silakan tinggalkan komentar di bawah. Jika Anda menemukan artikel ini berguna, jangan ragu untuk membagikannya. Anda juga dapat mencuplik beberapa bagian dari artikel ini, tetapi jangan lupa untuk menyertakan URL-nya. Terima kasih.