• Tidak ada hasil yang ditemukan

Pertemuan 5 Array rubah dalam bentuk bah

N/A
N/A
Protected

Academic year: 2018

Membagikan "Pertemuan 5 Array rubah dalam bentuk bah"

Copied!
7
0
0

Teks penuh

(1)

Pertemuan 5 - Pemrograman Berbasis Obyek

Array

Array adalah

- suatu kumpulan data - bertipe sama

- menggunakan nama variabel yang sama

- tiap elemen dibedakan melalui indeksnya, by default indeksnya dimulai dari 0 s/d (n-1) dengan n adalah jumlah elemen array

Pada deklarasi variabel biasa, kita hanya dapat memberikan 1 data pada 1 variabel. Tapi dengan konsep array, kita dapat memberikan lebih dari 1 data pada 1 variabel.

Deklarasi array

Cara mendeklarasikan suatu array (satu dimensi) adalah sebagai berikut : tipe_array nama_array[];

tipe_array[] nama_array; Contoh :

int nilai[]; char[] huruf;

Dalam mendeklarasikan array, blank space tidak berpengaruh terhadap peletakan tanda []. Sebagai contohnya, deklarasi array di bawah ini juga dibenarkan :

tipe_array nama_array []; tipe_array [] nama_array; tipe_array []nama_array;

Membuat array

Pada saat pendeklarasian suatu array, sebagai contoh int nilai[];

yang terjadi adalah kita hanya memberitahu kepada kompiler Java bahwa kita mendeklarasikan/mengenalkan sebuah variabel bernama nilai yang berbentuk array dan bertipe int. Disana kita belum memesan tempat di memori untuk menampung elemen-elemen array. Agar kita dapat memesan tempat di memori untuk menampung elemen-elemen array, kita perlu membuat array. Adapun caranya adalah dengan memakai new karena di dalam Java suatu array adalah dianggap suatu OBYEK. Format penulisannya adalah sebagai berikut :

nama_array = new tipe_array[total_elemen_array]; Contoh :

int nilai[];

nilai = new int[5];

Pada saat baris kedua dieksekusi, kompiler Java akan menyediakan space di memori sebanyak 5 elemen dengan tipe masing-masing adalah int. Identifikasi elemen array sering disebut dengan indeks array, yang berawal dari 0 sampai total_elemen_array-1.

Mengakses array

Pada saat kita sudah selesai membuat array, kita dapat mengisinya dengan nilai yang tentunya harus sesuai dengan tipe array-nya. Untuk mengisi array, kita perlu memberitahukan kepada kompiler Java elemen manakah dari array yang akan kita isi. Format penulisannya sebagai berikut :

(2)

Contoh :

int nilai[];

nilai = new int[2]; nilai[1] = 100;

Di baris ketiga, kita berusaha mengakses elemen array pada indeks ke-1 dan memberinya dengan nilai 100.

Contoh program :

Hasil eksekusi :

Mendeklarasikan dan membuat array

Pada pembahasan sebelumnya kita sudah memahami bagaimana cara mendeklarasikan suatu array dan kemudian membuatnya. Keduanya kita lakukan pada baris statement yang berbeda. Selain cara tersebut, kita juga dapat melakukan deklarasi dan pembuatan array hanya pada satu baris statement. Adapun format penulisannya adalah sebagai berikut :

tipe_array nama_array[] = new tipe_array[total_elemen_array]; Contoh :

int nilai[] = new int[5];

Kalau program Array1 sebelumnya kita mendeklarasikan dan membuat pada baris statement yang berbeda, kita dapat menuliskannya hanya dengan satu baris statement seperti yang terlihat dibawah ini :

Inisialisasi array

Inisialisasi array adalah pemberian nilai awal bagi setiap elemen array yang kita buat. Pada saat kita membuat suatu array dengan sejumlah elemen tertentu, maka kompiler Java akan memberikan nilai default kepada setiap elemen array selama kita tidak memberikan nilai awal pada saat pembuatan array.

public class Array1 {

public static void main(String args[]) { int nilai[];

nilai = new int[2];

nilai[0] = 50; nilai[1] = 100;

System.out.println("Nilai indeks ke-0 = " + nilai[0]); System.out.println("Nilai indeks ke-1 = " + nilai[1]); }

}

Nilai indeks ke-0 = 50 Nilai indeks ke-1 = 100

public class Array2 {

public static void main(String args[]) { int nilai[] = new int[2];

nilai[0] = 50; nilai[1] = 100;

System.out.println("Nilai indeks ke-0 = " + nilai[0]); System.out.println("Nilai indeks ke-1 = " + nilai[1]); }

(3)

Untuk mudahnya, mari kita lihat program dibawah ini : int nilai[];

nilai = new int[5];

Pada saat kita membuat array di baris kedua, kita tidak memberikan nilai awal (inisialisasi) pada elemen array. Pada saat baris kedua selesai dieksekusi, maka kompiler Java akan memberikan nilai default kepada setiap elemen array. Tentunya nilai default akan bergantung pada tipe array. Karena disana kita mendeklarasikan array dengan tipe int, maka setiap elemen dari array akan diberikan nilai 0. Ini bisa kita buktikan dengan program sederhana di bawah ini :

Maka yang tampil di layar adalah :

Lalu bagaimana kita dapat langsung menginisialisasi suatu array pada saat mendeklarasikan array tersebut?. Hal tersebut dapat kita lakukan dengan memakai format penulisan sebagai berikut :

tipe_array nama_array[] = {nilai_indeks_0, nilai_indeks_1, … , nilai_indeks_n};

Contoh :

int nilai[] = {70, 65, 85};

Pada baris program diatas, kita berusaha mendeklarasikan suatu array bernama nilai dan bertipe int, setelah itu kita langsung membuat elemen array dan langsung menginisialisasi elemen array pada indeks ke-0 dengan nilai 70, indeks ke-1 dengan nilai 65 dan indeks ke-2 dengan nilai 85.

Dengan demikian, program Array2 dapat juga kita ubah seperti yang terlihat dibawah ini :

Array multi dimensi

Pada pembahasan sebelumnya kita hanya membahas tantang array berdimensi satu (tunggal). Pada pembahasan kali ini akan dijelaskan bagaimana mendeklarasikan, membuat dan menginisialisasi suatu array yang mempunyai dimensi lebih dari satu (multi dimensi).

Deklarasi array multi dimensi

Cara mendeklarasikan suatu array multi dimensi tidak jauh berbeda dengan cara mendeklarasikan array berdimensi tunggal, yaitu cukup dengan menambahkan tanda []. Untuk lebih jelasnya, berikut berbagai macam contoh dimensi pada array.

int nilai[]; Æ berdimensi 1 char huruf[][]; Æ berdimensi 2 double total[][][]; Æ berdimensi 3 public class InitArray {

public static void main(String args[]) { int nilai[] = new nilai[5];

System.out.println(“Nilai indeks ke-2 = “ + nilai[2]); }

}

Nilai indeks ke-2 = 0

public class Array2 {

public static void main(String args[]) { int nilai[] = {50, 100};

System.out.println("Nilai indeks ke-0 = " + nilai[0]); System.out.println("Nilai indeks ke-1 = " + nilai[1]); }

(4)

String[][] nama; Æ berdimensi 2 float[] panjang[]; Æ berdimensi 2 short[][] tinggi[]; Æ berdimensi 3

Membuat array multi dimensi

Pembuatan array multi dimensi mempunyai cara yang identik dengan pembuatan array dimensi tunggal, yaitu dengan menambahkan tanda[]. Berikut beberapa contoh pendeklarasian dan pembuatan array dengan dimensinya.

int x[][] = new int[3][4];

Æ berdimensi 2, dengan 3 elemen di dimensi ke-1 dan 4 elemen di dimensi ke-2

double[][][] balok = new double[3][4][2];

Æ berdimensi 3, dengan 3 elemen di dimensi ke-1, 4 elemen di dimensi ke-2 dan 2 elemen di dimensi ke-3

Cara diatas adalah pembuatan array multi dimensi yang beraturan, dimana setiap elemen array di suatu dimensi mempunyai total elemen yang sama untuk dimensi berikutnya. Sebagai contohnya pembuatan array berikut ini :

int x[][] = new int[3][4];

Pada pembuatan array seperti diatas, setiap elemen array di dimensi ke-1 mempunyai total elemen sebanyak 4 untuk dimensi ke-2.

Di dalam Java, kita diperkenankan untuk membuat suatu array yang berdimensi tidak beraturan. Untuk lebih jelasnya, perhatikanlah ilustrasi berikut ini :

(1) int x[][] = new int[3][]; (2) x[0] = new int[2];

(3) x[1] = new int[3]; (4) x[2] = new int[1];

- Pada baris pertama program diatas kita membuat array berdimensi ganda, dimana total elemen di dimensi pertama adalah sebanyak 3 elemen, sedangkan banyaknya elemen di dimensi kedua tidak kita tentukan.

- Di baris keduanya, kita kemudian menentukan total elemen di dimensi ke-2 sebanyak 2 untuk elemen pertama (indeks ke-0) dari dimensi pertama.

- Di baris ketiga, kita menentukan total elemen di dimensi ke-2 sebanyak 3 untuk elemen kedua (indeks ke-1) dari dimensi pertama.

- Di baris keempat kita menentukan total elemen di dimensi ke-2 sebanyak 1 untuk elemen ketiga (indeks ke-2) dari dimensi pertama.

1 2 3

1 2 3

Mengetahui total elemen array

Untuk mengetahui panjang dari suatu array yang telah kita buat, kita dapat memakai properti length. Adapun format untuk menggunakan length adalah sebagai berikut:

var_array.length Æ total elemen array pada dimensi 1

var_array[i].length Æ total elemen array pada dimensi 2 untuk indeks ke-i di pada dimensi 1

Kolom (dimensi II)

(5)

var_array[i][j].length Æ total elemen array pada dimensi 3 untuk indeks ke-i pada dimensi 1 dan indeks ke-j pada dimensi 2 dan seterusnya.

Untuk lebih mudahnya, perhatikan ilustrasi berikut ini : int x[][] = new int[3][];

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

x.length Æ 3 x[0].length Æ 2 x[1].length Æ 3 x[2].length Æ 1

Contoh kasus :

Laporan hasil penilaian mahasiswa berbentuk seperti di bawah ini :

Nama Siswa MK1 MK2 MK3

Amin 65 82 75

Budi 73 79 85

Kita dapat menangkap permasalahan tabel diatas dengan memanfaatkan array dengan 2 dimensi. Berikut adalah program dari tabel diatas :

Hasil eksekusi :

public class Array_Multi_Dimensi {

public static void main(String args[]) { String siswa[] = {"Amin", "Budi"}; int MK[][] = new int[2][3];

int total, avg;

MK[0][0] = 65; MK[0][1] = 82; MK[0][2] = 75; MK[1][0] = 73; MK[1][1] = 79; MK[1][2] = 85;

for(int i=0; i<MK.length; i++) { //loop 2x total=0;

for(int j=0; j<MK[i].length; j++) //loop 3x total+=MK[i][j];

avg=total/MK[i].length;

System.out.println("Nilai rata-rata " + siswa[i] + " = " + avg); }

} }

(6)

Merubah total elemen array

Di dalam Java kita diperkenankan untuk merubah total elemen array, akan tetapi total elemen array yang sebelumnya akan tergantikan dengan yang baru. Sebagai contoh, berikut kita membuat sebuah array dengan total elemen 2 dan kemudian kita mengisinya dengan suatu nilai.

byte posisi[] = new byte[2]; posisi[0] = 55;

posisi[1] = 68;

Pada saat kita merubah total elemen array diatas pada baris baru, misalnya seperti : byte posisi[] = new byte[5];

maka

- total elemen array yang sebelumnya dan - nilai dari setiap elemennya

akan HILANG dan tergantikan dengan array yang baru.

Mengkopi elemen array

Isi dari suatu array dapat kita kopi pada array yang lain dengan memanfaatkan method

arraycopy() pada class System. Format penulisannya sebagai berikut : System.arraycopy(array1, p1, array2, p2, n);

dimana :

array1 = array asal/sumber pengkopian array2 = array tujuan pengkopian

p1 = posisi indeks awal pengkopian pada array asal p2 = posisi indeks awal pengkopian pada array tujuan n = banyaknya elemen array yang akan dikopi

Untuk lebih jelasnya, perhatikan ilustrasi berikut ini : int lama[] = {1, 2, 3, 4, 5, 6};

int baru[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; System.arraycopy(lama, 2, baru, 5, 3);

Di baris ketiga, kita akan melakukan pengkopian nilai array dari array lama ke array baru, dimana yang akan dikopikan adalah nilai array lama sebanyak 3 yang dimulai dari indeks ke-2 (3, 4, 5) dan kemudian dikopikan ke array baru pada indeks ke-5, sehingga elemen-elemen array baru akan bernilai masing 10, 9, 8, 7, 6, 3, 4, 5, 2, 1.

Contoh program :

Hasil eksekusi :

public class CopyArray {

public static void main(String args[]) { int lama[] = {1, 2, 3, 4, 5, 6};

int baru[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};

System.arraycopy(lama, 2, baru, 5, 3);

System.out.println("Isi array baru :"); for(int i=0; i<baru.length; i++) { System.out.print(baru[i] + " "); }

} }

(7)

Referensi array

Suatu array juga dapat me-refer (merujuk) ke array yang lain, dengan kata lain merujuk pada alamat memori yang sama. Sebagai contoh adalah program berikut ini :

int nilai[] = {10, 20, 30}; int result[];

result = nilai;

Di baris ketiga, kita meng-assign array nilai ke array result. Akibatnya, array result akan me-refer (merujuk) pada array nilai, sehingga kedua array tersebut merujuk alamat memori yang sama. Pada saat kita merubah nilai elemen pada array result, misalnya dengan :

result[1] = 50;

maka nilai dari indeks ke-1 pada array nilai (nilai[1]) juga ikut berubah menjadi 50. Untuk lebih jelasnya, perhatikan contoh program dibawah ini :

Æ Nama array yang dituliskan tanpa kurung sikunya = alamat array tsb pada indeks ke-0 public class ArrayReference {

public static void main(String args[]) { int nilai[] = {10, 20, 30};

int result[]; result = nilai; result[1] = 50;

System.out.println("Indeks ke-1 array nilai berisi " + nilai[1]); }

Referensi

Dokumen terkait

Transformator adalah alat yang digunakan untuk mengubah tegangan bolak-balik (AC) dari suatu nilai. tertentu ke nilai yang

Misalkan kita hendak mendeklarasikan array TEMP yang merupakan array dimensi satu dengan nilai subscript 1 sampai 24, dan masing-masing elemen bertipe data integer..

Misalkan kita hendak mendeklarasikan array TEMP yang merupakan array dimensi satu dengan nilai subscript 1 sampai 24, dan masing-masing elemen bertipe data integer

Pengambilan foto adalah langkah paling awal dalam pembuatan digital magazine , karena pada tahap ini kita membuat isi atau apa saja yang akan kita masukan dalam d igital magazine

Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya bisa statis ataupun dinamis dan diberi suatu nama

Definisi array diatas berarti kita mendeklarasikan sebuah variabel dengan tipe array yang mempunyai nama variabel nilai, yang memiliki elemen sejumlah 10 buah

Jika hanya diberikan satu buah argumen, method splice akan berfungsi ’menghapus’ array asal mulai dari index yang diberikan, dan mengembalikan nilai array yang ’dihapus’.. Jika elemen

Program kemudian menampilkan nilai dari elemen kedua dari array string b, meminta pengguna untuk memasukkan nilai yang akan disimpan di indeks 0 dari array x, dan akhirnya menampilkan