Anda di halaman 1dari 17

LAPORAN PRAKTIKUM

STRUKTUR DATA
MODUL 1 ARRAY

Disusun oleh:
NAMA : AZHAR SEPTIANTO
NIM : 20214121044

JURUSAN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS ISLAM AL-IHYA KUNINGAN
2021
KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya
sehingga saya dapat menyelesaikan tugas yang berjudul “Laporan Praktikum Struktur Data
Modul 1 Array” ini tepat pada waktunya.
Adapun tujuan dari penulisan dari laporan ini adalah untuk memenuhi tugas ibu Gina
Dewi Sonia, M.T.I. pada mata kuliah Struktur Data. Selain itu, laporan ini juga bertujuan
untuk menambah wawasan tentang pemrograman web bagi para pembaca dan juga bagi
penulis.
Saya mengucapkan terima kasih kepada ibu Gina Dewi Sonia, M.T.I., selaku dosen
mata kuliah Struktur Data yang telah memberikan tugas ini sehingga dapat menambah
pengetahuan dan wawasan sesuai dengan bidang studi yang saya tekuni.
Saya juga mengucapkan terima kasih kepada semua pihak yang telah membagi
sebagian pengetahuannya sehingga saya dapat menyelesaikan laporan ini. Saya menyadari,
laporan yang saya tulis ini masih jauh dari kata sempurna. Oleh karena itu, kritik dan saran
yang membangun akan saya nantikan demi kesempurnaan laporan ini.

Kuningan, 17 Oktober 2021

Penyusun

i
DAFTAR ISI
KATA PENGANTAR..............................................................................................................i
DAFTAR ISI.............................................................................................................................ii
A. PENDAHULUAN................................................................................................................1
B. PRAKTIKUM......................................................................................................................9
C. KESIMPULAN..................................................................................................................14

ii
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;
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("");

Tulis dan jalankan listing program berikut:


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!
Source code:

1
Output:

Penjelasan:
Pertama menginisialisasi variabel array sebagai tipe array dengan tipe data int dan
ukurannya 10. Mengisi array index ke-0 = 10, 1 = 20, 2 = 30, 3 = 40, 4 = 50.
Melakukan perulangan pada variabel array sebanyak array.length atau lebarnya array.
Kemudian mencetak array tersebut.

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

Jalankan program tersebut, apa output yang dihasilkan?


Source code:

2
Output:

Penjelasan:
Kita menginisialisasi ulang variabel array memiliki ukuran 20. Dan melakukan
perulangan untuk mencetak isi array.

Apakah item yang awal dimasukkan (pada listing no 1) masih tersimpan didalam
array? Jelaskan kenapa demikian?
Jawaban:
Karena listing nomor 1 masih tetap kita cetak di atas code listing nomor 2. Maka
tetap akan dicetak kemudian kita membuat ulang ukuran variabel array dengan
ukuran 20 maka array yang sebelumnya akan di ganti karena nama variabelnya sama.
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
Salah
ke-0.
Insert item pada array hanya bisa dilakukan hingga ukuran array – 1. Benar
Cell array untuk semua tipe data primitive yang belum diberi value secara
Benar
default bernilai 0.
Cell array untuk tipe data String yang belum diberi value secara default
Benar
bernilai null.
Keterangan yang muncul jika memasukkan item melebihi ukuran array -

3
adalah Create breakpoint : Index 10 out of bounds for length 10

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!
Source code:

Output:

4
Penjelasan:
Menginisialisasi variabel array tipe array dengan ukuran 100. Kemudian
menginisialisasi nElemen = 0. Kemudian menginisialisasi nilai pada indek ke-0 = 30,
1 = 20, 2 = 60, 3 = 70, 4 = 50, 5 = 10. Kemudian pada blok yang harus kita
inisialisasi nElemen dengan nilai 6 agar dapat mencetak variabel array yang telah
diisi nilai dengan perulangan.

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!
Awal sebuah kelas bernama
class HighArray {
HighArray
Deklarasi variable integer bertipe
private int[] arr; array bernama “arr” dengan akses
private
private int nElemen; Deklarasi variable integer bernama
“nElemen” dengan akses private
public HighArray(int max) { Pembuatan fungsi bernama
“HighArray” memiliki parameter
arr = new int[max]; max tipe int dengan akses public
nElemen = 0; Pembuatan variabel array
} diinisialisasi int dengan ukuran
public void insert(int value) { arr[nElemen] = menggunakan parameter max
value; Pembuatan variabel nElemen
nElemen++; diinisialisasi 0
} Penutup fungsi HighArray
public boolean find(int key) { Pembuatan fungsi bernama “insert”
memiliki parameter value tipe int
int i; dengan akses public
5
for (i = 0; i < nElemen; i++) { Memberi nilai arr menggunakan
index dari nilai nElemen yang diisi
if (arr[i] == key) { nilai dari parameter
break; nElemen dilakukan increment,
} bertambah 1
} Penutup Fungsi insert
if (i == nElemen) { Pembuatan fungsi bernama “find”
return false; memiliki parameter value int
} else { dengan akses public tipe boolean
return true; Inisialisasi variabel i tipe int
} Melakukan perulangan dengan
} variabel i nilai 0, i kurang dari nilai
public boolean delete(int value) { nElemen, i incremenet, + 1
Melakukan pengkondisian jika nilai
int i; arr indek i sama dengan nilai key
for (i = 0; i < nElemen; i++) { Program berhenti
Penutup if
if (value == arr[i]) { Penutup for
break; Melakukan pengkondisian jika nilai
} i sama dengan nilai nElemen
} Mengembalikan false / nilai salah
Jika tidak / else
if (i == nElemen) { return false; Mengembalikan true / nilai benar
} else {
Penutup if else
for (int j = i; j < nElemen; j++) { arr[j] =
Penutup fungsi find
arr[j + 1];
Pembuatan fungsi bernama
}
“delete” memiliki parameter value
nElemen--; return true;
int dengan akses public tipe boolean
}
Inisialisasi variabel i tipe int
}
Melakukan perulangan dengan
variabel i nilai 0, i kurang dari nilai
public void display() {
nElemen, i incremenet
Melakukan pengkondisian jika nilai
for (int i = 0; i < nElemen; i++) {
value sama dengan nilai arr indek i

6
System.out.print(arr[i] + " "); Program berhenti
} Penutup if
System.out.println(""); Penutup for
} Melakukan pengkondisian jika nilai
} i sama dengan nilai nElemen
Mengembalikan false / nilai salah
Jika tidak / else
Melakukan perulangan dengan
variabel j nilai i, j kurang dari nilai
nElemen, j incremenet
Mengisi nilai array indek j = array
index j + 1
Penutup for
Nilai nElemen decrement
Mengembalikan true / nilai benar
Penutup if else
Penutup fungsi delete
Pembuatan fungsi bernama
“display” dengan akses public void
Melakukan perulangan dengan
variabel i nilai 0, i kurang dari nilai
nElemen, i incremenet
Mencetak nilai array indeks ke i
ditambah string
Penutup for
Mencetak nilai kosong
Penutup fungsi display
Penutup class HighArray
Output program tersebut adalah….

7
6. Tambahkan sebuah method size pada class HighArray yang mampu mengembalikan
nilai jumlah elemen array. Panggil method tersebut pada class HighArrayApp untuk
menampilkan jumlah elemen.
Tulis code dan penjelasannya!
Source code:

...
public void size() {
System.out.println("Ukuran elemen array : " + nElemen);
}
Output:

Penjelasan:
Membuat method atau fungsi baru yang mencetak ukuran elemen array dan nilai
nElemen. Karena sebelumnya setiap elemen yang diisi akan disimpan di nElemen.

8
A.
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

15 30 45 53 77 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)!
Source code:

9
Penjelasan :
Fungsi atau method insert dengan parameter value. Inisialisasi variabel dengan nilai
nElemen bertambah 1 setiap memanggil method. Melakukan pengkondisian jika n
lebih sama dengan nElemen maka mengembalikan nilai n. Kemudian melakukan
perulangan dengan variabel i int dengan nilai n-1, kondisi i lebih sama dengan 0
AND nilai arr indeks i lebih dari nilai value, i berkurang 1 mengisi nilai arr indeks
i+1 dengan array indeks i setiap perulangannya ini bertujuan memindahkan jika nilai
lebih besar dari pada nilai sebelah kiri maka akan ditukar atau bergeser ke kanan
atau sebaliknya. Kemudian mengisi nilai arr indeks i+1 dengan value. Kemudian
menghasilkan atau membalikan nilai n+1.
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.

batasBawa batasAtas
h

batasBawahbatasAtas batasBawahbatasAtas

Range yang baru jika Range yang baru jika


Key < arr[curIn] Key > arr[curIn]

Gambar 1.2 Pembagian range pencarian pada binary Search


Tuliskan listing untuk method find yang mengimplementasikan binary search!

10
Source code:

Penjelasan :
Membuat fungsi find dengan akses public tipe boolean memiliki key.
Menginisialisasi variabel low dengan nilai 0 dan high dengan nilai nElemen-1 agar
lebih mudah. Melakukan perulangan jika high lebih besar sama dengan low untuk
memasuki nilai array. Kemudian menginisialisasi variabel mid dengan low ditambah
high kemudian dibagi menjadi 2. Karena akan memisahkan array dengan 2 bagian.
Melakukan pengkondisian jika nilai arr indeks mid sama dengan key maka
mengembalikan nilai benar. Kondisi jika nilai arr indeks mid kurang dari key maka
akan mengisi nilai low dengan mid+1 untuk beralih ke sebelah kanan dan memulai
dari sebelah kiri dari bagian tengah. Kondisi jika arr indeks mid lebih dari key maka
akan mengisi nilai high dengan mid-1 untuk beralih ke sebelah kiri dan memulai dari
sebelah kanan dari bagian tengah melakukan perulangan sampai nilai high lebih kecil
dari low atau jumlah elemen habis. Dan mengembalikan nilai salah.
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

11
mahasiswa ini direpresentasikan dalam sebuah class object dengan nama
“Mahasiswa”.
Tulis dan pahamilah listing program untuk menyimpan object berikut ini.

12
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.

Output:

13
C. KESIMPULAN
Kesimpulan yang diperoleh dari pembahasan praktikum kali ini adalah:
1. Tentang unordered arrays dan ordered arrays
Unordered arrays adalah array dengan value yang tidak terurut baik dari yang
terkecil ke terbesar ataupun dari yang terbesar ke terkecil. Menyimpan nilai pada
array secara unordered tidak adanya pengurutan pada method insert.
Ordered arrays adalah array dengan value yang berurutan baik dari yang
terkecil ke terbesar ataupun dari yang terbesar ke terkecil. Menyimpan nilai pada
array secara ordered ada tahap pengurutan pada method insert.
2. Tentang linier search dan binary search
Linear search adalah sebuah teknik pencarian data dengan menelusuri semua
data satu persatu. Binary search adalah sebuah teknik pencarian data dengan cara
berulang kali membagi separuh dari jumlah data yang dicari sampai sehingga
memperkecil lokasi pencarian menjadi satu data.
3. Tentang menyimpan object (storing object)
Menyimpan object/sorting object adalah teknik menyimpan data sementara di
record pada objek. Data akan disimpan di field dan beberapa field akan disimpan di
objek entitas.

14

Anda mungkin juga menyukai