Anda di halaman 1dari 21

TUGAS STRUKTUR DATA

( MODUL 1 ARRAY )

Disusun Oleh :

Nama : Yuniarto Eko Pramono

NIM : 20214121027

Prodi : Teknik Informatik / 3

Dosen Pengampu : Gina Dewi sonia M.TI

UNIVlERSITAS ISLAM AL-IHYA KUNINGAN


Jl. Mayasih No. 11 Cigugur Kuningan Jawa Barat Telp. (0232) 873186
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.

Brebes, 15 Oktober 2021

Penyusun

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

ii
A PENDAHULUAN

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

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

Source code:

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


Salah
mulai index ke-0.
Insert item pada array hanya bisa dilakukan hingga ukuran array
Benar
– 1.
Cell array untuk semua tipe data primitive yang belum diberi
Benar
value secara default bernilai 0.
Cell array untuk tipe data String yang belum diberi value secara
Benar
default bernilai null.
Keterangan yang muncul jika memasukkan item melebihi
ukuran array 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:

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

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.
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:
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.
batasBawah batasAtas

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!

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 mahasiswa ini
direpresentasikan dalam sebuah class object dengan nama “Mahasiswa”.
Tulis dan pahamilah listing program untuk menyimpan object berikut
ini.
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.

16
Output:

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

18

Anda mungkin juga menyukai