SlideShare a Scribd company logo
1 of 24
LAPORAN PRAKTIKUM
ALGORITMA PEMROGRAMAN & STRUKTUR DATA
MODUL IX
DISUSUN OLEH
NAMA : DEVI
NIM : 2012081043
KELAS : TI2012A
LABORATORIUM KOMPUTER
FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
2012
I. PEMBAHASAN
A. Dasar Teori
 Definisi Queue
Jika diartikan secara harafiah, queue berarti antrian, queue merupakan
salah satu contoh aplikasi dari pembuatan double linked list yang cukup
sering kita temui dalam kehidupan sehari-hari, misalnya saat Anda
mengantri di loket untuk membeli tiket. Istilah yang cukup sering dipakai
seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu
antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang
sering dipakai bila seseorang keluar dari antrian adalah dequeue. Walaupun
berbeda implementasi, struktur data queue setidaknya harus memiliki
operasi-operasi sebagai berikut :
 EnQueue Memasukkan data ke dalam antrian
 DeQueue Mengeluarkan data terdepan dari antrian
 Clear Menghapus seluruh antrian
 IsEmpty Memeriksa apakah antrian kosong
 IsFull Memeriksa apakah antrian penuh
 Implementasi Queue dengan Linear Array
Linear Array
Linear array adalah suatu array yang dibuat seakan-akan merupakan
suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. Berikut ini
diberikan deklarasi kelas Queue Linear sebagai implementasi dari Queue
menggunakan linear array. Dalam prakteknya, anda dapat menggantinya
sesuai dengan kebutuhan Anda. Data diakses dengan field data, sedangkan
indeks item pertama dan terakhir disimpan dalam field Head dan Tail.
Konstruktor akan menginisialisasikan nilai Head dan Tail dengan -1 untuk
menunjukkan bahwa antrian masih kosong dan mengalokasikan data
sebanyak MAX_QUEUE yang ditunjuk oleh Data. Destruktor akan
mengosongkan antrian kembali dan mendealokasikan memori yang
digunakan oleh antrian.
Operasi-Operasi Queue dengan Linear Array
IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong
atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail
bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong.
IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau
masih bisa menampung data dengan cara mengecek apakah nilai tail sudah
sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti
queue sudah penuh.
EnQueue
Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam
queue.
DeQueue
Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue.
Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara
memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis
elemen yang paling depan akan tertimpa dengan elemen yang terletak di
belakangnya.
Clear
Fungsi Clear berguna untuk menghapus semua lemen dalam queue
dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga
queue kosong dengan memanfaatkan fungsi DEQueue.
 Implementasi Queue dengan Circular Array
Circular Array
Circular array adalah suatu array yang dibuat seakan-akan merupaka
sebuah lingkaran dengan titik awal (head) dan titik akhir (tail) saling
bersebelahan jika array tersebut masih kosong. Posisi head dan tail pada
gambar diatas adalah bebas asalkan saling bersebelahan. Berikut ini
diberikan deklarasi kelas Queue Circular sebagai implementasi circular
array. Dalam prakteknya, Anda dapat menggantikanny sesuai dengan
kebutuhan Anda. Data diakses dengan field data, sedangkan indeks itemn
pertama dan terakhir disimpan dalam field Head dan Tail. Konstruktor akan
menginisialisasi nilai Head dan Tail dengan 0 dan MAX-QUEUE-1 untuk
menunjukkan bahwa antrian masih kosong dan mengalokasikan data
sebanyak MAX-QUEUE yang ditunjuk oleh Data. destruktor akan
mengosongkan antrian kembali dan mendealokasikan memori yan
digunakan oleh antrian.
Operasi-Operasi Queue dengan Circular Array
IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah Queue masih kosong
atau sudah berisi. Hal ini dilakukan dengan mengecek apakah tail masih
terletak bersebelahan dengan head dan tail lebih besar dari head atau tidak.
Jika benar, maka queue masih kosong.
IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau
masih bisa menampung data dengan cara mengecek apakah tempat yang
masih kosong tinggal satu atau tidak (untuk membedakan dengan empty
dimana semua tempat kosong). Jika benar berarti queue penuh.
EnQueue
Fungsi EnQueue berguna untuk memasukkan sebuah elemen ke dalam
queue tail dan head mula-mula bernilai nol (0).
DeQueue
DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini
dilakukan dengan cara memindahkan posisi head satu langkah ke belakang.
 Implementasi Queue dengan Double Linked List
Selain menggunakan array, queue juga dapat dibuat dengan linked list.
Metode linked list yang digunakan adalah double linked list.
Operasi-operasi Queue dengan Double Linked List
IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong
atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah head
masih menunjukkan pada Null atau tidak. Jika benar berarti queue masih
kosong.
IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau
masih bisa menampung data dengan cara mengecek apakah Jumlah Queue
sudah sama dengan MAX_QUEUE atau belum. Jika benar maka queue
sudah penuh.
EnQueue
Fungsi EnQueue berguna untuk memasukkan sebuah elemen ke dalam
queue (head dan tail mula-mula meunjukkan ke NULL).
DeQueue
Procedure DeQueue berguna untuk mengambil sebuah elemen dari
queue. Hal ini dilakukan dengan cara menghapus satu simpul yang terletak
paling depan (head).
B. Praktikum
Praktikum 1
1. Menulis source kode Program C++
 Melakukan Kompilasi
Pilih menu project, lalu pilih submenu compile atau denngan menekan
ALTF9. Maka akan muncul seperti gambar di bawah ini.
 Menjalankan Program
Menjalankan program dengan cara pilih menu Debug, lalu submenu Run
atau dengan cara menekan CTRL+F9. Maka akan muncul gambar seperti di
bawah ini.
 Kita input pilihan yang pertama yaitu “I” dan menginputkan angka dalam
queue, maka tampilanya adalah sebagai berikut:
 Setelah tekan enter lalu input any key atau tombol apapun pada keyboard,
lalu masukan pilihan yang kedua yaitu “D”, maka tampilannya sebagai
berikut ini:
 Lakukan hal yang sama seperti perintah diatas, lalu kita masukan pilihan
yang ketiga yaitu “P”, maka hasilnya sebagai berikut:
 Lakukan seperti perintah diatas dan input pilihan yang ke terakhir yaitu
“E”, maka tampilannya sebagai berikut:
2. Analisa dan buat pembahasannya
Sintaks diatas adalah sintaks ANTRIAN yang direpresentasikan dalam
bentuk struck, operasi yang akan dilakukan pada sintaks diatas adalah :
- Insert = untuk memasukan nilai antrian.
- Delete= untuk menghapus nilai antrian.
- Print_list= untuk menampilkan nilai antrian
- Dan operasi – operasi dasar lainya.
Dan dalam sintaks diatas telah dikelompokan operasi operasinya agar lebih
mudah dipahami, dimana terdiri atas :
- Implementasi operasi Queue
- Insert
- Delete
- Print_list
- Show_working
- Main
1. Implementasi Operasi Queue
Pembahasan:
Terdiri dari 2 header yakni iostream dan conio. Terdiri dari 1 kelas yakni
Linked_list_Queue, dan badan dari kelas itu terdiri dari 1 struct yang diprivate dan
diberi nama node, dan dalam struct tersebut terdapat 2 variabel.
Selanjutnya dideklarasikan 4 variabel/karkter antrian yang bersifat pointer,
dan ke 4 ini menunjuk nilai struct node. Sehingga ke 4 ini memiliki variabel yang
sama.
Selanjutnya dideklarasikan 5 fungsi, yaitu fungsi link_list_Queue, fungsi
delete, fungsi insert, fungsi print_list dan fungsi show_working.
Fungsi pertama dideklarasikan yang dimana variabel rear dan front memiliki
nilai NULL(mengisi)
#include<iostream.h>
#include<conio.h>
class Linked_list_Queue
{
private:
struct node
{
int data;
node *next;
};
node*rear;
node*entry;
node*print;
node*front;
public:
Linked_list_Queue( );
void Delete( );
void Insert( );
void print_list( );
void show_working( );
};
Linked_list_Queue::Linked_list_Queue( )
{
rear=NULL;
front=NULL;
}
2. Insert()
Pembahasan:
Sintaks selanjutnya yakni fungsi Enqueu yakni memasukan elemen antrian.
Dideklarasikan kembali variabel baru yakni num yang bertipe integer. Dan dalam
sintaks disamping pun ada kondisi if yang kondisinya rear==NULL artinya jika
nilai rear tersebut terisi maka badan if akan dijalankan. Dan arti dari badan if itu
yakni memasukan nilai kedalam program.
Sehingga jika kondisi if tersebut terisi maka nilai akan masuk pada program
dan variabel num, dan akan menampilkan output “SUDAH MASUK DALAM
QUEUE” dan “press any kae tu return to menu” artinya tolong tekan tombol
apapun untuk kembali kelayar utama. Inilah fungsi dari next dan null.
void Linked_list_Queue::Insert()
{
int num;
cout<<"nnnnnt Masukan angka dalamQueue : ";cin>>num;
entry=new node;
if(rear==NULL)
{
entry->data=num;
entry->next=NULL;
rear=entry;
front=rear;
}
else
{
entry->data=num;
entry->next=NULL;
rear->next=entry;
rear=entry;
}
cout<<"nnt *** "<<num<<" sudah masuk dalam Queue."<<endl;
cout<<"nnntt Press any key to return to Menu.";
getch();
}
3. Delete()
Pembahasan:
Sintaks selanjutnya yakni fungsi Dequeu dalam antrian atau untuk
mengeluarkan/menghapus elemen paling depan dari antrian. Sebagai contoh jika
kita masukan elmenen 1,2,3,4,5, lalu kita jalankan fungsi ini maka secara otomatis
angka 1 akan terhapus dari antrian karna angka 1 adalah element terdepan. dan
jika setiap element telah dikeluarkan maka fungsi akan menampilkan “Queue is
empty” artinya nilai queue telah kosong seperti sintaks yang telah dibuat diatas.
Namun jika hanya 1 element yang ingin dihapus maka sintkas akan kembali
kemenu utama dan melakukan instruksi lainya.
4. Print_list
void Linked_list_Queue::Delete()
{
if(front==NULL)
cout<<"nnnt *** Error : Queue is empty.n"<<endl;
else
{
int deleted_element=front->data;
node *temp;
temp=front;
front=front->next;
delete temp;
cout<<"nnnt *** "<<deleted_element<<" dihapus dari
Queue."<<endl;
}
cout<<"nnntt Press any key to return to Menu.";
getch();
}
void Linked_list_Queue::print_list()
{
print=front;
if(print!=NULL)
cout<<"nnnnnt Angka angka yang ada dalam Queue :
n"<<endl;
else
cout<<"nnnnnt *** Tidak ada yang
ditampilkan."<<endl;
while(print!=NULL)
{
cout<<"t"<<print->data<<endl;
print=print->next;
}
cout<<"nnntt Pres any key to return to menu.";
getch();
}
Pembahasan:
Sintaks diatas adalah sintkas untuk menampilkan elemen-element antrian
yang telah di masukan. Sehingga print=front arinya print=depan. Jadi mulai dari
element depan yang akan ditampilkan. Angka yang ditampilkan akan berbentuk
horizontal atau kebawah karna di dalam sintaks penampilannya itu digunkan n.
Namun jika data telah terhapus semua maka akan menmpilkan fungsi else. “ tidak
ada yang ditampilkan”.
5. Show_working
Pembahasan:
Sintaks selanjutnya yakni pembuatan tampilan untuk operasi-operasi yang
telah kita buat sebelumnya, disini di deklarasikan kembali variabel key yang harus
diberi nilai karna disanan key=NULL, dan dalam sintaks diatas pun ada fungsi
GOTOXY yang berfungsi untuk menentukan jarak karakternnya. Yang terdiri dari
baris dari jumlah spasi dan enter dalam pixel.
void Linked_list_Queue::show_working()
{
char Key=NULL;
do
{
clrscr();
gotoxy(5,5);
cout<<"**** Implementation of Linked List as a Queue
******"<<endl;
gotoxy(10,8);
cout<<"Pilih salah satu menu: "<<endl;
gotoxy(15,10);
cout<<"- Press 'I' to Masukan data dalamQueue"<<endl;
gotoxy(15,12);
cout<<"- Press 'D' to Hapus data dari Queue"<<endl;
gotoxy(15,14);
cout<<"- Press 'P' to Tampilkan data dari Queue"<<endl;
gotoxy(15,16);
cout<<"- Press 'E' to Exit"<<endl;
Pembahasan:
Fungsi diatas untuk ketentuan pemilihan operasi dimana if yang pertama
yakni (int(key)=27  jumlah keyboard yang bisa di gunakan hanya terdiri dari 27
tuts. Sehingga ada tombol yang tidak bisa kita tekan. Dan else if lainnya hanya
untuk memberikan kebebasan jika kita menekan huruf kapital dan kecil. Disana
telah diatur sintaksnya. Dan setiap else disana telah ditentukan tampilantampilan
yang akan dijalankan.
6. Main()
Pembahasan:
Sintaks diatas adalah induknya dari semua fungsi sebelumnya. Dan dalam
fungsi utama disana didefunisikan kembali elemen class sebelumnya dengan nama
obj. Digunakan untuk pemanggilan sturct untuk show_working
Input:
gotoxy(10,20);
cout<<"
";
gotoxy(10,20);
cout<<"Masukan Pilihan : ";
Key=getche();
if(int(Key)==27 || Key=='e' || Key=='E')
break;
else if(Key=='i' || Key=='I')
Insert();
else if(Key=='d' || Key=='D')
Delete();
else if(Key=='p' || Key=='P')
print_list();
else
goto Input;
}
while(1);
}
int main()
{
Linked_list_Queue obj;
obj.show_working();
return 0;
}
3. Ubah source kode diatas menggunakan preprocessor include.h dan untuk
setiap operasi queue gunakan bentuk umum sesuai dengan dasar teori
praktikum.
Sourec kode pada Turbo C++
Melakukan kompilasi
Menjalankan program
Pembahasan:
Program diatas sama seperti program sebelumnya, hanya saja dalam
program ini menggunkana header stdio. Sehingga fungsi yang digunakan
untuk program tersebut adalah printf dan scanf. Dalam header stdio digunakan
juga kode format untuk menampilkan keluaran sesuai dengan variable yang
digunakan.
II. TUGAS
1. Tambahkan function untuk mencari suatu elemen dalam queue
2. Tambahakan function untuk mengedit suatu elemen dalam queue
Jawaban no 1 dan no 2:
Menulis source kode Program C++
Pembahasan:
Program diatas menggunakan header conio dan stdio, dan mempunyai
konstanta MAX 8, yang artinya jumlah antrian max 8. Dalam sintaks tersebut
mempunya 3 variabel yang bertipe char. Operasi yang digunakan dalam
antrian tersebut adalah create, isempty, isfull, enqueue, dequeue, clear dan
tampil. Untuk menampilkan suatu keluaran digunakan fungsi printf dan untuk
menginput digunaka fungsi scanf yang berada pada file header stdio. Dan
untuk menghapus pada layar digunakan fungsi clrscr yang berada pada file
header conio. Perulangan yang di gunakan dalam program tersebut adalah
while do.
3. Carilah nilai total, rata-rata, terbesar dan terkecil
 Mencari nilai total dan rata-rata
 Melakukan Kompile
 Menjalankan program
Pembahasan:
Program diatas adalah program untuk menghitung jumlah dan rata-rata.
Header yang digunakan adalah stdio dan conio. Program diatas mempunyai
konstanta max 8 yang artinya maksimal jumlah data yang diinputkan adalah 8.
Dalam program tersebut mempunyai 5 variabel yang bertipe integer dan float.
Sitem input output yang digunakan adalah printf dan scanf yang berada pada
file header stdio. Kode format yang digunakan adalah %f dan %d sesuai
dengan variable yang telah di deklarasikan sebelumnya.
 Mencari nilai terbesar dan terkecil
 Source kode pada C++
 Melakukan kompilasi
 Menjalankan Program
Pembahasan:
Program diatas adalah program untuk mencari nilai terbesar dan terkecil.
Header yang digunakan adalah stdio. Dalam program tersebut terdapat fungsi
tambahan yaitu double terbesar dan double terkecil. Dan untuk mencari nilai
terbesar atau terkecil digunakan struktur pemilihan if then else. Dalam fungsi
utama yaitu int main terdapat I/O printf untuk menampilkan hasil keluaran dan
scanf untuk menginputkan data.
III. KESIMPULAN
Dari data diatas dapa saya simpulkan bahwa Karakteristik yang
membedakan queue (antrian) dari stack adalah cara menyimpan dan mengambil
data dengan struktur first in first out (FIFO). Hal ini berarti elemen pertama yang
ditempatkan pada queue adalah yang pertama dipindahkan. Selain itu, Elemen –
element dasarnya adalah :
1. Elemen antrian yaitu item-item data yang terdapat di elemen antrian
2. Front (elemen terdepan dari antrian)
3. Rear (elemen terakhir dari antrian)
4. Jumlah elemen pada antrian (Count)
5. Status antrian
Operasi dasar Queue terbagi menjadi :
1. Create Queue
2. Empty Queue
3. Full Queue
4. Enqueue
5. Dequeue
6. Clear Queue
IV. Daftar Pustaka
 www.google.com
 Modul Pembelajaran, Algoritma Pemrograman dan Struktur Data

More Related Content

What's hot

Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_arii_manroe
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stackIcha Dicaprio
 
Materi Struktur data QUEUE
Materi Struktur data QUEUEMateri Struktur data QUEUE
Materi Struktur data QUEUEMeta N
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)Kelinci Coklat
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul viiDevi Apriansyah
 
Laporan praktikum modul iv
Laporan praktikum modul ivLaporan praktikum modul iv
Laporan praktikum modul ivDevi Apriansyah
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viiiDevi Apriansyah
 
Bab 8-stack-dan-queue
Bab 8-stack-dan-queueBab 8-stack-dan-queue
Bab 8-stack-dan-queueRazik Akamal
 
Materi linked list dan bubble sort
Materi linked list dan bubble sortMateri linked list dan bubble sort
Materi linked list dan bubble sortYunan Helmi Nasution
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queueMuhammad Najib
 
Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3azmi007
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Ekha Cahya Nugraha
 
Function
FunctionFunction
Functionwindi1
 

What's hot (20)

Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
Materi Struktur data QUEUE
Materi Struktur data QUEUEMateri Struktur data QUEUE
Materi Struktur data QUEUE
 
Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
 
Chapter 4b queue
Chapter 4b   queueChapter 4b   queue
Chapter 4b queue
 
Laporan praktikum modul iv
Laporan praktikum modul ivLaporan praktikum modul iv
Laporan praktikum modul iv
 
Chapter 4a stack
Chapter 4a   stackChapter 4a   stack
Chapter 4a stack
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
 
Bab8.array
Bab8.array Bab8.array
Bab8.array
 
Bab 8-stack-dan-queue
Bab 8-stack-dan-queueBab 8-stack-dan-queue
Bab 8-stack-dan-queue
 
Materi linked list dan bubble sort
Materi linked list dan bubble sortMateri linked list dan bubble sort
Materi linked list dan bubble sort
 
Pratikum operator
Pratikum operatorPratikum operator
Pratikum operator
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queue
 
Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
 
queue antrian
queue antrianqueue antrian
queue antrian
 
Function
FunctionFunction
Function
 
Function
FunctionFunction
Function
 

Viewers also liked

Tugas kelompok 2
Tugas kelompok 2Tugas kelompok 2
Tugas kelompok 2yusriren
 
Teori antrian
Teori antrianTeori antrian
Teori antrianajbs25
 
Teoriantrian ro-130704084204-phpapp01
Teoriantrian ro-130704084204-phpapp01Teoriantrian ro-130704084204-phpapp01
Teoriantrian ro-130704084204-phpapp01ellynorsanti
 
Queue as data_structure
Queue as data_structureQueue as data_structure
Queue as data_structureeShikshak
 

Viewers also liked (9)

Kelompok 3
Kelompok 3Kelompok 3
Kelompok 3
 
Ifc modul 7 (queue)
Ifc   modul 7 (queue)Ifc   modul 7 (queue)
Ifc modul 7 (queue)
 
Tugas kelompok 2
Tugas kelompok 2Tugas kelompok 2
Tugas kelompok 2
 
Teori antrian
Teori antrianTeori antrian
Teori antrian
 
Teori antrian
Teori antrianTeori antrian
Teori antrian
 
Teori antrian
Teori antrianTeori antrian
Teori antrian
 
struktur data
struktur datastruktur data
struktur data
 
Teoriantrian ro-130704084204-phpapp01
Teoriantrian ro-130704084204-phpapp01Teoriantrian ro-130704084204-phpapp01
Teoriantrian ro-130704084204-phpapp01
 
Queue as data_structure
Queue as data_structureQueue as data_structure
Queue as data_structure
 

Similar to Laporan praktikum modul ix

Tugas kelompok 3
Tugas kelompok 3Tugas kelompok 3
Tugas kelompok 3yusriren
 
TPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfTPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfRaihanFadila1
 
FIFO (First In First Out)
FIFO (First In First Out)FIFO (First In First Out)
FIFO (First In First Out)Yosua Herbi
 
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
 
Antrean (queue).pptx
Antrean (queue).pptxAntrean (queue).pptx
Antrean (queue).pptxmisariska1
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_stringRoziq Bahtiar
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueKuliahKita
 
Stack & queue by stanly maarende
Stack & queue by stanly maarendeStack & queue by stanly maarende
Stack & queue by stanly maarendeSten Maarende
 
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
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data StructuresNoval C. Kesuma
 
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
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfraia22
 

Similar to Laporan praktikum modul ix (20)

Queue antrian
Queue antrian Queue antrian
Queue antrian
 
Tugas kelompok 3
Tugas kelompok 3Tugas kelompok 3
Tugas kelompok 3
 
TPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdfTPL0222_13_QUEUE.pdf
TPL0222_13_QUEUE.pdf
 
Struktur data
Struktur dataStruktur data
Struktur data
 
Queue
Queue Queue
Queue
 
FIFO (First In First Out)
FIFO (First In First Out)FIFO (First In First Out)
FIFO (First In First Out)
 
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
 
Antrean (queue).pptx
Antrean (queue).pptxAntrean (queue).pptx
Antrean (queue).pptx
 
Queue
QueueQueue
Queue
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_string
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - Queue
 
Stack & queue by stanly maarende
Stack & queue by stanly maarendeStack & queue by stanly maarende
Stack & queue by stanly maarende
 
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)
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
 
Tistrukdat4
Tistrukdat4Tistrukdat4
Tistrukdat4
 
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
 
30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf30707_SD6-Queue (Antrian).pdf
30707_SD6-Queue (Antrian).pdf
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdf
 
Bab8.array
Bab8.array Bab8.array
Bab8.array
 
Struktur data
Struktur dataStruktur data
Struktur data
 

More from Devi Apriansyah

Panduan penyusunan skripsi_ta_fkom_uniku
Panduan penyusunan skripsi_ta_fkom_unikuPanduan penyusunan skripsi_ta_fkom_uniku
Panduan penyusunan skripsi_ta_fkom_unikuDevi Apriansyah
 
Laporan praktikum modul 10 review
Laporan praktikum modul 10 reviewLaporan praktikum modul 10 review
Laporan praktikum modul 10 reviewDevi Apriansyah
 
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Devi Apriansyah
 
Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me Devi Apriansyah
 
Laporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbcLaporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbcDevi Apriansyah
 
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)Devi Apriansyah
 
Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3) Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3) Devi Apriansyah
 
Laporan praktikum modul 4 (pemrograman applet)
Laporan praktikum modul 4 (pemrograman applet)Laporan praktikum modul 4 (pemrograman applet)
Laporan praktikum modul 4 (pemrograman applet)Devi Apriansyah
 
Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)Devi Apriansyah
 
Laporan praktikum modul 1 (pemrograman swing)
Laporan praktikum modul 1 (pemrograman swing)Laporan praktikum modul 1 (pemrograman swing)
Laporan praktikum modul 1 (pemrograman swing)Devi Apriansyah
 
Laporan praktikum modul 10 (dfd)
Laporan praktikum modul 10 (dfd)Laporan praktikum modul 10 (dfd)
Laporan praktikum modul 10 (dfd)Devi Apriansyah
 
Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Devi Apriansyah
 
Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Devi Apriansyah
 
Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Devi Apriansyah
 
Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)Devi Apriansyah
 
Laporan praktikum modul 5 (normalisasi)
Laporan praktikum modul 5 (normalisasi)Laporan praktikum modul 5 (normalisasi)
Laporan praktikum modul 5 (normalisasi)Devi Apriansyah
 
Laporan praktikum modul 4 (e-rd notasi martin)
Laporan praktikum modul 4 (e-rd notasi martin)Laporan praktikum modul 4 (e-rd notasi martin)
Laporan praktikum modul 4 (e-rd notasi martin)Devi Apriansyah
 
Laporan praktikum modul 3 (erd notasi peterchen) -
Laporan praktikum modul 3 (erd notasi peterchen) -Laporan praktikum modul 3 (erd notasi peterchen) -
Laporan praktikum modul 3 (erd notasi peterchen) -Devi Apriansyah
 
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...Devi Apriansyah
 
Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)Devi Apriansyah
 

More from Devi Apriansyah (20)

Panduan penyusunan skripsi_ta_fkom_uniku
Panduan penyusunan skripsi_ta_fkom_unikuPanduan penyusunan skripsi_ta_fkom_uniku
Panduan penyusunan skripsi_ta_fkom_uniku
 
Laporan praktikum modul 10 review
Laporan praktikum modul 10 reviewLaporan praktikum modul 10 review
Laporan praktikum modul 10 review
 
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
 
Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me
 
Laporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbcLaporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbc
 
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
 
Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3) Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3)
 
Laporan praktikum modul 4 (pemrograman applet)
Laporan praktikum modul 4 (pemrograman applet)Laporan praktikum modul 4 (pemrograman applet)
Laporan praktikum modul 4 (pemrograman applet)
 
Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)
 
Laporan praktikum modul 1 (pemrograman swing)
Laporan praktikum modul 1 (pemrograman swing)Laporan praktikum modul 1 (pemrograman swing)
Laporan praktikum modul 1 (pemrograman swing)
 
Laporan praktikum modul 10 (dfd)
Laporan praktikum modul 10 (dfd)Laporan praktikum modul 10 (dfd)
Laporan praktikum modul 10 (dfd)
 
Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)
 
Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)
 
Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)
 
Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)
 
Laporan praktikum modul 5 (normalisasi)
Laporan praktikum modul 5 (normalisasi)Laporan praktikum modul 5 (normalisasi)
Laporan praktikum modul 5 (normalisasi)
 
Laporan praktikum modul 4 (e-rd notasi martin)
Laporan praktikum modul 4 (e-rd notasi martin)Laporan praktikum modul 4 (e-rd notasi martin)
Laporan praktikum modul 4 (e-rd notasi martin)
 
Laporan praktikum modul 3 (erd notasi peterchen) -
Laporan praktikum modul 3 (erd notasi peterchen) -Laporan praktikum modul 3 (erd notasi peterchen) -
Laporan praktikum modul 3 (erd notasi peterchen) -
 
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
 
Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)
 

Recently uploaded

Materi Safety Talk Persiapan Libur Lebaran
Materi Safety Talk Persiapan Libur LebaranMateri Safety Talk Persiapan Libur Lebaran
Materi Safety Talk Persiapan Libur LebaranSintaMarlina3
 
PPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptx
PPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptxPPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptx
PPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptxHamidNurMukhlis
 
Transfer Massa dan Panas Teknik Kimia Industri
Transfer Massa dan Panas Teknik Kimia IndustriTransfer Massa dan Panas Teknik Kimia Industri
Transfer Massa dan Panas Teknik Kimia Industririzwahyung
 
Ahli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptx
Ahli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptxAhli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptx
Ahli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptxarifyudianto3
 
QCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptx
QCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptxQCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptx
QCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptxdjam11
 
Sesi_02_Rangkaian_Hubungan_Seri_Paralel.pptx
Sesi_02_Rangkaian_Hubungan_Seri_Paralel.pptxSesi_02_Rangkaian_Hubungan_Seri_Paralel.pptx
Sesi_02_Rangkaian_Hubungan_Seri_Paralel.pptx185TsabitSujud
 
Kelompok 5 PPt Penerapan Teori Fuzzy.pdf
Kelompok 5 PPt Penerapan Teori Fuzzy.pdfKelompok 5 PPt Penerapan Teori Fuzzy.pdf
Kelompok 5 PPt Penerapan Teori Fuzzy.pdfVardyFahrizal
 
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptxAnnisaNurHasanah27
 
PPT PENILAIAN PERKERASAN JALAN Metode PCI.pptx
PPT PENILAIAN PERKERASAN JALAN Metode PCI.pptxPPT PENILAIAN PERKERASAN JALAN Metode PCI.pptx
PPT PENILAIAN PERKERASAN JALAN Metode PCI.pptxYehezkielAkwila3
 

Recently uploaded (9)

Materi Safety Talk Persiapan Libur Lebaran
Materi Safety Talk Persiapan Libur LebaranMateri Safety Talk Persiapan Libur Lebaran
Materi Safety Talk Persiapan Libur Lebaran
 
PPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptx
PPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptxPPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptx
PPT Manajemen Konstruksi Unsur Unsur Proyek 1.pptx
 
Transfer Massa dan Panas Teknik Kimia Industri
Transfer Massa dan Panas Teknik Kimia IndustriTransfer Massa dan Panas Teknik Kimia Industri
Transfer Massa dan Panas Teknik Kimia Industri
 
Ahli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptx
Ahli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptxAhli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptx
Ahli Muda Teknik Bangunan GEdung Jenjang 7 - Samet Kurnianto.pptx
 
QCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptx
QCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptxQCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptx
QCC MANAJEMEN TOOL MAINTENANCE (MAINTENANCE TEAM).pptx
 
Sesi_02_Rangkaian_Hubungan_Seri_Paralel.pptx
Sesi_02_Rangkaian_Hubungan_Seri_Paralel.pptxSesi_02_Rangkaian_Hubungan_Seri_Paralel.pptx
Sesi_02_Rangkaian_Hubungan_Seri_Paralel.pptx
 
Kelompok 5 PPt Penerapan Teori Fuzzy.pdf
Kelompok 5 PPt Penerapan Teori Fuzzy.pdfKelompok 5 PPt Penerapan Teori Fuzzy.pdf
Kelompok 5 PPt Penerapan Teori Fuzzy.pdf
 
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
 
PPT PENILAIAN PERKERASAN JALAN Metode PCI.pptx
PPT PENILAIAN PERKERASAN JALAN Metode PCI.pptxPPT PENILAIAN PERKERASAN JALAN Metode PCI.pptx
PPT PENILAIAN PERKERASAN JALAN Metode PCI.pptx
 

Laporan praktikum modul ix

  • 1. LAPORAN PRAKTIKUM ALGORITMA PEMROGRAMAN & STRUKTUR DATA MODUL IX DISUSUN OLEH NAMA : DEVI NIM : 2012081043 KELAS : TI2012A LABORATORIUM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS KUNINGAN 2012
  • 2. I. PEMBAHASAN A. Dasar Teori  Definisi Queue Jika diartikan secara harafiah, queue berarti antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari-hari, misalnya saat Anda mengantri di loket untuk membeli tiket. Istilah yang cukup sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue. Walaupun berbeda implementasi, struktur data queue setidaknya harus memiliki operasi-operasi sebagai berikut :  EnQueue Memasukkan data ke dalam antrian  DeQueue Mengeluarkan data terdepan dari antrian  Clear Menghapus seluruh antrian  IsEmpty Memeriksa apakah antrian kosong  IsFull Memeriksa apakah antrian penuh  Implementasi Queue dengan Linear Array Linear Array Linear array adalah suatu array yang dibuat seakan-akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. Berikut ini diberikan deklarasi kelas Queue Linear sebagai implementasi dari Queue menggunakan linear array. Dalam prakteknya, anda dapat menggantinya sesuai dengan kebutuhan Anda. Data diakses dengan field data, sedangkan indeks item pertama dan terakhir disimpan dalam field Head dan Tail. Konstruktor akan menginisialisasikan nilai Head dan Tail dengan -1 untuk menunjukkan bahwa antrian masih kosong dan mengalokasikan data sebanyak MAX_QUEUE yang ditunjuk oleh Data. Destruktor akan mengosongkan antrian kembali dan mendealokasikan memori yang digunakan oleh antrian.
  • 3. Operasi-Operasi Queue dengan Linear Array IsEmpty Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong. IsFull Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh. EnQueue Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue. DeQueue Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya. Clear Fungsi Clear berguna untuk menghapus semua lemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan memanfaatkan fungsi DEQueue.  Implementasi Queue dengan Circular Array Circular Array Circular array adalah suatu array yang dibuat seakan-akan merupaka sebuah lingkaran dengan titik awal (head) dan titik akhir (tail) saling bersebelahan jika array tersebut masih kosong. Posisi head dan tail pada gambar diatas adalah bebas asalkan saling bersebelahan. Berikut ini diberikan deklarasi kelas Queue Circular sebagai implementasi circular array. Dalam prakteknya, Anda dapat menggantikanny sesuai dengan
  • 4. kebutuhan Anda. Data diakses dengan field data, sedangkan indeks itemn pertama dan terakhir disimpan dalam field Head dan Tail. Konstruktor akan menginisialisasi nilai Head dan Tail dengan 0 dan MAX-QUEUE-1 untuk menunjukkan bahwa antrian masih kosong dan mengalokasikan data sebanyak MAX-QUEUE yang ditunjuk oleh Data. destruktor akan mengosongkan antrian kembali dan mendealokasikan memori yan digunakan oleh antrian. Operasi-Operasi Queue dengan Circular Array IsEmpty Fungsi IsEmpty berguna untuk mengecek apakah Queue masih kosong atau sudah berisi. Hal ini dilakukan dengan mengecek apakah tail masih terletak bersebelahan dengan head dan tail lebih besar dari head atau tidak. Jika benar, maka queue masih kosong. IsFull Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah tempat yang masih kosong tinggal satu atau tidak (untuk membedakan dengan empty dimana semua tempat kosong). Jika benar berarti queue penuh. EnQueue Fungsi EnQueue berguna untuk memasukkan sebuah elemen ke dalam queue tail dan head mula-mula bernilai nol (0). DeQueue DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini dilakukan dengan cara memindahkan posisi head satu langkah ke belakang.  Implementasi Queue dengan Double Linked List Selain menggunakan array, queue juga dapat dibuat dengan linked list. Metode linked list yang digunakan adalah double linked list. Operasi-operasi Queue dengan Double Linked List IsEmpty Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah head
  • 5. masih menunjukkan pada Null atau tidak. Jika benar berarti queue masih kosong. IsFull Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah Jumlah Queue sudah sama dengan MAX_QUEUE atau belum. Jika benar maka queue sudah penuh. EnQueue Fungsi EnQueue berguna untuk memasukkan sebuah elemen ke dalam queue (head dan tail mula-mula meunjukkan ke NULL). DeQueue Procedure DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini dilakukan dengan cara menghapus satu simpul yang terletak paling depan (head). B. Praktikum Praktikum 1 1. Menulis source kode Program C++
  • 6.
  • 7.  Melakukan Kompilasi Pilih menu project, lalu pilih submenu compile atau denngan menekan ALTF9. Maka akan muncul seperti gambar di bawah ini.  Menjalankan Program Menjalankan program dengan cara pilih menu Debug, lalu submenu Run atau dengan cara menekan CTRL+F9. Maka akan muncul gambar seperti di bawah ini.
  • 8.  Kita input pilihan yang pertama yaitu “I” dan menginputkan angka dalam queue, maka tampilanya adalah sebagai berikut:  Setelah tekan enter lalu input any key atau tombol apapun pada keyboard, lalu masukan pilihan yang kedua yaitu “D”, maka tampilannya sebagai berikut ini:  Lakukan hal yang sama seperti perintah diatas, lalu kita masukan pilihan yang ketiga yaitu “P”, maka hasilnya sebagai berikut:
  • 9.  Lakukan seperti perintah diatas dan input pilihan yang ke terakhir yaitu “E”, maka tampilannya sebagai berikut: 2. Analisa dan buat pembahasannya Sintaks diatas adalah sintaks ANTRIAN yang direpresentasikan dalam bentuk struck, operasi yang akan dilakukan pada sintaks diatas adalah : - Insert = untuk memasukan nilai antrian. - Delete= untuk menghapus nilai antrian. - Print_list= untuk menampilkan nilai antrian - Dan operasi – operasi dasar lainya. Dan dalam sintaks diatas telah dikelompokan operasi operasinya agar lebih mudah dipahami, dimana terdiri atas : - Implementasi operasi Queue - Insert - Delete - Print_list - Show_working - Main
  • 10. 1. Implementasi Operasi Queue Pembahasan: Terdiri dari 2 header yakni iostream dan conio. Terdiri dari 1 kelas yakni Linked_list_Queue, dan badan dari kelas itu terdiri dari 1 struct yang diprivate dan diberi nama node, dan dalam struct tersebut terdapat 2 variabel. Selanjutnya dideklarasikan 4 variabel/karkter antrian yang bersifat pointer, dan ke 4 ini menunjuk nilai struct node. Sehingga ke 4 ini memiliki variabel yang sama. Selanjutnya dideklarasikan 5 fungsi, yaitu fungsi link_list_Queue, fungsi delete, fungsi insert, fungsi print_list dan fungsi show_working. Fungsi pertama dideklarasikan yang dimana variabel rear dan front memiliki nilai NULL(mengisi) #include<iostream.h> #include<conio.h> class Linked_list_Queue { private: struct node { int data; node *next; }; node*rear; node*entry; node*print; node*front; public: Linked_list_Queue( ); void Delete( ); void Insert( ); void print_list( ); void show_working( ); }; Linked_list_Queue::Linked_list_Queue( ) { rear=NULL; front=NULL; }
  • 11. 2. Insert() Pembahasan: Sintaks selanjutnya yakni fungsi Enqueu yakni memasukan elemen antrian. Dideklarasikan kembali variabel baru yakni num yang bertipe integer. Dan dalam sintaks disamping pun ada kondisi if yang kondisinya rear==NULL artinya jika nilai rear tersebut terisi maka badan if akan dijalankan. Dan arti dari badan if itu yakni memasukan nilai kedalam program. Sehingga jika kondisi if tersebut terisi maka nilai akan masuk pada program dan variabel num, dan akan menampilkan output “SUDAH MASUK DALAM QUEUE” dan “press any kae tu return to menu” artinya tolong tekan tombol apapun untuk kembali kelayar utama. Inilah fungsi dari next dan null. void Linked_list_Queue::Insert() { int num; cout<<"nnnnnt Masukan angka dalamQueue : ";cin>>num; entry=new node; if(rear==NULL) { entry->data=num; entry->next=NULL; rear=entry; front=rear; } else { entry->data=num; entry->next=NULL; rear->next=entry; rear=entry; } cout<<"nnt *** "<<num<<" sudah masuk dalam Queue."<<endl; cout<<"nnntt Press any key to return to Menu."; getch(); }
  • 12. 3. Delete() Pembahasan: Sintaks selanjutnya yakni fungsi Dequeu dalam antrian atau untuk mengeluarkan/menghapus elemen paling depan dari antrian. Sebagai contoh jika kita masukan elmenen 1,2,3,4,5, lalu kita jalankan fungsi ini maka secara otomatis angka 1 akan terhapus dari antrian karna angka 1 adalah element terdepan. dan jika setiap element telah dikeluarkan maka fungsi akan menampilkan “Queue is empty” artinya nilai queue telah kosong seperti sintaks yang telah dibuat diatas. Namun jika hanya 1 element yang ingin dihapus maka sintkas akan kembali kemenu utama dan melakukan instruksi lainya. 4. Print_list void Linked_list_Queue::Delete() { if(front==NULL) cout<<"nnnt *** Error : Queue is empty.n"<<endl; else { int deleted_element=front->data; node *temp; temp=front; front=front->next; delete temp; cout<<"nnnt *** "<<deleted_element<<" dihapus dari Queue."<<endl; } cout<<"nnntt Press any key to return to Menu."; getch(); } void Linked_list_Queue::print_list() { print=front; if(print!=NULL) cout<<"nnnnnt Angka angka yang ada dalam Queue : n"<<endl; else cout<<"nnnnnt *** Tidak ada yang ditampilkan."<<endl; while(print!=NULL) { cout<<"t"<<print->data<<endl; print=print->next; } cout<<"nnntt Pres any key to return to menu."; getch(); }
  • 13. Pembahasan: Sintaks diatas adalah sintkas untuk menampilkan elemen-element antrian yang telah di masukan. Sehingga print=front arinya print=depan. Jadi mulai dari element depan yang akan ditampilkan. Angka yang ditampilkan akan berbentuk horizontal atau kebawah karna di dalam sintaks penampilannya itu digunkan n. Namun jika data telah terhapus semua maka akan menmpilkan fungsi else. “ tidak ada yang ditampilkan”. 5. Show_working Pembahasan: Sintaks selanjutnya yakni pembuatan tampilan untuk operasi-operasi yang telah kita buat sebelumnya, disini di deklarasikan kembali variabel key yang harus diberi nilai karna disanan key=NULL, dan dalam sintaks diatas pun ada fungsi GOTOXY yang berfungsi untuk menentukan jarak karakternnya. Yang terdiri dari baris dari jumlah spasi dan enter dalam pixel. void Linked_list_Queue::show_working() { char Key=NULL; do { clrscr(); gotoxy(5,5); cout<<"**** Implementation of Linked List as a Queue ******"<<endl; gotoxy(10,8); cout<<"Pilih salah satu menu: "<<endl; gotoxy(15,10); cout<<"- Press 'I' to Masukan data dalamQueue"<<endl; gotoxy(15,12); cout<<"- Press 'D' to Hapus data dari Queue"<<endl; gotoxy(15,14); cout<<"- Press 'P' to Tampilkan data dari Queue"<<endl; gotoxy(15,16); cout<<"- Press 'E' to Exit"<<endl;
  • 14. Pembahasan: Fungsi diatas untuk ketentuan pemilihan operasi dimana if yang pertama yakni (int(key)=27  jumlah keyboard yang bisa di gunakan hanya terdiri dari 27 tuts. Sehingga ada tombol yang tidak bisa kita tekan. Dan else if lainnya hanya untuk memberikan kebebasan jika kita menekan huruf kapital dan kecil. Disana telah diatur sintaksnya. Dan setiap else disana telah ditentukan tampilantampilan yang akan dijalankan. 6. Main() Pembahasan: Sintaks diatas adalah induknya dari semua fungsi sebelumnya. Dan dalam fungsi utama disana didefunisikan kembali elemen class sebelumnya dengan nama obj. Digunakan untuk pemanggilan sturct untuk show_working Input: gotoxy(10,20); cout<<" "; gotoxy(10,20); cout<<"Masukan Pilihan : "; Key=getche(); if(int(Key)==27 || Key=='e' || Key=='E') break; else if(Key=='i' || Key=='I') Insert(); else if(Key=='d' || Key=='D') Delete(); else if(Key=='p' || Key=='P') print_list(); else goto Input; } while(1); } int main() { Linked_list_Queue obj; obj.show_working(); return 0; }
  • 15. 3. Ubah source kode diatas menggunakan preprocessor include.h dan untuk setiap operasi queue gunakan bentuk umum sesuai dengan dasar teori praktikum. Sourec kode pada Turbo C++
  • 17. Menjalankan program Pembahasan: Program diatas sama seperti program sebelumnya, hanya saja dalam program ini menggunkana header stdio. Sehingga fungsi yang digunakan untuk program tersebut adalah printf dan scanf. Dalam header stdio digunakan juga kode format untuk menampilkan keluaran sesuai dengan variable yang digunakan.
  • 18. II. TUGAS 1. Tambahkan function untuk mencari suatu elemen dalam queue 2. Tambahakan function untuk mengedit suatu elemen dalam queue Jawaban no 1 dan no 2: Menulis source kode Program C++
  • 19.
  • 20. Pembahasan: Program diatas menggunakan header conio dan stdio, dan mempunyai konstanta MAX 8, yang artinya jumlah antrian max 8. Dalam sintaks tersebut mempunya 3 variabel yang bertipe char. Operasi yang digunakan dalam antrian tersebut adalah create, isempty, isfull, enqueue, dequeue, clear dan tampil. Untuk menampilkan suatu keluaran digunakan fungsi printf dan untuk menginput digunaka fungsi scanf yang berada pada file header stdio. Dan untuk menghapus pada layar digunakan fungsi clrscr yang berada pada file header conio. Perulangan yang di gunakan dalam program tersebut adalah while do. 3. Carilah nilai total, rata-rata, terbesar dan terkecil  Mencari nilai total dan rata-rata  Melakukan Kompile  Menjalankan program
  • 21. Pembahasan: Program diatas adalah program untuk menghitung jumlah dan rata-rata. Header yang digunakan adalah stdio dan conio. Program diatas mempunyai konstanta max 8 yang artinya maksimal jumlah data yang diinputkan adalah 8. Dalam program tersebut mempunyai 5 variabel yang bertipe integer dan float. Sitem input output yang digunakan adalah printf dan scanf yang berada pada file header stdio. Kode format yang digunakan adalah %f dan %d sesuai dengan variable yang telah di deklarasikan sebelumnya.  Mencari nilai terbesar dan terkecil  Source kode pada C++  Melakukan kompilasi
  • 22.  Menjalankan Program Pembahasan: Program diatas adalah program untuk mencari nilai terbesar dan terkecil. Header yang digunakan adalah stdio. Dalam program tersebut terdapat fungsi tambahan yaitu double terbesar dan double terkecil. Dan untuk mencari nilai terbesar atau terkecil digunakan struktur pemilihan if then else. Dalam fungsi utama yaitu int main terdapat I/O printf untuk menampilkan hasil keluaran dan scanf untuk menginputkan data.
  • 23. III. KESIMPULAN Dari data diatas dapa saya simpulkan bahwa Karakteristik yang membedakan queue (antrian) dari stack adalah cara menyimpan dan mengambil data dengan struktur first in first out (FIFO). Hal ini berarti elemen pertama yang ditempatkan pada queue adalah yang pertama dipindahkan. Selain itu, Elemen – element dasarnya adalah : 1. Elemen antrian yaitu item-item data yang terdapat di elemen antrian 2. Front (elemen terdepan dari antrian) 3. Rear (elemen terakhir dari antrian) 4. Jumlah elemen pada antrian (Count) 5. Status antrian Operasi dasar Queue terbagi menjadi : 1. Create Queue 2. Empty Queue 3. Full Queue 4. Enqueue 5. Dequeue 6. Clear Queue
  • 24. IV. Daftar Pustaka  www.google.com  Modul Pembelajaran, Algoritma Pemrograman dan Struktur Data