SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Notasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression treeNotasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression treeAcomic Comic
 
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAnalisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAdam Mukharil Bachtiar
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)Kelinci Coklat
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekLaili Wahyunita
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Ajeng Savitri
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOahmad haidaroh
 
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
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )istiqlal
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomataBanta Cut
 
Context Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOContext Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOahmad haidaroh
 
Modul 3 pencarian heuristik
Modul 3   pencarian heuristikModul 3   pencarian heuristik
Modul 3 pencarian heuristikahmad haidaroh
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanFahrul Razi
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan PembuktianFahrul Usman
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Miningdedidarwis
 
Heuristic search-best-first-search
Heuristic search-best-first-searchHeuristic search-best-first-search
Heuristic search-best-first-searchAMIK AL MA'SOEM
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanCliquerz Javaneze
 

Tendances (20)

Notasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression treeNotasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression tree
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAnalisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic Programming
 
Latihan soal struktur data
Latihan soal struktur dataLatihan soal struktur data
Latihan soal struktur data
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendek
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Context Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOContext Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBO
 
Modul 3 pencarian heuristik
Modul 3   pencarian heuristikModul 3   pencarian heuristik
Modul 3 pencarian heuristik
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
 
Heuristic search-best-first-search
Heuristic search-best-first-searchHeuristic search-best-first-search
Heuristic search-best-first-search
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 

Similaire à 7. Queue (Struktur Data)

Similaire à 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
 

Plus de Kelinci Coklat

Bab 7 integrasi numerik
Bab 7 integrasi numerikBab 7 integrasi numerik
Bab 7 integrasi numerikKelinci Coklat
 
Bab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanBab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanKelinci Coklat
 
Bab 4 sistem persamaan linear
Bab 4 sistem persamaan linearBab 4 sistem persamaan linear
Bab 4 sistem persamaan linearKelinci Coklat
 
Bab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearBab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearKelinci Coklat
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galatKelinci Coklat
 
Bab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaBab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaKelinci 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 SinglyKelinci 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 TerstrukturKelinci 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
 
Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)Kelinci Coklat
 
Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)Kelinci Coklat
 

Plus de 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
 
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
 
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)
 
Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)
 
Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)
 

Dernier

PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah DasarPPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasarrenihartanti
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...Kanaidi ken
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMIGustiBagusGending
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfNurulHikmah50658
 
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)PUNGKYBUDIPANGESTU1
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxsyahrulutama16
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...Kanaidi ken
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...asepsaefudin2009
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxsukmakarim1998
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
aksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajaraksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajarHafidRanggasi
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...MetalinaSimanjuntak1
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...Kanaidi ken
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTIndraAdm
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxdeskaputriani1
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...Kanaidi ken
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 

Dernier (20)

PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah DasarPPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsx
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
aksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajaraksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajar
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UT
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ika
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 

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