struktur data queue

6
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)

Upload: junian-triajianto

Post on 19-Jun-2015

1.559 views

Category:

Documents


0 download

DESCRIPTION

Penjelasan singkat struktur data queue

TRANSCRIPT

Page 1: Struktur Data Queue

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)

Page 2: Struktur Data Queue

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.

Page 3: Struktur Data Queue

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

Page 4: Struktur Data Queue

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;

}

}

Page 5: Struktur Data Queue

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(){

Page 6: Struktur Data Queue

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;

}

}

}