00
SESI/MEJA : B/9
NAMA PRAKTIKAN:
Masti Fatchiyah Maharani
( 1434010077)
ASISTEN PRAKTIKUM:
Try Khurniawati
(1334010038)
(1334010028)
LEMBAR PENGESAHAN
LAPORAN INI TELAH DITERIMA DAN DISETUJI
PRAKTIKUM
: Struktur Data
MODUL
:5
JUDUL
: Queue
SESI
:B
MEJA
:9
Surabaya,
November 2015
Mengetahui,
Asisten Praktikum
Try Khurniawati
Unggul Widi Atmojo
SOAL
1. Buatlah program Queue mengenai sistem informasi parkiran dengan menu:
1. Enqueue
2. Dequeue
3. View
4. Exit
ALGORITMA
1.
2.
Class Que:
Mulai
Deklarasi variabel: nopol=nomor polisi,seri=kode parkir,dan waktu=lama parkir
1.
2.
3.
4.
Fungsi enqueue
Mulai
Deklarasi variabel: data=objek dari Node, input=objek dari scanner.
Inisialisasi i=0
Jika i<a bernilai benar maka lanjut ke langkah 5,jika tidak maka lanjut ke
langkah 15
5.
Membuat node baru dari objek data.
6.
Masukkan nopol
7.
Masukkan seri
8.
Masukkan waktu
9.
Jika head=null bernilai benar maka lanjut ke langkah 10,jika tidak maka lanjut
ke langkah 12
10.
Inisialisasi head=data
11.
Inisialisasi tail=data
12.
Panggil nextNode tail
13.
Inisialisasi tail nextNode=data
14.
Inisialisasi tail=data
15.
Proses:i=i+1,kembali ke langkah 9
16.
Selesai
1.
2.
3.
4.
Fungsi dequeue
Mulai
Deklarasi variabel: current=keadaan sebelumnya
Insialisasi Node current=head
Jika head=null bernilai benar maka lanjut ke langkah 5,jika tidak lanjut ke
langkah6
5.
Cetak data kosong.
6.
Jika head=tail bernilai benar maka lanjut ke langkah 7 jika tidak lanjut ke
langkah8
7.
Inisialisasi head=tail=null
8.
Inisialisasi current= panggil nextNode dengan head
9.
Inisialisasi head=current
10.
Insialisasi current=null
11.
Selesai
1.
2.
3.
4.
5.
Fungsi viewNode
Mulai
Deklarasi variabel: current=kondisi sebelumnya,i=variabel pembanding
Inisialisasi i=1
Inisialisasi node current=head
Jika head=null bernilai benar maka lanjut ke langkah 6,jika tidak lanjut ke
6.
7.
8.
langkah7
Cetak data kosong
Cetak no,nopol,seri,dan waktu.
Jika current tidak sama dengan null bernilai benar maka lanjut ke langkah 9,
9.
10.
11.
12.
1.
2.
3.
4.
5.
Main:
Mulai
Deklarasi variabel:a=banyak data,input=objek scanner,k=objek stack,menu.
Insialisasi menu=1
Membuat Que baru dengan objek input.
Jika menu tidak sama dengan 4 bernilai benar maka lanjut ke langkah 6 jika
6.
7.
8.
9.
10.
langkah10
Cetak masukkan banyak data
Panggil fungsi enqueue dengan objek k
Jika menu=2 bernilai benar maka lanjut ke langkah 11,jika tidak maka lanjut ke
11.
12.
13.
14.
langkah 12
Panggil fungsi dequeue dnegan objek k
Jika menu=3 bernilai benar maka lanjut ke langkah 13 jika tidak maka 14
Panggil fungsi viewNode dengan objek k
Jike menu=4 bernilai benar maka lanjut ke langkah,jika tidak maka lanjut ke
15.
16.
17.
langkah
Cetak terimakasih
Cetak maaf,menu tidak tersedia
selesai
DIAGRAM UML
FLOWCHART
Gambar 8. Flowchart
SOURCECODE
package praktikum;
import java.util.*;
public class Que{
Node head=null, tail=null;
Scanner input=new Scanner(System.in);
private static class Node{
public String nopol,seri,waktu;
public Node nextNode=null;
}
void enqueue(int a){
for (int i=0; i<a; i++){
Node data=new Node();
System.out.print("Masukkan nomor polisi: ");
data.nopol=input.next();
System.out.print("Masukkan kode parkir: ");
data.seri=input.next();
System.out.print("Masukkan lama parkir: ");
data.waktu=input.next();
if (head==null){
head=data;
tail=data;
}
else{
tail.nextNode=data;
tail=data;
}
}
}
void dequeue(){
Node current=head;
if(head==null){
System.out.println("Data kosong");
}else if(head==tail){
head=tail=null;
}else{
current=head.nextNode;
head=current;
current=null;
}
}
void viewnode(){
int i=1;
Node current=head;
if(current==null){
System.out.println("Data kosong");
}else{
System.out.println("NO\tNomor Polisi\tKode Parkir\tLama
Parkir");
while (current != null) {
System.out.println(i+"\t"+current.nopol+"\t"+current.seri+"\t"+current.waktu);
current=current.nextNode;
i++;
}
}
}
public static void main(String args[]){
int a, menu=1;
HASIL PRAKTIKUM
ANALISA MASALAH
Permasalahan yang dihadapi praktikan saat membuat sistem informasi
dengan menggunakan queue kali ini adalah menentukan output FIFO pada program.
Pada program praktikan,konsep fifo telah dapat di jalankan namun output saat user
memilih menu 2 yaitu menu view setelah user memasukkan data lebih dari satu tidak
terdeteksi.
KESIMPULAN
Queue (antrian) adalah barisan elemen yang apabila elemen ditambah maka
penambahannya berada di posisi belakang (rear) dan jika dilakukan pengambilan
elemen dilakukan di elemen paling depan (front). Oleh karena itu, queue bersifat
FIFO(First in first out).
Operasi-Operasi dasar pada Queue:
1. Enqueue
2. Dequeue