# PRAKTIKUM ALGORITMA DAN STRUKTUR DATA I LAPORAN PRAKTIKUM 1 : ARRAYLIST 1 DIMENSI

Disusun Oleh : Nama Nim Tanggal Praktikum Assisten 1 Assisten 2 : Martaso’id Fitriza : 105090606111002 : 26 Oktober 2011 : Aldi Sunantiyo : Inthi Ba’u Surotih

LABORATORIUM KOMPUTER JURUSAN MATEMATIKA – FAKULTAS MIPA UNIVERSITAS BRAWIJAYA MALANG 2011

SOURCE CODE
No. 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ArrayList1D.java package laporan1; public class ArrayList1D { private long[] a; private int nElems; public ArrayList1D(int max){ a = new long[max]; nElems = 0; } public void insertvalue(long value){ a[nElems] = value; nElems++; } void InsertAtIndex (int index, int value){ for(int i=0;i<nElems;i++) if(i==index){ for(int j=nElems;j>=i;j--) a[j]=a[j-1]; a[index]=value; } nElems++; } void RemoveAtIndex(int index){ for(int i=0;i<nElems;i++) if(i==index) for(int j=i;j<=nElems;j++) a[j]=a[j+1]; nElems--; } int GetIndex (int value){ int temp = 0; for(int i=0;i<nElems;i++){ if(a[i]==value) { temp = i; break; } else if (i==nElems-1) temp = -1;

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

} return temp; } void InsertFirst(int value){ for(int j=nElems;j>0;j--) a[j]=a[j-1]; a[0]=value; nElems++; } void InsertAfter (int value1, int value2){ for(int i=0;i<nElems;i++) if(a[i]==value1){ for(int j=nElems;j>i;j--) a[j]=a[j-1]; a[i+1]=value2; nElems++; break; } else if(i==nElems-1) System.out.println("value "+value1+" tidak ditemukan"); } public void display(){ for(int j=0; j<nElems; j++) System.out.print(a[j] + " "); System.out.println(""); } }

No. 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

Laporan1.java package laporan1; class Laporan1 { public static void main(String[] args) { int maxSize = 100; ArrayList1D array = new ArrayList1D(maxSize); array.insertvalue(77); array.insertvalue(44); array.insertvalue(55); array.insertvalue(22); array.insertvalue(88); array.insertvalue(11); array.insertvalue(00); array.insertvalue(66); array.insertvalue(33); array.insertvalue(99); System.out.println("ARRAYLIST 1 DIMENSI"); System.out.println("===================\n"); System.out.println("Display of Array :"); array.display(); System.out.println(""); array.InsertAtIndex(1, 2); System.out.println("InsertAtIndex 1, value 2"); System.out.println("Display of Array :"); array.display(); System.out.println(""); array.RemoveAtIndex(3); System.out.println("RemoveAtIndex 3"); System.out.println("Display of Array :"); array.display(); System.out.println(""); System.out.println("GetIndex, value 99"); System.out.println("Found at index : "+array.GetIndex(99)); System.out.println(""); System.out.println("GetIndex, value 22");

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

System.out.println("Found at index : "+array.GetIndex(55)); System.out.println(""); System.out.println("InsertFirst, value : 909"); array.InsertFirst(909); System.out.println("Display of Array :"); array.display(); System.out.println(""); System.out.println("InsertAfter value : 22, value : 90"); array.InsertAfter(22, 90); System.out.println("Display of Array :"); array.display(); System.out.println(""); System.out.println("InsertAfter value : 55, value : 90"); array.InsertAfter(55, 90); System.out.println("Display of Array :"); array.display(); System.out.println(""); } }

PEMBAHASAN
Class : ArrayList1D.java Baris keKeterangan 8-11 Constructor 13-16 Method untuk memasukkan nilai array 19 Melakukan perulangan sampai i<nElems 20-25 Jika i=index, maka akan dilakukan proses perulangan untuk menggeser value array ke kanan sampai nilai j>=i (Operasi ShiftRight). Kemudian memasukkan nilai array pada index yang sudah diinputkan, dan nElems(jumlah array) akan bertambah 1. 29 Melakukan perulangan sampai i<nElems 30-33 Jika i=index, maka akan dilakukan proses perulangan untuk menggeser value array ke kiri sampai nilai j>i (Operasi ShiftLeft), Sehingga nilai pada index yang diinputkan terhapus. Dan nElems(jumlah array) akan berkurang 1. 38 Melakukan perulangan sampai i<nElems 39-42 Jika nilai pada index ke-i=value(nilai yang diinputkan) maka temp = i. dan dilakukan proses break. 43-44 Jika value tidak ditemukan (i==nElems-1) maka nilai temp diset menjadi -1. 46 Mengembalikan nilai temp. 50-53 Melakukan proses perulangan untuk menggeser value array ke kanan sampai nilai j>0 (Operasi ShifRight). Kemudian memasukkan nilai array pada index 0 sesuai dengan value yang diinputkan, dan nElems(jumlah array) akan bertambah 1. 57 Melakukan perulangan sampai i<nElems 58-63 Jika nilai Array index ke-i = value1(yang diinputkan) maka akan dilakukan proses perulangan untuk mengeser value array kekanan (Operasi ShiftRight) sampai j>i. Kemudian diinputkan value pada index ke-(i+1) yaitu sama dengan value2, dan dilakukan proses break. 65-67 Jika value tidak ditemukan (i==nElems-1) maka akan dilakukan proses cetak. 70-74 Method untuk melakukan proses cetak nilai dari Array.

OUTPUT