Anda di halaman 1dari 26

STRUKTUR DATA

Pertemuan VI
Ichal, M.Kom, CEH
SELASA, 12 - 13 APRIL 2022
STRUKTUR DATA
ARRAY
Array merupakan komponen fundamental dari semua bahasa pemrograman tingkat tinggi.

ELEMEN ARRAY

Ketika menuliskan sebuah program yang mengelola informasi dalam jumlah besar, seperti daftar yang berisi 100
nama adlah tidak praktis untuk mendeklarasikan variabel variabel terpisah untuk setiap potongan data. Array
menyelesaikan permasalahan iini dengan mendeklarasikan satu variabel yang dapat menampung banyak nilai
yang masing masing dapat diakses secara individual .

tinggi
0 69
1 61
2 70

3 74
indeks 4 62

5 69 Nilai dari tinggi [5]

6 66

7 73

8 79

9 62

10 70
dalam java indeks array diawali dari nol, oleh karena itu nilai yang disimpan pada indek 5 sebenarnya adaah nilai
keenam didalam array. Pada gambar diatas memiliki 11 nilai diindeks dari 0 sampai 10..

untuk mengakses sebuah nilai didalam array , kita menggunakan nama array yang diikuti degan indeks yang
ditempatkan didalam kurung siku. Sebagai contoh ekspresi dibawah.

tinggi[8]

maka ekprese tersebut memuat nilai 79.

Ekpresi tinggi[8] merujuk ke seuah integer yang disimpan pada lokasi memori tertentu, ia dapat menggunakan
dimana saja sebuah variabel integer dapat digunakan. Oleh karena itu kita dapat menugaskan sebuah nilai
kepada ekspresi itu, menggunakannya dalam perhitungan , menampilkan nilainya dan seterusnya. Selain itu
karena indeks array adalaha integer kita dapat menggunakan ekspresi integer untuk menetapkan indeks yang
dipakai untuk mengakses sebuah array, berikut konsep konsep nya didemonstrasikan.

tinggi[8]

tinggi[hitung] = kaki*12;

rerata = (tinggi[0] + tinggi[1] + tinggi[2]) / 3 ;

System.out.println (“Nilai tengah adalah + tinggi [MAKS/2]);

ambil = tinggi[rand.nextInt(11)];

array disimpen secara bertetangga diidalam memori yang berarti bahwa elemen elemen array disimpang saling
bertentangga didalam meori. Ini membuat sebuah array sangat effisien dalam hal pengkasesan elemen tertentu
menggunakan indeksnya. Secara internal untuk menentukan alamat dari elemen tertentu, indeksnya dikalikan
dengan ukuran dari tiap elemen dan ditambahkan pada alamat memori pada titik awal array , inilah mengapa
indeks array itu diawali dengan nol, bukan satu, untuk membuat komputasi tersebut semudah mugkin.

Jadi dari sudut pandang efisiensi, pengaksesan elemen ke 500 didalam array sama mudahnya dengan
pengaksesan elemen pertama .

MENDEKLARASIKAN DAN MENGGUNAKAN ARRAY.

Dalam java array adalah objek. Untuk menciptakan sebuah objek, referensi terhadap array harus dideklarasikan.
Array dapat kemudian di – instance menggunakan operator new, yang mengalokasikan ruang memori untuk
menyimpan nilai dari tiap elemen array.

int[] tinggi = new int [11];

variabel tinggi dideklarasikan sebagai sebuah array integer dengan tipe dituliskan sebagai int[].

Semua nilai yang disimpan didalam sebuah array harus emiliki tipe yang sama ( atau setidaknya kompetibel ). Kita
tidak bisa mendeklrasikan sebuah array yang dapat menampung integer dan string. Sebuah array diciptakan
untuk menampung setiap array primitive atau setiap tipe objek (kelas). Sebuah nilai yang disimpan didalam array
dikenal dengan elemen array, dan tipe tipe dari nilai nilai yang dimuat sebuah array dikenal dengan tipe elemen
array.

Perhatikan bahwa tipe dari variabel array ( int []) tidak mencakup ukuran array. Instance dari tinggi,
menggunakan operator new, mengalokasikan ruang emori untuk menyimpan 11 integer yang diindeks dari 0
sampai 10. Begitu sebuah array dideklarasian denann ukuran tertentu, banyak nilai yang dapat ditampungnya
tidak bisa lagi diubah.

Contoh dibaawah menciptakan sebuah array dengan nama list yang dapay menampung 15 integer, yang dimuat
dengan inkremen beruntun sebesar 10, program kemudian mengubah nilai dari elemen keenam didalam
array(pada indeks 5 ), terakhir program menampilkan semua nilai yang disimpan didalam array.
Gambar dibawah menunjukkan ketika ia berubah selama eksekusi atas program ArrayDasar. Kita bisa
menggunakan loop for ketika menangani array, karena jumlah posisi didalam array konstan. Perhatikan bahwa
sebuah konstanta dengan nama BATAS digunakan dibeberapa tempat didalam program ArrayDasar.konstanta ini
digunakan untuk mendeklarasikan ukuran array dan untuk mengendalikan loop for yang meng inisialisasi nilai
nilai array.
Array diciptkan dengan Setelah 3 iterasi pada Setelah loop dieksekusi Setelah mengubah nilai
15 elemen diindeks dari loop dari list [5]
0 sampai 14

0 0 0 0 0 0 0
1 1 10 1 10 1 10
2 2 20 2 20 2 20
3 3 3 30 3 30
4 4 4 40 4 40
5 5 5 50 5 999

6 6 6 60 6 60
7 7 7 70 7 70
8 8 8 80 8 80
9 9 9 90 9 90
10 10 10 100 10 100

11 11 11 110 11 110

12 12 12 120 12 120

13 13 13 130 13 130

14 14 14 140 14 140
Versi integrator dari loop for dipakai untuk menampilkan semua nilai didaam array , ingat, bahwa versi dari loop
for ini mengekstrak setiap nilai didalam iterator tertentu. Setiap array dalam java adalah iterator, jadi jenis loop
ini digunakan ketika kita ingin memproses setiap elemen yang disimpan didalam suatu array.

Kurung siku yang dipakai untuk engindikasikan indeks array diperlakukan sebaga sebuah operator didlam java.
Oleh karena itu, sam seperti operator + atau operator <=, operator indeks ( [] ) memiliki keutamaan related
terhdap operator operator java lainnya yang menentukan kapan ia dieksekusi. Operator [] memili keutamaan
tertinggi dar semua operator operator dalam java.

Pemerikasaan batas .

Operator indeks melakukan pemerikasaan batas otomatis, yang memastikan bahwa indeks berada didalam
rentang untuk array yang sedang direferensi. Kapanpun sebuah referensi terhadap elemen array dilakukan ,
indeks harus lebih besar atau sama dengan nol dan kurang dari ukuran array.

Contoh :

Dimisalkan terdapat sebuah array denga nama harga yang diciptakan dengan 25 elemen. Indeks indeks yang valid
untuk array itu adalah 0 sampai 24.

Kapanpun sebuah referensi dilakukan terhadap elemen tertentu didalam array ( seperti , harga[hitung] ) , nilai
dari indeks tersebut akan diperiksa. Jika indeks itu berada didalam rentang valid dari indeks indeks untuk array
tersebut ( 0 sampai 24 ) maka referensi itu akan dieksekusi . jika indeks tidak valid , sebuah eksepsi dengan nama
ArrayIndexBoundsException akan dilemparkan.
Tentunya para program kita , kita ingin melakukan pemeriksaan batas sendiri, jadi kita infn lebh hati hati untuk
ttap beraa didalam batas valid array dan memproses setap elemen yang diinginkan. Karena indeks array diawali
dari nol sampai ukuran array yang dikurangi dengan 1, kita dapat mengantisipasinya didalam program agar indeks
array tetap berada didalam rentang itu.

Salah satu caranya untuk ememriksa batas array adalah denga menggunakan konstanta length, yang dimuat
didalam objek array dan menyimpan ukuran array. Konstanta ini adalah konstanta public dan oleh karena itu
dapat direferensi secara langsung.

Sebagai contoh.

Setelah array harga dicipatakan dengan 25 elemen, konstanta harga.length memuat nilai 25. Nilainya ditetapkan
setelah array diciptakan dan tidak dapat diubah.

Konstanta length, yang merupakan bagan integral dari setiap array, dapat digunakan ketika ukuran array
diperlukan tanpa p erlu menciptakan konstanta lain. Ingat bahwa ukuran array adalah banyak elemen yang dapat
ia tampung, jadi indeks maksimum dari sebuah array adalah length-1.
Paa program diatas membaca 10 integer dan menempatkannya kedalam sebuah array dengan nama angka dan
kemudian menampilkannya dengan urutan terbalik.

Perhatikan, bahwa pada program diatas, array dideklrasikan untuk memiliki 10 elemen dan oleh karena itu
diindeks dari 0 sampai 9 . rentang indeks dikendalikan didalam loop for dengan menggunakan bidang length dari
objek array. Disini kita sebaikya ber hati hati dalam menetapkan nilai awal dari variabel kendali loop dan kondisi
kondisi yang menghentikan loop untuk menjamin bahwa semua elemen yang diinginkan diproses dan hanya
indeks indeks valid digunakan untuk mereferensi elemen array.
Contoh program diatas menggunakan dua objek array dan sebuah objek string. Array diberi nama besar dipakai
untuk menyimpan berapa kali setiap huruf besar ditemukan didalam string. Array yag diberi nama keci berperan
sama untuk setiap huruf kecil.

Karena terdapat 26 huruf alphabet, kedua array besar dan kecil dideklarasikan dengan 26 elemen. Setiap elemen
memuat sebuah integer yang awalnya ditetapkan nol.

Loop for membaca string satu karakter tiap satu waktu.

Kounter pada array dinkremen untuk tiap karakter yang ditemukan didalam string.

Kedua array kouter diindeks dari 0 sampai 25. Kita perlu memetakan setiap karakter menjadi sebuah counter.
Cara yang logis untuk melakukannya adalah dengan menggunakan besar[0] untuk menghitung banyak karakter
‘A’ yag ditemukan, besar[1] untuk menghitung banyak karakter ‘B’ yang ditemukan dan seterusnya.

Sama halnya kecil[0] digunakan untuk menghitung banyak karakter ‘a’ yag ditemukan, kecil[1] digunakan ntuk
menghitung banyak karakter ‘b’ yang ditemukan dan seterusnya.

Variabel terpisah dengan nama lain dipakai untuk menghitung banya karakter non-alfabet ( bukan huruf ) yang
dijumpai.

Perhtikn bahwa untuk menentukan apakah sebuah karakter huruf besaratau tidak, kita menggunakan ekspresi
Boolean (sekarang >= 'A' && sekarang <= 'Z'). ekspresi yang hampir sama dipakai untuk menentukan huruf kecil
, kita bisa saja menggunakan metode metode statik isUpperCase dan isLowerCase dari kelas Character untuk
melakukan penentuan itu tetap jal itu tidak dilakukan.
Kita menggunakan karakter sekarang untuk mengitung indeks mana didalam array yang akan diakses. Kita perlu
hati hati ketika menghitung sebuah indeks untuk memastikan bahwa ia tetap berada didalam batas array. Perlu
diingat bahwa didalam himpunan karakter UNICODE huruf huruf besar dan huruf huruf kecil bertetangga dan
terurut.

Oleh Karen itu dengan mengambil nilai numeric dari suatu huruf besar seperti ‘E’ ( bernlai 69 )dan mengurankkan
nilai numeric dari karakter ‘A’ ( bernilai 65 ) akan dihasilkan 4, yang merupakan indeks yang tepat untuk kointer
bagi karakter ‘E’. perhatikan bahwa tidak ada didalam program yang menunjukkan bahwa kita perlu mengetahui
nilai numeric untuk setiap huruf.

Sintaksis Array Alterntif

Secara sintaksis ada dua cara untuk mendeklarasikan sebuah referensi array dalam java . tenik pertama yang
sudah kita cba pada program – program diatas, dengan menempatkan kurung siku setelah tipe data array. Teknik
kedua adalah dengan menempatkan kurung siku setelah nama array, oleh arena itu ada dua deklarasi berikut
adalah ekuivalen.

int [] nilai;

int nilai [];

meskipun tidak ada perbedaan atara kedua teknik deklrasi ini, namun teknik pertama merupaka yang konsisten
dengan tipe deklrasi lain. Tipe yang dideklarasikan eksplisit jika kurung siku dtempatkan disamping tipe elemen,
khususnya jika terdapat beberapa variabel yang dideklarasikan pada baris yang sama. Jadi pada materi ini kita
menempatkan kurung siku disamping kanan dari tiap elemen.

Anda mungkin juga menyukai