Anda di halaman 1dari 31

Array

Tujuan

Pada akhir pelajaran, peserta diharapkan mampu untuk :

 Mendeklarasikan dan membuat array


 Mengakses elemen-elemen di dalam array
 Menentukan jumlah elemen dalam sebuah array
 Duplikasi array
 Mendeklarasikan dan membuat array 2 dimensi (Matrik)
 Mendeklarasikan dan membuat array Multidimensi
 Membuat array dinamis
 Menerapkan array dalam aplikasi komputer
Pengenalan array

kita memiliki tiga variabel dengan tipe data int yang


memiliki identifier yang berbeda untuk tiap variabel.
int number1;
int number2;
int number3;
number1 = 1;
number2 = 2;
number3 = 3;
Code di atas bukanlah contoh yang baik untuk
memperlihatkan proses penginisialisasian dan penggunaan
variabel, terutama jika variabel tersebut digunakan untuk
tujuan yang sama.
Pengenalan array

 baik Java maupun bahasa pemrograman lain, memiliki kemampuan


untuk menggunakan satu variabel yang dapat menyimpan sebuah data
list, kemudian memanipulasinya dengan lebih efektif.

 Tipe variabel inilah yang disebut sebagai array.

 Sebuah array akan menyimpan beberapa item data dengan tipe data
yang sama di dalam sebuah blok memori yang berdekatan yang
kemudian dibagai menjadi beberapa slot.
Pendeklarasian array

Untuk mendeklarasikan array :


 tulis tipe datanya,
 diikuti dengan tanda kurung [],
 serta diikuti oleh nama identifier.

Contoh:

int []ages;

atau

int ages[];
Array instantiation

Setelah proses pendeklarasian, kita harus membuat array dan menentukan


berapa panjangnya dengan sebuah pernyataan konstruktor.

Instantiation
Di Java, ini berarti pembuatan

Konstruktor
 Untuk meng-instantiate sebuah obyek, kita membutuhkan sebuah
konstruktor.
 Sebuah konstruktor merupakan sebuah method yang dipanggil untuk
membuat object

Kita akan membicarakan lagi mengenai instantiate obyek dan pembuatan


konstruktor pada bagian selanjutnya.
Array instantiation

Untuk meng-instantiate (atau membuat) sebuah array,


 Tulislah new keyword,
 Diikuti oleh tanda kurung [] yang berisi angka dari elemen yang Anda inginkan pada
array tersebut.
 Contoh,

//deklarasi
int ages[];
//instantiate object
ages = new int[100];
atau, juga dapat ditulis,

//declare and instantiate object


int ages[] = new int[100];
Array instantiation
Array instantiation

Anda juga dapat meng-instantiate sebuah array dengan cara


menginisialisasinya secara langsung dengan data.

Contoh,

int arr[] = {1, 2, 3, 4, 5};

Pernyataan ini mendeklarasikan dan meng-instantiate sebuah array


dari integer dengan lima elemen (diinisialisasi dengan nilai 1, 2, 3,
4, dan 5).
Contoh program

//membuat sebuah array dari variabel boolean pada sebuah identifier


//hasil. Array ini berisi 4 elemen
//untuk nilai {true, false, true, false}

boolean results[] = { true, false, true, false };

//Membuat sebuah array yang terdiri dari penginisialisasian 4 variabel


//untuk nilai {100, 90, 80, 75};

double []grades = {100, 90, 80, 75};

//Membuat sebuah array String dengan identifier days


//terdiri dari 7 elemen.

String days[] = { “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun”};


Pengaksesan elemen array

Untuk mengakses sebuah elemen dalam array , atau mengakses sebagian


elemen dari array , Anda menggunakan penomoran yang disebut sebagai
index atau subscript.

Index atau Subscript


 Diberikan kepada tiap anggota array, agar program dapat mengakses
anggota dari array.

 Dimulai dari nol dan kemudian akan terus bertambah sampai list
value dari array tersebut berakhir.

 CATATAN: elemen di dalam array anda dimulai dari 0 sampai


(sizeOfArray-1)
Pengaksesan elemen array

Contoh, pada array yang telah kita deklarasikan tadi, kita mempunyai

//memberikan nilai 10 kepada elemen pertama array

ages[0] = 10;
//mencetak elemen array yang terakhir

System.out.print(ages[99]);
Pengaksesan elemen array

CATATAN:
 Jika array telah dideklarasikan dan dikonstruksi , nilai yang disimpan dalam
setiap anggota array akan diinisialisasi sebagai nol.

 Untuk tipe data reference seperti String , nilai dari String tidak akan
diinisialisasi ke string kosong “”, sehingga Anda tetap harus membuat array
String secara eksplisit.
Pengaksesan elemen array

Berikut ini merupakan contoh, untuk mencetak seluruh elemen di dalam


array. Terdapat penggunaan loop pada contoh yang membuat kode lebih
pendek

1 public class ArraySample{


2 public static void main( String[] args ){
3 int[] ages = new int[100];
4 for( int i=0; i<100; i++ ){
5 System.out.print( ages[i] );
6 }
7 }
8 }
Petunjuk penulisan program

1. Akan lebih baik jika anda menginisialisasi atau meng-instantiate


array setelah mendeklarasikannya.
Contoh deklarasi,

int []arr = new int[100];

juga diperbolehkan,

int []arr;
arr = new int[100];
Petunjuk penulisan program

2. Elemen-elemen dalam array dengan n-elemen memiliki index


dari 0 sampai n-1.

Perhatikan bahwa tidak ada elemen array arr[n], karena hal


ini akan menyebabkan array-index-out-of-bounds
exception .

3. Anda tidak dapat mengubah ukuran sebuah array.


Panjang array

Untuk mengetahui jumlah elemen di dalam sebuah array, Anda


dapat menggunakan length (panjang) field pada array.

Panjang field dalam array akan me-return value dari array itu
sendiri.

Atau dapat ditulis,

arrayName.length
Panjang array

public class ArraySample {


public static void main( String[] args ){
int[] ages = new int[100];

for( int i=0; i<ages.length; i++ ){


System.out.print( ages[i] );
}
}
}
Panduan penulisan program

1. Pada saat pembuatan loop untuk memproses elemen-elemen dalam array,


gunakanlah length field di dalam statement pengkondisian dalam loop.
Hal ini akan menyebabkan loop secara otomatis menyesuaikan diri
terhadap ukuran array yang berbeda-beda.

2. constant biasanya digunakan untuk mempermudah pendeklarasian


ukuran array di Java.
Sebagai contoh,
final int ARRAY_SIZE = 1000; //declare a
constant
. . .
int[] ages = new int[ARRAY_SIZE];
Dasar Pengolahan Array Secara Umum
Dalam banyak hal, pengolahan array berarti menggunakan operasi yang
sama kepada setiap elemen di dalam array. Biasanya sering dilakukan
dengan perulangan for. Perulangan untuk mengolah semua elemen
dalam array A dapat ditulis dalam bentuk :

// lakukan inisialiasi yang diperlukan sebelumnya


for (int i = 0; i < A.length; i++)
{
. . . // proses A[i]
}
Dasar Pengolahan Array Secara Umum
mencari nilai terbesar di dalam array A. Strateginya adalah lihat semua isi
array, catat nilai terbesar saat itu. Kita akan simpan nilai terbesar yang kita
temui dalam variabel maks. Pada saat kita melihat elemen array satu per
satu, kapanpun kita melihat nilai elemen tersebut lebih besar dari maks
kita akan mengganti nilai maks dengan nilai yang lebih besar tersebut.
Setelah semua elemen array diproses, maka maks merupakan nilai
elemen terbesar di dalam array tersebut. Pertanyaannya adalah, apa nilai
awal maks? Salah satu kemungkinannya adalah mulai dengan nilai maks
sama dengan A[0], baru kemudian melihat isi elemen array lainnya mulai
dengan A[1]. Misalnya,

int maks = A[0]; // nilai maks berisi elemen array pertama


for (int i = 1; i < A.length; i++) { // i mulai dari elemen kedua
if (A[i] > maks)
maks = A[i];
}
// Di sini maks berisi nilai elemen array yang paling besar
Dasar Pengolahan Array Secara Umum
Untuk membuat array baru yang merupakan kopi dari array A, kita harus
membuat objek array baru, dan mengkopi isinya satu per satu dari array A
ke array baru, sehingga
// Buat objek array baru, yang panjangnya sama dengan panjang A
int[] B = new int[A.length];
  for (int i = 0; i < A.length; i++)
B[i] = A[i]; // Kopi setiap elemen dari A ke B

Mengkopi nilai dari satu array ke array yang lain adalah operasi umum
sehingga Java memiliki subrutin untuk melakukannya, yaitu
System.arraycopy(), yang merupakan subrutin anggota statik dari kelas
standar System. Deklarasinya memiliki bentuk seperti :

public static void arraycopy(Object arraySumber, int indeksAwalSumber,


Object arrayTujuan, int indeksAwalTujuan, int jumlah)
Dasar Pengolahan Array Secara Umum
Since it is an object, an array can be duplicated by invoking the
Object.clone() method,

int[] a = {22, 44, 66, 88};


print(a);
int[] b = (int[])a.clone(); // duplicate a[] in b[]
print(b);
Array Dinamis

 Objek mirip array yang bisa berubah ukuran untuk


mengakomodasi jumlah data yang bisa ia tampung disebut
array dinamis. Array dinamis memiliki jenis operasi yang
sama dengan array : mengisi nilai pada posisi tertentu dan
mengambil nilai di posisi tertentu. Akan tetapi tidak ada
batas maksimum dari jumlah array (hanya tergantung pada
jumlah memori komputer yang tersedia).
Array multidimensi

 Array multidimensi diimplementasikan sebagai array di


dalam array .

 Array multidimensi dideklarasikan dengan menambahkan


jumlah tanda kurung setelah nama array.
Array multidimensi

Contoh :

// Elemen 512 x 128 dari integer array


int[][] twoD = new int[512][128];

// karakter array 8 x 16 x 24
char[][][] threeD = new char[8][16][24];

// String array 4 baris x 2 kolom


String[][] dogs = {{ "terry", "brown" },
{ "Kristin", "white" },
{ "toby", "gray"},
{ "fido", "black"}
};
Array multidimensi

 Untuk mengakses sebuah elemen didalam array multidimensi,


sama saja dengan mengakses array satu dimensi .

 Contoh, untuk mengakses elemen pertama dari baris pertama di


dalam array dogs, kita akan menulis,

System.out.print( dogs[0][0] );

Kode diatas akan menampilkan String “terry” pada layar.


Using the java.util.Arrays
Class
 This program imports the Arrays class from the java.util
package to access the sort(),binarySearch(), fill(), and
equals() methods. It also imports the static print() method
from
THE SEQUENTIAL SEARCH
ALGORITHM
 Pencarian menggunakan metoda Conventional/Array
Searching.
 Pencarian dilakukan dari ujung kiri larik dimana hal ini
ditunjukkan oleh inisialisasi objek index dengan nilai 0
 Pencarian ini berjalan lambat ketika data yang dicari berada
di bagian akhir.
THE BINARY SEARCH
ALGORITHM
 Binary Search merupakan standart algoritma untuk
pencarian data yang telah terurut.
 Pada metoda ini pertama kali kita harus menentuka posisi
peubah mid(Posisi tengah). Jika nilai yang kita cari lebih
besar dari nilai yang ditunjuk oleh peubah mid maka
pencarian akan dilakukan ke sebelah kanan dengan cara
mengubah nilai peubah Low mejadi nilai yang ditunjuk
pada peubah mid, dan sebaliknya.
 Teknik pencarian ini jauh lebih cepat dari
ArraySearch/sequentialSearch.
Ada Pertanyaan??????

Anda mungkin juga menyukai