Anda di halaman 1dari 26

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA

BAB : ADT ARRAY 1 DIMENSI


NAMA : IKRIMA AMANDA WULANDARI
NIM : 165150400111010
TANGGAL : 28/09/2017
ASISTEN : HOLIYANDA HUSADA

A. DEFINISI MASALAH

1. Kembangkan program di atas dengan menambahkan method berikut :


a. Mencari posisi bilangan yang merupakan kelipatan dari x0 yang terletak
diantara index x1 dan index x2 dengan header sebagai berikut :

int findPosKelipatan (int x0, int x1, int x2)

Contoh :
Sebuah set {1, 2, 3, 4, 5, 6, 7} dan dengan memanggil method
findPosKelipatan(3, 1, 6) maka akan menghasilkan 2 5 karena kelipatan dari
nilai 3 adalah 3 dan 6, dimana keduanya ada di antara index 1 – 6 dan
memiliki indeks 2 dan indeks 5.

b. Pengurutan dengan menggunakan algoritma pengurutan yang lain selain


Selection Sort.

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.

Gambar 1. Potongan program utama


public class AppPr1 {
public static void main(String[] args) {
// implementasi untuk ADT_Larik
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("L1");
L2.cetak("L2");
Larik L3 = Larik.sambung(L1, L2);
L3.cetak("L3");
Larik L4 = Larik.copyLarik(0, L1.getSize(), L1);
L1.cetak("L1");
L4.cetak("L4");
Larik L5 = Larik.SelectionSort(L1,0);
L5.cetak("L5");
L1.cetak("L1");
int []posisi = L1.FindPosPos(10);
double hasil = Larik.LarikKaliLarik(L1, L4);
System.out.printf("HASIL KALI %.3f\n",hasil);
}
}

Dengan hasil keluaran sebagai berikut :

Gambar 2. Hasil keluaran


Isi Larik L1
3.00 4.00 1.00 10.00 5.00 2.00 10.00 20.00 16.00
Isi Larik L2
4.00 3.00 1.00 11.00 7.00
L3 = gabungan dari L1 dan L2
3.00 4.00 1.00 10.00 5.00 2.00 10.00 20.00 16.00 4.00 3.00
1.00 11.00 7.00
Isi Larik L1
3.00 4.00 1.00 10.00 5.00 2.00 10.00 20.00 16.00
L4 Copy dari L1
3.00 4.00 1.00 10.00 5.00 2.00 10.00 20.00 16.00
L5 Hasil pengurutan dari L1 kecil -> besar
1.00 2.00 3.00 4.00 5.00 10.00 10.00 16.00 20.00
L6 Hasil pengurutan dari L1 besar -> kecil
20.00 16.00 10.00 10.00 5.00 4.00 3.00 2.00 1.00
Isi Larik L1
3.00 4.00 1.00 10.00 5.00 2.00 10.00 20.00 16.00
HASIL KALI Larik L1*L4 = 911.000

B. SOURCE CODE

Nomor 1
Larik.java
1 package Bab2;
2
3 public class Larik {
4 //data (strukur data)
5
6 private int size;
7 private int[] itemDt;
8 //method
9
10 public void buatLarik(int n) {
11 this.size = n;
12 this.itemDt = new int[this.size];
13 }
14
15 public Larik(int n) {
16 buatLarik(n);
17 }
18
19 public int getSize() {
20 return this.size;
21 }
22
23 public Larik(int[] dt) {
24 buatLarik(dt.length);
25 for (int i = 0; i < dt.length; i++) {
26 isiItem(i, dt[i]);
27 }
28 }
29
30 public void isiItem(int id, int dt) {
31 this.itemDt[id] = dt;
32 }
33
34 public void cetak(String komentar) {
35 System.out.println(komentar);
36 for (int i = 0; i < this.size; i++) {
37 System.out.print(this.itemDt[i] + " ");
38 }
39 System.out.println();
40 }
41
42 public int findBesar() {
43 int besar = this.itemDt[0];
44 for (int i = 1; i < this.size; i++) {
45 if (besar < this.itemDt[i]) {
46 besar = this.itemDt[i];
47 }
48 }
49 return besar;
50 }
51
52 /**
53 * program ini mencari posisi suatu data tertentu di
larik
54 */
55 public int getPosisi(int dtCari) {
56 int pos = -99;
57 boolean ketemu = false;
58 int i = 0;
59 while (!ketemu && i < this.size) {
60 if (dtCari == this.itemDt[i]) {
61 ketemu = true;
62 pos = i;
63 }
64 i++;
65 }
66 return pos;
67 }
68
69 private int getPosMax(int id) {
70 int max = this.itemDt[id];
71 int posMax = id;
72 for (int i = id + 1; i < size; i++) {
73 if (max <= this.itemDt[i]) {
74 max = this.itemDt[i];
75 posMax = i;
76 }
77 }
78 return posMax;
79 }
80
81 private int getPosMin(int id) {
82 int min = this.itemDt[id];
83 int posMin = id;
84 for (int i = id + 1; i < size; i++) {
85 if (min >= this.itemDt[i]) {
86 min = this.itemDt[i];
87 posMin = i;
88 }
89 }
90 return posMin;
91 }
92
93 public int PencarianBiner(int dtCari, int awal, int
akhir) {
94 int pos = -99;
95 int tengah = (awal + akhir) / 2;
96 if (dtCari < this.itemDt[tengah]) {
97 return PencarianBiner(dtCari, awal, tengah);
98 } else if (dtCari > this.itemDt[tengah]) {
99 return PencarianBiner(dtCari, tengah + 1,
akhir);
100 } else if (dtCari == this.itemDt[tengah]) {
101 return tengah;
102 } else {
103 return pos;
104 }
105 }
106
107 /**
108 * program untuk mencopy isi suatu Larik mulai dari
posisi k sebanyak n item
109 * hasilnya dikeluarkan sebagai array baru
110 */
111 public Larik copyLarik(int k, int n) {
112 Larik lHasil = null;
113 if (n <= this.size - k) {
114 lHasil = new Larik(n);
115 int j = 0;
116 for (int i = k; i < k + n; i++) {
117 lHasil.isiItem(j++, this.itemDt[i]);
118 }
119 }
120 return lHasil;
121 }
122
123 /**
124 * pilihan 0 : urutkan dari kecil ke besar lainya :
urutkan dari besar ke
125 * kecil Algoritma pengurutan ini menggunakan selection
sort
126 */
127 public Larik SelectionSort(int pilihan) {
128 Larik lsort = copyLarik(0, size);
129 for (int i = 0; i < lsort.getSize(); i++) {
130 int posData;
131 if (pilihan == 0) {
132 posData = lsort.getPosMin(i);
133 } else {
134 posData = lsort.getPosMax(i);
135 }
136 int dt1 = lsort.itemDt[i];
137 int dt2 = lsort.itemDt[posData];
138 lsort.itemDt[i] = dt2;
139 lsort.itemDt[posData] = dt1;
140 }
141 return lsort;
142 }
143
144 /*
145 * Algoritma pengurutan dengan Insertion Sort
146 */
147 public Larik Sort(int a) {
148 Larik insertion = copyLarik(0, itemDt.length);
149 for (int i = 0; i < insertion.size - 1; i++) {
150 for (int j = 0; j < insertion.size; j++) {
151 for (int b = i + 1; b > 0; b--) {
152 if (insertion.itemDt[b] <
insertion.itemDt[b - 1]) {
153 int temp = insertion.itemDt[b];
154 insertion.itemDt[b] =
insertion.itemDt[b - 1];
155 insertion.itemDt[b - 1] = temp;
156 }
157 }
158 }
159 }
160 return insertion;
161 }
162
163 public int[] findPosKelipatan(int x0, int x1, int x2) {
164 int length = (x2 - x1) + 1;
165 int[] angka = new int[length];
166 for (int i = 0; i < length; i++) {
167 angka[i] = itemDt[x1];
168 x1++;
169 }
170 int a = 0;
171 for (int i = 0; i < angka.length; i++) {
172 if (angka[i] % x0 == 0) {
173 a++;
174 }
175 }
176 int[] b = new int[a];
177 int c = 0;
178 for (int i = 0; i < angka.length; i++) {
179 if (angka[i] % x0 == 0) {
180 b[c] = angka[i];
181 c++;
182 }
183 }
184 int[] d = new int[a];
185 for (int i = 0; i < b.length; i++) {
186 d[i] = getPosisi(b[i]);
187 }
188 return d;
189 }
190
191 public static void main(String[] args) {
192 int[] A = {2, 34, 5, 7, 10};
193 Larik lA = new Larik(A);
194 lA.cetak("Sebelum");
195 lA.Sort(0).cetak("Sesudah disort");
196 //int k = lA.PencarianBiner(34,0,5);
197 //System.out.println(k);
198 Larik lB = lA.Sort(0);
199 int p = lB.PencarianBiner(10, 0, 5);
200 System.out.println(p);
201 System.out.println("Hasil mencari posisi indeks,
kelipatan dari nilai 7 ");
202 int[] arrayBaru = lA.findPosKelipatan(7, 0, 4);
203 for (int i = 0; i < arrayBaru.length; i++) {
204 System.out.println("Indeks ke : " +
arrayBaru[i] + " ");
205 }
206 }
207 }

Nomor 2
Larik.java
1 package ADT_Larik;
2
3 public class Larik {
4 //data (strukur data)
5
6 private int size;
7 private double[] itemDt;
8
9 /**
10 * Contructor untuk membuat ADT larik dari suatu array
11 *
12 * @param A : array bertipe int
13 */
14 public Larik(double[] A) {
15 this.size = A.length;
16 this.itemDt = new double[this.size];
17 for (int i = 0; i < this.size; i++) {
18 this.itemDt[i] = A[i];
19 }
20 }
21
22 /**
23 * fungsi untu mendapatkan ukuran larik
24 *
25 * @return size dari larik
26 */
27 public int getSize() {
28 return this.size;
29 }
30
31 /**
32 * fungsi untuk mendapatkan item ke i dari suatu larik
33 *
34 * @param i : posisi item
35 * @return item larik
36 */
37 public double getItem(int i) {
38 return this.itemDt[i];
39 }
40
41 /**
42 * fungsi static untuk menyambung dua buah larik l1 dan
l2
43 *
44 * @param l1 : Larik
45 * @param l2 : Larik
46 * @return Larik
47 */
48 public static Larik sambung(Larik l1, Larik l2) {
49 // Lengkapi bagian ini
50 double baru[] = new double[l1.size + l2.size];
51 int j = 0;
52 Larik l3 = new Larik(baru);
53 for (int i = 0; i < l1.size; i++) {
54 l3.isiItem(j++, l1.itemDt[i]);
55 }
56 for (int i = 0; i < l2.size; i++) {
57 l3.isiItem(j++, l2.itemDt[i]);
58 }
59 return l3;
60 }
61
62 /**
63 * procedure untuk isiItem suatu larik
64 *
65 * @param id : indeks larik
66 * @param dt : item data yang akan disisipkan
67 */
68 public void isiItem(int id, double dt) {
69 this.itemDt[id] = dt;
70 }
71
72 /**
73 * procedure cetak suatu array
74 *
75 * @param komentar : String
76 */
77 public void cetak(String komentar) {
78 System.out.println(komentar);
79 for (int i = 0; i < this.size; i++) {
80 System.out.printf("%.2f ", this.itemDt[i]);
81 }
82 System.out.println();
83 }
84
85 /**
86 * fungsi untuk mendapatkan nilai terbesar dari suatu
larik
87 *
88 * @return : item tebesar dari larik
89 */
90 public double findBesar() {
91 double besar = this.itemDt[0];
92 for (int i = 1; i < this.size; i++) {
93 if (besar < this.itemDt[i]) {
94 besar = this.itemDt[i];
95 }
96 }
97 return besar;
98 }
99
100 /**
101 * fungsi untuk mencari posisi suatu data tertentu di
array
102 *
103 * @param dtCari : data yang akan dicari
104 * @return posisiData
105 */
106 public int getPosisi(double dtCari) {
107 int pos = -99;
108 boolean ketemu = false;
109 int i = 0;
110 while (!ketemu && i < this.size) {
111 if (dtCari == this.itemDt[i]) {
112 ketemu = true;
113 pos = i;
114 }
115 i++;
116 }
117 return pos;
118 }
119
120 /**
121 * fungsi static untuk mencopy isi suatu larik l
122 *
123 * @param k : posisi awal
124 * @param n : jumlah item yang akan dicopy
125 * @param l : larik asal
126 * @return Larik hasil copy
127 */
128 public static Larik copyLarik(int k, int n, Larik l) {
129 // lenkapi bagian ini
130 double copyLarik[] = new double[n];
131 Larik lHasil = null;
132 if (n <= l.size - k) {
133 lHasil = new Larik(copyLarik);
134 int j = 0;
135 for (int i = k; i < k + n; i++) {
136 lHasil.isiItem(j++, l.itemDt[i]);
137 }
138 }
139 return lHasil;
140 }
141
142 /**
143 * fungsi untuk mencari posisi terbesar suatu data
suatu posisi awal sampai
144 * akhir
145 *
146 * @param awal : posisi awal
147 * @param akhir : posisi akhir
148 * @return posisi data terbesar
149 */
150 public int getPosBesar(int awal, int akhir) {
151 int posBesar = -1;
152 double itemBesar;
153 if (awal <= akhir) {
154 posBesar = awal;
155 itemBesar = this.getItem(awal);
156 for (int i = awal + 1; i < akhir; i++) {
157 double nilaiItem = this.getItem(i);
158 if (itemBesar < nilaiItem) {
159 itemBesar = nilaiItem;
160 posBesar = i;
161 }
162 }
163 }
164 return posBesar;
165 }
166
167 /**
168 * fungsi untuk mencari posisi data terkecil suatu
array mulai dari posisi
169 * awal sampai posisi akhir
170 *
171 * @param awal : posisi awal
172 * @param akhir : posisi akhir
173 * @return posisi data terkecil
174 */
175 public int getPosKecil(int awal, int akhir) {
176 // lenkapi bagian ini
177 int posKecil = -1;
178 double itemBesar;
179 if (awal <= akhir) {
180 posKecil = awal;
181 itemBesar = this.getItem(awal);
182 for (int i = awal + 1; i < akhir; i++) {
183 double nilaiItem = this.getItem(i);
184 if (itemBesar > nilaiItem) {
185 itemBesar = nilaiItem;
186 posKecil = i;
187 }
188 }
189 }
190 return posKecil;
191 }
192
193 /**
194 * fungsi pengurutan suatu larik lAsal dimana kondisi
lAsal akan tetap
195 * setelah proses pengurutan
196 *
197 * @param lAsal : Array asal yang akan diurutkan
198 * @param status : 0-> urut dari kecil ke besar 1->
urut dari besar ke kecil
199 * @return Array baru hasil pengurutan
200 */
201 public static Larik SelectionSort(Larik lAsal, int
status) {
202 int n = lAsal.getSize();
203 Larik lhasil = Larik.copyLarik(0, n, lAsal);
204 if (status == 0) {// urutkan data dari kecil ke
besar
205 for (int i = 0; i < n; i++) {
206 int posKecil = lhasil.getPosKecil(i, n);
207 double itemKecil =
lhasil.getItem(posKecil);
208 double itemI = lhasil.getItem(i);
209 lhasil.isiItem(i, itemKecil);
210 lhasil.isiItem(posKecil, itemI);
211 }
212 } else { // urutkan data dari besar ke kecil
213 for (int i = 0; i < n; i++) {
214 int posBesar = lhasil.getPosBesar(i, n);
215 double itemBesar =
lhasil.getItem(posBesar);
216 double itemI = lhasil.getItem(i);
217 lhasil.isiItem(i, itemBesar);
218 lhasil.isiItem(posBesar, itemI);
219 }
220 }
221 return lhasil;
222 }
223
224 static double LarikKaliLarik(Larik L1, Larik L4) {
225 double hasilKali = 0;
226 for (int i = 0; i < L1.size; i++) {
227 for (int j = 0; j < L4.size; j++) {
228 if (i == j) {
229 hasilKali = hasilKali + L1.itemDt[i] *
L4.itemDt[j];
230 }
231 }
232 }
233 return hasilKali;
234 }
235
236 int[] FindPosPos(int a) {
237 int pos[] = new int[this.size];
238 for (int i = 0; i < this.size; i++) {
239 pos[i] = (int) this.itemDt[i];
240 }
241 boolean ketemu = false;
242 int temp = 0;
243 for (int i = 0; i < this.size; i++) {
244 if (a == pos[i]) {
245 ketemu = true;
246 System.out.println("indeks : " + i);
247 }
248 }
249 return pos;
250 }
251 }

AppPr1.java
1 package ADT_Larik;
2
3 public class AppPr1 {
4
5 public static void main(String[] args) {
6 // implementasi untuk ADT_Larik
7 double[] A = {3, 4, 1, 10, 5, 2, 10, 20, 16};
8 double[] B = {4, 3, 1, 11, 7};
9 Larik L1 = new Larik(A);
10 Larik L2 = new Larik(B);
11 L1.cetak("isi Larik L1");
12 L2.cetak("isi Larik L2");
13 Larik L3 = Larik.sambung(L1, L2);
14 L3.cetak("L3 = gabungan dari L1 dan L2");
15 Larik L4 = Larik.copyLarik(0, L1.getSize(), L1);
16 L1.cetak("isi Larik L1");
17 L4.cetak("L4 copy dari L1");
18 Larik L5 = Larik.SelectionSort(L1, 0);
19 L5.cetak("L5 Hasil pengurutan dari L1 kecil ->
besar");
20 Larik L6 = Larik.SelectionSort(L1, L1.getSize());
21 L6.cetak("L6 Hasil pengurutan dari L1 besar ->
kecil");
22 L1.cetak("isi Larik L1");
23 System.out.println("");
24 System.out.println("Mencari nilai 10 dari L1 : ");
25 int[] posisi = L1.FindPosPos(10);
26 double hasil = Larik.LarikKaliLarik(L1, L4);
27 System.out.println("");
28 System.out.printf("HASIL KALI Larik L1*L4 =
%.3f\n", hasil);
29 }
30 }

C. PEMBAHASAN

Nomor 1
Larik.java
1 Deklarasi package dengan nama Bab2
2
3 Deklarasi class dengan nama Larik
4 Komentar berisi “data(struktur data)”
5
6 Deklatasi atribut int size
7 Deklarasi atribut int Array itemDt
8 Komentar berisi “method”
9
10 Deklarasi method buatLarik dengan parameter int n untuk memberikan nilai
11 pada atribut n dan instansiasi pada atribut itemDt
12 Field size diisi dengan variabel n
13 Field itemDt diisi dengan panjang array itu sendiri
14
15 Deklarasi Konstruktor Larik dengan parameter int n yang memanggil method
buatLarik
16 Memanggil method buat larik.
17 Akhir construktor
18
19 Deklarasi mehod getSize untuk mengembalikan nilai dari atribut size
20 mengembalikan nilai dari atribut size
21 akhir method
22
23 Deklarasi Konstruktor Larik dengan parameter int Array dt
24 Pemanggilan method buatLarik
25 Perulangan for dari 0 hingga panjang variable dt dengan increment
26 Pemanggilan method isiItem
27 Akhir perulangan for
28 Akhir construktor
29
30 Deklarasi method isiItem dengan parameter int id, int dt
31 Memberikan nilai pada atribut itemDt
32 Akhir dari method
33
34 Deklarasi method cetak dengan parameter String komentar untuk
menampilkan nilai dari atribut itemDt
35 menampilkan data pada variabel komentar
36 Perulangan for
37 Menampilkan data itemDt indeks ke-i
38 Akhir dari perulangan for
39 Menampilkan enter
40 Akhir dari method
41
42 Deklarasi method findBesar
43 Deklarasi variable int besar sama dengan nilai atribut itemDt indek ke-0
44 Perulangan for dari 0 hingga panjang variable dt dengan increment
45 Seleksi kondisi untuk mencari nilai terbesar diantara nilai atribut itemDt
46 Inisialisasi besar = this.itemDt indeks ke-i
47 Akhir dari seleksi kondisi
48 Akhir dari perulangan for
49 Mengembalikan nilai variabel besar
50 Akhir dari method
51
52 komentar
53 komentar
54 komentar
55 Deklarasi method getPosisi dengan parameter int dtCari
56 Deklarasi dan inisialisasi int pos sama dengan -99
57 Deklarasi dan inisialisasi boolean ketemu sama dengan false
58 Deklarasi dan inisialisasi int i sama dengan 0
59 Perulangan while akan terus dilakukan sampai variable ketemu sama dengan
true dan i kurang dari atribut size
60 Seleksi kondisi untuk mencari indeks dari dtCari
61 Inisialisasi ketemu = true
62 Inisialisasi pos = i
63 Akhir dari seleksi kondisi
64 Variabel i bertambah 1
65 Akhir dari perulangan while
66 Mengembalikan nilai pos
67 Akhir dari method
68
69 Deklarasi method getPosMax dengan parameter int id
70 Deklarasi dan dan inisialisasi variable int max sama dengan nilai dari atribut
itemDt indeks ke-id
71 Deklarasi dan inisialisasi int posMax sama dengan id
72 Perulangan for dari id+1 hingga atribut size dengan increment
73 Seleksi kondisi untuk mencari indeks dari nilai terbesar
74 Inisialisasi max = itemDt indek ke-i
75 Inisialisasi posMax = i
76 Akhir dari seleksi kondisi if
77 Akhir dari perulangan
78 Mengembalikan nilai posMax
79 Akhir dari method
80
81 Deklarasi method getPosMin dengan parameter int id
82 Deklarasi dan inisialisasi variable int min sama dengan nilai dari atribut
itemDt indeks ke-id
83 Deklarasi dan inisialisasi int posMin sama dengan id
84 Perulangan for dari id+1 hingga atribut size dengan increment
85 Seleksi kondisi untuk mencari indeks dari nilai terkecil
86 Inisialisasi min = itemDt indek ke-i
87 Inisialisasi posMin = i
88 Akhir dari seleksi kondisi if
89 Akhir dari perulangan
90 Mengembalikan nilai posMin
91 Akhir dari method
92
93 Deklarasi method PencarianBiner dengan parameter int dtCari, int awal,
intAkhir
94 Deklarasi dan inisialisasi variable pos sama dengan -99
95 Deklarasi dan inisialisasi variable tengah sama dengan awal ditambah akhir
dibagi 2
96 Seleksi kondisi jika dtCari kurang dari nilai itemDt indeks ke-tengah
97 Memanggil method PencarianBiner dengan parameter dtCari, awal, tengah
98 Seleksi kondisi lain jika dtCari lebih dari nilai itemDt indeks ke-tengah
99 Memanggil method PencarianBiner dengan parameter dtCari, tengah+1, akhir
100 Seleksi kondisi lain jika dtCari sama nilai itemDt indeks ke-tengah
101 Mengembalikan variabel tengah
102 Seleksi konsi else
103 mengembalikan veriabel pos
104 akhir dari seleksi kondisi
105 akhir dari method
106
107 komentar
108 komentar
109 komentar
110 komentar
111 Deklarasi method copyLarik dengan parameter int k, int n
112 Deklarasi objek lHasil dari class Larik sama dengan null
113 Seleksi kondisi jika, n kurang dari atribut size dikurangi k
114 Instansiasi objek lHasil
115 Deklarasi int j sama dengan 0
116 Perulangan untuk memberikan nilai kepada objek lHasil seperti nilai dari
atribut itemDt
117 Memanggil method isiItem dengan objek lHasil
118 Akhir dari perulangan for
119 Akhir dari seleksi kondisi if
120 Mengembalikan nilai variabel lHasil
121 Akhir dari method
123 Komentar
124 Komentar
125 Komentar
126 Komentar
127 Deklarasi method SelectionSort dengan parameter int pilihan
128 Deklarasi objek lsort dari class Larik yang bernilai sama dengan method
copyLarik
129 Perulangan for dari 0 hingga panjang lsort dengan increment
130 Deklarasi int posData
131 Seleksi kondisi jika pilihan sama dengan 0
132 Variabel posData sama dengan objek lsort memanggil method getPosMin (i)
133 Seleksi kondisi else
134 variable posData sama dengan lsort memanggil method getPosMax (i)
135 akhir dari seleksi kondisi
136 Deklarasi dan inisialisasi variable dt1 sama dengan nilai dari lsort ke-i
137 Deklarasi dan inisialisasi variable dt2 sama dengan nilai dari lsort ke-posData
138 Pertukaran nilai dari lsort ke-i sama dengan dt2
139 Pertukaran nilai dari lsort ke-posData sama dengan dt1
140 Akhir dari perulangan
141 Mengembalikan nilai lsort
142 Akhir dari method
143
144 Komentar
145 Komentar
146 Komentar
147 Deklarasi method Sort dengan parameter a
148 Deklarasi objek insertion dari class Larik yang bernilai sama dengan method
copyLarik
149 Perulangan for dari 0 hingga panjang insertion dikurangi 1 dengan increment
150 Jika nilai dari bubble ke-i lebih dari nilai dari bubble ke-i+1, maka akan
dilakukan pertukaran nilai diantara keduanya
151 Perulangan for
152 Seleksi kondisi if
153 Deklarasi dan insialisasi variabel temp = insertion.itemDt indeks ke-b
154 Inisialisasi insertion.itemDt indeks ke-b = insertion.itemDt indeks ke-(b-1)
155 Inisialisasi insertion.itemDt indeks ke-(b-1) = temp
156 Akhir dari seleksi kondisi
157 Akhir dari perulangan
158 Akhir dari perulangan
159 Akhir dari perulangan
160 Mengembalikan nilai variabel insertion
161 Akhir dari method
162
163 Deklarasi method findPosKelipatan dengan parameter int x0, int x1, int x2
164 Deklarasi int length sama dengan x2 dikurangi x1 ditambah 1
165 Deklarasi dan inisialisasi int Array angka dengan panjang length
166 Perulangan for dari 0 hingga length dengan increment
167 Pemberian nilai variable angka indek ke-i sama dengan nilai itemDt ke x1
dengan increment x1
168 Variabel xl bertambah 1
169 Akhir dari perulangan
170 Deklarasi variable a sama dengan 0
171 Perulangan for dari 0 hingga panjang angka dengan increment
172 Jika nilai dari angka ke-i mod x2 sama dengan 0 maka nilai a increment
173 Variabel a bertambah 1
174 Akhir dari seleksi kondisi
175 Akhir dari perulangan
176 Deklarasi dan instansiasi int Array b dengan panjang a
177 Deklarasi variable c sama dengan 0
178 Perulangan for dari 0 hingga panjang angka dengan increment
179 Jika nilai dari angka ke-i mod x2 sama dengan 0
180 Nilai variabel b indek ke-c sama dengan nilai dari angka indek ke-i
181 Increment variable c
182 Akhir dari seleksi kondisi if
183 Akhir dari perulangan for
184 Deklarasi dan instansiasi int Array d dengan panjang a
185 Perulangan for dari 0 hingga panjang d dengan increment
186 Nilai variabel d indek ke-i sama dengan memanggil method getPosisi (b[i])
187 Akhir dari perulangan for
188 Mengembalikan nilai variabel d
189 Akhir dari method
190
191 Deklarasi method main
192 Deklarasi dan pemberian nilai int Array A
193 Deklarasi dan instansiasi objek lA dari kelas Larik
194 Pemanggilan method cetak oleh objek lA
195 Pemanggilan method Sort dan method cetak oleh objek lA
196 Komentar
197 Komentar
198 Deklarasi objek lB sama dengan objek lA yang memanggil method Sort
199 Deklarasi int p sama dengan objek lB yang memanggil method
PencarianBiner
200 Perintah untuk menampilkan variable p
201 Mencetak “Hasil mencari posisi indeks, kelipatan dari nilai 7”
202 Deklarasi int Array coba sama dengan objek lA yang memanggil method
findPosKelipatan
203 Perulangan for untuk mencetak isi dari variable coba
204 Mencetak “indeks ke : ” diikuti nilai dari variabel arrayBaru indeks ke-i
205 Akhir dari perulangan for
206 Akhir dari method main
207 Akhir dari class Larik

Nomor 2
Larik.java
1 Deklarasi Package ADT_Larik
2
3 Deklarasi Class Larik
4 Komentar
5
6 Deklatasi atribut int size
7 Deklarasi atribut double Array itemDt
8
9 Komentar
10 Komentar
11 Komentar
12 Komentar
13 Komentar
14 Deklarasi Konstruktor Larik dengan parameter double Array A
15 Memberikan nilai pada atribut size sama dengan panjang A
16 Memberikan nilai pada atribut itemDt
17 Perulangan for dari 0 hingga atribut size dengan increment
18 Memberikan nilai pada atribut itemDt indek ke-i sama dengan nilai A indek
ke-i
19 Akhir dari perulangan
20 Akhir dari konstruktor
21
22 Komentar
23 Komentar
24 Komentar
25 Komentar
26 Komentar
27 Deklarasi method getSize untuk mengembalikan nilai dari atribut size
28 Mengembalikan nilai variabel size
29 Akhir dari method
30
31 Komentar
32 Komentar
33 Komentar
34 Komentar
35 Komentar
36 Komentar
37 Deklarasi method getItem dengan parameter i untuk mengembalikan nilai dari
atribut itemDt indek ke-i
38 Mengembalikan nilai variabel itemDt indeks ke-i
39 Akhir dari method
40
41 Komentar
42 Komentar
43 Komentar
44 Komentar
45 Komentar
46 Komentar
47 Komentar
48 Deklarasi method sambung dengan parameter Larik l1, Larik l2
49 Komentar berisi : lengkapi bagian ini
50 Deklarasi dan instansiasi double Array baru dengan panjang penjumlahan dari
panjang l1 dan panjang l2
51 Deklarasi int j = 0
52 Deklarasi Larik l3 = new Larik(l1.size + l2.size)
53 Perulangan for(int i = 0; i < l1.size; i++)
54 Deklarasi l3.isiItem(j++, l1.itemDt[i])
55 Akhir dari perulangan
56 Perulangan for(int i = 0; i < l2.size; i++)
57 Deklarasi l3.isiItem(j++, l2.itemDt[i])
58 Akhir dari perulangan
59 Pengembalian nilai l3
60 Akhir dari method
61
62 Komentar
63 Komentar
64 Komentar
65 Komentar
66 Komentar
67 Komentar
68 Deklarasi method isiItem dengan parameter int id, double dt
69 Memberikan nilai pada atribut itemDt indek ke-id samadengan dt
70 Akhir dari method
71
72 Komentar
73 Komentar
74 Komentar
75 Komentar
76 Komentar
77 Deklarasi method cetak dengan parameter String komentar untuk
menampilkan nilai dari atribut itemDt indek ke-i
78 Menampilkan data dari variabel komentar
79 Perulangan for
80 Menampilkan nilai dari atribut itemDt indeks ke-i
81 Akhir dari perulangan for
82 Mencetak enter
83 Akhir dari method
84
85 Komentar
86 Komentar
87 Komentar
88 Komentar
89 Komentar
90 Deklarasi method double findBesar()
91 Deklarasi double besar = this.itemDt[0]
92 Perulangan for (int i=1;i<this.size; i++)
93 Seleksi kondisi if(besar < this.itemDt[i])
94 Deklarasi besar = this.itemDt[i]
95 Akhir seleksi kondisi if
96 Akhir dari perulangan for
97 Pengembalian nilai variable besar
98 Akhir dari method
99
100 Komentar
101 Komentar
102 Komentar
103 Komentar
104 Komentar
105 Komentar
106 Deklarasi method getPosisi dengan parameter double dtCari
107 Deklarasi dan inisialisasi int pos sama dengan -99
108 Deklarasi dan inisialisasi boolean ketemu sama dengan false
109 Deklarasi dan inisialisasi int i sama dengan 0
110 Perulangan while akan terus dilakukan sampai variable ketemu sama dengan
true dan i kurang dari atribut size
111 Seleksi kondisi untuk mencari indeks dari dtCari
112 Inisialisasi variabel ketemu = true
113 Inisialisasi pos=i
114 Akhir dari seleksi kondisi if
115 Increment i
116 Akhir perulangan while
117 Pengembalian nilai variabel pos
118 Akhir dari method
119
120 Komentar
121 Komentar
122 Komentar
123 Komentar
124 Komentar
125 Komentar
126 Komentar
127 Komentar
128 Deklarasi method copyLarik dengan parameter int k, int n, int l
129 Komentar berisi : lengkapi bagian ini
130 Deklarasi dan instansiasi double Array copyLarik
131 Deklarasi Larik lHasil = null
132 Seleksi kondisi if (n <= l.size - k)
133 Deklarasi objek lHasil = new Larik(n)
134 Deklarasi int j = 0
135 Perulangan for(int i = k; i < k + n; i++)
136 Deklarasi lHasil.isiItem(j++, l.itemDt[i])
137 Akhir perulangan for
138 Akhir dari seleksi kondisi if
139 Pengembalian nilai lHasil
140 Akhir dari method
141
142 Komentar
143 Komentar
144 Komentar
145 Komentar
146 Komentar
147 Komentar
148 Komentar
149 Komentar
150 Deklarasi method getPosBesar dengan parameter int awal, int akhir
151 Deklarasi int posBesar sama dengan -1
152 Deklarasi double itemBesar
153 Seleksi kondisi jika awal kurang dari sama dengan akhir
154 Memberikan nilai pada variable posBesar sama dengan awal
155 Memberikan nilai pada variable itemBesar sama dengan nilai atribut getItem
indek ke-awal
156 Perulangan for dari awal+1 hingga akhir dengan increment
157 Memberikan nilai pada double nilaiItem sama dengan nilai getItem indek ke-i
158 Seleksi kondisi untuk membandingkan nilai sebelum dan sesudah untuk
mencari nilai terbesar
159 Insialisasi nilai itemBesar= i
160 Memberikan nilai pada variable posBesar sama dengan i untuk menyimpan
posisi dari nilai terbesar
161 Akhir dari seleksi kondisi if
162 Akhir dari perulangan for
163 Akhir dari seleksi kondisi
164 Pengembalian nilai variabel posBesar
165 Akhir dari method
166
167 Komentar
168 Komentar
169 Komentar
170 Komentar
171 Komentar
172 Komentar
173 Komentar
174 Komentar
175 Deklarasi method getPosKecil dengan parameter int awal, int akhir
176 Komentar berisi : lengkapi bagian ini
177 Deklarasi int posKecil sama dengan -1
178 Deklarasi double itemBesar
179 Seleksi kondisi jika awal kurang dari sama dengan akhir
180 Memberikan nilai pada variable posKecil sama dengan awal
181 Memberikan nilai pada variable itemBesar sama dengan nilai atribut getItem
dengan parameter berisi variabel awal
182 Perulangan for dari awal+1 hingga akhir dengan increment
183 Memberikan nilai pada double nilaiItem sama dengan nilai getItem indek ke-i
184 Seleksi kondisi untuk membandingkan nilai sebelum dan sesudah untuk
mencari nilai terkecil
185 Insialisasi variabel itemBesar = nilaiItem
186 Memberikan nilai pada variable posKecil sama dengan i untuk menyimpan
posisi dari nilai terkecil
187 Akhir dari seleksi kondisi if
188 Akhir dari perulangan for
189 Akhir dari seleksi kondisi if
190 Pengembalian nilai posKecil
191 Akhir dari method
192
193 Komentar
194 Komentar
195 Komentar
196 Komentar
197 Komentar
198 Komentar
199 Komentar
200 Komentar
201 Deklarasi method SelectionSort dengan parameter Larik lAsal, int status
202 Deklarasi int n panjang dari lAsal
203 Deklarasi dan instansiasi objek lhasil dari class Larik yang memanggil
method copyLarik
204 Seleksi kondisi jika status sama dengan 0
205 Perulangan for dari 0 hingga panjang n dengan increment
206 Deklarasi int posKecil sama dengan lhasil memanggil method getPosKecil
207 Deklarasi double itemKecil sama dengan lhasil memanggil method getItem
208 Deklarasi double itemI sama dengan lhasil memanggil method getItem
209 Pemanggilan method isiItem oleh objek lhasil
210 Pemanggilan method isiItem oleh objek lhasil
211 Akhir dari perulangan for
212 Seleksi kondisi else
213 Perulangan for dari 0 hingga panjang n dengan increment
214 Deklarasi int posBesar sama dengan lhasil memanggil method getPosBesar
215 Deklarasi double itemBesar sama dengan lhasil memanggil method getItem
216 Deklarasi double itemI sama dengan lhasil memanggil method getItem
217 Pemanggilan method isiItem oleh objek lhasil
218 Pemanggilan method isiItem oleh objek lhasil
219 Akhir dari perulangan for
220 Akhir dari seleksi kondisi else
221 Pengembalian nilai variabel lhasil
222 Akhir dari method
223
224 Deklarasi static double LarikKaliLarik(Larik L1, Larik L4)
225 Deklarasi double hasilKali = 0
226 Perulangan for(int i = 0; i < L1.size; i++)
227 Perulangan for(int j = 0; j < L4.size; j++)
228 Seleksi kondisi if (i == j)
229 Deklarasi hasilKali = hasilKali + L1.itemDt[i] * L4.itemDt[j]
230 Kurung penutup if
231 Kurung penutup for
232 Kurung penutup for
233 Pengembalian nilai hasilKali
234 Kurung penutup method
235
236 Deklarasi method FindPosPos dengan paramater int variabel a
237 Deklarasi array pos dengan panjang samadengan size
238 Perulangan for
239 Array pos indeks ke-i samadengan nilai variabel itemDt indeks ke-i
240 Akhir perulangan for
241 Deklarasi boolean variabel ketemu samadengan false
242 Deklarasi variabel temp samadengan 0
243 Perulangan for
244 Seleksi kondisi jika a samadengan nilai array pos ke-i
245 Inisialisasi variabel ketemu=true
246 Menampilkan “indeks : ” diikuti nilai dari variabel i
247 Akhir dari seleksi kondisi if
248 Akhir dari perulangan for
249 Pengembalian nilai variabel pos
250 Akhir dari method
251 Akhir dari class Larik

AppPr1.java
1 Deklarasi package dengan nama ADT_Larik
2
3 Dekalrasi class AppPr1
4
5 Deklarasi method main
6 Komentar berisi : implementasi untuk ADT_Larik
7 Deklarasi double Array A beserta pemberian nilainya
8 Deklarasi double Array B beserta pemberian nilainya
9 Instansiasi objek L1 dari class Larik
10 Instansiasi objek L2 dari class Larik
11 Pemanggilan method cetak oleh objek L1
12 Pemanggilan method cetak oleh objek L2
13 Instansiasi objek L3 dari class Larik sama dengan class Larik memanggil
method sambung
14 Pemanggilan method cetak oleh objek L3
15 Instansiasi objek L4 dari class Larik sama dengan class Larik memanggil
method copyLarik
16 Pemanggilan method cetak oleh objek L1
17 Pemanggilan method cetak oleh objek L4
18 Instansiasi objek L5 dari class Larik sama dengan class Larik memanggil
method selectionSort
19 Pemanggilan method cetak oleh objek L5
20 Instansiasi objek L6 dari class Larik sama dengan class Larik memanggil
method selectionSort
21 Pemanggilan method cetak oleh objek L6
22 Pemanggilan method cetak oleh objek L1
23 Mencetak enter
24 Mencetak “Mencari nilai 10 dari L1 :”
25 Deklarasi array posisi samadengan memanggil method FindPosPos
26 Deklarasi variabel hasil samadengan memanggil method LarikKaliLarik
melalui kelas Larik
27 Menampilkan enter
28 Mencetak “HASIL KALI Larik L1*L4 = %.3f\n” diikuti dengan nilai dari
variabel hasil
29 Akhir method main
30 Akhir dari class AppPr1

D. SCREENSHOT PROGRAM

Nomor 1
Nomor 2

E. KESIMPULAN

1. ADT merupakan singkatan dari Abstract Data Type yang merupakan model
matematika yang menyempurnakan tipe data dengan cara mengaitkannya
pada fungsi – fungsi yang beroperasi pada data yang sedang dijalankan.
Penerapannya : Biasanya digunakan utuk memisahkan struktur penyimpanan
dari perilaku tipe data yang abstrak seperti misalnya, Tumpukan(Stack) serta
antrian(Queue).

2. Array merupakan sekumpulan data ( objek ) yang memiliki tipe yang sama,
setiap variabel yang sama dan tiap data dibedakan dengan indeks dalam array
tersebut. Indeks dari tiap array akan dimulai dengan indeks ke-0.
- Cara deklarasi :
Tulis tipe data array yang diinginkan, lalu tulis kurung siku buka dan
kurung siku tutup, dan terakhir tulis nama array yang diinginkan dan
diakhiri dengan titik koma.
Contoh : int [] a;
- Cara mengakses :
Array dapat diakses dengan cara memanggil variable Array beserta
indeksnya.

- Macam array dan contohnya :


a. Array 1 dimensi
Contoh : int [] a = {1,2,3};
b. Array 2 dimensi (multidimensi)
Contoh int b [] [] = {{1,2,3},{4,5,6}}

3. Array satu dimensi adalah sebuah daftar yang memuat beberapa variabel
berelasi. Karena array satu dimensi merupakan kumpulan elemen yang
tersusun dalam satu baris atau tidak menggunakan kolom,sehingga array satu
dimensi biasa diaplikasikan dalam mengurutkan bilangan.
Contoh penerapannya :
int [] angka = new int [3];
// pemberian nilai pada array
angka [0] = 10;
angka [1] = 5;
angka [2] = 20;

Anda mungkin juga menyukai