PRAKTIKUM 1 - STRUKTUR DATA
ARRAYS
Learning outcomes:
1. Mampu menjelaskan konsep dan implementasi array pada program
2. Mampu melakukan manipulasi data array: menambahkan item,
melakukan pencarian, dan menghapus item pada array
3. Mampu mengimplementasikan ordered array pada program.
4. Mampu mengimplementasikan binary search pada ordered array.
5. Mampu menyimpan dan manipulasi objek pada array.
IDENTITAS PRAKTIKAN
NIM :
Nama Lengkap : Kelas/ Hari/ Jam
: / / Nomor komputer :
Nama Asisten
:
Tugas Praktikum
Telah diperiksa pada tanggal Telah diperiksa pada tanggal
(nilai dan paraf asisten) (nilai dan paraf asisten)
Praktikum 1 |
A. PENDAHULUAN
1. Format penulisan code yang digunakan untuk mendeklarasikan sebuah array adalah:
TipeData namaVariable[ ] = new TipeData[panjang/ukuranArray];
Sedangkan format penulisan code untuk menambahkan item pada array yang telah
dideklarasikan adalah:
namaVariable[index]= value;
Tulis dan jalankan listing program berikut:
public class classArray {
public static void main(String[] args) {
int[] array = new int[10];
array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 40;
array[4] = 50;
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println("");
}
}
Pada listing program tersebut, ukuran array yang dideklarasikan adalah 10. Insert
item dilakukan hingga index ke-4, artinya hanya terdapat 5 item.
Tuliskan output program tersebut dan jelaskan kenapa demikian!
jawaban
2. Tambahkan baris code berikut ini pada listing program nomer 1
...
array = new int[20];
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println("");
} //akhir method main
}//akhir class
Jalankan program tersebut, apa output yang dihasilkan?
jawaban
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 2
Praktikum 1 |
Apakah item yang awal dimasukkan (pada listing no 1) masih tersimpan didalam
array? Jelaskan kenapa demikian?
jawaban
Hingga tahap ini, yang dapat disimpulkan adalah:
Ukuran array bersifat fixed / not fixed *)
*)coret salah satu
3. Lakukan experiment menggunakan listing nomer 1 untuk menjawab pertanyaan
berikut (beri keterangan benar/salah untuk soal berupa statemen dan tulis jawaban
untuk soal isian)
Insert item pada array hanya bisa dilakukan secara
berurutan mulai index ke-0.
Insert item pada array hanya bisa dilakukan hingga
ukuran array – 1.
Cell array untuk semua tipe data primitive yang belum
diberi value secara default bernilai 0.
Cell array untuk tipe data String yang belum diberi value
secara default bernilai null.
Keterangan yang muncul jika memasukkan item
melebihi ukuran array adalah ……………
4. Lengkapi listing berikut:
public class ClassArray {
public static void main(String[] args) { int[] array = new int[100];
int nElemen = 0; array[0] = 30;
array[1] = 20;
array[2] = 60;
array[3] = 70;
array[4] = 50;
array[5] = 10;
nElemen = 6;
for (int i = 0; i < nElemen; i++) { System.out.print(array[i] + " "
}
System.out.println("");
}
}
Jalankan dan tuliskan penjelasan dari listing yang telah Anda lengkapi!
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 3
Praktikum 1 |
jawaban
5. Berikut ini adalah listing program array yang dituliskan dalam bentuk object
oriented programming. Class HighArray memiliki method untuk manipulasi array,
yaitu insert, find/search, dan delete serta method display untuk menampilkan isi
array. Method dalam class HighArray tersebut dipanggil dan dijalankan pada class
HighArrayApp.
Pahami listing berikut dengan menulis dan menjalankannya, kemudian tuliskan
penjelasan tiap barisnya!
class HighArray { Awal sebuah kelas bernama HighArray
Deklarasi variable integer bertipe array
private int[] arr;
bernama “arr” dengan akses private
private int nElemen;
public HighArray(int max) {
arr = new int[max];
nElemen = 0;
}
public void insert(int value) {
arr[nElemen] = value;
nElemen++;
}
public boolean find(int key) {
int i;
for (i = 0; i < nElemen; i++) {
if (arr[i] == key) {
break;
}
}
if (i == nElemen) {
return false;
} else {
return true;
}
}
public boolean delete(int value) {
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 4
Praktikum 1 |
int i;
for (i = 0; i < nElemen; i++) {
if (value == arr[i]) {
break;
}
}
if (i == nElemen) {
return false;
} else {
for (int j = i; j < nElemen; j++) {
arr[j] = arr[j + 1];
}
nElemen--;
return true;
}
}
public void display() {
for (int i = 0; i < nElemen; i++) {
System.out.print(arr[i] + " ");
}
System.out.println("");
}
}
public class HighArrayApp {
public static void main(String[] args) {
int maxSize = 100;
HighArray arr;
arr = new HighArray(maxSize);
arr.insert(70);
arr.insert(80);
arr.insert(75);
arr.insert(55);
arr.insert(85);
arr.insert(25);
arr.insert(30);
arr.insert(00);
arr.insert(90);
arr.insert(40)
arr.display();
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 5
Praktikum 1 |
int key = 25;
if (arr.find(key)) {
System.out.println(key +
" ditemukan");
} else {
System.out.println(key +
" tidak ditemukan");
}
arr.delete(00);
arr.delete(80);
arr.delete(55);
arr.display();
}
}
Output program tersebut adalah….
jawaban
6. Tambahkan sebuah method size pada class HighArray yang mempu mengembalikan
nilai jumlah elemen array. Panggil method tersebut pada class HighArrayApp untuk
menampilkan jumlah elemen.
Tulis code dan penjelasannya!
jawaban
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 6
Praktikum 1 |
B. PRAKTIKUM
1. Pada listing nomer 5 (tugas pendahuluan), method insert digunakan untuk
menambahkan item pada cell yang belum terisi tanpa memberhatikan value item
yang ditambahkan sehingga elemen pada array disimpan secara tidak berurutan
(unordered).
Agar item dapat disimpan pada urutan yang sesuai dengan value-nya maka perlu
dilakukan pencarian posisi cell yang tepat bagi item yang akan dimasukkan dengan
cara membandingkan tiap item pada cell dengan item yang akan dimasukkan, yaitu
pencarian secara linier. Setelah cell tepat ditemukan, langkah selanjutnya adalah
menyiapkan cell tersebut untuk diisi jika sudah ada item yang tersimpan pada cell
tersebut. Hal ini bisa dilakukan dengan cara menggeser item yang memiliki value
lebih besar dari item yang akan dimasukkan, dengan demikian terdapat cell kosong
untuk diisi dengan item baru. Langkah-langkah insert item pada ordered array
ditunjukkan pada Gambar 1.1 berikut ini.
66Cari posisi yang sesuai
77
15 30 45 53 79 81
Geser value yang lebih besar dari item
66 insert
15 30 45 53 77 79 81
15 30 45 53 66 77 79 81
Ordered Array
Gambar 1.1 Langkah insert item pada ordered array
Tuliskan listing untuk method insert untuk menyimpan elemen array secara
berurutan (ordered)!
2. Pencarian pada method find listing nomer 5 (tugas pendahuluan) menggunakan
linier search, artinya terhadap key yang dicari, program akan melakukan pencarian
pada array secara berurutan mulai dari elemen pertama hingga elemen terakhir. Hal
ini tidak efisien. Pada ordered array, dapat dilakukan pencarian menggunakan
binary serach yang lebih efisien dibandingkan dengan linier search.
Pada binary search, range elemen array dibagi dua secara berulang-ulang. Hal ini
menjadikan range pencarian semakin kecil dan terpusat pada item yang memiliki
value mendekati key pencarian. Pembagian range pencarian pada binary search
ditunjukkan pada Gambar 1.2 berikut ini.
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 7
Praktikum 1 |
batasBawah batasAtas
batasBawahbatasAtas batasBawahbatasAtas
Range yang baru jika Key < arr[curIn] Range yang baru jika Key > arr[curIn]
Gambar 1.2 Pembagian range pencarian pada binary Search
Tuliskan listing untuk method find yang mengimplementasikan binary search!
3. Storing object
Item data pada real world tidak direpresentasikan dalam bentuk data primitive tapi
berupa record yang merupakan kombinasi dari beberapa field. Misalkan untuk
record personal, kita dapat menyimpan nama, tempat tanggal lahir, nomer telpon,
email, dsb. Untuk data mahasiswa, kita dapat menyimpan nim, nama, jurusan, asal,
dsb. Dalam java, record data biasanya direpresentasikan dengan sebuah class
object.
Berikut ini listing yang menunjukkan implementasi storing object. Terdapat tiga
class, yaitu class “Mahasiswa”, “DataArray”, dan “DataArrayApp”. Record yang
disimpan adalah data mahasiswa yang terdiri dari field nim, nama, dan asal. Record
mahasiswa ini direpresentasikan dalam sebuah class object dengan nama
“Mahasiswa”.
Tulis dan pahamilah listing program untuk menyimpan object berikut ini.
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 8
Praktikum 1 |
Objek mahasiswa disimpan dalam array. Class “DataArray” berisi method-method
untuk manipulasi object mahasiswa, yaitu insert, find, dan delete, serta method
untuk menampilkan array berisi objek mahasiswa, yaitu displayArray.
Class yang digunakan untuk menjalankan program adalah class “DataArrayApp”.
Class ini memiliki method main yang didalamnya terdapat listing untuk memanggil
dan menjalankan fungsi-fungsi pada class DataArray yang telah dibuat.
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 9
Praktikum 1 |
Output:
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 1
Praktikum 1 |
C. KESIMPULAN
Kesimpulan yang diperoleh dari pembahasan praktikum kali ini adalah:
1. Tentang unordered arrays dan ordered arrays
2. Tentang linier search dan binary search
3. Tentang menyimpan object (storing object)
Praktikum Struktur Data, Jurusan Teknik Informatika, UIN Maulana Malik Ibrahim
Malang 1