SlideShare a Scribd company logo
Queue / Antrian
Akmal, S.Si, MT
Mata Kuliah : Struktur Data
Tujuan
 Mahasiswa dapat: menganalisis antrian
dan menyajikannya dengan operasi
InsertQueue dan DeleteQueue, baik
dengan array maupun dengan list berkait
dengan benar
Pokok Bahasan
 Pengertian Antrian
 Penyajian Antrian dengan Array dan List
 Operasi Insert Queue dan Delete Queue
 Antrian berprioritas
Pengertian Queue
 Queue adalah contoh lain dari ADT. Konsep kerja dari queue / Antrian
adalah FIFO ( “First-In, First-Out” ) atau Pertama Datang maka akan
menjadi yang Pertama Dilayani.
 InsertQueue dan DeleteQueue merupakan 2 buah operasi dasar yang
berhubungan dengan queue. InsertQueue menunjuk pada memasukkan
data pada akhir queue sedangkan DeleteQueue berarti mengeluarkan
elemen dari queue tersebut.
 Untuk mengingat bagaimana queue bekerja, ingatlah arti khusus dari
queue yaitu baris.
A B C D E FKeluar Masuk
Depan
(InsertQueue)(DeleteQueue)
Penyajian Antrian Menggunakan List Berkait
 Karena penyisipan selalu dari belakang (Insert Last), sementara
untuk menambah elemen selalu harus dicari dulu elemen terakhir
last (yang next nya bernilai NULL), sehingga algoritma ini menjadi
kurang efektif,
 Oleh sebab itu perlu dilakukan modifikasi / perubahan pada
struktur datanya dengan cara menambahkan suatu pointer Tail
sebagai pengenal Queue. Jadi ada 2 buah pengenal pada Antrian
yaitu Head dan Tail.
B C D
Head
A
Masuk
(InsertQueue)
Keluar
(DeleteQueue)
Deklarasi Queue
 Gambaran perubahan struktur data Queue dari linked list singly biasa adalah :
struct ElemenQueue {
char info;
ElemenQueue* next;
};
typedef ElemenQueue* pointer;
typedef pointer List;
struct Queue {
List Head;
List Tail;
};
Queue Q;
B C D
Q.Head
A
Masuk
(InsertQueue)
Keluar
(DeleteQueue)
Q.Tail
Insert Queue
Ada 2 kasus yang harus ditangani yaitu :
* Kasus Kosong
 Kasus ada isi
 Dalam hal ini tidak diperlukan lagi pencarian elemen terakhir karena elemen terakhir
selalu dicatat oleh Q.Tail
Q.Head Q.Tail
A
pBaru
Q.Head Q.Tail
A
pBaru
1 2
1. Q.Head=pBaru
2. Q.Tail=pBaru
B C
D
Q.Head
A
pBaru
Q.Tail
1
2
1. Q.Tail->next = pBaru
2. Q.Tail=pBaru
Fungsi insertQueue
void insertQueue( Queue& Q, pointer pBaru){
if (Q.Head==NULL && Q.Tail==NULL) { // kosong
Q.Head = PBaru;
Q.Tail = PBaru;
}
else { // ada isi
Q.Tail->next = PBaru;
Q.Tail = PBaru;
}
}
Delete Queue
Ada 3 kasus yang harus ditangani yaitu :
a. Queue kosong
Ciri dari Queue kosong adalah Q.Head==NULL dan Q.Tail==NULL
Tidak ada elemen yang dihapus
b. Queue dengan isi 1 elemen
List akan menjadi kosong dengan keadaan Head dan Tail bernilai NULL
Q.Head=NULL
Q.Tail = NULL
c. Queue dengan isi lebih dari 1 elemen
A B C
Q.Head
pHapus
1
3
2
Q.Tail
D
Fungsi DeleteQueue
void deleteQueue(Queue& Q, pointer& pHapus){
cout<<"Delete Queue"<<endl;
if (Q.Head==NULL && Q.Tail==NULL) { //kasus kosong
pHapus=NULL;
cout<<"List Queue kosong "<<endl;
}
else if (Q.Head->next==NULL) { // kasus isi 1 elemen
pHapus=Q.Head;
Q.Head=NULL;
Q.Tail=NULL;
}
else { // kasus > 1 elemen
pHapus=Q.Head;
Q.Head=Q.Head->next;
pHapus->next=NULL;
}
}
Penyajian Antrian Menggunakan Array
 Deklarasi array untuk mendefinisikan struktur data antrian adalah dengan
cara seperti berikut
 Ada 2 operasi dasar yang bisa dilakukan dengan menggunakan array yaitu
insertQueue dan deleteQueue.
 Untuk membuat sebuah Queue kosong adalah dengan membuat suatu
fungsi createQueue dengan memberikan indeks head=0 dan tail=-1;
const int maxElemen = 255;
struct Queue{
char isi[maxElemen];
int head; // depan
int tail; // belakang
};
void createQueue (Queue& Q){
Q.head = 0;
Q.tail = -1;
}
Illustrasi Antrian
 Penyisipan selalu di belakang dengan indexnya bertambah 1 dari keadaan
sebelumnya.
 Sedangkan penghapusan selalu di posisi depan. Selanjutnya semua elemen yang
tersisa digeser posisinya ke depan.
0
1
2
3
4
5
head=0
tail =-1
B
C
D
0
1
2
3
4
5
head=0
tail=3
0
1
2
3
4
5
tail=2
E
0
1
2
3
4
5
tail=3
A
B
C
D
D masuk
A keluar
Langsung di geser
E masuk
Antrian dengan menggeser elemen
C
D
B
Insert Queue / Penyisipan
 Kasus yang ditangani dalam insert Queue adalah jika kapasitas array
sudah penuh dan jika belum. Jika sudah penuh maka tidak bisa lagi
dilakukan penyisipan, tetapi jika belum maka index dari Tail bertambah 1
dan kemudian di posisi index yang baru elemen yang baru disisipkan.
 Fungsi untuk insert Queue adalah sbb:
void insertQueue(Queue& Q, char elemen) {
cout<<"Insert Queue (Antrian) "<<endl;
if (Q.tail==maxElemen-1){
cout<<"Antrian sudah penuh"<<endl;
}
else {
Q.tail=Q.tail + 1;
Q.isi[Q.tail] = elemen;
}
}
Delete Queue / Penghapusan
 Untuk melakukan proses delete Queue dengan cara sbb:
 Kasus yang ditangani ádalah kasus kosong dan ada isi. Untuk kasus kosong (dengan
ciri index head>tail, atau tail=-1) maka tidak ada yang dihapus, sementara untuk
kasus ada isi setelah data yang dihapus diamankan maka selanjutnya elemen yang
lain digeser ke depan satu persatu.
void deleteQueue(Queue& Q, char& elemenHapus){
cout<<"Delete Queue (Antrian) "<<endl;
if (Q.head>Q.tail){ // atau Q.tail=-1
cout<<"Antrian kosong"<<endl;
}
else {
elemenHapus= Q.isi[Q.head]; //Q.head=0
for (int i=0;i<Q.tail;i++){ // Geser ke depan
Q.isi[i]=Q.isi[i+1];
}
Q.tail=Q.tail-1;
}
}
Queue Circular
 Terlihat dalam fungsi sebelumnya ada ketidakefisienan ketika dilakukan proses
delete yaitu selalu terjadi proses pergeseran elemen. Untuk itu dilakukan pengaturan
penyimpanan array dengan bentuk circular (memutar) untuk menghindari ketidak
efisienan ketika proses delete tersebut. Dengan bentuk memutar ini maka elemen
pertama larik terletak berdekatan dengan elemen terakhir larik.
 Gambaran logic
D
E
F
0
1
2
3
4
5
Depan=3
Belakang=5
D
E
F
0
1
2
3
4
5
Depan=3
Belakang=0
F
0
1
2
3
4
5 Depan=5
Belakang=0
F
0
1
2
3
4
5 Depan=5
Belakang=3
G
G G
H
I
G masuk
D keluar
E keluar
H masuk
I masuk
Antrian secara circular (memutar)
Insert Queue Circular
 Kasus yang ditangani adalah kasus queue masih kosong dan kasus sudah ada isi.
Jika kosong maka indeks Q.Head=0 dan juga Q.Tail=0.
 Jika ada isi maka dilihat posisi Q.Tail nya. Jika posisi Q.Tail belum di akhir indeks
maka posisi indeks Q.tail akan bertambah 1, tetapi jika sudah di akhir indeks maka
penyisipan akan diletakkan diposisi 0.
if (Q.tail< maxElemen-1 ) {
Q.tail=Q.tail+1;
}
else {
Q.tail=0;
}
 Selanjutnya akan diperiksa apakah posisi baru yang akan ditempati masih kosong
atau sudah ada isi. Jika ada isi artinya antrian sudah penuh.
void createQueue(Queue& Q){
Q.head = -1;
Q.tail = -1;
}
Fungsi InsertQueue sirkular
void insertQueue(Queue& Q, char elemen) {
int posisiTemp;
cout<<"Insert Queue (Antrian) "<<endl;
if (Q.tail==-1) { // kosong pertama kali
Q.head=0;
Q.tail=0;
Q.isi[Q.tail] = elemen;
}
else {
posisiTemp=Q.tail; // amankan posisi Q.tail
if (Q.tail< maxElemen-1 ) { // proses circular
Q.tail=Q.tail+1;
}
else { // Q.tail>=maxElemen-1
Q.tail=0;
}
if (Q.tail==Q.head){
cout<<"Antrian sudah penuh"<<endl;
Q.tail=posisiTemp; // kembalikan posisi Q.tail
}
else {
Q.isi[Q.tail] = elemen;
}
}
}
Delete Queue Circular
void deleteQueue(Queue& Q, char& elemenHapus){
cout<<"Delete Queue (Antrian) "<<endl;
if (Q.head==-1 ) { //kosong
cout<<"Antrian kosong"<<endl;
}
else if (Q.head==Q.tail){ // isi 1 elemen
elemenHapus= Q.isi[Q.head];
Q.isi[Q.head]=' ';
Q.head=-1; // kembalikan ke kosong
Q.tail=-1;
}
else { // isi > 1 elemen
elemenHapus= Q.isi[Q.head];
Q.isi[Q.head]=' ';
if (Q.head<maxElemen-1) {
Q.head=Q.head+1;
}
else { // Q.head=maxElemen-1
Q.head=0;
}
}
}
Latihan dan Tugas
 Buatlah prosedur untuk menyisipkan elemen dalam Priority Queue / Antrian
berprioritas yang bisa terjadi diawal, ditengah atau dibelakang antrian. Priority
Queue banyak digunakan dalam S.O. misalnya untuk mencetak suatu job duluan
karena punya prioritas tinggi.
Struktur datanya adalah sbb :
type ElmtQueue : <Info : InfoType,
Prior : integer,
Next : address >
type Queue : < Head : address, Tail : address>
Procedure InsertPriorQueue (Input / Output Q : Queue, input P : address)
{I.S. Queue mungkin kosong }
{F.S. Priority Queue adalah penyisipan elemen P ke dalam antrian dengan aturan khusus
sbb :
 Elemen P dengan prioritas tertentu (10 - tertinggi, 1 - terendah) akan menyisip
sebelum elemen dengan prioritas yang lebih rendah darinya.
 Jika prioritas sama maka P akan menyisip tepat dibelakang deretan elemen yang
sama prioritasnya
 P akan menyisip dibelakang antrian jika prioritasnya paling kecil atau sama dengan
prioritas Tail

More Related Content

What's hot

Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi Pengetahuan
Sherly Uda
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
istiqlal
 
Algoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary SearchAlgoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary Search
KuliahKita
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
aiiniR
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
Kelinci Coklat
 
Heuristic search-best-first-search
Heuristic search-best-first-searchHeuristic search-best-first-search
Heuristic search-best-first-searchAMIK AL MA'SOEM
 
Bagan terstruktur
Bagan terstrukturBagan terstruktur
Bagan terstruktur
iimpunya3
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
ohohervin
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar KriptografiRoziq Bahtiar
 
Mengenal Program Jahat Komputer
Mengenal Program Jahat KomputerMengenal Program Jahat Komputer
Mengenal Program Jahat Komputer
Agung Firdausi Ahsan
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)
Tri Sugihartono
 
Array dan Contoh
Array dan ContohArray dan Contoh
Array dan Contoh
Agung Firdausi Ahsan
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
Rhe Dwi Yuni
 
Sistem bus komputer
Sistem bus komputerSistem bus komputer
Sistem bus komputer
Shary Armonitha
 
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Nabil Muhammad Firdaus
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
Fahrul Usman
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & Tautologi
Huzairi Zairi
 
Bab 12-kode-huffman
Bab 12-kode-huffmanBab 12-kode-huffman
Bab 12-kode-huffman
Hendriyawan Achmad
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
Auliaa Oktarianii
 

What's hot (20)

Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi Pengetahuan
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Algoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary SearchAlgoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary Search
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
 
Heuristic search-best-first-search
Heuristic search-best-first-searchHeuristic search-best-first-search
Heuristic search-best-first-search
 
Bagan terstruktur
Bagan terstrukturBagan terstruktur
Bagan terstruktur
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi
 
Mengenal Program Jahat Komputer
Mengenal Program Jahat KomputerMengenal Program Jahat Komputer
Mengenal Program Jahat Komputer
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)
 
Array dan Contoh
Array dan ContohArray dan Contoh
Array dan Contoh
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Sistem bus komputer
Sistem bus komputerSistem bus komputer
Sistem bus komputer
 
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & Tautologi
 
Bab 12-kode-huffman
Bab 12-kode-huffmanBab 12-kode-huffman
Bab 12-kode-huffman
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 

Similar to 7. Queue (Struktur Data)

Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
Georgius Rinaldo
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - Antrian
KuliahKita
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - Queue
KuliahKita
 
Struktur data pertemuan 11
Struktur data pertemuan 11Struktur data pertemuan 11
Struktur data pertemuan 11ajonona
 
30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf
EnungSitiNurhidayah1
 
Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
Deprilana Ego Prakasa
 
Queue
QueueQueue
Bab 4 queue (antrian)
Bab 4 queue (antrian)Bab 4 queue (antrian)
Bab 4 queue (antrian)
Fahuda E
 
TPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfTPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdf
RaihanFadila1
 
Queue
QueueQueue
Queue
Sherly Uda
 
Queue
Queue Queue
2894065
28940652894065
2894065
Sera Dewi
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
arii_manroe
 
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ix
Devi Apriansyah
 

Similar to 7. Queue (Struktur Data) (20)

Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - Antrian
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - Queue
 
Queue
QueueQueue
Queue
 
Struktur data pertemuan 11
Struktur data pertemuan 11Struktur data pertemuan 11
Struktur data pertemuan 11
 
Pertemuan 6 revisijan2013-mhs
Pertemuan 6 revisijan2013-mhsPertemuan 6 revisijan2013-mhs
Pertemuan 6 revisijan2013-mhs
 
30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf
 
Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
 
Queue antrian
Queue antrian Queue antrian
Queue antrian
 
Queue antrian
Queue antrian Queue antrian
Queue antrian
 
queue antrian
queue antrianqueue antrian
queue antrian
 
4 queue2
4 queue24 queue2
4 queue2
 
Queue
QueueQueue
Queue
 
Bab 4 queue (antrian)
Bab 4 queue (antrian)Bab 4 queue (antrian)
Bab 4 queue (antrian)
 
TPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfTPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdf
 
Queue
QueueQueue
Queue
 
Queue
Queue Queue
Queue
 
2894065
28940652894065
2894065
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
 
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ix
 

More from Kelinci Coklat

Bab 7 integrasi numerik
Bab 7 integrasi numerikBab 7 integrasi numerik
Bab 7 integrasi numerik
Kelinci Coklat
 
Bab 6 turunan numerik
Bab 6 turunan numerikBab 6 turunan numerik
Bab 6 turunan numerik
Kelinci Coklat
 
Bab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanBab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutan
Kelinci Coklat
 
Bab 5 interpolasi
Bab 5 interpolasiBab 5 interpolasi
Bab 5 interpolasi
Kelinci Coklat
 
Bab 4 sistem persamaan linear
Bab 4 sistem persamaan linearBab 4 sistem persamaan linear
Bab 4 sistem persamaan linear
Kelinci Coklat
 
Bab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearBab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linear
Kelinci Coklat
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
Kelinci Coklat
 
Bab 1 pendahuluan
Bab 1 pendahuluanBab 1 pendahuluan
Bab 1 pendahuluan
Kelinci Coklat
 
Bab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaBab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasa
Kelinci Coklat
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
Kelinci Coklat
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)
Kelinci Coklat
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
Kelinci Coklat
 
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
4.2. Operasi Dasar Singly Linked List  2 (primitive list)4.2. Operasi Dasar Singly Linked List  2 (primitive list)
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
Kelinci Coklat
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
Kelinci Coklat
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
Kelinci Coklat
 
Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)
Kelinci Coklat
 
Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)
Kelinci Coklat
 
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Kelinci Coklat
 
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Kelinci Coklat
 
Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)
Kelinci Coklat
 

More from Kelinci Coklat (20)

Bab 7 integrasi numerik
Bab 7 integrasi numerikBab 7 integrasi numerik
Bab 7 integrasi numerik
 
Bab 6 turunan numerik
Bab 6 turunan numerikBab 6 turunan numerik
Bab 6 turunan numerik
 
Bab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanBab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutan
 
Bab 5 interpolasi
Bab 5 interpolasiBab 5 interpolasi
Bab 5 interpolasi
 
Bab 4 sistem persamaan linear
Bab 4 sistem persamaan linearBab 4 sistem persamaan linear
Bab 4 sistem persamaan linear
 
Bab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearBab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linear
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 
Bab 1 pendahuluan
Bab 1 pendahuluanBab 1 pendahuluan
Bab 1 pendahuluan
 
Bab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaBab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasa
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
 
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
4.2. Operasi Dasar Singly Linked List  2 (primitive list)4.2. Operasi Dasar Singly Linked List  2 (primitive list)
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)
 
Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)
 
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
 
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
 
Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)
 

Recently uploaded

PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
muhammadyudiyanto55
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Fathan Emran
 
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdfMATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
ssuser289c2f1
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
MirnasariMutmainna1
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
agusmulyadi08
 
Laporan pembina seni tari - www.kherysuryawan.id.pdf
Laporan pembina seni tari - www.kherysuryawan.id.pdfLaporan pembina seni tari - www.kherysuryawan.id.pdf
Laporan pembina seni tari - www.kherysuryawan.id.pdf
heridawesty4
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
DataSupriatna
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
AgusRahmat39
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
DEVI390643
 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
kinayaptr30
 
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrinPatofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
rohman85
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptxRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
SurosoSuroso19
 
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptxJuknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
mattaja008
 
Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024
SABDA
 
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERILAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
PURWANTOSDNWATES2
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
SEMUELSAMBOKARAENG
 
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
RinawatiRinawati10
 
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Fathan Emran
 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
MuhammadBagusAprilia1
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
asyi1
 

Recently uploaded (20)

PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
 
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdfMATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
MATERI SOSIALISASI PPDB JABAR- 4PAN052024.pdf
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
 
Laporan pembina seni tari - www.kherysuryawan.id.pdf
Laporan pembina seni tari - www.kherysuryawan.id.pdfLaporan pembina seni tari - www.kherysuryawan.id.pdf
Laporan pembina seni tari - www.kherysuryawan.id.pdf
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
 
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrinPatofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptxRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
 
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptxJuknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
 
Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024
 
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERILAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
 
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
 
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
 

7. Queue (Struktur Data)

  • 1. Queue / Antrian Akmal, S.Si, MT Mata Kuliah : Struktur Data
  • 2. Tujuan  Mahasiswa dapat: menganalisis antrian dan menyajikannya dengan operasi InsertQueue dan DeleteQueue, baik dengan array maupun dengan list berkait dengan benar
  • 3. Pokok Bahasan  Pengertian Antrian  Penyajian Antrian dengan Array dan List  Operasi Insert Queue dan Delete Queue  Antrian berprioritas
  • 4. Pengertian Queue  Queue adalah contoh lain dari ADT. Konsep kerja dari queue / Antrian adalah FIFO ( “First-In, First-Out” ) atau Pertama Datang maka akan menjadi yang Pertama Dilayani.  InsertQueue dan DeleteQueue merupakan 2 buah operasi dasar yang berhubungan dengan queue. InsertQueue menunjuk pada memasukkan data pada akhir queue sedangkan DeleteQueue berarti mengeluarkan elemen dari queue tersebut.  Untuk mengingat bagaimana queue bekerja, ingatlah arti khusus dari queue yaitu baris. A B C D E FKeluar Masuk Depan (InsertQueue)(DeleteQueue)
  • 5. Penyajian Antrian Menggunakan List Berkait  Karena penyisipan selalu dari belakang (Insert Last), sementara untuk menambah elemen selalu harus dicari dulu elemen terakhir last (yang next nya bernilai NULL), sehingga algoritma ini menjadi kurang efektif,  Oleh sebab itu perlu dilakukan modifikasi / perubahan pada struktur datanya dengan cara menambahkan suatu pointer Tail sebagai pengenal Queue. Jadi ada 2 buah pengenal pada Antrian yaitu Head dan Tail. B C D Head A Masuk (InsertQueue) Keluar (DeleteQueue)
  • 6. Deklarasi Queue  Gambaran perubahan struktur data Queue dari linked list singly biasa adalah : struct ElemenQueue { char info; ElemenQueue* next; }; typedef ElemenQueue* pointer; typedef pointer List; struct Queue { List Head; List Tail; }; Queue Q; B C D Q.Head A Masuk (InsertQueue) Keluar (DeleteQueue) Q.Tail
  • 7. Insert Queue Ada 2 kasus yang harus ditangani yaitu : * Kasus Kosong  Kasus ada isi  Dalam hal ini tidak diperlukan lagi pencarian elemen terakhir karena elemen terakhir selalu dicatat oleh Q.Tail Q.Head Q.Tail A pBaru Q.Head Q.Tail A pBaru 1 2 1. Q.Head=pBaru 2. Q.Tail=pBaru B C D Q.Head A pBaru Q.Tail 1 2 1. Q.Tail->next = pBaru 2. Q.Tail=pBaru
  • 8. Fungsi insertQueue void insertQueue( Queue& Q, pointer pBaru){ if (Q.Head==NULL && Q.Tail==NULL) { // kosong Q.Head = PBaru; Q.Tail = PBaru; } else { // ada isi Q.Tail->next = PBaru; Q.Tail = PBaru; } }
  • 9. Delete Queue Ada 3 kasus yang harus ditangani yaitu : a. Queue kosong Ciri dari Queue kosong adalah Q.Head==NULL dan Q.Tail==NULL Tidak ada elemen yang dihapus b. Queue dengan isi 1 elemen List akan menjadi kosong dengan keadaan Head dan Tail bernilai NULL Q.Head=NULL Q.Tail = NULL c. Queue dengan isi lebih dari 1 elemen A B C Q.Head pHapus 1 3 2 Q.Tail D
  • 10. Fungsi DeleteQueue void deleteQueue(Queue& Q, pointer& pHapus){ cout<<"Delete Queue"<<endl; if (Q.Head==NULL && Q.Tail==NULL) { //kasus kosong pHapus=NULL; cout<<"List Queue kosong "<<endl; } else if (Q.Head->next==NULL) { // kasus isi 1 elemen pHapus=Q.Head; Q.Head=NULL; Q.Tail=NULL; } else { // kasus > 1 elemen pHapus=Q.Head; Q.Head=Q.Head->next; pHapus->next=NULL; } }
  • 11. Penyajian Antrian Menggunakan Array  Deklarasi array untuk mendefinisikan struktur data antrian adalah dengan cara seperti berikut  Ada 2 operasi dasar yang bisa dilakukan dengan menggunakan array yaitu insertQueue dan deleteQueue.  Untuk membuat sebuah Queue kosong adalah dengan membuat suatu fungsi createQueue dengan memberikan indeks head=0 dan tail=-1; const int maxElemen = 255; struct Queue{ char isi[maxElemen]; int head; // depan int tail; // belakang }; void createQueue (Queue& Q){ Q.head = 0; Q.tail = -1; }
  • 12. Illustrasi Antrian  Penyisipan selalu di belakang dengan indexnya bertambah 1 dari keadaan sebelumnya.  Sedangkan penghapusan selalu di posisi depan. Selanjutnya semua elemen yang tersisa digeser posisinya ke depan. 0 1 2 3 4 5 head=0 tail =-1 B C D 0 1 2 3 4 5 head=0 tail=3 0 1 2 3 4 5 tail=2 E 0 1 2 3 4 5 tail=3 A B C D D masuk A keluar Langsung di geser E masuk Antrian dengan menggeser elemen C D B
  • 13. Insert Queue / Penyisipan  Kasus yang ditangani dalam insert Queue adalah jika kapasitas array sudah penuh dan jika belum. Jika sudah penuh maka tidak bisa lagi dilakukan penyisipan, tetapi jika belum maka index dari Tail bertambah 1 dan kemudian di posisi index yang baru elemen yang baru disisipkan.  Fungsi untuk insert Queue adalah sbb: void insertQueue(Queue& Q, char elemen) { cout<<"Insert Queue (Antrian) "<<endl; if (Q.tail==maxElemen-1){ cout<<"Antrian sudah penuh"<<endl; } else { Q.tail=Q.tail + 1; Q.isi[Q.tail] = elemen; } }
  • 14. Delete Queue / Penghapusan  Untuk melakukan proses delete Queue dengan cara sbb:  Kasus yang ditangani ádalah kasus kosong dan ada isi. Untuk kasus kosong (dengan ciri index head>tail, atau tail=-1) maka tidak ada yang dihapus, sementara untuk kasus ada isi setelah data yang dihapus diamankan maka selanjutnya elemen yang lain digeser ke depan satu persatu. void deleteQueue(Queue& Q, char& elemenHapus){ cout<<"Delete Queue (Antrian) "<<endl; if (Q.head>Q.tail){ // atau Q.tail=-1 cout<<"Antrian kosong"<<endl; } else { elemenHapus= Q.isi[Q.head]; //Q.head=0 for (int i=0;i<Q.tail;i++){ // Geser ke depan Q.isi[i]=Q.isi[i+1]; } Q.tail=Q.tail-1; } }
  • 15. Queue Circular  Terlihat dalam fungsi sebelumnya ada ketidakefisienan ketika dilakukan proses delete yaitu selalu terjadi proses pergeseran elemen. Untuk itu dilakukan pengaturan penyimpanan array dengan bentuk circular (memutar) untuk menghindari ketidak efisienan ketika proses delete tersebut. Dengan bentuk memutar ini maka elemen pertama larik terletak berdekatan dengan elemen terakhir larik.  Gambaran logic D E F 0 1 2 3 4 5 Depan=3 Belakang=5 D E F 0 1 2 3 4 5 Depan=3 Belakang=0 F 0 1 2 3 4 5 Depan=5 Belakang=0 F 0 1 2 3 4 5 Depan=5 Belakang=3 G G G H I G masuk D keluar E keluar H masuk I masuk Antrian secara circular (memutar)
  • 16. Insert Queue Circular  Kasus yang ditangani adalah kasus queue masih kosong dan kasus sudah ada isi. Jika kosong maka indeks Q.Head=0 dan juga Q.Tail=0.  Jika ada isi maka dilihat posisi Q.Tail nya. Jika posisi Q.Tail belum di akhir indeks maka posisi indeks Q.tail akan bertambah 1, tetapi jika sudah di akhir indeks maka penyisipan akan diletakkan diposisi 0. if (Q.tail< maxElemen-1 ) { Q.tail=Q.tail+1; } else { Q.tail=0; }  Selanjutnya akan diperiksa apakah posisi baru yang akan ditempati masih kosong atau sudah ada isi. Jika ada isi artinya antrian sudah penuh. void createQueue(Queue& Q){ Q.head = -1; Q.tail = -1; }
  • 17. Fungsi InsertQueue sirkular void insertQueue(Queue& Q, char elemen) { int posisiTemp; cout<<"Insert Queue (Antrian) "<<endl; if (Q.tail==-1) { // kosong pertama kali Q.head=0; Q.tail=0; Q.isi[Q.tail] = elemen; } else { posisiTemp=Q.tail; // amankan posisi Q.tail if (Q.tail< maxElemen-1 ) { // proses circular Q.tail=Q.tail+1; } else { // Q.tail>=maxElemen-1 Q.tail=0; } if (Q.tail==Q.head){ cout<<"Antrian sudah penuh"<<endl; Q.tail=posisiTemp; // kembalikan posisi Q.tail } else { Q.isi[Q.tail] = elemen; } } }
  • 18. Delete Queue Circular void deleteQueue(Queue& Q, char& elemenHapus){ cout<<"Delete Queue (Antrian) "<<endl; if (Q.head==-1 ) { //kosong cout<<"Antrian kosong"<<endl; } else if (Q.head==Q.tail){ // isi 1 elemen elemenHapus= Q.isi[Q.head]; Q.isi[Q.head]=' '; Q.head=-1; // kembalikan ke kosong Q.tail=-1; } else { // isi > 1 elemen elemenHapus= Q.isi[Q.head]; Q.isi[Q.head]=' '; if (Q.head<maxElemen-1) { Q.head=Q.head+1; } else { // Q.head=maxElemen-1 Q.head=0; } } }
  • 19. Latihan dan Tugas  Buatlah prosedur untuk menyisipkan elemen dalam Priority Queue / Antrian berprioritas yang bisa terjadi diawal, ditengah atau dibelakang antrian. Priority Queue banyak digunakan dalam S.O. misalnya untuk mencetak suatu job duluan karena punya prioritas tinggi. Struktur datanya adalah sbb : type ElmtQueue : <Info : InfoType, Prior : integer, Next : address > type Queue : < Head : address, Tail : address> Procedure InsertPriorQueue (Input / Output Q : Queue, input P : address) {I.S. Queue mungkin kosong } {F.S. Priority Queue adalah penyisipan elemen P ke dalam antrian dengan aturan khusus sbb :  Elemen P dengan prioritas tertentu (10 - tertinggi, 1 - terendah) akan menyisip sebelum elemen dengan prioritas yang lebih rendah darinya.  Jika prioritas sama maka P akan menyisip tepat dibelakang deretan elemen yang sama prioritasnya  P akan menyisip dibelakang antrian jika prioritasnya paling kecil atau sama dengan prioritas Tail