STRUKTUR DATA – Pertemuan 6 QUEUE
QUEUE Antrean (queue) adalah struktur data yang mempunyai sifat yakni data yang masuk terlebih dahulu maka dia yang akan diproses keluar terlebih dahulu. Ini disebut juga dengan sifat FIFO (First In First Out). Pada antrian dikenal istilah “depan” dan “belakang”
ilustrasi
Operasi dasar dalam antrean Operasi dasar pada antrean berupa insert dan remove Insert, menyatakan operasi untuk memasukkan data ke dalam antrean. Operasi ini biasa dinyatakan dalam bentuk insert(A, d) atau kadang disingkat dengan insert(d).istilah enqueue biasa digunakan untuk menyatakan operasi pemasukan data ke dalam antrean
Remove, menyatakan operasi untuk mengambil data dari antrean Remove, menyatakan operasi untuk mengambil data dari antrean. Operasi ini biasa dinyatakan dengan remove(A) atau remove(). Istilah dequeue terkadang digunakan untuk menyatakan operasi pengeluaran data dari dalam antrean
Pada class queue banyak sekali method yang digunakan Pada class queue banyak sekali method yang digunakan. Method tersebut diperlukan untuk membuat sebuah program antrean lebih mudah dipahami.
Method pada class queue
Implementasi method pada class queue Method void inisialisasi method void inisialisai berfungsu sebagai pengidentifikasian awal dari antrean yang dibuat. Di dalam method ini akan ditentukan seberapa panjang antrean dan kondisi awal dari antrean yang dibuat.
Static void inisialisasi( int i) { ukuran = i; queue=new int [ukuran]; top=0; }
Perhatikan method void inisialisai, dengan menggunakan variabel i sebagai nilai input dapat ditentukan ukuran antrean. Variabel int[] queue yang berbentuk array akan mengindikasikan jumlah antrean yang dapat dibuat. Untuk menyatakan bahwa kondisi awal antrean kosong dibuatlah variabel top=0, dimana nantinya apabila data dimasukkan, penambahan nilai variabel top akan dilakukan.
2. Method boolean isempty method ini digunakan untuk memerikasa apakah antrean didapatkan dengan memeriksa nilai top antrean atau tidak. Jika top bernilai 0, antrean itu bermakna kosong. Namun jika tidak, berarti antrean tersebut memiliki elemen.
Static boolean isempty() { Return top<=0 }
Sesuai dengan namanya metod isempty() berfungsi sebagai penanda bahwa antrean itu kosong. Perhatikan pernyataan return top<=0 yang akan mengembalikan nilai true apabila top<=0, dan false jika top>=0
3. Method boolean isfully method boolean isfully berfungsi untuk memeriksa apakah suatu antrean sudah penuh atau belum. Fungsi ini diperlukan pada pengeluaran antrean (metode pop). Method boolean isfully melakukan pengecekan sebelum perintah untuk mengeluarkan antrean diberikan.
Static boolean isfully() { return top >= ukuran; }
4. Method insert method ini berfungsi untuk menambahkan elemen antrean pada bagian belakang. Penambahan ini dilakukan jika antrean tidak penuh. Pada saat sebuah elemen ditambahkan ke dalam antrean, jumlah antrean yang kosong akan berkurang satu.
static void insert(int i){ if(isfully()){ System. out static void insert(int i){ if(isfully()){ System.out.println("maaf, antrian penuh"); } else { System.out.println("nilai "+i+" masuk antrian"); queue[top++]=i; }
Pada method insert, pemasukan data dilakukan dengan variabel int i Pada method insert, pemasukan data dilakukan dengan variabel int i. di dalam method ini terdapat perintah optional, di mana jika antreannya penuh (isfully()), data tidak dapat dimasukkan. Namun bila masih ada yang kosong, nilai i dapat dimasukkan ke dalam antrean. Pernyataan queue[top++]=i, yang mengindikasikan bahwa variabel array int[] queue pada indeks int top bernilai int i
Dengan demikian, nilai yang dimasukkan sudah ada di dalam antrean Dengan demikian, nilai yang dimasukkan sudah ada di dalam antrean. Apabila diinginkan untuk memasukkan data baru, secara otomatis proses increment terjadi pada nilai indeks int top
5. Method out (pop) fungsi out digunakan untuk mengeluarkan nilai dari antrean. Berdasarkan aturan yang telah dibahas sebelumnya, dalam sebuah antrean nilai yang pertama masuk merupakan nilai yang pertama keluar (FIFO). Untuk mengaplikasikan aturan tersebut kedalam methode pop perlu dipikirkan solusi untuk menggeser data ke bagian depan, oleh karena itu perintah looping digunakan pada method ini
static void pop() { if(isempty()) System. out static void pop() { if(isempty()) System.out.println("maaf, antrian kosong"); }else int pop=queue[0]; int i=1; System.out.println("nilai "+pop+" keluar antrian"); while (i<top) queue [i-1]=queue[i]; i++; } top--;
Perhatikan perintah while(i<top), dengan membuat variabel int i=1, data dalam antrean bisa bergeser satu kali ke depan. Sehingga data terdepan akan terhapus dari antrean. Hal yang perlu diperhatikan dalam method ini adalah nilai variabel top yang dinamis. Setiap data dikeluarkan dalam antrean, nilai top akan berkurang 1
6. Method display method display() berfungsi untuk menampilkan isi data dari antrean yang dibuat. Proses yang dilakukan cukup sederhana, yaitu melakukan looping terhadap seluruh indeks yang ada (nilai top)
static void display() { System. out static void display() { System.out.println("isi antrian :"); int i=0; while(i<top) System.out.println("antrian ke ["+(i+1)+"] :"+queue[i]); i++; }
Perintah while(i<top) yang berfungsi untuk menelusuri seluruh antrean dan ,menampilkan nilainya
7. Method find method find() hampir mirip dengan method display() 7. Method find method find() hampir mirip dengan method display(). Pada method ini juga menggunakan looping untuk menelusuri seluruh antreannya. Namun perbedaannya adalah perintah opsional if(i==queue[temp]) yang ditambahkan dalam method find. Perintah opsional tersebut berfungsi untuk mencari nilai yang diinginkan (int i) di dalam antrean
static void find(int i) { int temp=0; boolean hasil=false; while(temp<top) if(i==queue[temp]) hasil=true; break; } temp++; if(hasil) System.out.println("nilai "+i+" ditemukan di antrian ke "+(temp+1)); else System.out.println("antrian tidak ditemukan");
public static void main(String[] args) { queue a=new queue(); a public static void main(String[] args) { queue a=new queue(); a.inisialisasi(4); a.pop(); a.insert(12); a.insert(5); a.insert(2); a.insert(3); a.display(); a.insert(9); a.find(3); a.find(13); }
Methode void main merupakan method utama pada class queue Methode void main merupakan method utama pada class queue. Method tersebut akan memamnggil method lain sehingga program antrean dapat dijalankan. Skenario di atas dibuat untuk menunjukkan bahwa program antrean dapat berjalan dengan baik. Dengan membatasi jumlah antrean menjadi 4 saja, apabila jumlah nilai yang dimasukkan lebih dari 4 maka pesan “maaf antrian penuh” akan ditampilkan
output
SEKIAN DAN TERIMA KASIH