SlideShare a Scribd company logo
1 of 7
Download to read offline
1
BAB 5
QUEUE (ANTRIAN)
1. Tujuan Instruksional Umum
a. Mahasiswa mampu melakukan perancangan aplikasi menggunakan struktur
Queue (antrian)
b. Mahasiswa mampu melakukan analisis pada algoritma Queue yang dibuat
c. Mahasiswa mampu mengimplementasikan algoritma Queue pada sebuah
aplikasi secara tepat dan efisien
2. Tujuan Instruksional Khusus
a. Mahasiswa mampu menjelaskan mengenai Queue dan Dequeue
b. Mahasiswa mampu membuat dan mendeklarasikan Abstraksi Tipe Data Queue
c. Mahasiswa mampu menerapkan operasi push dan pop elemen pada algoritma
Queue
Pengertian Queue (Antrian)
Struktur data linear adalah kumpulan komponen-komponen yang tersusun
membentuk satu garis linear. Bila komponen-komponen ditambahkan (atau dikurangi),
maka struktur-struktur tersebut berkembang (atau menyusut). Queue merupakan
struktur data linear dimana penambahan komponen dilakukan di satu ujung, sementara
pengurangan dilakukan di ujung lain (yang satu lagi).
Queue (Antrian) adalah suatu 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 dengan
sisi depan atau front). DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian.
Antrian dapat dibuat dengan menggunakan: Liniear Array dan Circular Array.
Kalau tumpukan menggunakan prinsip LIFO (Last Input First Output), maka
pada antrian prinsip yang digunakan adalah FIFO (First Input First Output). Antrian
banyak dijumpai dalam kehidupan sehari-hari, misalnya dalam menonton bioskop
dimana melakukan antri dalam membeli tiket, mobil-mobil yang antri membeli karcis di
pintu jalan tol akan membentuk antrian, para calon mahasiswa yang mendaftarkan diri
untuk ikut ujian masuk perguruan tinggi akan membentuk antrian dan contoh-contoh
lain yang banyak dijumpai dalam kehidupan sehari-hari.
Contoh lain yang lebih relevan dalam bidang komputer adalah pemakaian sistem
komputer berbagi waktu (time-sharing computer system) dimana ada sejumlah pemakai
yang menggunakan sistem tersebut secara serempak. Karena sistem ini biasanya
menggunakan sebuah prosesor dan sebuah memori utama, maka jika prosesor sedang
dipakai oleh seorang pemakai, pemakai-pemakai yang lain harus antri sampai gilirannya
tiba. Antrian ini mungkin tidak dilayani secara FIFO murni, tetapi didasarkan fase
tertentu. Antrian yang mengandung unsur prioritas dinamakan dengan antrian
berprioritas (priority queue).
QUEUE DENGAN LINIEAR ARRAY
Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di
ujung satunya. Sehingga membutuhkan variabel Head dan Tail dengan aturan sebagai
berikut:
1. Elemen pertama (HEAD) dan elemen terakhirnya (TAIL),
2
2. Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut:
a. Penyisipan selalu dilakukan setelah elemen terakhir
b. Penghapusan selalu dilakukan pada elemen pertama
3. Satu elemen dengan yang lain dapat diakses melalui informasi NEXT
4. Struktur data ini banyak dipakai dalam informatika, misalnya untuk
merepresentasi :
a. antrian job yang harus ditangani oleh sistem operasi
b. antrian dalam dunia nyata.
Abstraksi Tipe Data Queue
Seperti halnya stack (tumpukan) spesifikasi queue (antrian) tersebutb dapat
diimplementasikan di level yang lebih rendah baik dengan array ataupun linear linked
list. Dalam implementasi array, konsep circular-array dapat diaplikasikan untuk
menghindari operasi penggeseran isi array saat dilakukan pop(). Dalam konsep
circular array, inkrementasi indeks array yang panjangnya n, selalu di modulo dengan
panjang array tsb. sehingga variabel indeks yang semula berharga n-1 jika diinkremen
akan "wrap-around" ke 0. Untuk mengetahui posisi ujung-ujung dari item data yang
disimpan dalam array, digunakan variabel indeks front (menunjuk ke posisi item
yang akan diambil berikutnya) dan rear (posisi elemen array berikutnya yang akan
ditempati). Suatu variabel count digunakan untuk mengetahui kasus khusus: apakah
queue kosong atau penuh. Jika penuh maka mekanisme memperbesar kapasitas queue
dapat diaplikasikan.
Dalam implementasi struktur data linier, maka bagian muka dari queue adalah
awal dari list (di-pop dengan delete-first) dan bagian belakang adalah akhir dari list (di-
push dengan insert-last). Mengingat operasi insert-last sering dilakukan maka
digunakan dua variabel referensi yang digunakan sebagai pointer: front untuk node
pertama dari list dan rear utuk node paling akhir.
Deklarasi Abatraksi Tipe Data Queue
Deklarasi Abstraksi tipe Data
Queue
#define MAX 8
typedef struct
{
int data[MAX];
int head;
int tail;
} Queue;
Queue antrian;
Gambar 1. Linier Array Queue
Operasi-operasi pada Queue
1. Membuat Queue Kosong
Untuk menciptakan dan menginisialisasi Queue, dengan cara membuat Head dan
Tail sama dengan NULL.
Deklarasi Membuat Queue
void Create()
{
antrian.head= NULL;
antrian.tail= NULL;
}
Gambar 2. Membuat Queue Kosong
3
2. Memeriksa Queue elemen kosong
Untuk memeriksa apakah Antrian sudah penuh atau belum, dengan cara 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. Pergerakan pada Antrian terjadi dengan penambahan elemen antrian kebelakang,
yaitu menggunakan nilai Tail
Deklarasi Queue kosong
int IsEmpty()
{
if(antrian.tail==NULL)
return 1;
else
return 0;
}
3. Memeriksa Queue elemen penuh
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.
Deklarasi Queue Penuh
int IsFull()
{
if(antrian.tail==MAX-1)
return 1;
else
return 0;
}
Gambar 3. Queue Penuh
4. Menambah elemen Queue (Enqueue)
Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu
ditambahkan di elemen paling belakang. Penambahan elemen selalu menggerakan
variabel Tail dengan cara increment counter Tail. Gambar 4 memperlihatkan
penambahan elemen queue. Deklarasi Enqueue
void Enqueue(int data)
{
if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.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]);
}
}
4
Gambar 4. Enqueue Data
5. Menghapus elemen Queue (Dequeue)
Digunakan untuk menghapus elemen terdepan/pertama dari antrian dengan cara
mengurangi counter Tail dan menggeser semua elemen antrian kedepan. Penggeseran
dilakukan dengan menggunakan looping. Gambar 5 memperlihatkan penghapusan
elemen queue. Deklarasi Dequeue
int Dequeue()
{
int i;
int e = antrian.data[antrian.head];
for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i] = antrian.data[i+1];
}
antrian.tail--;
return e;
}
Gambar 5. Dequeue Data
6. Membersihkan indeks Queue
Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head
sama dengan NULL. Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus
arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai NULL sehingga
elemen-elemen Antrian tidak lagi terbaca.
Deklarasi Clear Queue
void Clear()
5
{
antrian.head=antrian.tail=NULL;
printf("data clear");
}
7. Menampilkan elemen Queue
Untuk menampilkan nilai-nilai elemen antrian dengan menggunakan looping dari
head sampai dengan tail.
Deklarasi menampilkan elemen Queue
void Tampil()
{
if(IsEmpty()==0)
{
for(int i=antrian.head;i<=antrian.tail;i++)
{
printf("%d ",antrian.data[i]);
}
}
else
printf("data kosong!n");
}
8. PUSH elemen Queue
Salah satu algoritma untuk proses memasukkan data (PUSH) adalah sebagai berikut:
1. Masukkan inputan data
2. Jika variabel i = MAX (nilai maksimum array), maka kerjakan langkah 3. Jika i
≠ MAX, maka kerjakan langkah 4.
3. Tampilkan “Queue sudah penuh”.
4. Selama i < MAX, maka i = i + 1 dan data [i] = data
Deklarasi PUSH elemen Queue
If(i == MAX)
Printf(“nQueue sudah penuhnn”);
Else
{
printf(“Masukkan data : “);
scanf(“%d”, &data[i]);
i = i + 1;
}
9. POP elemen Queue
Salah satu algoritma untuk proses mengeluarkan data (POP) adalah sebagai berikut:
1. Jika i = 0, maka tampilkan “Queue kosong” lalu kerjakan langkah 4. Jika i ≠ 0,
maka lakukan langkah 2.
2. Mulai hapus ← data[0] dan data[i-1] ← data[i]
3. i ← i – 1
4. data[0] ← NULL
Deklarasi POP elemen Queue
If(i == 0)
Printf(“Queue kosong”);
Else
{
hapus = data[0];
for(int j = 0; j < = i; j ++)
{
6
data[j] = antrian.data[j+1];
data[i]=NULL;
i--;
}
}
Manfaat Queue
a. digunakan sistem operasi untuk mengatur eksekusi task dalam suatu sistem
untuk mencapai perlakuan yang "adil" (seringkali queue disebut waiting line)
b. untuk mailbox dalam komunikasi antar proses
c. untuk buffer dalam mekanisme printspooler, komunikasi data
d. untuk simulasi dan modeling (misalnya simulasi sistem pengendali lalu lintas
udara) dalam memprediksi performansi
Contoh Soal
Buatlah program dalam bentuk menu untuk mengimplementasikan antrian.
Menu tersebut berisi memasukkan data, menghapus data, menampilkan data, dan keluar
#include<stdio.h>
#include<conio.h>
void main()
{
int i=0, data[8], x, hapus;
char pil;
do {
printf("1. Tambah Antriann");
printf("2. Hapus Antriann");
printf("3. Lihat Antriann");
printf("4. Keluarn");
printf("Silahkan masukkan pilihan anda... ");
pil=getche();
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
printf("nnAnda salah mengetikkan inputan...n");
else
{
if(pil=='1') //PUSH
{
if(cek==20)
printf("nQueue Penuhnn");
else
{
printf("nMasukkan data: );scanf("%i",&x);
data[i]=x;
i++;
}
}
else
{
if(pil=='2') //POP
{
if(i==0)
printf("nQueue kosongnn");
else
{
hapus=data[0];
for(int j=0;j<i;j++)
data[j]=data[j+1];
data[i-1]=NULL;
i--;
printf("nNilai = %i terhapus.",hapus);
}
7
getch();
}
else
{
if(pil=='3') //CEK DATA
{
if(i==0)
printf("nQueue Kosong.nn");
else
{
printf("n");
for(int z=0;z<cek;z++)
{
printf(" | ");
printf("%i",data[z]);
printf(" | ");
}
}
getch();
}
}
}
}
}while(pil!='4');
}
Soal
Carilah nilai total, rata-rata, terbesar dan terkecil dari elemen queue dengan
menggunakan fungsi di atas
Daftar Pustaka
1. _____. Struktur Data dengan Bahasa C. Team PPTI Universitas Kristen satya
Wacana
2. Andri Kristanto. 2003. Struktur Data dengan C++. Yogyakarta: Graha Ilmu
3. Antonius Rachmat C. Handout Struktur Data. Prodi Teknik Informatika
Universitas Kristen Duta Wacana
4. Santoso, P. I. 1992. Struktur data Turbo Pascal 6.0. Yogyakarta: Penerbit Andi
Offset
5. Setiawan, S. dan Wibowo, A.M. Handout Struktur Data dan Algoritma.
Fakultas Ilmu Komputer Universitas Indonesia
6. Titi. Handout Struktur data. Teknik Informatika Institut Teknologi Bandung

More Related Content

What's hot

Kisi kisi uas struktur data
Kisi kisi uas struktur dataKisi kisi uas struktur data
Kisi kisi uas struktur dataDwi Mardianti
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )istiqlal
 
Materi kalkulus 1
Materi kalkulus 1Materi kalkulus 1
Materi kalkulus 1pt.ccc
 
Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3said zulhelmi
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data ArraySimon Patabang
 
BAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORBAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORMustahal SSi
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Miningdedidarwis
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Aprioridedidarwis
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)Kelinci Coklat
 
4 rekursi
4 rekursi4 rekursi
4 rekursiYu Nita
 
Soal Pascal OSN Komputer
Soal Pascal OSN KomputerSoal Pascal OSN Komputer
Soal Pascal OSN KomputerLabieb Maududi
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)Kelinci Coklat
 
Data Mining - Naive Bayes
Data Mining - Naive BayesData Mining - Naive Bayes
Data Mining - Naive Bayesdedidarwis
 

What's hot (20)

Sistem Pakar Certainty factor
Sistem Pakar Certainty factor Sistem Pakar Certainty factor
Sistem Pakar Certainty factor
 
Kisi kisi uas struktur data
Kisi kisi uas struktur dataKisi kisi uas struktur data
Kisi kisi uas struktur data
 
Latihan soal struktur data
Latihan soal struktur dataLatihan soal struktur data
Latihan soal struktur data
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Materi kalkulus 1
Materi kalkulus 1Materi kalkulus 1
Materi kalkulus 1
 
Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data Array
 
BAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORBAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTOR
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
 
JAWABAN Struktur data soal-latihan-2
JAWABAN Struktur data soal-latihan-2JAWABAN Struktur data soal-latihan-2
JAWABAN Struktur data soal-latihan-2
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Apriori
 
Sorting ppt
Sorting ppt Sorting ppt
Sorting ppt
 
Graph-Struktur Data.pdf
Graph-Struktur Data.pdfGraph-Struktur Data.pdf
Graph-Struktur Data.pdf
 
Soal uas struktur data
Soal uas struktur dataSoal uas struktur data
Soal uas struktur data
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
4 rekursi
4 rekursi4 rekursi
4 rekursi
 
Soal Pascal OSN Komputer
Soal Pascal OSN KomputerSoal Pascal OSN Komputer
Soal Pascal OSN Komputer
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
 
Data Mining - Naive Bayes
Data Mining - Naive BayesData Mining - Naive Bayes
Data Mining - Naive Bayes
 

Viewers also liked

Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianGeorgius Rinaldo
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queueRhe Dwi Yuni
 
Algoritma dan pengetahuan terkait (menghitung, konversi, dll)
Algoritma dan pengetahuan terkait (menghitung, konversi, dll) Algoritma dan pengetahuan terkait (menghitung, konversi, dll)
Algoritma dan pengetahuan terkait (menghitung, konversi, dll) Fazar Ikhwan Guntara
 
Materi Struktur data QUEUE
Materi Struktur data QUEUEMateri Struktur data QUEUE
Materi Struktur data QUEUEMeta N
 
Queue as data_structure
Queue as data_structureQueue as data_structure
Queue as data_structureeShikshak
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stackIcha Dicaprio
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_arii_manroe
 
Html programacao web
Html programacao webHtml programacao web
Html programacao webalancarlos_rj
 
Penggunaan if dan teknik dasar bagian 2
Penggunaan if dan teknik dasar bagian 2Penggunaan if dan teknik dasar bagian 2
Penggunaan if dan teknik dasar bagian 2Fazar Ikhwan Guntara
 
Penggunaan if dan teknik dasar bagian 1
Penggunaan if dan teknik dasar bagian 1Penggunaan if dan teknik dasar bagian 1
Penggunaan if dan teknik dasar bagian 1Fazar Ikhwan Guntara
 
contoh program sederhana bahasa C
contoh program sederhana bahasa Ccontoh program sederhana bahasa C
contoh program sederhana bahasa Csyifa nabila
 
Rituales a la diosa Hécate
Rituales a la diosa HécateRituales a la diosa Hécate
Rituales a la diosa Hécatealumnosdeamparo1
 
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ixDevi Apriansyah
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur DataAs Faizin
 

Viewers also liked (20)

Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Algoritma dan pengetahuan terkait (menghitung, konversi, dll)
Algoritma dan pengetahuan terkait (menghitung, konversi, dll) Algoritma dan pengetahuan terkait (menghitung, konversi, dll)
Algoritma dan pengetahuan terkait (menghitung, konversi, dll)
 
Materi Struktur data QUEUE
Materi Struktur data QUEUEMateri Struktur data QUEUE
Materi Struktur data QUEUE
 
2894065
28940652894065
2894065
 
Queue
QueueQueue
Queue
 
Queue as data_structure
Queue as data_structureQueue as data_structure
Queue as data_structure
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
 
Html programacao web
Html programacao webHtml programacao web
Html programacao web
 
Penggunaan if dan teknik dasar bagian 2
Penggunaan if dan teknik dasar bagian 2Penggunaan if dan teknik dasar bagian 2
Penggunaan if dan teknik dasar bagian 2
 
Penggunaan if dan teknik dasar bagian 1
Penggunaan if dan teknik dasar bagian 1Penggunaan if dan teknik dasar bagian 1
Penggunaan if dan teknik dasar bagian 1
 
contoh program sederhana bahasa C
contoh program sederhana bahasa Ccontoh program sederhana bahasa C
contoh program sederhana bahasa C
 
Ruby on Redis
Ruby on RedisRuby on Redis
Ruby on Redis
 
Rituales a la diosa Hécate
Rituales a la diosa HécateRituales a la diosa Hécate
Rituales a la diosa Hécate
 
Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
 
Ifc modul 7 (queue)
Ifc   modul 7 (queue)Ifc   modul 7 (queue)
Ifc modul 7 (queue)
 
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ix
 
Kelompok 3
Kelompok 3Kelompok 3
Kelompok 3
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur Data
 

Similar to QUEUE-STATISTIK

Struktur data pertemuan 11
Struktur data pertemuan 11Struktur data pertemuan 11
Struktur data pertemuan 11ajonona
 
TPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfTPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfRaihanFadila1
 
Antrean (queue).pptx
Antrean (queue).pptxAntrean (queue).pptx
Antrean (queue).pptxmisariska1
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Setia Juli Irzal Ismail
 
Tugas kelompok 3
Tugas kelompok 3Tugas kelompok 3
Tugas kelompok 3yusriren
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viiiDevi Apriansyah
 
Ketoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptxKetoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptxputii1
 
Tugas3
Tugas3Tugas3
Tugas3Av Ri
 
STACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikSTACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikkoamik4
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueKuliahKita
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queueMuhammad Najib
 
Stack & queue by stanly maarende
Stack & queue by stanly maarendeStack & queue by stanly maarende
Stack & queue by stanly maarendeSten Maarende
 

Similar to QUEUE-STATISTIK (20)

queue antrian
queue antrianqueue antrian
queue antrian
 
Queue
QueueQueue
Queue
 
Struktur data pertemuan 11
Struktur data pertemuan 11Struktur data pertemuan 11
Struktur data pertemuan 11
 
Queue
Queue Queue
Queue
 
Struktur data
Struktur dataStruktur data
Struktur data
 
TPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfTPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdf
 
30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf
 
Antrean (queue).pptx
Antrean (queue).pptxAntrean (queue).pptx
Antrean (queue).pptx
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)
 
Tugas kelompok 3
Tugas kelompok 3Tugas kelompok 3
Tugas kelompok 3
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
 
Ketoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptxKetoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptx
 
Chapter 4b queue
Chapter 4b   queueChapter 4b   queue
Chapter 4b queue
 
Tugas3
Tugas3Tugas3
Tugas3
 
4 queue2
4 queue24 queue2
4 queue2
 
Struktur data
Struktur dataStruktur data
Struktur data
 
STACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikSTACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknik
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - Queue
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queue
 
Stack & queue by stanly maarende
Stack & queue by stanly maarendeStack & queue by stanly maarende
Stack & queue by stanly maarende
 

More from muissyahril

Sd pertemuan 1 & 2
Sd   pertemuan 1 & 2Sd   pertemuan 1 & 2
Sd pertemuan 1 & 2muissyahril
 
Sd pertemuan 3 & 4
Sd   pertemuan 3 & 4Sd   pertemuan 3 & 4
Sd pertemuan 3 & 4muissyahril
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6muissyahril
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6muissyahril
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)muissyahril
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)muissyahril
 
Sd pertemuan 1 & 2
Sd   pertemuan 1 & 2Sd   pertemuan 1 & 2
Sd pertemuan 1 & 2muissyahril
 

More from muissyahril (10)

Sd pertemuan 1 & 2
Sd   pertemuan 1 & 2Sd   pertemuan 1 & 2
Sd pertemuan 1 & 2
 
Sd pertemuan 3 & 4
Sd   pertemuan 3 & 4Sd   pertemuan 3 & 4
Sd pertemuan 3 & 4
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Queue antrian
Queue antrian Queue antrian
Queue antrian
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 
Sd pertemuan 1 & 2
Sd   pertemuan 1 & 2Sd   pertemuan 1 & 2
Sd pertemuan 1 & 2
 

Recently uploaded

Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiCristianoRonaldo185977
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxrikosyahputra0173
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfAuliaAulia63
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxImahMagwa
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxzidanlbs25
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptAhmadSyajili
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 

Recently uploaded (7)

Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdf
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptx
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.ppt
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 

QUEUE-STATISTIK

  • 1. 1 BAB 5 QUEUE (ANTRIAN) 1. Tujuan Instruksional Umum a. Mahasiswa mampu melakukan perancangan aplikasi menggunakan struktur Queue (antrian) b. Mahasiswa mampu melakukan analisis pada algoritma Queue yang dibuat c. Mahasiswa mampu mengimplementasikan algoritma Queue pada sebuah aplikasi secara tepat dan efisien 2. Tujuan Instruksional Khusus a. Mahasiswa mampu menjelaskan mengenai Queue dan Dequeue b. Mahasiswa mampu membuat dan mendeklarasikan Abstraksi Tipe Data Queue c. Mahasiswa mampu menerapkan operasi push dan pop elemen pada algoritma Queue Pengertian Queue (Antrian) Struktur data linear adalah kumpulan komponen-komponen yang tersusun membentuk satu garis linear. Bila komponen-komponen ditambahkan (atau dikurangi), maka struktur-struktur tersebut berkembang (atau menyusut). Queue merupakan struktur data linear dimana penambahan komponen dilakukan di satu ujung, sementara pengurangan dilakukan di ujung lain (yang satu lagi). Queue (Antrian) adalah suatu 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 dengan sisi depan atau front). DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian. Antrian dapat dibuat dengan menggunakan: Liniear Array dan Circular Array. Kalau tumpukan menggunakan prinsip LIFO (Last Input First Output), maka pada antrian prinsip yang digunakan adalah FIFO (First Input First Output). Antrian banyak dijumpai dalam kehidupan sehari-hari, misalnya dalam menonton bioskop dimana melakukan antri dalam membeli tiket, mobil-mobil yang antri membeli karcis di pintu jalan tol akan membentuk antrian, para calon mahasiswa yang mendaftarkan diri untuk ikut ujian masuk perguruan tinggi akan membentuk antrian dan contoh-contoh lain yang banyak dijumpai dalam kehidupan sehari-hari. Contoh lain yang lebih relevan dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu (time-sharing computer system) dimana ada sejumlah pemakai yang menggunakan sistem tersebut secara serempak. Karena sistem ini biasanya menggunakan sebuah prosesor dan sebuah memori utama, maka jika prosesor sedang dipakai oleh seorang pemakai, pemakai-pemakai yang lain harus antri sampai gilirannya tiba. Antrian ini mungkin tidak dilayani secara FIFO murni, tetapi didasarkan fase tertentu. Antrian yang mengandung unsur prioritas dinamakan dengan antrian berprioritas (priority queue). QUEUE DENGAN LINIEAR ARRAY Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya. Sehingga membutuhkan variabel Head dan Tail dengan aturan sebagai berikut: 1. Elemen pertama (HEAD) dan elemen terakhirnya (TAIL),
  • 2. 2 2. Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut: a. Penyisipan selalu dilakukan setelah elemen terakhir b. Penghapusan selalu dilakukan pada elemen pertama 3. Satu elemen dengan yang lain dapat diakses melalui informasi NEXT 4. Struktur data ini banyak dipakai dalam informatika, misalnya untuk merepresentasi : a. antrian job yang harus ditangani oleh sistem operasi b. antrian dalam dunia nyata. Abstraksi Tipe Data Queue Seperti halnya stack (tumpukan) spesifikasi queue (antrian) tersebutb dapat diimplementasikan di level yang lebih rendah baik dengan array ataupun linear linked list. Dalam implementasi array, konsep circular-array dapat diaplikasikan untuk menghindari operasi penggeseran isi array saat dilakukan pop(). Dalam konsep circular array, inkrementasi indeks array yang panjangnya n, selalu di modulo dengan panjang array tsb. sehingga variabel indeks yang semula berharga n-1 jika diinkremen akan "wrap-around" ke 0. Untuk mengetahui posisi ujung-ujung dari item data yang disimpan dalam array, digunakan variabel indeks front (menunjuk ke posisi item yang akan diambil berikutnya) dan rear (posisi elemen array berikutnya yang akan ditempati). Suatu variabel count digunakan untuk mengetahui kasus khusus: apakah queue kosong atau penuh. Jika penuh maka mekanisme memperbesar kapasitas queue dapat diaplikasikan. Dalam implementasi struktur data linier, maka bagian muka dari queue adalah awal dari list (di-pop dengan delete-first) dan bagian belakang adalah akhir dari list (di- push dengan insert-last). Mengingat operasi insert-last sering dilakukan maka digunakan dua variabel referensi yang digunakan sebagai pointer: front untuk node pertama dari list dan rear utuk node paling akhir. Deklarasi Abatraksi Tipe Data Queue Deklarasi Abstraksi tipe Data Queue #define MAX 8 typedef struct { int data[MAX]; int head; int tail; } Queue; Queue antrian; Gambar 1. Linier Array Queue Operasi-operasi pada Queue 1. Membuat Queue Kosong Untuk menciptakan dan menginisialisasi Queue, dengan cara membuat Head dan Tail sama dengan NULL. Deklarasi Membuat Queue void Create() { antrian.head= NULL; antrian.tail= NULL; } Gambar 2. Membuat Queue Kosong
  • 3. 3 2. Memeriksa Queue elemen kosong Untuk memeriksa apakah Antrian sudah penuh atau belum, dengan cara 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. Pergerakan pada Antrian terjadi dengan penambahan elemen antrian kebelakang, yaitu menggunakan nilai Tail Deklarasi Queue kosong int IsEmpty() { if(antrian.tail==NULL) return 1; else return 0; } 3. Memeriksa Queue elemen penuh 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. Deklarasi Queue Penuh int IsFull() { if(antrian.tail==MAX-1) return 1; else return 0; } Gambar 3. Queue Penuh 4. Menambah elemen Queue (Enqueue) Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang. Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail. Gambar 4 memperlihatkan penambahan elemen queue. Deklarasi Enqueue void Enqueue(int data) { if(IsEmpty()==1) { antrian.head=antrian.tail=0; antrian.data[antrian.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]); } }
  • 4. 4 Gambar 4. Enqueue Data 5. Menghapus elemen Queue (Dequeue) Digunakan untuk menghapus elemen terdepan/pertama dari antrian dengan cara mengurangi counter Tail dan menggeser semua elemen antrian kedepan. Penggeseran dilakukan dengan menggunakan looping. Gambar 5 memperlihatkan penghapusan elemen queue. Deklarasi Dequeue int Dequeue() { int i; int e = antrian.data[antrian.head]; for(i=antrian.head;i<=antrian.tail-1;i++) { antrian.data[i] = antrian.data[i+1]; } antrian.tail--; return e; } Gambar 5. Dequeue Data 6. Membersihkan indeks Queue Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head sama dengan NULL. Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai NULL sehingga elemen-elemen Antrian tidak lagi terbaca. Deklarasi Clear Queue void Clear()
  • 5. 5 { antrian.head=antrian.tail=NULL; printf("data clear"); } 7. Menampilkan elemen Queue Untuk menampilkan nilai-nilai elemen antrian dengan menggunakan looping dari head sampai dengan tail. Deklarasi menampilkan elemen Queue void Tampil() { if(IsEmpty()==0) { for(int i=antrian.head;i<=antrian.tail;i++) { printf("%d ",antrian.data[i]); } } else printf("data kosong!n"); } 8. PUSH elemen Queue Salah satu algoritma untuk proses memasukkan data (PUSH) adalah sebagai berikut: 1. Masukkan inputan data 2. Jika variabel i = MAX (nilai maksimum array), maka kerjakan langkah 3. Jika i ≠ MAX, maka kerjakan langkah 4. 3. Tampilkan “Queue sudah penuh”. 4. Selama i < MAX, maka i = i + 1 dan data [i] = data Deklarasi PUSH elemen Queue If(i == MAX) Printf(“nQueue sudah penuhnn”); Else { printf(“Masukkan data : “); scanf(“%d”, &data[i]); i = i + 1; } 9. POP elemen Queue Salah satu algoritma untuk proses mengeluarkan data (POP) adalah sebagai berikut: 1. Jika i = 0, maka tampilkan “Queue kosong” lalu kerjakan langkah 4. Jika i ≠ 0, maka lakukan langkah 2. 2. Mulai hapus ← data[0] dan data[i-1] ← data[i] 3. i ← i – 1 4. data[0] ← NULL Deklarasi POP elemen Queue If(i == 0) Printf(“Queue kosong”); Else { hapus = data[0]; for(int j = 0; j < = i; j ++) {
  • 6. 6 data[j] = antrian.data[j+1]; data[i]=NULL; i--; } } Manfaat Queue a. digunakan sistem operasi untuk mengatur eksekusi task dalam suatu sistem untuk mencapai perlakuan yang "adil" (seringkali queue disebut waiting line) b. untuk mailbox dalam komunikasi antar proses c. untuk buffer dalam mekanisme printspooler, komunikasi data d. untuk simulasi dan modeling (misalnya simulasi sistem pengendali lalu lintas udara) dalam memprediksi performansi Contoh Soal Buatlah program dalam bentuk menu untuk mengimplementasikan antrian. Menu tersebut berisi memasukkan data, menghapus data, menampilkan data, dan keluar #include<stdio.h> #include<conio.h> void main() { int i=0, data[8], x, hapus; char pil; do { printf("1. Tambah Antriann"); printf("2. Hapus Antriann"); printf("3. Lihat Antriann"); printf("4. Keluarn"); printf("Silahkan masukkan pilihan anda... "); pil=getche(); if(pil!='1' && pil !='2' && pil !='3' && pil!='4' ) printf("nnAnda salah mengetikkan inputan...n"); else { if(pil=='1') //PUSH { if(cek==20) printf("nQueue Penuhnn"); else { printf("nMasukkan data: );scanf("%i",&x); data[i]=x; i++; } } else { if(pil=='2') //POP { if(i==0) printf("nQueue kosongnn"); else { hapus=data[0]; for(int j=0;j<i;j++) data[j]=data[j+1]; data[i-1]=NULL; i--; printf("nNilai = %i terhapus.",hapus); }
  • 7. 7 getch(); } else { if(pil=='3') //CEK DATA { if(i==0) printf("nQueue Kosong.nn"); else { printf("n"); for(int z=0;z<cek;z++) { printf(" | "); printf("%i",data[z]); printf(" | "); } } getch(); } } } } }while(pil!='4'); } Soal Carilah nilai total, rata-rata, terbesar dan terkecil dari elemen queue dengan menggunakan fungsi di atas Daftar Pustaka 1. _____. Struktur Data dengan Bahasa C. Team PPTI Universitas Kristen satya Wacana 2. Andri Kristanto. 2003. Struktur Data dengan C++. Yogyakarta: Graha Ilmu 3. Antonius Rachmat C. Handout Struktur Data. Prodi Teknik Informatika Universitas Kristen Duta Wacana 4. Santoso, P. I. 1992. Struktur data Turbo Pascal 6.0. Yogyakarta: Penerbit Andi Offset 5. Setiawan, S. dan Wibowo, A.M. Handout Struktur Data dan Algoritma. Fakultas Ilmu Komputer Universitas Indonesia 6. Titi. Handout Struktur data. Teknik Informatika Institut Teknologi Bandung