Modul 6 - Java Array
Modul 6 - Java Array
Mata Kuliah Praktikum Pemrograman Berorientasi Objek Modul 6 - Struktur kontrol bahasa pemograman Java (2) Oleh: Sukma Wardhana, S.Kom., M.Kom.
Modul ini membahas mengenai java array di dalam bahasa pemograman Java. Adapun tujuan yang diharapkan dari modul ini adalah kita dapat : 1. Mendeklarasikan dan membuat array. 2. Mengakses elemen-elemen di dalam array. 3. Menentukan jumlah elemen di dalam sebuah array. 4. Mendeklarasikan dan membuat array multidimensi.
I.
Pengenalan array
Array adalah sebuah kumpulan variabel-variabel (dinamakan elements atau components) yang berisi nilai dengan tipe data yang sama. Array adalah sebuah objek, maka dianggap sebagai tipe data referensi (reference types). Elemen dari sebuah array dapat berupa tipe data primitif (primitive types) atau tipe data referensi (reference type). Untuk merujuk ke sebuah elemen tertentu di dalam sebuah array, kita spesifikasikan nama referensinya ke array dan posisi angka dari elemen di dalam array tersebut. Posisi angka dari elemen tersebut dinamakan elemen indeks atau subscript.
Gambar 6.1 Sebuah array dengan 12 elemen. (diambil dari Deitel, 2010. Java How To Program 8th edition)
Untuk lebih jelas dapat melihat gambar 6.1 yang menunjukan sebuah representasi logika dari integer array yang dinamakan c. Array ini berisi 12 elemen. Semua program yang ingin merujuk ke salah satu dari 12 elemen tersebut menggunakan sebuah arrayaccess expression. Array-access expression ini terdiri dari nama array yang diikuti dengan nomor indeks tertentu dari elemen tersebut ke dalam sebuah braket persegi ( [ ] ). Elemen pertama dari setiap array dimulai dengan nomor indeks nol ( index zero ) dan kadang kala disebut juga dengan zeroth element. Elemen elemen dari array c adalah c[0], c[1], c[2] dan seterusnya. Indeks tertinggi dari array c adalah 11, dimana selisih 1 angka dengan 12 yang merupakan banyaknya elemen di dalam array c. Penamaan array mengikuti konvensi seperti pada penamaan variabel. Sebuah nomor indeks harus berupa nonnegative integer. Sebuah program dapat menggunakan sebuah ekspressi sebagai indeks. Sebagai contoh, jika kita mengasumsikan variabel a adalah 5 dan variabel b adalah 6, maka statement c [ a + b ] += 2; dapat diartikan tambah 2 ke elemen array c[11]. Nama array yang diindeks adalah sebuah array-access expression, dimana dapat digunakan di sisi sebelah kiri dari sebuah penugasan untuk menempatkan sebuah nilai baru ke dalam sebuah elemen array. Mari kita lihat lebih lanjut array c pada gambar 6.1. Nama dari array tersebut adalah c. Setiap objek array tahu panjangnya sendiri dan menyimpannya ke dalam sebuah variabel length instance (length instance variabel). Ekspressi c.length mengakses
panjang array c untuk menentukan panjang array. Meskipun variabel insant length untuk array bersifat public, tetapi variabel ini tidak dapat dirubah karena sudah bersifat variabel final / akhir. Kedua belas elemen array ini direferensikan sebagai c [0], c [1], c [2], sampai dengan c [11]. Nilai dari c[0] adalah -45, nilai dari c[1] adalah 6, nilai dari c[2] adalah 0, nilai dari c[7] adalah 62 dan nilai dari c[11] adalah 78. Untuk melakukan kalkulasi penjumlahan untuk 3 elemen pertama array c dan menempatkannya ke dalam variabel sum, maka ditulis : Sum = c[0]+c[1]+ c[2]; Untuk membagi nilai c [6] dengan 2 dan menempatkan hasilnya ke variabel x, kita akan menulis X = c[6] / 2 ;
II.
Pendeklarasian array
Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat
mendeklarasikan array, anda harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti oleh nama identifier-nya. Sebagai contoh, int []ages; atau Anda dapat menempatkan sepasang tandakurung [] sesudah nama identifier. Sebagai contoh, int ages[]; Setelah pendeklarasian array, kita harus membuat array dan menentukan berapa panjangnya dengan sebuah konstruktor. Proses ini di bahasa pemograman Java disebut sebagai instantiation ( istilah dalam Java yang berarti membuat ). Untuk menginstantiate sebuah obyek, kita membutuhkan sebuah konstruktor. Kita akan membicarakan lagi mengenai instantiate obyek dan pembuatan konstruktor pada bagian selanjutnya. Sebagai catatan bahwa ukuran dari array tidak dapat diubah setelah anda menginisialisasinya. Sebagai contoh, //deklarasi int ages[];
// instantiate obyek ages = new int[100]; atau bisa juga ditulis dengan, //deklarasi dan instantiate obyek int ages[] = new int[100]; Pada contoh diatas, pendeklarasian tersebut akan memberitahukan kepada compiler Java, bahwa identifier ages akan digunakan sebagai nama array yang berisi data bertipe integer, dan dilanjutkan dengan membuat atau meng-instantiate sebuah array baru yang terdiri dari 100 elemen. Selain menggunakan sebuah pernyataan new untuk meng-instantiate array, Anda juga dapat mendeklarasikan, membangun, kemudian memberikan sebuah nilai pada array sekaligus dalam sebuah pernyataan. Sebagai contoh, //membuat sebuah array yang berisi variabel-variabel //boolean pada sebuah identifier. Array ini terdiri dari 4 //elemen yang diinisilisasikan sebagai value //{true,false,true,false} boolean results[] ={ true, false, true, false }; //Membuat sebuah array yang terdiri dari penginisialisasian //4variabel double bagi value {100,90,80,75} double []grades = {100, 90, 80, 75}; //Membuat sebuah array String dengan identifier days. Array //ini terdiri dari 7 elemen. String days[] = { Mon, Tue, Wed, Thu, Fri, Sat,Sun};
III.
Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, Anda harus menggunakan sebuah angka atau yang disebut sebagai indeks atau subscript. Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau subscript telah diberikan kepada tiap anggota array, sehingga program dan programmer dapat mengakses setiap nilai pada array apabila dibutuhkan. Nilai indeks selalu dalam tipe integer, dimulai dari angka nol dan dilanjutkan ke angka berikutnya sampai akhir array. Sebagai catatan bahwa indeks di dalam array dimulai dari 0 sampai dengan (ukuranArray-1). Sebagai contoh, pada array yang 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]); Perlu diperhatikan bahwa sekali array dideklarasikan dan dikonstruksi, nilai yang disimpan dalam setiap anggota array akan diinisialisasi sebagai nol. Oleh karena itu, apabila Anda menggunakan tipe data seperti String, array tidak akan diinisalisasi menjadi string kosong . Untuk itu Anda tetap harus membuat String array secara eksplisit. Berikut ini adalah contoh kode untuk mencetak seluruh elemen didalam array. Dalam contoh ini digunakanlah pernyataan for loop, sehingga kode kita menjadi lebih pendek. Contoh 1: public class ArraySample { public static void main( String[] args ) { int[] ages = new int[100]; for( int i=0; i<100; i++ ) { System.out.print( ages[i] );
} } } Contoh 2: public class InitArray { public static void main( String[] args ) { int[] array; // declare array named array array = new int [ 10 ]; // create the array object System.out.printf( "%s%8s\n", "Index", "Value" ); // column headings // output each array element's value for ( int counter = 0; counter < array.length; counter++ ) System.out.printf( "%5d%8d\n", counter, array[ counter ] ); } // end main } // end class InitArray
IV.
Panjang array
Untuk mengetahui berapa banyak elemen di dalam sebuah array, maka digunakanlah atribut length dari array. Atribut ini akan mengembalikan ukuran dari array itu sendiri. Sebagai contoh, arrayName.length Pada contoh sebelumnya, kita dapat menuliskannya kembali seperti berikut ini, 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] ); } } }
V.
Array Multidimensi
Array multidimensi diimplementasikan sebagai array yang terletak di dalam array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai 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"}}; Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan mengakses array satu dimensi. Misalnya saja, untuk mengakses elemen pertama dari baris pertama didalam array dogs, kita akan menulis, System.out.print( dogs[0][0] ); Kode diatas akan mencetak String terry di layar. Contoh 2 : public class InitArray2 { // create and output two-dimensional arrays public static void main( String[] args ) {
int[][] array1 = {{1,2,3},{4,5,6}}; int[][] array2 = {{1,2},{3},{4,5,6}}; System.out.println( "Values in array1 by row are" ); outputArray( array1 ); // displays array1 by row System.out.println( "\nValues in array2 by row are" ); outputArray( array2 ); // displays array2 by row } // end main // output row and columns of a two-dimensional array public static void outputArray( int[][] array ) { // loop through array's rows for (int row = 0; row < array.length; row++) { // loop through columns of current row for (int column = 0; column < array[row].length; column++) System.out.printf( "%d ", array[ row ] [ column ] ); System.out.println(); //start new line output } //end outer for } // end method outputArray } // end class InitArray2
Daftar Pustaka: 1. Deitel and Deitel. 2010. Java How to Program, 8/e. Pearson Education, New Jersey. 2. J.E.N.I., Bab 7 Java array