laporan praktikum (queue)

12
LAPORAN PRAKTIKUM STRUKTUR DATA MODUL : 6 QUEUE NamaPraktikan Nomor Mahasiswa Tangga lKumpu l Tandatangan Praktik an Asiste n MOHAMMAD SYAIFULLAH 121411091 NamaPenilai Tanggal Koreksi Nilai Tandatangan Asiste n Dosen Muhammad Machmud, S.Kom Kelas C

Upload: mas-syaifullah

Post on 07-Dec-2015

78 views

Category:

Documents


2 download

DESCRIPTION

LAPORAN PRAKTIKUMSTRUKTUR DATAMODUL : 6QUEUE

TRANSCRIPT

Page 1: LAPORAN PRAKTIKUM (queue)

LAPORAN PRAKTIKUM

STRUKTUR DATA

MODUL : 6

QUEUE

NamaPraktikanNomor

MahasiswaTanggalKumpul

Tandatangan

Praktikan Asisten

MOHAMMAD SYAIFULLAH 121411091

NamaPenilaiTanggal Koreksi

NilaiTandatangan

Asisten Dosen

Muhammad Machmud, S.Kom

Ahmad Fajar Ramadhani

Taslimah

JURUSAN TEKNIK INFORMATIKA

SEKOLAH TINGGI TEKNIK QOMARUDDIN GRESIK

2015

Kelas

C

Page 2: LAPORAN PRAKTIKUM (queue)

MODUL : 6

QUEUE

A. Dasar Teori

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 dating terlebih dahulu akan

dilayani lebih dahulu. Istilah yang sering dipakai bilaseseorang keluar dari antrian

adalah dequeue. Walaupun berbeda implementasi, struktur data queue

setidaknya harus memiliki

Operasi-operasi Queue 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 adalah suatu array yang dibuat seakan-akan merupakan

suatu garis lurus dengan satu pintu masuk dan satu pintu keluar.

Operasi-Operasi Queue dengan Linear Array

- IsEmpty

- IsFull

- EnQueue

- DeQueue

- Clear

Implementasi Queue dengan Circular Array

Circular array adalah suatu array yang dibuat seakan-akan merupakan

sebuah lingkaran dengan titik awal (head) dan titik akhir (tail) saling

bersebelahan jika array tersebut masih kosong.

121411091 | Mohammad Syaifullah 1

Page 3: LAPORAN PRAKTIKUM (queue)

Operasi-Operasi Queue dengan Circular Array

- IsEmpty

- IsFull

- EnQueue

- DeQueue

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 bias menampung data dengan cara mengecek apakah Jumlah

Queue sudah sama dengan MAX_QUEUE atau belum. Jika benar maka

queuesudah 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 dengancara menghapussatusimpulyang terletak

paling depan (head).

121411091 | Mohammad Syaifullah 2

Page 4: LAPORAN PRAKTIKUM (queue)

B. Soal

Buatlah suatu program dengan menu enqueue, dequeue, clear, display, dan

keluar dalam satu program mengunakan queue of link list!

C. Algoritma

1. Mulai

2. Pilih menu:

- Menu 1 enqueue (masukan data)

- Menu 2 dequeue (hapus data awal masuk)

- Menu 3 clear (menghapus seluruh data)

- Menu 4 display (menampilkan data)

- Menu 5 keluar (ke menu 3)

3. Selesai

D. Flowchart

121411091 | Mohammad Syaifullah 3

Page 5: LAPORAN PRAKTIKUM (queue)

E. Source Code

#include <conio.h>#include <stdlib.h>#include <iostream.h>#define max 10

struct node{ int info; struct node *ptr;}*front,*rear,*temp,*front1,*p = NULL;int count = 0,i,no=1;

void create(){ front = rear = NULL;}

void enq(int x){ if (rear == NULL) { rear = (struct node *)malloc(1*sizeof(struct node)); rear->ptr = NULL; rear->info = x; front = rear; } else { temp=(struct node *)malloc(1*sizeof(struct node)); rear->ptr = temp; temp->info = x; temp->ptr = NULL;

rear = temp; } count++;}

void display(){ front1 = front;

if ((front1 == NULL) && (rear == NULL)) { cout<<" Queue Kosong"; return; }

121411091 | Mohammad Syaifullah 4

Page 6: LAPORAN PRAKTIKUM (queue)

while (front1 != rear) { cout<<" "<<front1->info<<" -->"; front1 = front1->ptr; } if (front1 == rear) cout<<" "<<front1->info<<" -->";}

void deq(){ front1 = front;

if (front1 == NULL) { cout<<"\n Queue Kosong"; return; } else if (front1->ptr != NULL) { front1 = front1->ptr; cout<<"\n Nilain yang di Dequed : "<<front->info; free(front); front = front1; } else { cout<<"\n Nilain yang di Dequed : "<<front->info; free(front); front = NULL; rear = NULL; } count--;}

void clear(){node *hapus;rear = front;while(rear!=NULL){hapus = front;rear = rear->ptr;delete hapus;}front = NULL;}

121411091 | Mohammad Syaifullah 5

Page 7: LAPORAN PRAKTIKUM (queue)

void main(){ int no, ch; cout<<" *****************************\n";

cout<<" Nama : MOHAMMAD SYAIFULLAH\n"; cout<<" NIM : 121411091\n";

cout<<" Jurusan: Teknik lnformatika \n"; cout<<" *****************************\n\n";

cout<<"\n 1 - Enque"; cout<<"\n 2 - Deque"; cout<<"\n 3 - Clear"; cout<<"\n 4 - Display"; cout<<"\n 5 - Exit"; create(); while (1) { cout<<"\n\n Masukan Kode Menu : ";cin>>ch; switch (ch) { case 1: cout<<" Masukan data : ";cin>>no; enq(no); break; case 2: deq(); break; case 3: clear(); cout<<" Queue Telah di Hapus"; break; case 4: display(); break; case 5: exit(0); default: cout<<" Kode Salah "; break; } }}

121411091 | Mohammad Syaifullah 6

Page 8: LAPORAN PRAKTIKUM (queue)

F. Output

G. Analisa Program

Queue merupakan suatu struktur data linear. Hampir sama dengan Stack,

perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang

bebeda. Penghapusan dilakukan pada bagian depan (front) dan penambahan

berlaku pada bagian belakang (Rear). Elemen-elemen di dalam antrian dapat

bertipe integer, real, record dalam bentuk sederhana atau terstruktur.

121411091 | Mohammad Syaifullah 7

Page 9: LAPORAN PRAKTIKUM (queue)

.Daftar Pustaka

2013. Modul Praktikum STRUKTUR DATA: LKP 6 QUEUE

Sumber dari Internet :

http://zuhri-ghostmetal.blogspot.com/ (Di akses 24 MEI 2015)

http://rplgantar.blogspot.com/ (Di akses 22 MEI 2015)

121411091 | Mohammad Syaifullah 8