LABORATORIUM PEMBELAJARAN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB
: ARRAY 1 DIMENSI
NAMA
: M SATRIA PUTRA UTAMA
NIM
: 155150207111168
TANGGAL : 01/10/2016
ASISTEN
: 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
Larik.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
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 getPosMax(int id) { int max = this.itemDt[id]; int posMax = id;
for (int i = id + 1; i < size; i++) { if (max <= this.itemDt[i]) { max = this.itemDt[i]; posMax = i;
} }
return posMax; }
private int getPosMin(int id) { int min = this.itemDt[id]; int posMin = id;
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
if (min >= 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 <= this.size - k) { lHasil = new Larik(n); int j = 0;
for (int i = k; i < k + n; i++) {
lHasil.isiItem(j++, this.itemDt[i]); }
}
return lHasil; }
public Larik SelectionSort(int pilihan) { Larik lsort = copyLarik(0, size);
for (int i = 0; i < lsort.getSize(); i++) { int posData;
if (pilihan == 0) {
posData = lsort.getPosMin(i); } else {
posData = lsort.getPosMax(i); }
int dt1 = lsort.itemDt[i];
int dt2 = lsort.itemDt[posData]; lsort.itemDt[i] = dt2;
lsort.itemDt[posData] = dt1; }
return lsort; }
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
int findPosGenap(int x1, int x2) { for (int i = x1 - 1; i < x2; i++) { if (itemDt[i] % 2 == 0) {
System.out.print(itemDt[i] + " "); }
}
System.out.println(""); return 0;
}
//SOAL NOMOR 1B
void BubbleSort(int[] a) { boolean tukar = true; while (tukar) {
tukar = false;
for (int i = 1; i < a.length; i++) { int temp = 0;
if (a[i] < a[i - 1]) { temp = a[i - 1]; a[i - 1] = a[i]; a[i] = temp;
for (int j = 0; j < a.length; j++) { System.out.print(a[j] + " "); }
System.out.println(""); tukar = true;
} } } }
void MergeSort(int[] A, int left, int right) { int l = left;
int r = right; if (l >= 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 <= x) && (y <= r)) { if (A[l] < A[y]) {
l++; } else {
int sem = A[y];
for (int i = y - 1; i >= l; i--) { A[i + 1] = A[i];
}
A[l] = sem; l++;
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
} }
public static void main(String[] args) { int[] A = {2, 34, 5, 7, 10};
Larik lA = new Larik(A); lA.cetak("Sebelum");
lA.SelectionSort(0).cetak("Sesudah di sort"); System.out.println("Bilangan genap di Array"); lA.findPosGenap(1, 5);
System.out.println("BubbleSort"); lA.BubbleSort(A);
System.out.println("MergeSort"); lA.MergeSort(A, 0, A.length - 1); for (int i = 0; i < A.length; i++) { System.out.print(A[i] + " "); }
System.out.println(""); }
}
No. 2
Larik.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 asdpraktikum; public class Larik { private int size;
private double[] itemDt;
public Larik(double[] A) { this.size = A.length;
this.itemDt = new double[this.size]; for (int i = 0; i < this.size; i++) { this.itemDt[i] = A[i];
} }
public int getSize() { return this.size; }
public double getItem(int i) { return this.itemDt[i]; }
public static Larik sambung(Larik l1, Larik l2) { int indek = 0;
double sambungArray[] = new double[l1.size + l2.size]; Larik sambungan;
for (int i = 0; i < l1.size; i++) { sambungArray[i] = l1.itemDt[i]; }
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 78 79 80 81 82
sambungArray[i] = l2.itemDt[indek]; indek++;
}
sambungan = new Larik(sambungArray); return sambungan;
}
public void isiItem(int id, double dt) { this.itemDt[id] = dt;
}
public void cetak(String komentar) { System.out.println(komentar);
for (int i = 0; i < this.size; i++) {
System.out.printf("%.2f ", this.itemDt[i]); }
System.out.println(); }
public double findBesar() {
double 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(double 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; }
public static Larik copyLarik(int k, int n, Larik l) { double copy[] = new double[n];
Larik a;
for (int i = k; i < k + n; i++) { copy[i] = l.itemDt[i];
}
a = new Larik(copy); return a;
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
public int getPosBesar(int awal, int akhir) { int posBesar = -1;
double itemBesar; if (awal <= akhir) { posBesar = awal;
itemBesar = this.getItem(awal);
for (int i = awal + 1; i < akhir; i++) { double nilaiItem = this.getItem(i); if (itemBesar < nilaiItem) {
itemBesar = nilaiItem; posBesar = i;
} } }
return posBesar; }
public int getPosKecil(int awal, int akhir) { int posKecil = -1;
double kecil;
if (awal < akhir) {
kecil = this.getItem(awal);
for (int i = awal; i < akhir; i++) { if (this.itemDt[i] < kecil) { kecil = itemDt[i];
} }
posKecil = getPosisi(kecil); }
return posKecil; }
public int FindPosPos(int cari) { int pos = -99;
boolean ketemu = false; int i = 0;
while (!ketemu && i < this.size) { if (cari == this.itemDt[i]) { ketemu = true;
pos = i; }
i++; }
return pos; }
public static double LarikKaliLarik(Larik L1, Larik L4) { double hasil = 0;
if (L1.itemDt.length == L4.itemDt.length) { for (int i = 0; i < L1.size; i++) { hasil+= L1.itemDt[i]*L4.itemDt[i]; }
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
return hasil; }
public static Larik SelectionSort(Larik lAsal, int status) { int n = lAsal.getSize();
Larik lhasil = Larik.copyLarik(0, n, lAsal); if (status == 0) {
for (int i = 0; i < n; i++) {
int posKecil = lhasil.getPosKecil(i, n); double itemKecil = lhasil.getItem(posKecil); double itemI = lhasil.getItem(i);
lhasil.isiItem(i, itemKecil); lhasil.isiItem(posKecil, itemI); }
} else {
for (int i = 0; i < n; i++) {
int posBesar = lhasil.getPosBesar(i, n); double itemBesar = lhasil.getItem(posBesar); double itemI = lhasil.getItem(i);
lhasil.isiItem(i, itemBesar); lhasil.isiItem(posBesar, itemI); }
}
return lhasil; }
}
AppPr1.java 1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
package asdpraktikum; public class AppPr1 {
public static void main(String[] args) {
double[] A = {3, 4, 1, 10, 5, 2, 10, 20, 16}; double[] B = {4, 3, 1, 11, 7};
Larik L1 = new Larik(A); Larik L2 = new Larik(B); L1.cetak("Isi Larik L1"); L2.cetak("Isi Larik L2");
Larik L3 = Larik.sambung(L1, L2);
L3.cetak("L3 = Gabung dari L1 dan L2");
Larik L4 = Larik.copyLarik(0, L1.getSize(), L1); L1.cetak("Isi Larik L1");
L4.cetak("L4 Copy dari L1");
Larik L5 = Larik.SelectionSort(L1, 0);
L5.cetak("L5 Hasil pengurutan dari L1 kecil->besar"); Larik L6 = Larik.SelectionSort(L1, 1);
L6.cetak("L6 Hasil pengurutan dari L1 besar->kecil"); L1.cetak("Isi Larik L1");
double hasil = Larik.LarikKaliLarik(L1, L4);
C.
PEMBAHASAN
No.1
Larik.java
1
2
3
4
6
7
8
9
11
12
13
15
16
17
19
20
21
22
23
24
26
27
28
30
31
32
33
34
35
36
38
39
40
41
42
43
44
45
46
48
49
50
51
Package asdpraktikum.
Deklarasi class dengan nama Larik.
Deklarasi variable size dengan type data int dengan hak akses private.
Deklarasi variable array itemDt dengan type data int dan hak akses private.
Deklarasi Method buatLarik dengan type void dan berparameter int n.
Inisialisasi size = n, Operasi memasukkan nilai variable n ke size.
Instansiasi itemDt dengan panjang = nilai size.
Akhir statement method buatLarik.
Deklarasi Constructor Larik dengan parameter int n.
Memanggil method buatLarik dengan parameter n.
Kurung tutup construstor Larik.
Deklarasi Method getsize dengan type data int.
Mengembalikan nilai size.
Kurung tutup method getSize.
Deklarasi Constructor Larik dengan parameter int array dt.
Mengisi method buatLarik sepanjang data yang dimasukkan.
Perulangan data yang dimasukkkan oleh user sebanyak data masukan.
Menggunakan method isiItem dengan parameter perulangan i dan data sebanyak i.
Kurung tutup sintaks for.
Kurung tutup constructor.
Method isiItem dengan type void dan berparameter int id, int dt.
Mengisi nilai dari variable dt ke array dari itemDt dengan indeks id.
Kurung tutup method isiItem.
Method cetak dengan type void dan berparameter String komentar.
Mencetak output dari isi komentar.
Perulangan untuk mengulang sebanyak size data.
Mencetak itemDt sebanyak perulangan tersebut.
Kurung tutup for.
Mencetak enter.
Kurung tutup method cetak.
Method findBesar dengan type data int.
Inisialisasikan variable int besar dan diisi dengan nilai dari field itemDt indeks ke 0.
Perulangan mencari angaka besar sebanyak size.
Pengondisian jika besar kurang dari itemDt.
Maka besar = itemDt.
Kurung tutup if.
Kurung tutup for.
Mengembalikan nilai besar.
Kurung tutup method findBesar.
Method getPosisi dengan type data int dan berparameter int dtCari.
variable pos dengan type data int yang diinisialisasikan dengan nilai -99.
Variable ketemu dengan nilai false.
52
53
54
55
56
57
58
59
60
62
63
64
65
66
67
68
69
70
71
72
74
75
76
77
78
79
80
81
82
83
84
86
87
88
89
90
91
92
93
94
95
96
98
100
101
102
Perulangan jika data tidak ketemu dan kurang dari size.
Pengondisian jika dtCari sama dengan itemDt.
Maka variable ketemu menjadi true.
Variable Pos sama dengan i.
Kurung tutup if.
Penjumlahan posisi yang ditemukan.
Kurung tutup for.
Mengembalikan nilai variable pos.
Kurung tutup method getPosisi.
Method getPosMax dengan type data int dan berparameter int id.
Inisialisasi variable int max diisi dengan field itemDt indeks ke id.
Inisialisasi Variable posMax dengan type data int sama dengan id.
Perulangan dimulai isi data(id) sebanyak size data.
Pengondisian jika nilai max kurang dari sama dengan itemDt.
Maka variable max sama dengan itemDt.
Variable posMax sama dengan i.
Kurung tutup if.
Kurung tutup for.
Mengembalikan nilai variable posMax.
Kurung tutup getPosMax.
Deklarasi Method getPosMin dengan type data int dan berparameter int id.
Inisialisasi variable int min diisi dengan field itemDt indeks ke id.
Variable posMin dengan type data int sama dengan id.
Perulangan dimulai isi data(id) sebanyak size data.
Pengondisian jika nilai min kurang dari sama dengan itemDt.
Maka variable min sama dengan itemDt.
Variabel posMin sama dengan i.
Kurung tutup if.
Kurung tutup for.
Mengembalikan posMin.
Kurung tutup method getPosMin.
Method pencarianBiner dengan type data int dan berparameter int dtCari, int awal, int
akhir.
Variable pos dengan type data int yang diinisialisasikan dengan nilai -99.
Menghitung nilai tengah dengan menjulah awal tambah akhir kemudian bagi 2.
Pengondisian jika dtCari kurang dari itemDt yang arraynya bernilai dari nilai tengah.
Mengembalikan pencarianBiner yang berparameter dtCari, awal, tengah.
Pengondisian jika dtCari kurang dari itemDt yang arraynya bernilai dari nilai tengah.
Mengembalikan pencarianBiner yang berparameter dtCari, tengah+1, akhir.
Pengondisian jika dtCari sama dengan itemDt yang arraynya bernilai dari nilai tengah.
Mengembalikan nilai variable tengah.
Pengondisian selain nilai pada pengondisian sebelumnya.
Mengembalikan nilai variable pos.
Kurung tutup method pencarianBiner.
Deklarasi Method copyLarik dengan type Larik dna berparameter int k dan int n.
Menginisialisasikan 1hasil sama dengan null yang bertype Larik.
103
104
105
106
107
108
109
110
112
113
114
115
116
117
118
119
122
123
124
125
126
127
128
140
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
Menginstansiasi 1hasil sama dengan Larik yang berparameter n.
Variable int j yang berinisialisasi null.
Perulangan dari posisi k sebanyak k ditambah n.
Mengisi isiItem dengan itemDt yang didapatkan saat perulangan.
Kurung tutup for.
Kurung tutup if.
Mengembalikan nilai variable 1hasil.
Kurung tutup methoid copyLarik.
Method SelectionSort dengan type Larik yang berparameter int pilihan.
Variable lsort dengan type Larik sama dengan copyLarik yang dimulai dari posisi array
0 sampai sebanyak size.
Perulangan untuk mengurutkan angka sebanyak size.
Variable posData dengan type int.
Pengondisian jika pilihan sama dengan null yang berarti dimulai dari kecil ke besar.
posData sama dengan lsort yang mengambil nilai getPosMin.
pengondisian jika pilihan selain null.
posData sama dengan lsort yang mengambil nilai getPosMax.
variable int dt1 sama dengan lsort sebanyak itemDt.
variable int dt2 sama dengan lsort sebanyak itemDt yang mengacu pada posData.
lsort sebanyak itemDt sama dengan dt2.
lsort sebanyak itemDt yang mengacu pada posData sama dengan dt1.
Kurung tutup for.
Mengembalikan nilai variable lsort.
Kurung tutup method selectionSort.
//soal nomor 1a.
Method findGenap dengan type data int yang berparameter int x1, int x2.
Perulangan for dengan syarat i sama dengan x1; I kurang dari x2; i++.
Pengondisian jika itemDt indeks i mod 2 sama dengan 0.
Maka akan mencetak itemDt indeks i kemudian spasi.
Kurung tutup if.
Kurung tutup for.
Mencetak untuk enter.
Mengembalikan nilai 0.
Kurung tutup untuk method findPosGenap.
//komentar untuk soal nomor 1b.
Deklarasi method bubleSort tipe void parameter array int a.
Inisialisasi variable tukar bernilai true.
Perulangan while dengan isi tukar.
Variable tukar bernilai false.
Perulangan for dengan syarat int i = 1; i < a.length; i++.
Inisialisasi variable temp bernilai 0.
Pengondisian jika a indeks i kurang dari a indeks i – 1.
Variable temp sama dengan a[i-1]
Variable a[a-1] sama dengan a[i].
Varibel a indeks i sama dengan temp.
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
187
188
189
190
191
192
193
194
195
196
197
Kurung tutup for int j sama dengan 0; j < a.length; j++.
Mencetak kosong untuk enter.
Variable tukar bernilai true atau benar.
Kurung tutup if a[i] kurang dari a[i - 1].
Kurung tutup for int i = 1; i kurang dari a.length; i++.
Kurung sintaks while.
Kurung tutup method bubblesort.
Deklarasi method mergesort dengan parameter int[] A, int left, int right.
Inisialisasi variable l sama dengan left.
Inisialisasi variable r sama dengan right.
Pengondisian jika variable l lebih dari sama dengan r.
Akan mengembalikan nilai.
Kurung tutup if.
Inisialisasi variable mid sama dengan l dijumlahkan dengan r kemudian hasilnya dibagi
menjadi 2.
Memanggil method mergesort dengan isi A, l, mid.
Memanggil method mergesort dengan isi A, mid tambah 1, kemudian menampilkan
nilai r.
Inisialisasi variable x sama dengan mid.
Inisialisasi variable y sama dengan mid tambah 1.
Perulangan while left kurang dari sama dengan x && y kurang dari sama dengan r.
Pengondisian jika A[l] kurang dari A[y].
Maka jumlah i bertambah.
Kondisi lain.
Inisialisasi variable sem berisi A indeks y.
Perulangan int i = y kurang 1; i besar dari sama dengan l; i—.
Variable A[i ditambah 1] sama dengan A[i].
Kurung tutup for int i = y kurang 1; I besar dari sama dengan l; i—.
Variable A indeks l berisi sem.
Jumlah variable l bertambah.
Jumlah variable x bertambah.
Jumlah variable y bertambah.
Kurung tutup kondisi lain.
Kurung tutup while.
Kurung tutup method MergeSort.
Deklarasi method main untuk proses eksekusi program.
Variable A dengan type data int array yang telah di inisialisasikan isi datanya
2,34,5,7,10.
Menginstansiasi lA dengan type Larik.
Proses mencetak sebelum di sort.
Memanggil method SelectionSort kemudian menampilkan nilai sesudah disort.
Proses mencetak teks “Bilangan genap pada Array”.
Kemudian menampilkan angka yang genap antara indeks 1 sampai 5.
Proses mencetak teks “BubbleSort”.
Objek lA memanggil method bubblesort untuk menampilkan nilai variable A.
Proses mencetak teks “MergeSort”.
198
199
200
201
202
203
Perulangan for dengan syarat i nilai awal, i sebanyak panjang data dan I bertambah.
Dan mencetak nilai A[i].
Kurung tutup perulangan for.
Proses mencetak kosong untuk enter.
Kurung tutup untuk method main.
Kurung tutup atau akhir dari kelas larik.
No.2
Larik.java
1
2
3
4
6
7
8
9
10
11
12
14
15
16
18
19
20
22
23
24
25
26
27
28
29
30
31
32
33
34
35
37
38
39
41
42
43
Package asd praktikum.
Deklarasi class dengan nama Larik.
Variable size dengan type data int yang menggunakan hak akses private.
Variable array itemDt dengan type data double yang menggunakan hak akses private.
Konstruktor Larik dengan parameter double A.
Menginisialisasikan size sama dengan A.length.
Menginstansiasi itemDt sama dengan double.
Perulangan i sebanyak size.
Nilai itemDt saat perulangan sama dengan A saat perulangan.
Kurung tutup perulangan.
Kurung tutup constructor Larik.
Deklarasi Method getsize dengan type data int
Megembalikan nilai variabel size.
Kurung tutup method getSize.
Deklarasi method getItem dengan type data double dan berparameter int i.
Mengembalikan nilai variabel itemDt.
Kurung tutup method getItem.
Deklarasi method static yang bertype Larik dan berparameter Larik l1, Larik l2.
Variable int index yang diinisialisasikan dengan null.
Menginstansi sambungArray sama dengan double.
Variable sambungan dengan type larik.
Perulangan sebanyak banyaknya size data.
SambunganArray sama dengan l1 yang diisi dengan itemDt.
Kurung tutup for.
Perulangan yang dimulai dari l1 dengan ukuran sizenya sampai panjangnnya
sambungArray.
SambungArray sama dengan l2 dengan itemDt yang telah didapatkan dari perulangan.
Index akan bertambah.
Kurung tutup for.
Menginstansiasi sambungan dengan Larik.
Mengembalikan sambungan.
Kurung tutup method sambung.
Deklarasi Method isiItem dengan type void yang berparameter int id dan double dt.
ItemDt yang berisi id data sama dengan dt.
Kurung tutup method isiItem.
Deklarasi Method cetak dengan type void dan berparameter String komentar.
Mencetak output isi komentar.
44
45
46
47
49
50
51
52
53
54
55
56
57
59
60
61
62
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
91
92
Mencetak data itemDt yang ingin di cetak.
Kurung tutup for.
Memberi enter.
Kurung tutup method cetak .
Deklarasi Method findBesar dengan type data double.
Variable besar sama dengan itemDt yang diinisialisasikan maks sama dengan null.
Perulangan sebanyak size data.
Pengondisian jika besar [i] kurang dari itemDt[i].
Maka besar sama dengan itemDt [i].
Kurung tutup if.
Kurung tutup for.
Mengembalikan nilai variabel besar.
Kurung tutup method findBesar.
Deklarasi Method getposisi dengan type data int yang berparameter double dtCari.
Variable int pos yang di inisialisasikan sama dengan -99.
Variable boolean ketemu sama dengan false.
Variable int i yang diinisialisasikan dengan null.
Perulangan jika tidak ketemu dan data kurang dari size.
Pengondisian jika dtCari sama dengan itemDt.
Status ketemu berubah menjadi true.
Pos sama dengan i.
Kurung tutup if.
Jumlah i bertambah.
Kurung tutup while.
Mengembalikan nilai pos.
Kurung tutup method getPosisi.
Deklarasi method static copyLarik dengan type Larik dan berparameter int k, int n,
Larik l.
Menginstansi copy sama dengan jumlah item yang akan dicopy.
Deklarasi variable a dengan type Larik.
Perulangan dimulai dari posisi awal sampai posisi awas ditambah jumlah item yang
akan dicopy.
Copy perulangan sama dengan itemDt pada perulangan.
Kurung tutup for.
Menginstansi a sama dengan Larik.
Mengembalikan nilai variabel a.
Kurung tutup method copyLarik.
Deklarasi method getPosBesar dengan type data int yang berparmaeter int awal.
Variable int posBesar yang diinisialisasikan sama dengan -1.
Variable itemBesar dengan type data double.
Pengondisian jika awal kurang dari sama dengan akhir.
Variabel PosBesar sama dengan awal.
ItemBesar sama dengan getItem yang awal.
Perulangan dari data awal samapai akhir.
Variable nilaiItem sama dengan getItem.
93
94
95
96
97
98
100
101
102
103
104
105
106
107
108
109
110
111
112
113
115
116
117
118
119
120
121
122
123
124
125
126
127
129
130
131
132
133
134
135
136
137
139
140
Variabel PosBesar sama dengan i.
Kurung tutup if itemBesar kurang dari nilaiItem.
Kurung tutup for int i = awal + 1; i kurang dari akhir; i++.
Kurung tutup if awal kurang dari akhir.
Mengembalikan posBesar.
Kurung tutup method getPosBesar.
Deklarasi method getPosKecil dengan type data int dan berparameter int awal, int
akhir.
Variable int posKecil yang diinisialisasikan sama dengan -1.
Deklarasi variable kecil dengan type data double.
Pengondisian jika awal kurang dari akhir.
Kecil sama dengan getItem bagian awal.
Perulangan dari data awal sampai akhir.
Pengondisian jika itemDt kurang dari kecil.
Maka kecil sama dengan itemDt
Kurung tutup if this.itemDt[i] kurang dari kecil.
Kurung tutup for int i = awal; i kurang dari akhir; i++.
Variabel posKecil sama dengan getPosisi bagian yang kecil.
Kurung tutup if.
Mengembalikan nilai variable posKecil.
Kurung tutup method getPosKecil.
Deklarasi Method FindPosPos yang berparameter int cari.
Variable int pos yang di inisialisasikan sama dengan -99.
Variable boolean ketemu sama dengan false.
Variable int i yang diinisialisasikan dengan null.
Perulangan jika tidak ketemu dan data kurang dari size.
Pengondisian jika dtCari sama dengan itemDt.
Status ketemu berubah menjadi true.
Variable Pos sama dengan i.
Kurung tutup if .
Jumlah i bertambah.
Kurung tutup while.
Mengembalikan nilai variable pos.
Kurung tutup method findPosPos.
Deklarasi method static LarikKaliLarik yang bertype double dan berparameter Larik
L1, Larik L4.
Variable double hasil yang diinisialisasikan sama dengan null.
Pengondisian jika panjang L1 itemDt sama dengan L4 itemDt.
Perulangan sebanyak panjangnya L1.
Hasil sama dengan L1 dikali L4 kemudian per array dijumlah dari hasil perkalian.
Kurung tutup for.
Kurung tutup if.
Mengembalikan nilai variabel hasil.
Kurung tutup method larikKaliLarik.
Deklarasi Method static SelectionSort dengna type Larik yang berparameter Larik
lAsal, int status.
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
Menginisialisasi 1hasil dengan type Larik sama dengan copyLarik yang berparameter
pengurutan data, jumlah n, lAsal.
Pengondisian jika status sama dengan null yang berarti dari kecil ke besar.
Perulangan sebanyak n.
Variable posKecil sama dengan hasil dengan data dari yang kecil.
Variable itemKecil sama dengan getItem dengan memicu posKecil.
Variable itemI sama dengan hasil dengan mendapatkan item dari perulangan.
Hasil mengisi data yang paling kecil dahulu.
Hasil mengisi data dari pos yang paling kecil sebanyak itemI.
Kurung tutup for int i = 0; i kurang dari n; i++.
Pengondisian jika user memilih dari besar ke kecil.
Perulangan sebanyak n.
Variable posBesar sama dengan hasil dengan data dari yang besar.
Variable itemBesar sama dengan getItem dengan memicu posBesarl.
Variable itemI sama dengan hasil dengan mendapatkan item dari perulangan.
Hasil mengisi data yang paling besar dahulu.
Hasil mengisi data dari pos yang paling besar sebanyak itemI.
Kurung tutup for.
Kurung tutup else.
Mengembalikan nilai 1hasil.
Kurung tutup method Larik SelectionSort.
Akhir statement dari class Larik.
AppPr1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Package asd praktikum.
Deklarasi class java dengan nama AppPr1.
Method yang dibuat untuk dapat menjalankan program atau deklarasi method main.
Inisialisasi Variable A dengan type data double dengan data yang telah di set.
Inisialisasi Variable B dengan type data double dengan data yang telah di set.
Menginstansiasi L1 dengan type Larik sama dengan Larik dari data A.
Menginstansiasi L2 dengan type Larik sama dengan Larik dari data B.
Proses Mencetak komentar Isi Larik L1.
Proses Mencetak komentar Isi Larik L2.
Memanggil method sambung dengan menginisialisasi sebuah variable Larik L3.
Proses Mencetak komentar L3 sama dengan Gabung dari L1 dan L2.
Memanggil method copy dengan menginisialisasi sebuah variable Larik L4.
Proses Mencetak komentar Isi Larik L1.
Proses Mencetak komentar L4 copy dari L1.
Memanggil method selectionsort dengan data yag telah di set dari data L1 dimulai dari
kecil ke besar
Proses Mencetak komentar L5 Hasil pengurutan dari L1 kecil ke besar.
Memanggil method selectionsort dengan data yag telah di set dari data L1 dimulai dari
besar ke kecil.
Proses Mencetak komentar L6 Hasil pengurutan dari L1 besar ke kecil.
Proses Mencetak komentar Isi Larik L1.
21
22
Mencetak komentar Hasil Kali Larik L1 dikali L4 kemudian menampilkan nilai
hasilnya.
Kurung tutup method main.
D.
SCREENSHOT PROGRAM
No.1
No.2
E.
KESIMPULAN
ARRAY adalah sekumpulan variable yang memiliki tipe yang sama dan dinyatakan
dengan nama yang sama. Array merupakan konsep yang penting dalam pemrogaman,
karena array memungkinkan untuk menyimpan data maupun referensi objek dalam
jumlah banyak dan terindeks. Array menggunakan indeks integer untuk menentukan
urutan elemen-elemennya, dimana elemen pertamanya dimulai dari indeks 0, elemen
kedua memilki indeks 1, dan seterusnya.
Mendeklarasikan variable Array
Mendeklarasikan variable array dengan tipe data yang diinginkan dengan cara yang
hampir sama dengan variable biasa. Misalnya untuk mendeklarasikan variable bertipe
integer,dapat dilakukan dengan cara :
int [ ] bilangan; atau int bilangan [ ];
Mendefinisikan Array
Setelah mendeklarasikan array, perlu juga mendefinisakan array, artinya menentukan
besar array yang diinginkan, dengan cara :
bilangan = new int [5];
M
engakses Array
Untuk mengakses array dapat dilakukan dengan menyebutkan elemen ke beberapa dari
array yang akan diakses, dengan cara :
Nama_array[elemen_array];
Pengaplikasian array 1 dimensi
Membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [ ] lalu
diikuti oleh nama identifier-nya.
Sebagai contoh :
String [ ] nama;
Setelah pendeklarasian array, lalu harus membuat array dan menentukan berapa
panjangnya dengan sebuah konstruktor . proses ini di java disebut sebagai instantiation.
Ukuran di array tidak dapat diubah setelah menginisialisasikannya.
Sebagai contoh :
// deklarasi
String nama [ ];
//
instantiate objek