mainkit.id – Ketika mempelajari Algoritma maupun pemrograman komputer kita akan mengenal juga yang namanya konsep Queue yang dipelajari di struktur data dasar. Jika kita pelajari konsep Queue ini ada hal yang menarik  dari konsep ini yaitu konsep ini sama dengan kita sedang mengantri baik saat di rumah sakit, bank ataupun di tempat pembayaran.

Konsep Algoritma Queue(Antrian)

Konsep algoritma queue sendiri struktur datanya meniru antrian orang-orang yang sedang menunggu sebuah pelayanan, contohnya seperti di rumah sakit, bank atau saat kita sedang membeli karcis sebuah pertunjukan. Jika kita analisa konsep algoritma Queue ini dalam penambahannya selalu dari belakang dan pelayanan yang didahulukan selalu dari depan, dengan begitu kita bisa menyimpulkan bahwa konsep Queue ini menggunakan konsep First In First Out (FIFO) yang pertama mengantri maka dia duluan yang dilayani.


Proses pada konsep algoritma Queue dan implementasi sederhana

  • Proses permulaian Antrian (initialize)
  • Proses penambahan Elemen (addQueue)
  • Proses pengambilan Elemen (DeleteQueue)
  • Proses menghitung Jumlah Elemen (Size)

Agar mendapatkan gambaran yang lebih jelas dan lebih paham lagi,sebagai contoh kita akan implementasikan kepada sebuah program sederhana dengan menggunakan bahasa pemrograman java yang terdiri dari Class Item, Class Antrian, dan Main Class Queue, pastikan sebelum kamu mengikuti langkah demi langkahnya, kmau sudah menginstal IDE Neatbeans karena disini saya menggunakan IDE Neatbeans, saya anggap sudah memasang IDE Neatbeans di komputer masing-masing dan silahkan ikuti setiap step by stepnya dibawah ini :

Langkah Pertama membuat Class Item :

[php]

class item {
public int data;
public item sesudah;
public item sebelum;
public item(int id) {
data = id;
}

public void tampilkanLink() {
System.out.println("{" + data + "}");
}
}

[/php]

Langkah kedua membuat Class Antrian : 

[php]

class Antrian {
private item depan;
private item belakang;

public Antrian() {
depan = belakang = null;
}

public boolean isEmpty() {
return (depan == null);
}

public void ditambah(int id) {
item itembaru = new item(id);
if (depan == null) {
depan = belakang = itembaru;
} else {
belakang.sesudah = itembaru;
itembaru.sebelum = belakang;
belakang = itembaru;
itembaru.sesudah = null;
}
}

public item dibuang() {
item sementara = null;
if (depan == null) {
System.out.print("System Antrian Kosong");
} else if (depan == belakang) {
sementara = depan;
depan = belakang = null;
} else {
sementara = depan;
depan = depan.sesudah;
depan.sebelum = null;
}
return sementara;
}

public void tampilkan() {
item current = depan;
if (current == null) {
System.out.print("System Antrian Kosong");
} else while (current != null) {
current.tampilkanLink();
current = current.sesudah;
}

}
}

[/php]

Langkah ketiga membuat Main Class Queue : 

[php]

public class Queue {
public static void main(String[] args) {
Antrian percobaan = new Antrian();
System.out.println("————————–");
System.out.println("–PROSE PENAMBAHAN QUEUE–");
System.out.println("————————–");
percobaan.ditambah(15);
percobaan.ditambah(12);
percobaan.ditambah(19);
percobaan.ditambah(88);
System.out.println("————————–");
System.out.println("– TAMPILAN QUEUE –");
System.out.println("————————–");
percobaan.tampilkan();
System.out.println("————————–");
System.out.println("– HAPUS 15 –");
System.out.println("————————–");
item aLink = percobaan.dibuang();
percobaan.tampilkan();
System.out.println("————————–");
System.out.println("– HAPUS 12 –");
System.out.println("————————–");
item bLink = percobaan.dibuang();
percobaan.tampilkan();
System.out.println("————————–");
System.out.println("– TAMBAH 27 –");
System.out.println("————————–");
percobaan.ditambah(27);
percobaan.tampilkan();
System.out.println("————————–");
System.out.println("– HASI AKHIR –");
System.out.println("————————–");
percobaan.tampilkan();
}
}

[/php]

Jika kamu mengikutinya dengan baik setiap step by stepnya maka hasilnya akan seperti dibawah ini :

Demikian sedikit catatan tentang konsep dari algoritma Queue, semoga bisa memberikan sebuah inspirasi untuk yang sedang mempelajari algoritma ini. Jika ada yang mau ditanyakan silahkan bisa melalui forum dengan menggunakan akun kalian masing-masing.