Masih ingatkan kawan-kawan dengan postingan saya yang berjudul Coding Stack Array Dalam Bahasa Java . Disitu kita telah belajar bagaimana membuat sebuah stack dengan array . Kita juga telah membahas apa itu konsep LIFO (Last In First Out). Nah kali ini pembahasan kita adalah tentang Queue yang konsepnya hampir mirip seperti stack .
Apa itu Queue ???
Dalam bahasa indonesia queue adalah antrian . Ngomongin soal antrian si oso ada cerita ni hari ini .
Ceritanya si oso sedang jalan-jalan ni di pasar . Dari jauh dia lihat ada antrian panjang , dia pun mendekat karena ingin tahu ada apa . Ternyata ada pembagian buah gratis di depan , akhirnya si oso pun ikut tertarik untuk ikut masuk antrian walaupun antrianya lumayan banyak . Sedikit demi sedikit antrian pun berjalan , si oso melihat di ujung antrian paling depan . Setelah peserta yang paling ujung keluar dari antrian , posisi yang paling depan di ganti oleh peserta yang di belakangnya . Setelah agak lama mengantri lama akhirnya oso pun mendapat buah dan memakanya dengan lahap .
Dari cerita si oso kita mendapatkan gambaran apa itu antrian . Konsep yang di pakai antrian adalah FIFO atau Firt In First Out , jadi yang pertama masuk maka dia akan menjadi yang pertama keluar . Konsep ini kebalikan dari konsep LIFO ada stack .
Bagaimana kita membuat Queue di java???
Sama seperti kita membuat stack, saya juga masih akan membuat queue dengan menggunakan array . Tentunya kawan-kawan harus paham dulu tentang array , yang belum paham baca dulu ya cara menggunakan array.
Buat array dan beberapa variabel yang di perlukan seperti di bawah .
int ar[] = new int [10];
int top = -1;
int down = 0;
Ingat di dalam stack dulu ada prosedur untuk push (memasukan data) dan pop(menggeluarkan data) kalo di queue namanya agak beda yaitu enqueue (memasukan data) dan dequeue (mengeluarkan data) .
Kita buat dulu prosedur enqueue untuk codinnya sama persis seperti push di stack cuma namanya saja yang di rubah .
public void enqueue(int angka){
if(!isFull()){
top++; // TOP DI NAIKAN
ar[top] = angka; // ANGKA DI ISIKAN
System.out.println("Angka " + angka + " berhasil di enqueue");
}else{
System.out.println("Antrian penuh");
}
}
Oh ya hampir saja kelupaan , untuk fungsi isFull dan isEmpty sama juga seperti di stack .
Yang berbeda hanya fungsi dequeue , yaitu seperti ini .
public void dequeue(){
if(!isEmpty()){
int indexDown = down;
down++; // DOWN DI NAIKAN
System.out.println("Antrian indek " + indexDown + " berhasil di dequeue");
}else{
System.out.println("Antrian kosong");
}
}
Kita sepakati dahulu bahwa bagian depan adalah data yang pertama kali dimasukan dan bagian belakang adalah yang terakhir di masukan . Kalo di stack yang di keluarkan yang bagian belakang dahulu sedangkan kalo di queue yang di keluarkan adalah yang bagian depan . Untuk itu kita memerlukan variabel down sebagai penunjuk perpindahan.
Bagian terpenting selanjutnya adalah menampilkan data . Caranya dengan looping for dengan awal variabel down dan batas top .
public void view(){
if(!isEmpty()){
System.out.print("Isi Antrian sekarang : ");
for (int i = down; i <= top; i++) {
System.out.print( ar[i] + " ");
}
System.out.println("");
}else{
System.out.println("Antrian kosong");
}
}
Lalu buat mainnya .
public static void main(String [] suroso){
KelasAntrian ka = new KelasAntrian();
ka.enqueue(3);
ka.view();
ka.enqueue(6);
ka.enqueue(7);
ka.view();
ka.dequeue();
ka.view();
ka.dequeue();
ka.view();
}
Jika coding di atas di run maka hasilnya seperti ini .
Itu dulu pembahasan tentang queue dengan array di java . Masih banyak logika yang dapat di gunakan untuk membuat queue , semangat belajar . Untuk coding di atas silahkan di download dibawah ini .
terimkasih
ReplyDelete