Laporan Bab 2 Algoritma dan Struktur Dat

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB
NAMA
NIM
TANGGAL
ASISTEN

: ARRAY 1 DIMENSI
: M SATRIA PUTRA UTAMA
: 155150207111168
: 01/10/2016
: ILHAM ROMADHONA

A. DEFINISI MASALAH
1. Kembangkan program di atas dengan menambahkan method berikut :
a. Mencari posisi bilangan genap yang terletak diantara bilangan x1 dan bilangan
x2 dengan header sebagai berikut :
int findPosGenap(int x1, int x2)
b. Gunakan algoritma pengurutan yang lain BubleSort dan MergeSort.

2. Pada Latihan kedua ini anda diminta untuk melengkapi bagian dari program
ADT_Larik sehingga jika diberikan program utama pada gambar 1 akan
menghasilkan keluaran sebagaimana gambar 2.

B. SOURCE CODE
No. 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14

15
16
17
18
19
20
21
22
23
24

Larik.java
package asdpraktikum;
public class Larik {
private int size;
private int[] itemDt;
public void buatLarik(int n) {
this.size = n;
this.itemDt = new int[this.size];
}

public Larik(int n) {
buatLarik(n);
}
public int getSize() {
return this.size;
}
public Larik(int[] dt) {
buatLarik(dt.length);
for (int i = 0; i < dt.length; i++) {
isiItem(i, dt[i]);
}
}

25
26
27
28
29
30
31

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

72
73
74
75
76
77

public void isiItem(int id, int dt) {
this.itemDt[id] = dt;
}
public void cetak(String komentar) {
System.out.println(komentar);
for (int i = 0; i < this.size; i++) {
System.out.print(this.itemDt[i] + " ");
}
System.out.println();
}
public int findBesar() {
int besar = this.itemDt[0];
for (int i = 1; i < this.size; i++) {

if (besar < this.itemDt[i]) {
besar = this.itemDt[i];
}
}
return besar;
}
public int getPosisi(int dtCari) {
int pos = -99;
boolean ketemu = false;
int i = 0;
while (!ketemu && i < this.size) {
if (dtCari == this.itemDt[i]) {
ketemu = true;
pos = i;
}
i++;
}
return pos;
}
private

int
int
for

int getPosMax(int id) {
max = this.itemDt[id];
posMax = id;
(int i = id + 1; i < size; i++) {
if (max = this.itemDt[i]) {
min = this.itemDt[i];
posMin = i;
}
}
return posMin;
}
public int PencarianBiner(int dtCari, int awal, int akhir) {
int pos = -99;
int tengah = (awal + akhir) / 2;
if (dtCari < this.itemDt[tengah]) {
return PencarianBiner(dtCari, awal, tengah);

} else if (dtCari > this.itemDt[tengah]) {
return PencarianBiner(dtCari, tengah + 1, akhir);
} else if (dtCari == this.itemDt[tengah]) {
return tengah;
} else {
return pos;
}
}
public Larik copyLarik(int k, int n) {
Larik lHasil = null;
if (n = r) {
return;
}
int mid = (l + r) / 2;
MergeSort(A, l, mid);
MergeSort(A, mid + 1, r);
int x = mid;
int y = mid + 1;
while ((left