Transcript
Page 1: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

LAPORAN PRAKTIKUM ALGORITMA DANSTRUKTUR DATAARRAY 1 DIMENSI

Disusun oleh :

Nama : Gustian Ri’piNIM : 135150201111060Asisten 1 : Az Zahra Rahma Putri AfifaAsisten 2 : Fitri Bibi SuryaniDosen Pengampu : Lailil Muflikhah, S.Kom., M.Sc.

LABORATORIUM KOMPUTER DASARPROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER

UNIVERSITAS BRAWIJAYA2014

PengesahanTanggal:

Asisten

Page 2: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

A. Definisi Masalah

1. Mencari posisi bilangan genap yang terletak diantara bilanganx1 dan bilangan x2 dengan header sebagai berikut :

int findPosGenap(int x1, int x2)

2. Melengkapi bagian dari program ADT_Larik sehingga jikadiberikan program utama pada gambar 1 akan menghasilkankeluaran sebagaimana gambar 2.

B. Pseudocode

1. Pseudocode Soal 1

BeginVar size : int;Var itemDt : int[];

buatLarik(n : int) : void;Begin

this.size <- n;this.itemDt <- new int[this.size];

End

Larik(n : int);Begin

buatLarik(n);End

getSize() : int;Begin

return this.size;End

Larik(dt : int[]);Begin

buatLarik(dt.length);

Page 3: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

for i <- 0 to dt.length dobegin

isiItem(i, dt[i]);end

End

isiItem(id, dt : int) : void;Begin

this.itemDt[id] <- dt;End

cetak( komentar : String) : void;Begin

Print komentar;for i <- 0 to this.size dobegin

Print this.itemDt[i] , " ";end

End

findBesar() : int;Begin

Var besar : int;besar <- this.itemDt[0];for i <- 1 to this.size dobegin

if (besar < this.itemDt[i]) thenbesar <- this.itemDt[i];

endifreturn besar;

End

getPosisi(dtCari : int) : int;Begin

Var pos : int <- -99;Var ketemu : boolean <- false;Var i: int <- 0;while (!ketemu && i < this.size)

Page 4: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

if (dtCari <-this.itemDt[i]) thenketemu <- true;pos <- i;

endifi++;

endreturn pos;

End

getPosMax(id : int) : int;Begin

Var max : int <- this.itemDt[id];Var posMax : int <- id;for i <- id + 1 to size do

if (max <= this.itemDt[i]) thenmax <- this.itemDt[i];posMax <- i;

endifendreturn posMax;

End

getPosMin(id : int) : int;Begin

Var min : int <- this.itemDt[id];Var posMin : int <- id;for i <- id + 1 to size do

if (min >= this.itemDt[i]) thenmin <- this.itemDt[i];posMin <- i;

endifendreturn posMin;

End

PencarianBiner(dtCari, awal, akhir : int) : int;Begin

Var pos : int <- -99;

Page 5: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

Var tengah : int <- (awal + akhir) / 2;if (dtCari < this.itemDt[tengah]) then

return PencarianBiner(dtCari, awal, tengah);else if (dtCari > this.itemDt[tengah]) thenreturn PencarianBiner(dtCari, tengah + 1, akhir);else if (dtCari == this.itemDt[tengah]) thenreturn tengah;elsereturn pos;

endifEnd

copyLarik(k, n : int) : Larik;Begin

Var lHasil : Larik <- null;if (n <= this.size - k) then

lHasil <- new Larik(n);Var j : int <- 0;for i <- k to k + n do

lHasil.isiItem(j++, this.itemDt[i]);end

endifreturn lHasil;

End

SelectionSort(pilihan : int) : Larik;Begin {

Var lsort : Larik = copyLarik(0, size);for i <- 0 to lsort.getSize() do

Var posData : int;if (pilihan == 0) then

posData <- lsort.getPosMin(i);else

posData <- lsort.getPosMax(i);endifVar dt1 : int <- lsort.itemDt[i];Var dt2 : int<- lsort.itemDt[posData];lsort.itemDt[i] <- dt2;

Page 6: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

lsort.itemDt[posData] <- dt1;endreturn lsort;

End

findPosGenap(x1, x2 : int) : int;Begin

Var genap : int;for i <- x1 to x2 do

for j = 0 to size doif (itemDt[j] == i) then

if (itemDt[j] % 2 == 0) thengenap <- itemDt[j];Print genap , " terletak pada indeks " , j;

endifendif

endendreturn 0;

End

BeginVar A : int[] <- {2, 34, 5, 7, 10};Larik lA <- new Larik(A);lA.cetak "Sebelum di sort";lA.SelectionSort(0).cetak "Sesudah di sort";Print “Bilangan genap yg berada diantara 0 dan 100 ";lA.SelectionSort(0).findPosGenap(0, 100);End

2 . Pseudocode Soal 2

Pseudocode class Larik.javaBeginVar size : int;Var itemDt : double[];

Page 7: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

Larik(A : double)[];Begin

this.size <- A.length;this.itemDt <- new double[this.size];for i <- 0 to this.size do

this.itemDt[i] <- A[i];end

End

Larik(n : int);Begin

buatLarik(n);End

buatLarik(n : int) : void;Begin

this.size <- n;this.itemDt <- new int[this.size];

End

getSize() : int;Begin

return this.size;End

getItem(int i : int) : double;Begin

return this.itemDt[i];End

sambung(l1, l2 : Larik) : Larik;Begin

Var j : int <- 0;Larik l3 <- new Larik(l1.size + l2.size);for i <- 0 to l1.size do

l3.isiItem(j++, l1.itemDt[i]);endfor <- 0 to l2.size do

Page 8: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

l3.isiItem(j++, l2.itemDt[i]);endreturn l3;

EndisiItem(id : int, dt : double) : void;Begin

this.itemDt[id] <- dt;End

cetak(komentar : String) : void;Begin

Print komentar;for i = 0 to this.size do

Print this.itemDt[i]);End

End

findBesar() : double;Begin

Var besar : double <- this.itemDt[0];for i = 1 to this.size do

if (besar < this.itemDt[i]) thenbesar <- this.itemDt[i];

endifendreturn besar;

End

getPosisi(dtCari : double) : int;Begin

Var pos : int <- -99;Var ketemu : boolean <- false;Var I : int <- 0;while (!ketemu && i < this.size)

if (dtCari == this.itemDt[i]) thenketemu <- true;pos <- i;

endif

Page 9: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

i++;endreturn pos;

End

copyLarik(k, n : int, l : Larik) : Larik;Begin

Var lHasil : Larik <- null;if (n <= l.size - k) then

lHasil <- new Larik(n);Var j : int= 0;for i = k to k + n do

lHasil.isiItem(j++, l.itemDt[i]);end

endifreturn lHasil;

End

getPosBesar(awal, akhir : int) : int;Begin

Var posBesar : int <--1;Var itemBesar : double;if (awal <= akhir) then

posBesar <- awal;itemBesar <- this.getItem(awal);for i = awal + 1 to akhir do

Var nilaiItem : double <-= this.getItem(i);if (itemBesar < nilaiItem) then

itemBesar <- nilaiItem;posBesar <- i;

endifend

endifreturn posBesar;

End

getPosKecil(awal, akhir : int) : int;Begin

Page 10: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

Var posKecil : int <--1;Var itemKecil : double;if (awal <= akhir) then

posKecil <- awal;itemKecil <- this.getItem(awal);for i = awal + 1 to akhir do

Var nilaiItem : double <-= this.getItem(i);if (itemKecil > nilaiItem) then

itemKecil <- nilaiItem;posKecil <- i;

endifend

endifreturn posKecil;

End

SelectionSort(lAsal : Larik, status : int) : Larik;Begin

Var n : int <- lAsal.getSize();Var lhasil : Larik <- Larik.copyLarik(0, n, lAsal);if (status == 0) then

for i = 0 to n doVar posKecil : int <- lhasil.getPosKecil(i, n);Var itemKecil : doble <- lhasil.getItem(posKecil);Var itemI : double <- lhasil.getItem(i);lhasil.isiItem(i, itemKecil);lhasil.isiItem(posKecil, itemI);

endelse

for i = 0 to n doVar posBesar : int <- lhasil.getPosBesar(i, n);Var itemBesar : double <- lhasil.getItem(posBesar);Var itemI :double <- lhasil.getItem(i);lhasil.isiItem(i, itemBesar);lhasil.isiItem(posBesar, itemI);

endendifreturn lhasil;

Page 11: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

End

LarikKaliLarik(l1, l4 : Larik) : double;Begin

Var hasilKali : <- 0;for i = 0 to l1.size do

for j = 0 to l4.size doif (i == j) then

hasilKali <- hasilKali + l1.itemDt[i] * l4.itemDt[j];endif

endendreturn hasilKali;

End

Pseudocode class AppPr1.javaBeginVar A : double[] <- {3, 4, 1, 10, 5, 2, 10, 20, 16};Var B : double[] <- {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 = gabungan 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";Var hasil : double <- Larik.LarikKaliLarik(L1, L4);Print “HASIL KALI Larik L1*L4 : ", hasil;End

Page 12: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

C. Source Code

Source code Soal 1

123456789101112131415161718192021222324252627282930313233343536373839404142

public class Larik2 {private int size;private int[] itemDt;public void buatLarik(int n) {

this.size = n;this.itemDt = new int[this.size];

}public Larik2(int n) {

buatLarik(n);}public int getSize() {

return this.size;}public Larik2(int[] dt) {

buatLarik(dt.length);for (int i = 0; i < dt.length; i++) {

isiItem(i, dt[i]);}

}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;

Page 13: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

43444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788

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;for (int i = id + 1; i < size; i++) {

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;

Page 14: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

8990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134

} else {return pos;

}}public Larik2 copyLarik(int k, int n) {

Larik2 lHasil = null;if (n <= this.size - k) {

lHasil = new Larik2(n);int j = 0;for (int i = k; i < k + n; i++) {

lHasil.isiItem(j++,this.itemDt[i]);

}}return lHasil;

}public Larik2 SelectionSort(int pilihan) {

Larik2 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;

}public int findPosGenap(int x1, int x2) {

int genap;for (int i = x1; i <= x2; i++) {

for (int j = 0; j < size; j++) {if (itemDt[j] == i) {

if (itemDt[j] % 2 == 0) {genap = itemDt[j];System.out.println(genap

+ " terletak pada indeks " + j);}

}}

Page 15: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

135136137138139140141142143144145146147148149150151152153154155156157

}return 0;

}public static void main(String[] args) {

int[] A = {2, 34, 5, 7, 10};Larik2 lA = new Larik2(A);

lA.cetak("Sebelum di sort");lA.SelectionSort(0).cetak("Sesudah di

sort");//int k = lA.PencarianBiner(34,0,5);//System.out.println(k);

//Larik lB = lA.SelectionSort(0);//int p = lB.PencarianBiner(10, 0, 5);//System.out.println(p);

System.out.println("Bilangan genap ygberada diantara 0 dan 100 ");

lA.SelectionSort(0).findPosGenap(0, 100);System.out.println();

}}

Source code Soal 2

12345678910111213141516171819

package ADT_Larik;public class Larik {

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 Larik(int n) {

buatLarik(n);}public void buatLarik(int n) {

this.size = n;this.itemDt = new double[this.size];

}public int getSize() {

return this.size;}

Page 16: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

20212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465

public double getItem(int i) {return this.itemDt[i];

}public static Larik sambung(Larik l1, Larik

l2) {int j = 0;Larik l3 = new Larik(l1.size + l2.size);for (int i = 0; i < l1.size; i++) {

l3.isiItem(j++, l1.itemDt[i]);}for (int i = 0; i < l2.size; i++) {

l3.isiItem(j++, l2.itemDt[i]);}return l3;

}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++;

Page 17: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

66676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111

}return pos;

}public static Larik copyLarik(int k, int n,

Larik l) {Larik lHasil = null;if (n <= l.size - k) {

lHasil = new Larik(n);int j = 0;for (int i = k; i < k + n; i++) {

lHasil.isiItem(j++, l.itemDt[i]);}

}return lHasil;

}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 itemKecil;if (awal <= akhir) {

posKecil = awal;itemKecil = this.getItem(awal);for (int i = awal + 1; i < akhir;

i++) {double nilaiItem =

this.getItem(i);if (itemKecil > nilaiItem) {

itemKecil = nilaiItem;posKecil = i;

Page 18: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157

}}

}return posKecil;

}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;

}static double LarikKaliLarik(Larik l1, Larik l4)

{double hasilKali = 0;for (int i = 0; i < l1.size; i++) {

for (int j = 0; j < l4.size; j++) {if (i == j) {

hasilKali = hasilKali +l1.itemDt[i] * l4.itemDt[j];

}}

}return hasilKali;

}

Page 19: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

158 }

123456789101112131415161718192021222324252627282930313233

package ADT_Larik;

public class AppPr1 {

public static void main(String[] args) {// implementasi untuk ADT_Larikdouble[] 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 = gabungan 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);System.out.printf("HASIL KALI Larik L1*L4

: %.3f\n", hasil);}

}

Page 20: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

D. Pembahasan

Pembahasan Soal 1

12-35-78-1011-1314-1920-22

23-3031-3940-5253-6364-7475-9293-104

105-122

123-137

138139140142143-144152-155

Dekalarasi kelas dengan nama Larik2Deklarasi variabel dan array data (struktur data)Deklarasi Method dengan nama buatLarikConstructor untuk membuat larik, inisialisasi n (jumlah larik)Getter untuk jumlah indeks larikConstructor untuk membuat larik, inisialisasi variabel array dtProsedur untuk isiItem suatu larik dengan parmeter id : indekslarik, dan dt : item data yang akan disisipkan.Prosedur cetak suatu array, deklarasi variabel String komentarMethod untuk mencari nilai indeks terbesarProgram untuk mencari posisi suatu data tertentu di larikMethod untuk mendapatkan indeks array ke- yang terbesarMethod untuk mendapatkan indeks array ke- yang terkecilMethod untuk pencarian biner dalam arrayProgram untuk mencopy isi suatu Larik2 mulai dari posisi ksebanyak n item. hasilnya dikeluarkan sebagai array baru.Method untuk mengurutkan data array dari kecil ke besar denganmenggunakan Algoritma pengurutan selection sortFungsi untuk mencari bilangan genap yang berada diantara x1dan x2. Parameter x1 : batas awal pencarian bilangan genap,Parameter x2 : batas akhir pencarian bilangan genapDeklarasi method main untuk kelas Larik2Inisialisasi variabel integer array A = {2, 34, 5, 7, 10}Membuat sebuah objek dari kelas Larik2 dengan nama lAMencetak data yang belum diurutkanMencetak data yang sudah diurutkanPerintah untuk Mencetak bilangan genap yang berada diantara 0dan 100 dalam array tersebut.

Pembahasan Soal 2

234-9

10-16

Dekalarasi kelas dengan nama LarikDeklarasi variabel static array, data (strukur data)Contructor untuk membuat ADT larik dari suatu array bertipeinteger.Fungsi untuk membuat larik baru(copy larik), deklarasi

Page 21: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

17-1920-22

23-34

35-37

39-4647-5556-68

69-80

81-98

99 -116

117-119

122-130132-144145-155

variabel n (ukuran larik)Fungsi untuk mendapatkan ukuran larik, return size dari larikFungsi untuk mendapatkan item ke i dari suatu larik. parameteri : posisi item, return item larik.Fungsi static untuk menyambung dua buah larik l1 dan l2 danmenyimpannya ke larik l3Prosedur untuk isiItem suatu larik. parameter id : indeks larik,

Parameter dt : item data yang akan disisipkanProsedur untuk mencetak suatu arrayFungsi untuk mendapatkan nilai terbesar dari suatu larikFungsi untuk mencari posisi suatu data tertentu di arrayParameter dtCari : data yang akan dicari.Fungsi static untuk mencopy isi suatu larik l. parameter k :posisi awal, n : jumlah item yang akan dicopy, l : larik asal,return Larik hasil copy.Fungsi untuk mencari posisi terbesar suatu data suatu posisiawal sampai akhirFungsi untuk mencari posisi data terkecil suatu array mulaidari posisi awal sampai posisi akhirFungsi pengurutan suatu larik lAsal dimana kondisi lAsal akantetap setelah proses pengurutan.Untuk mengurutkan data dari kecil ke besarUntuk mengrutkan data dari besar ke kecilFungsi untuk mencari hasil perkalian antara l1 dan l4

1-3

57-910-11131415-18192021-2324-2627-2930-31

Dekalarasi kelas dengan nama AppPr1. implementasi untukADT_LarikDekalarasi kelas dengan nama AppPr1Inisialisasi array double [] A dan array double [] BMengambil isi larik l1(A) dan l2 (B)ke variabel new larik.Mencetak isi larik l1Mencetak isi larik l2Mencetak isi larik l3 (gabungan dari l1 dan l2)Mencetak isi larik l1Mencetak isi larik l4Mencetak isi larik l5 (hasil pengurutan dari l1 kecil -> besar)Mencetak isi larik l6 (hasil pengurutan dari l1 besar ke kecil)Mencetak isi larik l1Mencetak hasil kali dari l1*l4

Page 22: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

E. Screenshoot Program

Screenshoot Soal 1

Screenshoot Soal 2

Page 23: LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA … · LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA ARRAY 1 DIMENSI Disusun oleh : Nama : Gustian Ri’pi NIM : 135150201111060 Asisten

F. Kesimpulan

- Array dapat digunakan untuk menyimpan banyak data yangmempunyai tipe datasejenis.

- Data yang jenisnya berbeda tidak dapat ditempatkan pada satuarray yang sama.

- Umumnya indeks array diawali dari indeks ke-0, sehingga jikaingin mengakses data ke-1 pada array bisa kitaaksesmenggunakan indeks data ke-0 pada array dan seterusnya

- Sebelum menggunakan array, perlu membuatnya danmendeklaraskannya terlebih dahulu.

- Array satu Dimensi mempunyai 1 nama tetapi memiliki banyaktempat dan setiap tempat harus dibedakan, untukmembedakannya dibutuhkan penunjuk, pentunjuk dapat berupakarakter(char) atau integer.

- Array yang sudah disimpan dalam penunjuk yangsama(berbentuk indeks), maka isinya tidak akan hilang kecualiindeksnya diisi oleh nilai yang lain.


Top Related