Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

UTS

NAMA : MUHAMMAD IQBALUDDIN AL HUDA


NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

1.
public class queue {

int max, size, front, rear;


int[] q;

queue(int m) {
max = m;
create();
}

void create() {
q = new int[max];
size = 0;
front = rear = -1;
}

boolean isEmpty() {
if (size == 0) {
return true;
} else {
return false;
}
}

boolean isFull() {
if (size == max) {
return true;
} else {
return false;
}
}

void enqueue(int data) {


if (isFull()) {
System.out.println("Antrian Penuh");
} else if (isEmpty()) {
front = rear = 0;
} else if (rear == max - 1) {
rear = 0;
} else {
rear++;
}
q[rear] = data;
size++;
}

int dequeue() {
int data = 0;
if (isEmpty()) {
System.out.println("Antrian Kosong");
} else {
data = q[front];
size--;
if (isEmpty()) {

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

front = rear = -1;


} else if (front == max - 1) {
front = 0;
} else {
front++;
}
}
return data;
}

void print() {
if (isEmpty()) {
System.out.println("Antrian Kosong");
} else {
int i = front;
while (i != rear) {
System.out.print(q[i] + " - ");
i = (i + 1) % max;
}
System.out.println(q[i] + " ");
System.out.println("Jumlah Antrian = " + size);
}
}

void printFront() {
if (isEmpty()) {
System.out.println("Antrian Kosong");
} else {
System.out.print("Data terdepan : ");
int i = front;
System.out.print(q[i] + "\n");
}
}

void printRear() {
if (isEmpty()) {
System.out.println("Antrian Kosong");
} else {
System.out.print("Data paling belakang : ");
int i = rear;
System.out.print(q[i] + "\n");
}
}

void printPosition(int data) {


if (isEmpty()) {
System.out.println("Antrian Kosong");
} else {
int posisi = -1;
int i = front;
while (i != rear) {
if (q[i] == data) {
posisi = i;
System.out.println("Data berada di posisi : " +
i);
break;

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

}
i = (i + 1) % max;
}
}
}

void printDataByPos(int posisi) {


if (isEmpty()) {
System.out.println("Antrian Kosong");
} else {
int data = q[posisi];
System.out.println("Data di posisi " + posisi + " adalah
: " + data);
}
}
}

import java.util.Scanner;

/**
*
* @author IQBAL
*/
public class queueMain {

static void menu() {


System.out.println("1. Enqueue");
System.out.println("2. Dequeue");
System.out.println("3. Print");
System.out.println("4. PrintFont");
System.out.println("5. PrintRear");
System.out.println("6. PrintPosition");
System.out.println("7. PrintDataByPos");
System.out.println("8. Keluar");
System.out.print("Pilih operasi yang ingin dilakukan : ");
}

public static void main(String[] args) {


Scanner sc = new Scanner(System.in);
int pil = 0;
System.out.print("Masukkan berapa maksimal data antrian :
");
int m = sc.nextInt();
queue qobj = new queue(m);
do {
menu();
pil = sc.nextInt();
switch (pil) {
case 1:
System.out.print("Masukkan data baru = ");
int dataIn = sc.nextInt();
qobj.enqueue(dataIn);
break;
case 2:
int dataOut = qobj.dequeue();

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

if (dataOut != 0) {
System.out.println("Data yang terambil = " +
dataOut);
}
break;
case 3:
qobj.print();
break;
case 4:
qobj.printFront();
break;
case 5:
qobj.printRear();
break;
case 6:
System.out.print("Masukkan data yang di cari =
");
int hasil = sc.nextInt();
qobj.printPosition(hasil);
break;
case 7:
System.out.print("Masukkan posisi yang di cari =
");
int hasilP = sc.nextInt();
qobj.printDataByPos((hasilP));
break;
}
} while (pil != 8);
}
}

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

2.
public class nasabah {

String nama;
String noRekening;

nasabah() {

nasabah(String no, String nam) {


noRekening = no;
nama = nam;
}

public void print() {


System.out.println("Nomer Rekening = " + noRekening);
System.out.println("Nama Rekening = " + nama);
}
}

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

public class nasabahQueue {

int max, size, front, rear;


nasabah[] q;

nasabahQueue(int m) {
max = m;
create();
}

void create() {
q = new nasabah[max];
size = 0;
front = rear = -1;
}

boolean isEmpty() {
if (size == 0) {
return true;
} else {
return false;
}
}

boolean isFull() {
if (size == max) {
return true;
} else {
return false;
}
}

void enqueue(nasabah data) {


if (isFull()) {
System.out.println("Antrian sudah penuh");
} else if (isEmpty()) {
front = rear = 0;
} else if (rear == max - 1) {
rear = 0;
} else {
rear++;
}
q[rear] = data;
size++;
}

nasabah dequeue() {
nasabah data = null;
if (isEmpty()) {
System.out.println("Antrian kosong");
} else {
data = q[front];
size--;
if (isEmpty()) {
front = rear = -1;
} else if (front == -1) {

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

front = 0;
} else {
front++;
}
}
return data;
}

void print() {
if (isEmpty()) {
System.out.println("Antrian Kosong");
} else {
int i = front;
System.out.println("Data Antrian");
while (i != rear) {
q[i].print();
i = (i + 1) % max;
}
q[i].print();
System.out.println("Jumlah Antrian = " + size);
}
}

void printFront() {
if (isEmpty()) {
System.out.println("Antrian kosong");
} else {
System.out.println("Nasabah paling depan : ");
int i = front;
q[i].print();
}
}

void printRear() {
if (isEmpty()) {
System.out.println("Antrian kosong");
} else {
System.out.println("Nasabah paling belakang : ");
int i = rear;
q[i].print();
}
}

void printPosition(nasabah data) {


if (isEmpty()) {
System.out.println("Antrian kosong");
} else {
int position = -1;
int i = front;
while (i != rear) {
if (q[i].nama.equals(data.nama)) {
position = i;
System.out.println("Nasabah berada di posisi :
"+rear);
break;
}

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

i = (i + 1) % max;
}
}
}

void printNasabah(int position) {


if (isEmpty()) {
System.out.println("Antrian kosong");
} else {
String data = q[position].nama;
System.out.println("Nasabah di posisi " + (position+1) +
" adalah : " + data);
}
}
}

import java.util.Scanner;

/**
*
* @author IQBAL
*/
public class nasabahMain {

static void menu() {


System.out.println("1. Enqueue");
System.out.println("2. Dequeue");
System.out.println("3. Print");
System.out.println("4. PrintFont");
System.out.println("5. PrintRear");
System.out.println("6. PrintPosition");
System.out.println("7. PrintNasabah");
System.out.println("8. Keluar");
System.out.print("Pilih operasi yang ingin dilakukan : ");
}

static nasabah inputan() {


Scanner sc = new Scanner(System.in);
System.out.print("Nomer Rekening : ");
String noRekening = sc.nextLine();
System.out.print("Nama Rekening : ");
String nama = sc.nextLine();
nasabah[] nsbhArr = new nasabah[1];
nsbhArr[0] = new nasabah(noRekening, nama);
return nsbhArr[0];
}

public static void main(String[] args) {


Scanner sc = new Scanner(System.in);
int pil = 0;
System.out.print("Masukkan maksimal data antrian : ");
int dat = sc.nextInt();
nasabahQueue n = new nasabahQueue(dat);
nasabah s = new nasabah();
do {

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

menu();
pil = sc.nextInt();
switch (pil) {
case 1:
n.enqueue(inputan());
break;
case 2:
nasabah data = n.dequeue();
if (data != null) {
System.out.println("Data Terambil");
System.out.println("Nama : " +
data.nama);
System.out.println("No Rekening : " +
data.noRekening);
}
break;
case 3:
n.print();
break;
case 4:
n.printFront();
break;
case 5:
n.printRear();
break;
case 6:
n.printPosition(inputan());
break;
case 7:
System.out.print("Masukkan nomer antrian : ");
int antri = sc.nextInt();
n.printNasabah(antri-1);
}
} while (pil != 8);
}
}

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019
UTS
NAMA : MUHAMMAD IQBALUDDIN AL HUDA
NIM (ABSEN) : 1841720013 (18)
JOBSHEET/JUDUL : 1 B/ JOBSHEET QUEUE
TANGGAL PRAKTIKUM : 10 APRIL 2019

PRAKTIKUM STRUKTUR DATA


SEMESTER GENAP 2018/2019

You might also like