MODUL 9
ANTRIAN (QUEUE)
I. Dasar Teori
Antrian (queue) adalah duatu kumpulan data yang penambahan elemennya hanya bisa dilakukan pada suatu ujung ( disebut dengan sisi belakang atau rear ), dan penghapusan atau pengambilan elemen dilakukan lewat ujung yang lain ( disebut atau sisi depan atau front ) . antrian ( queue ) mempunyai prinsip FIFO ( First In First Out ) bahwa yang pertama masuk yang pertama keluar.
Operasi dasar queue
- Create Queue
- Untuk menciptakan dan menginisialisasi queue
- Dengan cara membuat Head dan Tail = -1
- Bentuk umum :Void create ( )
{
Antrian.Head = -1;
Antrian.head = -1;
} - Empty Queue
- Untuk memeriksa apakah antrian sudah penuh atau belum
- Dengan memeriksa nilai tail, jika Tail = -1 maka empty
- Kita tidak memeriksa head, karena head adalah tanda untuk kepala antrian ( elemen pertama dalam antrian ) yang tidak akan berubah-ubah
- Peergerakan pada antrian terjadi dengan penambahan elemen antria kebelakang, yaitu menggunakan nilai Tail.
- Bentuk umum :Void IsEmpty ( )
{
If (antrian.tail = -1)
Return 1;
Else
Return 0;
} -
-
Full Queue
- Untuk mengecek apakah antrian sudah penuh atau belum
- Dengan cara mengecek nilai Tail, jika tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh
- Bentuk umum :void isfull ( )
{
if (antrian.tail = max-1)
return 1;
else
return 0;
} -
-
Enqueue
- Untuk menambahkan elemen kedalam antrian, penambahan elemen selalu ditambahkan di elemen paling belakang
- Penambahan selalu menggerakan variabel tail dengan cara increment counter tail terlebih dahulu
- Bentuk umum :void enqueue (int data)
{
if (isempty ( ) = 1) {
antrian.head=antrian.tail=0;
antrian.data[antrin.tail] =data;
printf(“%d,masuk”,antrian.data[antrian.tail] );
}
else
if (isfull ( ) = 0) {
antrian.tail++;
antrian.data[antrian.tail]=data;
printf(“%d,masuk”,antrian.data[antrian.tail] );
} -
-
Dequeue
- Digunakan untuk menghapus elemen terdepan/pertama (head) dari antrian
- Dengan cara menggeser semua elemen antrian kedepan dan mengurangi tail dengan 1
- Pergeseran dilakukan dengan menggunakan looping
- Bentuk umum :int dequeue ( )
{
int i;
int e = antrian.data[antrian.head];
for (i=antrian.head;i<=antrian.tail;i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.tail--;
return e;
} -
-
Clear queue
- Untuk menghapus elemen elemen antrian dengan cara membuat tail dan Head = -1
- Penghapusan elemen-elemen antrian sebenarnya tidak menghapus arraynya, namun hamya mengeset indeks pengaksesannya ke nilai -1 sehingga elemen-elemen antrian tidak lagi terbaca
- Bentuk umum :void clear ( )
{
antrian.head = -1;
antrian.tail = -1;
printf(“data clear”);
} -
-
Tampil queue
- Untuk menampilkan elemen elemen antrian
- Menggunakan looping dan head s/d tail
- Bentuk umum :Void clear ( )
{
Antrian.head = -1;
Antrian.tail = -1;
Printf(“data clear”);
}
II. Praktikum
Untuk praktikum, klik aja link di bawah ini :
https://www.scribd.com/doc/261308241/Praktikum-modul9
III. Tugas Modul 6
Untuk tugas, klik aja link di bawah ini :
https://www.scribd.com/doc/261308340/Tugas-Modul9
Catatan : Jangan asal CoPas aja ya,,,harus dipelajari lebih dalam...!!!hehe...
Tidak ada komentar:
Posting Komentar