Anda di halaman 1dari 31

Array

Oleh
Shoffin Nahwa Utama M.T

Disampaikan pada mata kuliah Struktur Data


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