Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
STRUKTUR DATA
NAMA
: ALI FAHRUDDIN
NIM
KELAS
:B
MODUL
: II ( QUEUE )
2014
BAB I
TUJUAN DAN LANDASAN TEORI
1.1
Tujuan Praktikum
1. Mahasiswa mampu memahami konsep queue
2. mahasiswa mampu mengimplementasikan queue untuk memecahkan
masalah tertentu
begin
Q.front := NULL;
Q.rear := NULL;
End;
Proses untuk mengetahui status queue dalam keadaan kosong atau tidak dapat
didefinisikan sebagai berikut:
Function EmptyQ (Q :queue) : Boolean;
Begin
Empty := ((Q.front = Null) and (Q.rear=Null));
End;
Pada saat penambahan data apabila mengetahui apakah queue sudah penuh atau
belum, maka perlu diperhitungksn jumlah elemen data pada queue. Sebuah queue
penuh jika Q.rear = NMAX. Namun demikian tidak selamanya kondisi Q.rear =
NMAX menunjukkan bahwa queue telah penuh. Kondisi Q.rear = NMAX akan
menunjukkan queue telah penuh bila selama proses pengoperasian queue belum
pernah ada data yang keluar ( Dequeue ).
Bila telah pernah terjadi operasi Dequeue maka akan terjadi pergeseran penanda
front sebanyak data yang telah keluar. Hal ini terjadi karena operasi Dequeue
dengan array hanya memindahkan index penanda front ke index yang di atasnya.
Dalam hal ini penghapusan elemen di depan mengakibatkan array pada index
awal menjadi kosong dan tidak terpakai. Jika hal ini terjadi maka perlu dilakukan
setup ulang index front ( consolidate ) dengan memindahkan semua data ke
bagian awal dari tabel.
Procedure Consolidate (var Q : queue);
{ IS : Q.rear = NMAX dan Q.front <>1 }
{ FS : Q.front = 1 dan Q.rear = banyaknya data }
Var
i, j : integer;
Begin
j:=1;
for i := Q.front to Q.rear do
begin
Q.tabelemen[j] := Q.tabelemen[i];
j := j+1;
end;
Q.front := 1;
Q.rear := j;
End;
BAB II
LANGKAH KERJA
A. Tugas Praktikum
1. Sebuah plasa mempunyai ruang yang hanya bisa diisi sampai 5 mobil saja
pada satu jalur. Mobil yang datang lewat salah satu jalur ( sebut saja A ),
sedang mobil yang keluar lewat jalur lainnya ( sebut saja B ). Jika ada
sebuah mobil yang keluar dan kebetulan berada ditengah, maka mobilmobil lain yang berada didepannya harus dipindahkan dulu, setelah mobil
tersebut keluar maka mobil-mobil yang dipindahkan tadi disusun kembali
seperti semula. Jika mobil yang akan masuk, tetapi jalur parkir sudah
penuh maka ada pesan Parkir penuh!.
Buatlah progam dari kasus diatas.
BAB III
PEMBAHASAN
Queue (antrian) adalah kumpulan objek data yang tipenya sama, tersusun
sebagai sebuah barisan linier. Elemen pertama disebut sebagai front/head dan
elemen terakhir disebut rear/tail. Maka dalam implementasi program dalam
program pascal adalah sebagai berikut:
Pertama kali dalam pembuatan program pascal adalah memberi nama program
disini kita tuliskan program antrian_parkir dengan uses crt.
Untuk konstanta adalah nilai tetap yang tidak bisa di ubahkan dalam soal
maksimal 5 mobil yang dapat masuk maka kita tuliskan MAX=5, dan
sedengkan untuk parkir mobil kosong maka kita tuliskan NULL=0,
Untuk tipe data baru kita membuat type tipedata dengan string, serta
membuat record antrian dengan isi Data bertipe array[1..MAX]of tipedata
nilai MAX disini adalah 5 karena sudah dideklarasikan dalam constanta
diatas, serta rear yang bertipedata integer.
integer dengan cekQueue adalah false (salah) dan untuk x=1 sampai MAX(5)
maka jika Q.Data[x] adalah Data maka cekQueue tersebut adalah true
(benar).
Selanjutnya
Procedure
Enqueue
dengan
parameter
Q:antrian
dan
Data:tipedata adalah sifat yang terdapat pada queue yang digunakan untuk
penambahan data pada elemen akhir queue. Proscedure ini berisi apabila
kosong(Q) (dimana kosong adalah sebuah function yang telah kita buat tadi
dan Q adalah antrian) maka Q.rear adalah Q.rear+1, dan Q.data[Q.rear]
adalah Data tersebut.
Selanjutnya procedure Dequeue adalah sifat yang terdapat pada queue juga
yaitu untuk melakukan pengulangan sampai menemukan data yang cocok
kemudian menghapusnya. Procedure ini mempunyai parameter Q:antrian dan
Data:tipedata dan memiliki beberapa variabel yang terdiri dari: temp bertipe
tipedata;
Untuk pemilihan kita gunakan pilihan dengan pil sebagai pilihan kita
dengan tipe char pada parameternya. Apabila kita memilih pilihan 1 atau
2 maka terdapat output silahkan masukkan no. Antrian Mobil
Anda... dan terdapat output no. Antrian : dimana disini kita disuruh
untuk menginputkan nomor antrian mobil.
Apabila kita menginputkan pilihan 1 maka akan terjadi Enqueue yaitu
proses dimana akan terjadi penambahan data yaitu no. Antrian mobil dan
muncul output yang bertuliskan Mobil anda telah saya masukkan.
Apabila kita menginputkan pilihan 2 maka akan terjadi Dequeue yaitu
proses diman akan terjadi penghapusan pada data yang cocok saja pada no.
Antrian mobil dan muncul output yang bertuliskan Mobil anda telah saya
keluarkan
Untuk pada program utama ini kita menggunakan variabel Q dengan tipe data
antrian dan pil dengan tipe data char. Program utama kita terdiri dari
procedure inisialisasi(Q) yang telah kita buat diatas, kemudian prosedure
ScreenOut(Q) yang telah kita buat diatas dengan menambahkan output yang
bertuliskan Parkiran Siap Dipakai, Silakan Masukan Mobil... , kemudian
kita memakai perulangan menggunakan repeat..until pada procedure
OutputMenu yang digunakan untuk mengulang statement tersebut dan
apabila pilihan yang dipilih adalah nomor 3 maka pengulangan akan berhenti
dan program akan ditutup. Selanjutnya untuk readkey digunakan untuk
menampilkan output terlebih dahulu sebelum program ditutup, serta fungsi
End. (End menggunakan tanda titik) adalah digunakan menutup program
utama.
Untuk menjalankan program ini dalam pascal maka kita harus run program
dengan menekan CTRL+F9 maka program yang akan tampil adalah:
BAB IV
KESIMPULAN
Queue (antrian) adalah kumpulan objek data yang tipenya sama, tersusun
sebagai sebuah barisan linier. Elemen pertama disebut sebagai front/head dan
elemen terakhir disebut rear/tail. Penambahan data dilakukan pada akhir elemen,
dikenal dengan istilah FIFO (First In First Out).
Terdapat 2 operasi pada Queue yaitu Enqueue dan Dequeue.
BAB V
DAFTAR PUSTAKA
Teknik informatika, 2014. Modul Struktur data. Universitas Palangkaraya:
Palangkaraya.
http://yoga-ordinary.blogspot.com/2013/07/program-antrian-queue-padapascal.html
BAB VI
LAMPIRAN
o Coding:
o Output
Tampilan output yang pertama kali muncul, kemudian kita masukkan mobil
dengan menggunakan pilihan (1) kemudian tekan Enter
Setelah itu muncul pesan untuk menginputkan No. Antrian, kita masukkan
No.Antrian 1 kemudian tekan Enter.
Maka dalam data parkir terdapat No.Antrian 1 masuk parkiran, mobil tersebut
masuk dari Tail menuju pada ujung parkiran. Kemudian kita ingin
memasukkan mobil lagi maka inputkan pilihan (1) tekan Enter.
Kemudian kita masukkan beberapa mobil sampai mobil antrian ke-5 dalam
parkiran.
Setelah parkiran penuh diisi oleh 5 mobil maka ada pesan PARKIR
PENUH dan program hanya memiliki dua pilihan mobil keluar atau exit
karena pilihan mobil masuk tidak dapat digunakan karena parkiran penuh.
Dan kita memilih pilihan nomor (2) untuk mobil keluar.
Muncul pesan No.Antrian berapa yang ingin keluar, kita tuliskan 4 tekan
Enter.