0% menganggap dokumen ini bermanfaat (0 suara)
158 tayangan20 halaman

Queue Kelompok3

Program ini merangkum tentang pengaturan antrian pemilih dalam pemilihan umum dengan menggunakan struktur data antrian (queue). Program ini menggunakan operasi dasar antrian seperti enqueue dan dequeue untuk menambah dan menghapus elemen antrian secara berurutan.

Diunggah oleh

FAJAR
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
158 tayangan20 halaman

Queue Kelompok3

Program ini merangkum tentang pengaturan antrian pemilih dalam pemilihan umum dengan menggunakan struktur data antrian (queue). Program ini menggunakan operasi dasar antrian seperti enqueue dan dequeue untuk menambah dan menghapus elemen antrian secara berurutan.

Diunggah oleh

FAJAR
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 20

LAPORAN QUEUE

“ANTRIAN PEMILIHAN UMUM”

KELOMPOK 3
Pitriah 1515015058
Syamsul Fatah 1515015068
M. Asyharul .M 1515015078
Fajar Khairuman 1515015088
Reza Akbar Subarta 1515015098

JURUSAN TEKNIK INFORMATIKA


UP. FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI
UNIVERSITAS MULAWARMAN
2016
KATA PENGANTAR

Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha Panyayang,
kami panjatkan puja dan puji syukur atas kehadirat-Nya, yang telah melimpahkan rahmat,
hidayah, dan inayah-Nya kepada kami, sehingga kami dapat menyelesaikan makalah kami
tepat waktu.

Laporan ini kami susun dengan maksimal dan dengan bantuan dari berbagai pihak
untuk memenuhi tugas program studi “Struktur Data”. Untuk itu kami mengucapkan terima
kasih banyak kepada semua pihak yang telah berkontribusi dalam pembuatan makalah ini.

Terlepas dari semua itu, Kami menyadari sepenuhnya bahwa masih ada kekurangan
baik dari segi susunan kalimat maupun tata bahasanya. Oleh karena itu dengan tangan
terbuka kami menerima segala saran dan kritik dari pembaca agar kami dapat memperbaiki
ini.

Akhir kata, kami berharap makalah ini dapat memenuhi tugas ini dan bermanfaat
bagi pembacanya.

Samarinda, 03 Mei 2016

Kelompok 3

i
DAFTAR ISI

KATA PENGANTAR ………………………………………..……………………. i


DAFTAR ISI …………………………………………………….............................. ii
DAFTAR GAMBAR……………………………………………………………….. iii
BAB I PENDAHULUAN …………………………………………………………... 1
1.1.Deskripsi Masalah …………………………………………............................ 1
1.2.Studi Kasus ………………………………………………………………….. 1
1.3.Rumusan Masalah …………………………………………............................ 2
1.4.Tujuan ……………………………………………………………………….. 2
1.5.Manfaat ……………………………………………………………………… 2
BAB II LANDASAN TEORI ……………………………………………………… 3
2.1.Pengertian Queue ….. ………………….......……………………………........3
BAB III PEMBAHASAN ………………………………………………………….. 4
3.1 Pembahasan ..................................................................................................... 4
3.2 Ilustrasi …………………………………………………………………........8
3.3 Source Code .................................................................................................... 11
BAB IV PENUTUP ...................................................................................................... 15
4.1.Kesimpulan ....................................................................................................... 15
DAFTAR PUSTAKA ………………………………………………………………. 16

ii
DAFTAR GAMBAR

3.1.1 Skema Menambah & Menghapus Elemen Queue ……………………….............. 5

Gambar 3.1.2 Skema Menambah & Menghapus Elemen Queue (Tanpa Pergeseran) .... 6

Gambar 3.1.3 Skema Menambah & Menghapus Elemen Queue (Dengan Pergeseran) .... 7

Gambar 3.2.1 Tampilan Menu Utama Program ............................................................ 8

Gambar 3.2.1 Tampilan Saat Ubah Nilai Maksimum Queue ........................................ 8

Gambar 3.2.2 Penerapan Antrian Setelah Antrian Terisi Penuh ................................... 9

Gambar 3.2.3 Tampilan Penerapan Antrian Saat Antrian Penuh ................................. 9

Gambar 3.2.4 Penerapan Penghapusan Elemen Antrian .............................................. 10

Gambar 3.2.5 Penerapan Penghapusan Elemen Antrian (Underflow) ....................... 10

iii
BAB I
PENDAHULUAN
1.1. Deskripsi Masalah

Antrian (Queue) dapat diartikan sebagai suatu kumpulan data yang seolah-olah terlihat
seperti ada data yang diletakkan di sebelah data yang lain seperti pada gambar 01. Pada
gambar, data masuk melalui lorong di sebelah kanan dan masuk dari terowongan sebelah kiri.
Hal ini membuat antrian bersifat FIFO (First In First Out), beda dengan stack yang berciri LIFO.
Antrian dapat dibuat baik dengan array maupun dengan struct. Pada pembuatan antrian
dengan array, antrian yang disajikan bersifat statis. Ini disebabkan oleh jumlah maksimal array
sudah ditentukan sejak deklarasi awal

1.2. Studi Kasus

Dalam sebuah studi representatif dalam queue ini adalah tentang antrian para
pemilih saat pemilu. Sehingga tidak terjadi penumpukan antrian pemilih dalam suatu
pemilu serta membuat antrian pemilih menjadi tertib. operasi yang digunakan dalam
program ini yakni, operasi Isempty, Isfull, Create, Delete, Clear, Enqueue, Dan
Dequeue.

1
1.3. Rumusan Masalah
Berdasarkan deskripsi masalah yang dipaparkan diatas, maka rumusan masalah
dalam pembuatan program pendataan tinggi badan pasien adalah :
a. Bagaimana membuat program penyusunan antrian pemilihan umum
menggunakan Program Borland C?

1.4. Tujuan
a. Untuk merancang suatu program antrian pemilihan umum.
b. Mengetahui bentuk contoh program antrian (queue)
c. Mengetahui contoh struktur data antrian dalam kehidupan sehari-hari

1.5. Manfaat
a. Dapat memudahkan dalam proses antrian pemilihan umum.
b. Dapat menghindari terjadinya penumpukan antrian dalam pemilihan umum.

2
BAB II
LANDASAN TEORI

2.1. Pengertian Queue

Secara harfiah queue dapat diartikan sebagai antrean. Queue merupakan kumpulan data
dengan penambahan data hanya dapat dilakukan melalui satu sisi, yaitu belakang (tail) dan
penghapusan data hanya melalui sisi depan (head). Queue bersifat FIFO (First In First Out),
yaitu data yang pertama masukakan keluar terlebih dahulu dan data yang terakhir masuk
akan keluar terakhir
Elemen yang pertama kali masuk ke dalam queue disebut elemen depan (front/head of
queue), sedangkan elemen yang terakhir kali masuk ke queue disebut elemen belakang
(rear/tail of queue).

Aturan penambahan dan penghapusan elemen pada queue, yaitu pada penambahan elemen
selalu di lakukan melalui salah satu ujung, menempati posisi di belakang elemen-elemen
yang sudah masuk sebelumnya atau menjadi elemen paling belakang. Sedangkan
penghapusan elemen dilakukan di ujung yang berbeda, yaitu pada posisi elemen yang
masuk paling awal atau elemen terdepan.

3
BAB III
PEMBAHASAN

3.1 Pembahasan
Operasi-Operasi Dasar Dari Sebuah Queue :
1. Enqueue : proses penambahanelemen di posisibelakang
2. Dequeue : proses pengambilanelemen di posisi depan
Selain operasi dasar di atas, ada pula operasi-operasi lain yang dapat dilakukan terhadap
sebuah queue yaitu :
1. CREATE (Q) Operator yang menunjukkan suatu antriann hampa Q.
Berarti : Noel (Q) = 0
Front (Q) & Rear (Q) = tidak terdefinisi
2. ISEMPTY (Q) Operator yang menunjukkan apakah antriann Q hampa.
Operand : tipe data antrean
Hasil : tipe data boolean
ISEMPTY (CREATE (Q)) = True
3. INSERT (E, Q) Operator yang menginsert elemen E ke dalam antrian Q.
E ditempatkan di bagian belakang antrian.
Hasil : antrian yang lebih besar.
REAR (INSERT (E, Q)) = E
ISEMPTY (INSERT (E, Q)) = False
4. REMOVE (Q)Operator yang menghapus elemen bagian depan dari antrean Q.
Hasil : antrian yang lebih pendek.
Pada setiap operasi, Noel (Q) berkurang 1 dan elemen ke-2 menjadi elemen terdepan.
Jika Noel (Q) = 0 maka Q = hampa
Remove (Q) = kondisi error (underflow condition)
Remove (Create (Q)) = kondisi error (underflow condition)

4
Gambar 3.1.1 Skema Menambah & Menghapus Elemen Queue

Jika ada elemen baru yang akan masuk pada gambar (a), maka ia akan diletakkan
disebelah kanan F (gambar (b). Jika ada elemen yang akan dihapus, maka A akan dihapus
lebih dulu (gambar (c).
Contoh deklarasi antrian :
Const max = 5
Varantrian : array [1..max] of char;
Belakang, depan : integer; x : char;
Dengan menggunakan array, maka overflow dapat terjadi jika antrian telah penuh,
sementara masih ingin menambah elemen kedalam antrian. Dengan mengabaikan adanya
overflow, maka penambahan elemen baru yang dinyatakan oleh var x dapat di
implementasikan dengan statemen :
belakang := belakang + 1;
antrian [belakang] := x;
Operasi penghapusan bisa di implementasikan dengan ;
x := antrian [depan];
depan := depan + 1;

5
Gambar 3.1.2 Skema Menambah & Menghapus Elemen Queue
(Tanpa Pergeseran)

Pada gambar (a) posisi depan = 1 dan belakang = 0. Pada gambar (b) keadaan
setelah penambahan empat buah elemen dimana posisi depan = 1 dan belakang = 4.
Pada gambar (c) keadaan setelah penghapusan dua buah elemen dimana posisi depan = 3
dan belakang = 4.
Pada gambar (d) keadaan setelah penambahan satu buah elemen dimana posisi depan = 3
dan belakang = 5.
Jika akan ditambah elemen baru, maka nilai belakang harus ditambah satu menjadi
6. Sedangkan larik antrian tersebut hanya terdiri dari 6elemen sehingga tidak bisa ditambah
lagi meskipun sebenarnya larik tersebut masih kosong di dua tempat. Oleh karena itu
dilakukan dengan metode penggeseran dimana jika ada elemen yang dihapus, maka semua
elemen lain digeser sehingga antrian selalu dimulai dari depan = 1.
x := antrian [1];
for i := 1 to belakang-1 do
begin
antrian [ i] := antrian [i +1];
end;

6
Gambar 3.1.3 Skema Menambah & Menghapus Elemen Queue
(Dengan Pergeseran)

Pada gambar (a) posisi depan = 1 dan belakang = 0. Pada gambar (b) keadaan
setelah penambahan empat buah elemen di mana posisi depan = 1 dan belakang = 4.
Pada gambar(c) keadaan setelah penghapusan dua buah elemen dimana posisi depan = 1
dan belakang= 2. Pada gambar (d) keadaan setelah penambahan dua buah elemen di mana
posisi depan =1 dan belakang = 4.
Cara penggeseran elemen tidak efisien untuk larik berukuran besar. Oleh karena itu
dilakukan dengan larik yang menyimpan elemen antrian sebagai larik memutar (circular).

7
3.2 Ilustrasi Program

Gambar 3.2.1 Tampilan Menu Utama Program

Dapat kita amati pada gambar di atas pada pilihan pertama kita mencoba untuk
menginputkan angka “4.Ubah Maksimum tumpukan <default nya 5>” yakni membuat
antrian berdasarkan jumlah pemilih yang akan kita tampung nanti nya dengan batas
maksimum tumpukan 5.

Selanjutnya kita mencoba untuk memberikan batas berapa banyak antrian pemilih
yang akan kita memuat nanti nya, pada gambar di inputkan batas maksimum 2.

Gambar 3.2.1 Tampilan Saat Ubah Nilai Maksimum Queue

8
Kemudian kita memilih nomor 1 Masukkan No. Pengantri (insert) Antrian, disini kita
masukkan no. antrian “1”

Gambar 3.2.2 Penerapan Antrian Setelah Antrian Terisi Penuh

Berikut merupakan tampilan setelah batas maksimum tumpukan yakni 5 (default) terpenuhi
maka tampilan saat antrian dalam keaadaan penuh.

Gambar 3.2.3 Tampilan Penerapan Antrian Saat Antrian Penuh

9
Fungsi Dequeue (delete) sendiri untuk memungkinkan pengambilan penggantri
dari bagian paling depan seperti terlihat pada gambar dibawah ini. Terlihat pengantri yang
paling pertama , akan menjadi yang paling pertama keluar.

Gambar 3.2.4 Penerapan Penghapusan Elemen Antrian

Antrian dapat terjadi suatu keaadaan is empty , yaitu suatu keadaan dimana isi
dalam suatu antrian dalam keadaaan kosong. Dan dapat pula dalam keadaan is full yaitu
antrian dalam keadaaan penuh.

Gambar 3.2.5 Penerapan Penghapusan Elemen Antrian


(Underflow)
10
3.2 Source Code
Antrian Pemilih Pemilu (Dinamis & Statis)

#include <stdio.h>

#include <conio.h>

int queue_array[5];

int MAX=5;

int rear = - 1;

int front = - 1;

void tambah()

int add_item;

if (rear == MAX - 1)

printf("\n\nAntrian Penuh (Maks. Antrian : %d) \n",MAX);

else

if (front == - 1)

front = 0;

printf("\n\nMasukkan Nomor Antrian : ");

scanf("%d", &add_item);

rear = rear + 1;

queue_array[rear] = add_item; } }

void hapus()

11
if (front == - 1 || front > rear)

printf("\n\nAntrian Kosong !!! \n");

return ;

else

printf("\n\nNo. Antrian yang di Hapus Dari Antrian : %d\n", queue_array[front]);

front = front + 1;

void tampil()

int i;

if (front == - 1)

printf("\n\nAntrian KOSONG
\n\4=============================================\4\n");

else

printf("\n\nBerikut Antrian Nya : \n\n");

for (i = front; i <= rear; i++)

printf("% 3d |", queue_array[i]);

printf("\n\4=============================================\4\n\n"); getch();

void ubah_mx()

printf("\n\nMasukkan nilai Maksimum antrian : ");

scanf("%d",&MAX); clrscr();

12
scanf("%d",&MAX); clrscr();

main()

int choice;

while (1)

{ printf("\tPROGRAM ANTRIAN (QUEUE)\nStudi Kasus : Antrian Pemilih Pemilu\n\t


Struktur Data\n");

printf("\4=============================================\4\n");

printf("| 1.Masukkan No. Pengantri(Insert) Antrian |\n");

printf("| 2.Hapus No. Antrian (Delete) dari Antrian |\n");

printf("| 3.Tampilkan semua Pengantri di Antrian |\n");

printf("| 4.Ubah Maksimum Antrian (default : 5) |\n");

printf("| 5.Keluar |\n");

printf("\4=============================================\4\n");

printf("Masukkan Pilihan : ");

scanf("%d", &choice);

switch (choice)

case 1: clrscr();

tambah(); printf("\n\n");

break;

case 2: clrscr();

hapus(); printf("\n\n");

break;

case 3: clrscr();

tampil();

printf("\n\n");

break;

case 4: clrscr();
13
ubah_mx();
ubah_mx();

printf("Nilai Maksimum Antrian Menjadi : %d",MAX);

printf("\n\n");

break;

case 5: clrscr();

goto keluar; printf("\n\n");

break;

default:

printf("\n\nPilihan Tidak Ditemukan, Coba Kembali \n"); clrscr();

keluar:

printf("Tekan Enter...");

getch();}

14
BAB III
PENUTUP

4.1 Kesimpulan

Pada laporan ini menjelaskan fungsi Stack/Tumpukan dimana Stack/Tumpukan bersifat


LIFO (Last In First Out), dengan metode yang ada kita dapat melakukan penambahan
tumpukan dengan menggunakan Push, pada program yang telah dibuat dengan batasAtas
tumpukan dan kapasitas umpukan yang telah ditentukan, jika tumpukan yang dimuat
kurang adari batas atas makan tumpukan tersebut dapat tampil, pada tumpukan terakhir
akan ada keterangan bahwa tumpukan tersebut yang berada diposisi paling atas dan kan
pertama keluar pada saat dilakukan proses berikutnya, dan apabila penambahan tumpukan
melebihi batas atas dan kapasitas tumpukan maka tumpukan akan menampilkan data
terakhir yang masuk sesuai batas atas dan kapasitas tumpukan dan akan muncul keterangan
bahwa tumpukan telah penuh. Pada saat melakukan pengambilan tumpukan dengan
menggunakan Pop, seberapa banyak kita melakukan Pop maka sebanyak itu juga tumpukan
yang akan dipop.

15
DAFTAR PUSTAKA

http://darkzone7.blogspot.co.id/2013/04/struktur-ogranisasi-data-2-queue-antrean.html (diakses
03 Mei 2016)
http://www.slideshare.net/AchmadSayfudin/queue-laporan (diakses 03 Mei 2016)

https://www.google.co.id/?gws_rd=cr,ssl&ei=ZigoV7KPK8WIuQSG2ZuYDw#q=laporan+queue
(diakses 03 Mei2016)

16

Anda mungkin juga menyukai