handout 3

advertisement
ARRAY
Misalnya kamu pelatih sebuah tim sepakbola anakanak, dan kamu ingin mengawasi pemain mana
yang hadir latihan di lapangan. Apa yang kamu
perlukan adalah program pengawas kehadiran
latihan di laptop mu – program untuk mengurus
database pemain yang terlihat mengikuti latihan.
Kamu bisa menggunakan sebuah struktur data
sederhana untuk menyimpan data ini. Ada beberapa
tindakan yang bisa kamu lakukan:
 Menambahkan
seorang pemain ke dalam struktur
data jika pemain datang di lapangan.
 Mengecek
apakah pemain tertentu hadir di
lapangan, dengan pencarian berdasarkan nomor
pemain yang ada di struktur data.
 Menghapus pemain dari struktur data jika pemain
tersebut pulang.
Tiga operasi inilah – penambahan, pencarian,
dan penghapusan – akan menjadi dasar
(fundamental)
di
kebanyakan
struktur
penyimpanan data yang akan kita pelajari.
Membuat Array
Ada dua jenis data di Java: tipe primitif (misal: int dan double)
dan object. Di banyak bahasa pemrograman (meskipun yang
berorientasi objek misal: C++), array adalah tipe primitif,
tetapi di Java array diperlakukan sebagai objek. Sehingga,
Anda harus menggunakan operator baru untuk membuat
sebuah array:
int[] intArray;
// mendeklarasikan array
intArray = new int[100]; // menentukan kapasitas array
Atau Anda dapat juga menggunakan pendekatan
pernyataan tunggal yang memiliki fungsi sama:
int[] intArray = new int[100];
Operator [] adalah petunjuk bagi compiler bahwa kita
me-namai sebuah objek array dan bukan variabel
biasa. Anda bisa juga menggunakan sintaks alternatif
untuk operator ini, meletakkannya setelah nama
array:
int intArray[] = new int[100]; // sintaks
alternatif
Tetapi, meletakkan [] setelah int membuatnya jelas
bahwa [] adalah bagian dari tipenya, bukan nama
array nya.
Karena array adalah objek, namanya – intArray dalam
kode sebelumnya – adalah penunjuk ke sebuah array;
bukannya array itu sendiri. Array-nya tersimpan di
alamat lain tempat di memori, dan intArray hanya
membawa alamatnya ini saja.
Array mempunyai panjang (yang menyatakan
kapasitas dari array), yang dapat Anda gunakan
untuk mengetahui ukuran (banyaknya elemen) dari
array:
int arrayLength = intArray.length;
Seperti di kebanyakan bahasa pemrograman, Anda
tidak bisa merubah ukuran array setelah array
tersebut dibuat.
Mengakses Elemen-elemen Array
Elemen-elemen array diakses menggunakan nomor
indeks yang ada dalam kurung siku. Mirip dengan
bahasa pemrograman lain:
temp = intArray[3]; // mendapatkan isi pada
elemen keempat
dari array
intArray[7] = 66; // memasukkan 66 dalam
sel kedelapan
Ingatlah bahwa di Java, seperti C dan C++, elemen
pertamanya adalah nomor 0, sehingga nomor indeks
di array dengan 10 elemen dimulai dari 0 sampai 9.
Jika Anda menggunakan indeks kurang dari 0 atau
lebih dari ukuran array kurang 1, Anda akan
mendapatkan error runtime Array Index Out of Bound.
Inisialisasi
Selama Anda tidak menentukan isi array, array
integer secara default diisi dengan 0. Misalnya Anda
membuat array sebagai berikut:
autoData[] carArray = new autoData[4000];
Sampai elemen array diberi nilai (nyata), mereka
masih berisi nol.
Anda
dapat
memberi
nilai
array
dengan
menggunakan sintaks:
int[] intArray = { 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 };
Pernyataan tunggal ini menggantikan pernyataan
pendeklarasian dan pembuatan array baru. Angka
dengan kurung kurawal disebut dengan daftar
inisialisasi. Ukuran array ditentukan dengan jumlah
nilai yang yang ada di daftar.
Sebuah Contoh Array
Perhatikan
pada
beberapa
program
yang
menunjukkan bagaimana array dapat digunakan. Kita
akan mulai dengan versi lama-prosedural dan
kemudian pendekatan berorientasi objek.
class ArrayApp
{
public static void main(String[] args)
{
long[] arr;
arr = new long[100];
int nElems = 0;
int j;
// penghitung perulangan
long searchKey; // kunci elemen yang
dicari
// menyisipkan 10 elemen
arr[0] = 77;
arr[1] = 99;
arr[2] = 44;
arr[3] = 55;
arr[4] = 22;
arr[5] = 88;
arr[6] = 11;
arr[7] = 00;
arr[8] = 66;
arr[9] = 33;
nElems = 10; // sekarang 10 item berada di
array
// menampilkan elemen
for(j=0; j<nElems; j++)
System.out.print(arr[j] + “ “);
System.out.println(“”);
// mencari elemen dengan kunci 66
searchKey = 66;
for(j=0; j<nElems; j++) // untuk setiap
elemen,
if(arr[j] == searchKey) // menemukan item?
break;
// ya, keluar
Program sebelum
program berakhir
if(j == nElems)
// pada elemen
terakhir?
System.out.println(“tidak dapat menemukan
“ + searchKey); // ya
else
System.out.println(“ditemukan “ +
searchKey); // tidak
// hapus elemen dg kunci 55
searchKey = 55;
for(j=0; j<nElems; j++)
// mencarinya
if(arr[j] == searchKey)
break;
for(int k=j; k<nElems-1; k++) // pindahkan
indeks yang
lebih tinggi
ke bawah
arr[k] = arr[k+1];
nElems--;
// menurunkan ukuran
// menampilkan elemen
for(j=0; j<nElems; j++)
System.out.print( arr[j] + “ “);
System.out.println(“”);
} // akhir dari main()
} // akhir dari class ArrayApp
EoF
Download