Вы находитесь на странице: 1из 28

#12

Array
Objectives
 Dapat menggunakan array dan Vector
 Dapat membuat array multi-dimensi

11 July 2013 Algoritma & Pemrograman 2


Outline
 Array
 Vector

11 July 2013 Algoritma & Pemrograman 3


Array
 Array adalah suatu koleksi unsur-unsur yang
bertipe sama (homogen), dimana setiap unsur
dapat diakses secara terpisah dengan
menggunakan suatu indeks
 Komponen (unsur) dapat bertipe primitif atau
reference
 Bisa diilustrasikan sebagai laci-laci yang berisi
benda yang sejenis dan diberikan nomor urut

11 July 2013 Algoritma & Pemrograman 4


Deklarasi Array [1]
int[] daftar = new int[5];
 Mendefinisikan suatu variabel array bernama
daftar yang pada mulanya menunjuk/refer ke
sebuah object array yang terdiri dari 5 buah
integer, dengan inisialisasi default = 0

11 July 2013 Algoritma & Pemrograman 5


Deklarasi Array [2]
int[] daftar;
 Tipe dari variabel daftar adalah int[]. Ini berarti
variabel daftar dapat berisi reference ke object array of
integer. Bukan berisi object array of integer!
 Kemudian dibuat sebuah object array integer dengan
menggunakan operator new
new typename[length]
 Ingat: operator new mengembalikan sebuah reference
ke object yang baru dibuat.
 Reference ke object array yang baru dibuat kemudian
disimpan dalam variabel daftar.
daftar = new int[5];
11 July 2013 Algoritma & Pemrograman 6
Deklarasi Array [3]
int[] daftar = new int[5];
 Banyaknya unsur dalam suatu array ditentukan pada
waktu array itu dibuat dengan operator new, dan setelah
itu tidak dapat diubah lagi.
 Banyaknya unsur dapat dalam sebuah array dapat
diketahui dari field length
 Contoh: daftar.length bernilai 5
 Ingat bahwa:
int [] daftar;
hanya mengalokasikan untuk sebuah reference ke
array of integer, bukan mengalokasikan object array of
integer.
daftar [0] = 0; // error

11 July 2013 Algoritma & Pemrograman 7


Mengakses Elemen dalam Array
 Elemen dalam array diakses dengan
menggunakan indeks-nya
 Unsur pertama array berindeks 0 (nol) dan
unsur terakhir ber-indeks length - 1
 Contoh:
daftar[3] = 10;
daftar[0] = daftar[3] * 10;

 Pengaksesan unsur array dengan indeks diluar


batas akan menyebabkan exception
ArrayIndexOutOfBoundsException.
11 July 2013 Algoritma & Pemrograman 8
Inisialisasi Array
 Array dapat dibuat dan di-init dalam satu
deklarasi.
 Contoh:
int[] nomor = {1, 2, 3, 4, 5};
float[] deposit = {150.0F, 275.5F, 184.4F};
String[] menu = {“Open”, “Close”, “Save”, “Quit”};

 Karena array adalah object, jika tidak ada yang


merefer ke object tersebut, akan di-garbage-
collected
nomor = null;
11 July 2013 Algoritma & Pemrograman 9
Meng-copy Array [1]
 Variabel array cara kerjanya seperti variabel
object.
 Yang disimpan hanya reference ke array yang
sebenarnya. Jika variabel array di-copy, maka
yang di-copy adalah reference-nya!
double[] data = new double[10];
...//fill array
double[] prices;
prices = data;

11 July 2013 Algoritma & Pemrograman 10


Meng-copy Array [2]
 Jika ingin melakukan cloning sebuah array, buat sebuah
array yang sama besarnya, kemudian copy semua nilai-
nya
double[] prices = new double[data.length];
for (int ii = 0; ii < data.length; ii++) {
prices[ii] = data[ii];
}
 Atau gunakan method statis System.arrayCopy
System.arrayCopy (from, fromStart, to, toStart,
count);
System.arrayCopy (data, 0, prices, 0,
data.length);

11 July 2013 Algoritma & Pemrograman 11


Array Assignment
 Variabel array dapat di-assign kepada variabel
array lain, jika tipe unsur sama dan jumlah
dimensi sama
int[] kopi = {1, 4, 9, 16};
int[] kue = {3};
kue = kopi;
kue[3] = 8; // ok, karena kue sekarang
// punya 4 unsur

11 July 2013 Algoritma & Pemrograman 12


Array sbg Parameter Method /
Return Value
 Array bisa saja menjadi parameter atau return type dari
sebuah method, contoh:
public static void main (String[] args)
 Karena yang disimpan dalam variabel array adalah
reference, maka yang di-pass ke dalam method adalah
reference-nya!
 Ingat! Karena yang di-pass adalah referencenya, maka
.... (ingat tentang passing reference ke method)
 Method perlu return suatu array apabila ia
menghasilkan suatu koleksi nilai-nilai yang bertipe sama.

11 July 2013 Algoritma & Pemrograman 13


Array sebagai Parameter
 Method berikut mencari elemen terkecil dalam
array
public static int minValue (int[] data)
{
double lowest = data[0];
for (int i = 1; i <data.length; i++) {
if (data[i] < lowest) {
lowest = data[i];
}
}
return lowest;
}

11 July 2013 Algoritma & Pemrograman 14


Array sebagai Return Value
 Method ini mengembalikan/menghasilkan suatu array
integer acak/random
import java.util.Random;
public static int[] randomData (int length, int n)
{
Random generator = new Random();
int[] data = new int[length];
for (int i = 0; i < data.length; i++) {
data[i] = generator.nextInt (n);
}
return data;
}

11 July 2013 Algoritma & Pemrograman 15


Wrapper Class
 Setiap tipe data primitif mempunyai tipe kelas yang bersesuaian (dalam
package java.lang)
 boolean - Boolean
 char - Character
 byte - Byte
 short - Short
 int - Integer
 long - Long
 float - Float
 double - Double
 void - Void
 Kelas-kelas pembungkus ini (wrapper) ini berguna apabila kita perlu
memperlakukan tipe primitif sebgai object.
 Kelas-kelas ini juga mengandung konstantakonstanta dan method-method
yang berguna
11 July 2013 Algoritma & Pemrograman 16
Array Of Objects
 Hati-hati dengan array of objects!
Integer[] abc = new Integer[20];
 Statement di atas membuat object array yang dapat
menampung 20 reference ke object Integer
 Statement di atas tidak membuat 20 object Integer
abc[3].toString() // NullPointerException
 Jadi, sebelum mengakses object dalam array, buat
terlebih dahulu object-nya.
abc[3] = new Integer (12);

11 July 2013 Algoritma & Pemrograman 17


Array Multi-dimensi [1]
 Statement
int[][] tabel = new int[5][8];
melakukan 3 hal:
 mendeklarasikan suatu variabel reference bernama
tabel dengan tipe int[][] (array of array of int)
 mengalokasikan secara dinamik sebuah array yang
terdiri dari 5 unsur. Tiap unsur dari array ini bertipe
int[]
 mengalokasikan secara dinamik 5 array,
masingmasing terdiri dari 8 int.

11 July 2013 Algoritma & Pemrograman 18


Array Multi-Dimensi [2]
int[][] tabel = new int[5][8];

11 July 2013 Algoritma & Pemrograman 19


Array Multi-Dimensi [3]
 Buat sebuah matriks 3x4 yang berisi:
1 1 1 1 
 2 4 8 16 
 
 3 9 81 243
 pada baris i, kolom j: nilainya (i+1)^(j+1)
 Deklarasikan variabel dan buat array
int[][] pangkat = new int[3][4];

11 July 2013 Algoritma & Pemrograman 20


Array Multi-Dimensi [4]
 Gunakan nested loop untuk mengisi matriks/array
tersebut
for (int ii = 0; ii < pangkat.length; ii++) {
for (int jj = 0; jj < pangkat[ii].length; jj++) {
pangkat[ii][jj] =
(int) Math.pow (ii + 1, jj + 1);
}
}

 Latihan: Buat nested loop untuk mencetak


semua elemen yang ada dalam matriks/array

11 July 2013 Algoritma & Pemrograman 21


Array Multi Dimensi Dengan Panjang
Baris Berbeda

 Contoh: inisialisasi matriks segitiga


int[][] tabel = new int[5][];
for (int ii = 0; ii < tabel.length; ii++) {
// buat object array untuk satu baris
int temp[] = new int[i+1];

for (int jj = 0; jj <= i; jj++) {


temp[jj] = jj;
}
tabel[ii] = temp;
}
 int[][] tabel = new[][4]; // tidak boleh

11 July 2013 Algoritma & Pemrograman 22


Apakah Array Adalah Object? [1]
public class ABC
{
byte b;
}
public class TestTipe
{
...
static void testObject (Object o)
{
System.out.println ("Object? “
+ (o instanceof Object));
}
static void testABC (Object o)
{
System.out.println ("ABC? ” + (o instanceof ABC));
}
}
11 July 2013 Algoritma & Pemrograman 23
Apakah Array Adalah Object? [2]
public class TestTipe
{
...
static void testObjectArray (Object o)
{
System.out.println ("ObjectArray? "
+ (o instanceof Object[]));
}
static void testABCArray (Object o)
{
System.out.println ("ABCArray? "
+ (o instanceof ABC[]));
}
}

11 July 2013 Algoritma & Pemrograman 24


Apakah Array Adalah Object? [3]
public class TestTipe
{
static public void main (String[] a)
{ ABC x = new ABC ();
ABC[] xArray = new ABC[3];
System.out.println ("ABC object: ");
testObject (x);
testABC (x);
testObjectArray (x);
testABCArray (x);
System.out.println ("\nABC array object: ");
testObject (xArray);
testABC (xArray);
testObjectArray (xArray);
testABCArray (xArray)
}
...
}
11 July 2013 Algoritma & Pemrograman 25
Apakah Array Adalah Object? [4]
 Output:
ABC object:
Object? true
ABC? true
ObjectArray? false
ABCArray? false
ABC array object:
Object? true
ABC? false
ObjectArray? true
ABCArray? true

11 July 2013 Algoritma & Pemrograman 26


Vector
 Sebelum array dapat digunakan, programmer harus
menyatakan terlebih dahulu besar array. Dan besar
array itu tidak bisa bertambah besar (growable).
 Bisa kita gunakan class Vector dalam package
java.util untuk array yang besarnya dinamis

11 July 2013 Algoritma & Pemrograman 27


Ringkasan
 Gunakan array untuk mengumpulkan data yang
bertipe sama (homogen). Masing-masing unsur
diakses dengan menggunakan indeks-nya.
 Array dapat dijadikan parameter atau return
value dalam sebuah method.
 Gunakan java.util.Vector untuk array of
Object yang bisa bertambah besar (growable).

11 July 2013 Algoritma & Pemrograman 28

Вам также может понравиться

  • Oleh Harry T. Yani Achsan
    Oleh Harry T. Yani Achsan
    Документ20 страниц
    Oleh Harry T. Yani Achsan
    akungbgl4475
    Оценок пока нет
  • Review
    Review
    Документ24 страницы
    Review
    akungbgl4475
    Оценок пока нет
  • Oleh Harry T. Yani Achsan
    Oleh Harry T. Yani Achsan
    Документ38 страниц
    Oleh Harry T. Yani Achsan
    akungbgl4475
    Оценок пока нет
  • 11 Inheritance UPM
    11 Inheritance UPM
    Документ55 страниц
    11 Inheritance UPM
    akungbgl4475
    Оценок пока нет
  • 8 Iterations
    8 Iterations
    Документ49 страниц
    8 Iterations
    akungbgl4475
    Оценок пока нет
  • 9 Methods
    9 Methods
    Документ36 страниц
    9 Methods
    akungbgl4475
    Оценок пока нет
  • 7 Decisions
    7 Decisions
    Документ46 страниц
    7 Decisions
    akungbgl4475
    Оценок пока нет
  • 6 Object
    6 Object
    Документ48 страниц
    6 Object
    akungbgl4475
    Оценок пока нет
  • 4 Cast
    4 Cast
    Документ41 страница
    4 Cast
    akungbgl4475
    Оценок пока нет
  • 5 Review
    5 Review
    Документ67 страниц
    5 Review
    akungbgl4475
    Оценок пока нет
  • 3 Numbers
    3 Numbers
    Документ57 страниц
    3 Numbers
    akungbgl4475
    Оценок пока нет
  • Class, Object, Method, Variable, and Algorithm
    Class, Object, Method, Variable, and Algorithm
    Документ48 страниц
    Class, Object, Method, Variable, and Algorithm
    akungbgl4475
    Оценок пока нет
  • Pengantar Java
    Pengantar Java
    Документ43 страницы
    Pengantar Java
    akungbgl4475
    Оценок пока нет