struktur data queue
DESCRIPTION
Penjelasan singkat struktur data queueTRANSCRIPT
STRUKTUR DATA
TUGAS KE-3
QUEUE
Tanggal 4 Maret 2009
Oleh:
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
2009
Junian Triajianto (5108100038)
QUEUE
Definisi
Queue (Antrian) adalah list linier yang :
1. Dikenali elemen pertama (Head) dan elemen terakhirnya (Tail).
2. Aturan penyisipan dan penghapusan elemennya disefinisikan sebagai berikut :
- Penyisipan selalu dilakukan setelah elemen terakhir (tail).
- Penghapusan selalu dilakukan pada elemen pertama (head).
3. Satu elemen dengan elemen lain dapat diakses melalui informasi Next.
4. Bersifat FIFO (First In First Out)
Struktur data ini banyak dipakai dalam informatika
misalnya untuk merepresentasi :
1. Antrian job dalam sistem operasi
2. Antrian dalam dunia nyata
Operasi pada Queue
1. isEmpty()
Untuk mengetahui isi queue kosong atau tidak. Mengetahui bahwa Queue kosong
atau tidak sangat penting, sebab semua operasi akan dilakukan berdasarkan kosong
atau tidaknya suatu Queue.
2. enqueue()
Penambahan selalu dilakukan pada ekor, dan karena alamat ekor diketahui maka
prosesnya sederhana, yaitu hanya addLast.
3. dequeue()
Penghapusan elemen pada queue selalu dilakukan pada elemen pertama, hanya saja
perlu diperhitungkan bahwa mungkin queue menjadi kosong akibat terjadinya
penghapusan. Jika queue menjadi kosong, maka harga Tail harus diganti. Jika akibat
penghapusan queue tidak kosong, maka elemen terakhir tidak berubah.
4. getFront()
Untuk mengetahui isi antrian paling depan.
5. showQueue()
Untuk menampilkan seluruh isi Queue.
Implementasi dengan Array
Karena antrian merupakan suatu kumpulan data, maka tipe data yang sesuai untuk
menyajikan antrian adalah menggunakan array atau list (senarai berantai).
Gambaran queue dengan Array:
Queue.enqueue(A)
Queue.enqueue(D)
Queue.enqueue(Z)
Queue.dequeue();
Queue.enqueue(X)
Queue.enqueue(C)
Queue.dequeue()
Queue.enqueue(F)
Queue.dequeue()
Implementasi dengan Linked List
Pada prinsipnya, antrian dengan Linked List akan sama dengan antrian yang
menggunakan array. Penambahan akan selalu dilakukan di belakang antrian dan
penghapusan akan selalu dilakukan pada elemen dengan posisi paling depan. Antrian
sebenarnya merupakan bentuk khusus dari suatu senarai berantai (linked list). Pada
antrian bisa digunakan dua variabel yang menyimpan posisi elemen paling depan dan
elemen paling belakang.
Gambaran untuk method enqueue:
public void enqueue(int data){
if(isEmpty()){
head = tail = new Node(data);
}else{
tail.next = new Node(data);
tail = tail.next;
}
}
Gambaran untuk method dequeue:
public int dequeue(){
if(isEmpty) return 0;
int temp = getFront();
head = head.next;
if(head==null) tail = null;
return temp;
}
Implementasi dengan menggunakan Linked List dalam java:
class Node{
int data;
Node next;
public Node(int data){
this.data = data;
}
}
public class Queue{
Node head, tail;
public boolean isEmpty(){
if(head == null) return true;
return false;
}
public void enqueue(int data){
if(isEmpty()){
head = tail = new Node(data);
}else{
tail.next = new Node(data);
tail = tail.next;
}
}
public int getFront(){
if(isEmpty()) return 0;
return head.data;
}
public int dequeue(){
if(isEmpty) return 0;
int temp = getFront();
head = head.next;
if(head==null) tail = null;
return temp;
}
public void showQueue(){
Node temp = head;
While(temp!=null){
System.out.println(temp.data);
temp = temp.next;
}
}
}