Selasa, 13 Desember 2011

ARRAY

Array adalah object di java yang dapat menyimpan kumpulan data dengan tipe yang sama dapat menyimpan tipe data primitif, wrapper class, reference. Apapun tipe data array selalu object oleh sebab itu selalu berada di heap memory.

Untuk bekerja dengan array perlu 3 langkah :
Deklarasikan variable array
Inisiasi object array
Isi array dengan data

Deklarasi array yang dianjurkan
int[] data;
int[] data, key, values;

Deklarasi array yang tidak dianjurkan
int data[];
int data[], key[], values;

yang tidak diberi [] bukan termasuk tipe data array sehingga tidak dianjurkan.

jumlah [] menentukan dimensi array.
String[][] arrayDuaDimensi;
String[][][] arrayTigaDimensi;

Menginisialisasi Array
Dengan cara keyword new dan menentukan panjang array

int[] data;
data = new data[10];

inisialisasi array dengan panjang 10 dan isi dengan defaul 0, karena tipe data primitif nilai defaultnya adalah 0 bukan null

menginisialisasi tanpa menentukan panjang array akan error
String[] data = new String[]; // error setelah di compile

inisialisasi array dua dimensi yang wajib disi panjanganya hanya dimensi pertama
String[] arrayDuaDimensi = new String[10][];
String[] arrayDuaDimensi2 = new String[10][10];

Memasukkan data Array

public class ArrayError{
         public class static void main(String[] args){
                  int[] data = new int[4];
                  data[1] = 9;
                  data[2] = 8;
                  data[3] = 7;
                  data[4] = 6;
         }
}

java.lang.ArrayIndexOutOfBoundsException: 4
akan terjadi error saat dicompile karena panjang array 4 yang artinya index terbesar adalah 3 dimulai dari 0, karena berusaha mengakses index 4 sedangkan index terbesar adalah 3

int[][] data = new int[3][3];
data[0][0] = 1;
data[0][1] = 2;
data[0][2] = 3;
data[1][0] = 1;
data[1][1] = 2;
data[1][2] = 3;

cara kedua dengan memasukkan array pada dimensi pertama,
int[][] data = new int[3][];
data[0] = new int[5] // inisialisasi array dimasukkan pada dimensi pertama
data[0][0] = 10;
data[0][2] = 10;
data[0][3] = 10;
data[1] = new int[2] // inisisalisasi array dimasukkan pada dimensi pertama
data[1][0] = 100;
data[1][1] = 200;

Deklarasi array + inisialisasi + mengisi data dalam 1 baris
int[] data = {1,2,3,4,5};
int[][] duaDimensi = {1,2,3},{2,3,},{3};
String[][] arrayDuaDimensi = {"satu","dua","tiga"},{"empat","lima"};

Kelemahan tidak ada eksplisit untuk operan disebelah kanan, ada feature "anonymous array" dengan menyertakan tipe data array ketika diinisiasi
int[] data = new int[]{1,2,3,4,5};
int[][] duaDimensi = new int[][]{1,2,3},{2,3,},{3}
String[][] arrayDuaDimensi = new String[][]{"satu","dua","tiga"},{"empat","lima"};

walaupun ada keyword new tidak perlu mengisi panjang array, panjang array ditentukan dari nilai yang diletakkan  dalam kurung kurawal

tipe data array saat digunakan menjadi parameter
pulic class AnonymousArray{
         public static void printArray(String[] data){
                   System.out.println(data);
         }
         public static void main(String[] args){
                    printArray(new String[]{"satu","dua","tiga"});
         }
}

karena array berupa object maka maka mempunyai method dan property, salah satunya length.
int[] data = new int[Integer.MAX_VALUE];
System.out.println("panjang array : " + data.length);

ada class java.util.Arryas yang berisi untuk mengsort, pencarian binary, atau ngeprint agar tampilan bagus.

1 komentar: