Algoritma untaian Antrian (queue) pada java


Pada Algorimta atau Pemrograman di komputer juga mengenal namanya konsep Queue pada struktur data dasar di untaian (Linked List). yang menjadi hal menarik konsep Queue ini sama halnya dengan kita mengantri baik itu di bank atau di tempat pembayaran.

Konsep Queue
Struktur Antrian atau Queue merupakan struktur data meniru antrian orang yang sedang menunggu pelayanan, misalnya di bank, atau antrian membeli karcis pertunjukan. jika kamu analisa penambahan antri selalu dari belakang (rear of queue) dan  pelayanan selalu dari depan (front of queue), dapat di simpulkan queue menggunakan konsep FIFO (First In First Out) yakni yang pertama mengantri maka dia duluan yang dilayani.
Proses pada Queue 
  1. Proses Permulaian Antrian (initialize)
  2. Proses Penambahan Elemen (addQueue)
  3. Proses Pengambilan Elemen (DeleteQueue)
  4. Proses Menghitung Jumlah Elemen (Size)
Langkah 1 : Class Item

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

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

Langkah 2 : Class Antrian

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;
        }

    }
}

Langkah 3 : Main Class Queue

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();
    }
}

Hasil : Queue
Demkian penjelasan mengenai konsep Queue atau Antrian dengan Implementasinya pada Java. semoga bermanfaat. dipersilahkan kripik pedasnya yang konstruksif. ^_^

0 comments:

Post a Comment