• Tidak ada hasil yang ditemukan

BAB 8 Algoritma Struktur Data ADT AN

N/A
N/A
Protected

Academic year: 2018

Membagikan "BAB 8 Algoritma Struktur Data ADT AN"

Copied!
12
0
0

Teks penuh

(1)

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER

UNIVERSITAS BRAWIJAYA

BAB

: ADT ANTRIAN

NAMA

: MOH. ARIF ANDRIAN

NIM

: 156150600111002

TANGGAL

: 19/11/2016

ASISTEN

: HARITS ABDURROHMAN

A. DEFINISI MASALAH

1.

Kembangkan program antrian dengan menggunakan ADT Cicular Single Linked List yang telah dibuat pada praktikum 7. Perhatikan bahwa sifat antrian adalah FIFO : First In First Out

2.

Susunlah program untuk simulasi Round Robin. Setiap proses deQueue()

dilakukan pada suatu node maka isi suatu node berkurang 1, kalau nilainya sudah sama dengan 0 maka node tersebut dihapus dari List jika lebih besar dari 0 node tersebut diantrikan lagi untuk diperoses berikutnya

B. SOURCE CODE

QueueCSLL.java 1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

package Praktikum8; class NodeCSLL { NodeCSLL next; Object data; }

public class QueueCsll { String name;

private int size;

private NodeCSLL pAwal, pAkhir; public QueueCsll(String dt) { name = dt;

pAwal = null; pAkhir = null; size = -1; }

public void enqueue(Object data) { NodeCSLL baru = new NodeCSLL(); baru.data = data;

baru.next = null; if (pAwal == null) {

pAkhir = pAwal = baru; pAkhir.next = pAwal; size = 0;

} else {

pAkhir.next = baru; pAkhir = baru;

pAkhir.next = pAwal; size++;

(2)

30

public static void main(String[] args) {

QueueCsll data = new QueueCsll(" ==== ANTRIAN ==="); data.enqueue(4);

(3)

81 class Node {

Object data;

(4)

34

public void cetak(String Komentar) { System.out.print(Komentar);

public static void main(String[] args) { RoundRobin data = new RoundRobin(); int jmlDt = 2;

int A,B; A = 4; B = 6;

System.out.println("Jumlah data: "+jmlDt);

System.out.print("Panjang Antrian A: "+A+" | "); data.enqueue(A);

(5)

85 86 87 88 89 90 91

92 93 94

95 96 97 98 99 10 0 10 1 10 2 10 3 10 4 10 5

System.out.println();

System.out.print("Queue : "); int counter = 0;

while (!data.isEmpty()) {

int data2 = (int) data.RoundRobin(); if (data2 != 0) {

System.out.println((data2 + 1) + " - 1 = " + data2+", Back to Queue");

counter++; } else {

System.out.println((data2 + 1) + " - 1 = " + data2);

if (counter == (A+jmlDt)) {

System.out.print("Dequeue A"); } else if (counter == (B+jmlDt)){ System.out.print("Dequeue B"); }

System.out.println(); }

data.cetak(); }

} }

C. PEMBAHASAN

QueueCSLL.java 1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Package diman file java disimpan. Deklarasi class NodeCSLL

Inisialisasi NodeCSLL dengan variabel next Mendeklaraiskan variabel data dengan tipe Object Akhir deklarasi class.

Deklarasi kelas dengan nama QueueCSLL Deklarsi name dengan tipe data String

Deklarasi size dengan tipe data int modifier private

Deklarasi pAwal , pAkhir dengan tipe class NodeCSLL modifier private Membuat konstruktor dengan parameter dt modifier public.

Inisialisasi name dengan dt

Inisialisasi pAwal sama dengan null Inisialisasi pAkhir sama dengan null Inisialisasi size sama dengan -1. Akhir deklarasi konstruktor.

(6)

17

Mendklarasikan class NodeCSLL dengan nama baru atau dapat dipanggil dengan baru

Inisialisasi baru.data sama dengan nilai data Inisialisasi baru.next sama dengan nilai null Syarat if ini melakukan pAwal sama dengan null

Inisialisasi pAkhir sama dengan pAwal sama dengan baru Inisialisasi pAkhir.next sama dengan pAwal

Size ini akan memulainya dari angka 0

Elses ini melakukan perintah lain apa bila tidak sama diatas Inisialisasi pAkhir.next sama dengan baru

Inisialisasi pAkhir sama dengan baru Inisialisasi pAkhir.next sama dengan pAwal Akan menambah size (increment).

Akhir proses seleksi kondisi. Akhir deklarasi methhod.

Membuat method Object dequeuer dengan bertipe public Inisialisasi Object dataHapus dengan bernilai null

Syarat if ini melakukan apabila data tidak isEmpty atau kosong Inisialisasi dataHapus sama dengan pAwal.data

Syarat if apabila pAwal sama dengan pAkhir maka akan melakukan perintah Inisialisasi pAwal sama dengan pAkhir smaa dengan null

Else ini melakukan perintah lain apabila tidak sesuai dengan diatas Mendeklaraiskan pAwal sama dengan pAwal.next

Inisialisasi pAkhir.next sama dengan pAwal Akan melakukan penghapusan data size Akhir kondisi else.

Akhir proses selksi kondisi. Mengembalikan nilai dataHapus. Akhir deklarasi method.

Membuat method isEmpty dengan tipe Boolean modifier public Mengembalikan nilai return dengan data pAwal sama dengan null Akhir deklarasi method.

Membuat method Object hapusDrDepan bermodifier public Inisialisasi Object itemDiHapus sama dengan null

Syarat if ini akan melakukan apabila data tidak kosong Inisialisasi itemDihapus sama dengan pAwal.data

Syarat if ini akan melakukan apabila pAwal sama dengan pAkhir Inisialisasi pAwal sama dengan pAkhir sama dengan null

Else ini akan melakukan apabila tidak sesuai perintah diatas Inisialisasi pAwal sama dengan

pAwal.nent-Akhir kondisi else.

Akhir proses seleksi kondisi.

Megembalikan nilai return itemDiHapus. Akhir deklarasi method.

(7)

62

Inisialisasi cetak sama dengan pAwal Inisialisasi i sama dengan -1 bertipe data int Syarat if ini pAwal sama dengan null Akan mencetak system.out.print HABIS

Else ini bersyarat lain apabila tidak sesuai dengan yang lain Mencetak system.out.print dengan tampilan DATA QUEUE : While bersyarat ini apabila data tidak kosong dan I kurang dari size Akan mencetak system.out.prilt dengan pemanggilan cetak.data Inisialisasi cetak sama dengan cetak.next

Akan menambah data i++ Akhir proses perulangan while. Akhir kondisi else.

Akan mecetak system.out.println dengan tampilan akan secara otomatis enter cetak. Akhir deklarasi method.

Membuat method main, untuk menjalankan program. Inisialisasi class QueueCSLL dengan nama baru “data” Memanggil class data.enqueue dengan nilai 4

Memanggil class data.cetak

Memanggil class data.enqueue dengan nilai 1 Memanggil class data.cetak

Memanggil class data.enqueue dengan nilai 14 Memanggila class data.cetak

Memanggil class data.enqueue dengan nilai 20 Memanggila class data.cetak

Memanggil class data.enqueue dengan nilai 16 Memanggil class data.cetak

Inisialisasi Object menghapus sama dengan null

Syarat while ini jika data tidak kosong maka akan melakukan proses dibawah ini Mencetak system.out.print dengan tampilan “HAPUS DATA -> “

Mendeklaraiskan menghapus sama dengan data.dequeue

Mencetak tampilan system.out.printf dengan memasukkan data menghapus Memangil method data.cetak

Akhir proses erulangan while. Akhir deklarasi method main. Akhir deklarasi class QueueCSLL.

RoundRobin.java

Package dimana file java disimpan. Membuat class dengan nama Node

Mendeklaraiskan variabel data dengan tipe Object Mendeklarasikan NodeCSLL dengan variabel next

Membuat konstruktor kelass node dengan parameter Object data modifier public Mendeklarasikan bahwa data sama dengan data

Mendeklarasikan bahwa next sama dengan null Akhir deklarasi konstruktor.

(8)

10

Mengembalikan nilai data Akhir deklarasi method.

Membuat method Node getNext dengan modifier public Mengembalikan nilai next

Akhir deklarasi method. Akhir deklarasi class.

Membuat class dengan nama RoundRobin Mendeklarasikan Node pAwal sama dengan null Mendeklarasikan Node pAkhir sama dengan null Mendeklarasikan variabel counter dengan tipe data int

Membuat method enqueuer dengan parameter Object data bertipe public modifier void

Mendklarasikan class Node dengan nama baru atau dapat dipanggil dengan baru Syarat if ini melakukan pAwal sama dengan null

Mendeklarasikan pAkhir sama dengan pAwal sama dengan baru Size ini akan memulainya dari angka 0

Elses ini melakukan perintah lain apa bila tidak sama diatas Mendeklarasikan pAkhir.next sama dengan baru

Mendeklarasikan pAkhir sama dengan baru Akan menambah size(increment).

Akhir seleksi kondisi. Akhir deklarsi method.

Membuat method Object dequeue dengan bertipe public Mendeklarasikan Object result dengan bernilai pAwal.data Syarat if ini melakukan apabila data tidak isEmpty atau kosong Mengembalikan nilai null

Syarat else if apabila pAwal sama dengan pAkhir maka akan melakukan perintah Mendeklarasikan pAwal sama dengan pAkhir smaa dengan null

Else ini melakukan perintah lain apabila tidak sesuai dengan diatas Mendeklaraiskan pAwal sama dengan pAwal.next

Akhir kondisi else.

Akan melakukan penghapusan data size(decrement). Mengembalikan nilai result.

Akhir deklarasi method.

Membuat methd RoundRobin dengan tipe data Object

Mendeklarasikan round dengan tipe data int sama dengan method dequeuer tipe data integer.

Mendeklaraiskan round ini memulai dari angka – sama dengan 1 If bersyarat ini apabila round tidak sama 0

Maka akan memanggil method enqueuer(round) Akhir seleksi kondisi.

Mengembalikan nilai round Akhir deklarasi method.

(9)

54

Membuat metod cetak dengan parameter String Komentar tipe void modifier public Mencetak system.out.print dengan parameter Komentar

Mendeklarasikan class node newNode sama dengan pAwal Mendeklarasikan int i sama dengan nilai -1

If bersyarat ini apabila newNode tidak sama null Maka i sama dengan 0

Akhir seleksi kondisi.

While berysarat ini apabila i kurang dari sama dengan counter dan i tidak sama dengan -1 maka akan melakukan perintah dibawah

If bersyarat ini apabila nilai tidak kosong Maka akan mencetak system.out.print

Else ini apa bila tidak sesuai dengan perintah diatas Akan mencetak system.out.print “null”

Akhir kondisi else.

Mendeklarasukan newNode sama dengan newNode.next Melakukan penambahan nilai i++

Akhir proses perulangan. Akhir deklarsi method.

Membuat method cetak dengan tipe void modifier public Memanggil method cetak “Queue : “

Akhir deklarasi method.

Deklarasi class main, untuk menjalankan program.

Instansiasi objek dari class RoundRobin dengan nama data. Deklarasi variabel integer bernama jmlDt.

Deklarasi dua variabel integer bernama A dan B. Menampilkan jmlDt.

Inisialisasi variabel A samadengan 4. Inisialisasi variabel B samadengan 6. Menampilkan panjang antrian A.

Objek data memanggil method enqueue dengan argumen nilai A. Menampilkan panjang antrian B.

Objek data memanggil method enqueue dengan argumen nilai B. Menampilkan ganti baris.

Menampilkan “Queue : “

Deklarasi dan inisialisasi varibel bertipe integer dengan nilai 0 bernama counter. Proses perulangan jika objek data.isEmty negasi true.

Deklarasi dan inisialisasi variabel bertipe integer bernama data2 dengan nilai samadengan objek data.RoundRobin.

Proses seleksi kondisi, jika data2 negasi 0, maka Menampilkan proses algoritma RoundRobin. Increment variabel counter.

Jika selain kondisi diatas, maka

Menampilkan proses algoritma RoundRobin.

Proses seleksei kondisi, jika counter samadengan A+jmlDt, maka Menampilkan “Dequeue A “.

(10)

98 100 102 105

Menampilkan “Dequeue B “. Menampilkan ganti baris.

Objek data memanggil method cetak. Akhir deklarasi class RoundRobin.

D. SCREENSHOT PROGRAM

(11)

Gambar. Studi kasus No. 2

E. KESIMPULAN

1. Jelaskan apa yang dimaksud dengan struktur data Queue/antrian?

Queue merupakan kumpulan atau antrian data/benda dimana data/benda yang diproses pertama merupakan data/benda yang masuk pertama ke dalam antrian.Queue merupakan perintah pengumpulan data yang disebut First In First Out (FIFO).

Misalnya Queue Q= (a1,a2,a3…,an), maka a. Elemen a1 adalah elemen paling depan

b. Elemen ai adalah diatas elemen ai-1, di mana 1 < i < n. c. Elemen an adalah elemen paling belakang

Karakteristik penting antrian sebagai berikut :

a. Elemen antrian yaitu item-item data yang terdapat di elemen antrian. b. Head/front (elemen terdepan dari antrian ).

c. Tail/rear (elemen terakhirdari antrian ). d. Jumlah elemen pada antrian (count).

Queue merupakan kakas dasar penyelesaian masalah-masalah besar. penggunaan Queue yang utama adalah untuk simulasi fenomena antrian di dunia nyata, serta fenomena antrian di pengolahan data.

2. Sebutkan dan jelaskan penerapan dari struktur data Queue/antrian?

(12)

Walaupun berbeda implementasi struktur data Queue setidaknya harus memiliki operasi operasi sebagai berikut:

a. Enqueue : memasukan data ke dalam antrian, penambahan elemen selalu ditambahkan di elemen paling belakang. Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter tail.

b. Dequeue : mengeluarkan data terdepan dari antrian, dengan cara mengurangi counter Tail dan menggeser semua elemen antrian kedepan.

c. Clear : menghapus seluruh antrian, dengan cara mengeluarkan semua antrian tersebut satu per satu hingga antrian kosong dengan memanfaatkan fungsi dequeue.

d. IsEmpty : memeriksa apakah antrian kosong atau sudah berisi antrian lagi. e. IsFull : memeriksa apakah antrian penuh atau masih bisa menampung antrian

Gambar

Gambar. Studi kasus No. 1
Gambar. Studi kasus No. 2

Referensi

Dokumen terkait

Penelitian ini bertujuan untuk melihat efek dari kecepatan angin dan efek pengaturan debit aliran air pada unjuk kerja distilasi air energi surya jenis absorber kain.. Variasi yang

Karena tingkat ketidakpastian yang relatif tinggi dari data-data laju transpor nitrogen global, pada saat ini tidak mungkin untuk menentukan apakah siklus nitrogen di laut

pihak sehingga dengan izin Allah SWT pada akhirnya tesis yang berjudul : “ Guru Dalam Pandangan Hadits Tarbawi, Studi komparatif Hadits-Hadits Tentang Guru Antara Kitab

Adapun hasil penelitian pada perusahan yang dinyatakan pailit, para pekerja harus mendapatkan hak yang bersifat ekonomis, hak yang bersifat politis dan hak yang bersifat

Efektivitas Ekstrak Daun Paci-paci Leucas lavandulaefolia untuk Pencegahan dan Pengobatan Penyakit MAS Motile Aeromonad Septicemia Ditinjau dari Patologi Makro

Fenomena perubahan yang menonjol adalah didirikannya bangunan rumah tinggal di tengah-tengah perkebunan yang bersifat permanen dan modern seperti rumah tinggal di kota yang

p ula dijumpai ungkapan atau sebutan “tidak berkepribadian”. Dari uraian tersebut bisa diperoleh gambaran bahwa kepribadian, menurut pengertian sehari-hari, menunjuk kepada