2. 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
3. Pengenalan array
Definsi :
Array adalah kumpulan dari nilai-nilai data bertipe sama
dalam urutan tertentu yang menggunakan sebuah nama
yang sama. Nilai-nilai data di suatu larik disebut dengan
elemen-elemen larik. Letak urutan dari suatu elemen
larik ditunjukkan oleh suatu subscript atau suatu index
Array adalah suatu variabel yang terdiri dari sekumpulan data dimana
data-data tersebut mempunyai tipe data yang sama. Setiap data
disimpan dalam alamat memori yang berbeda-beda dan disebut
dengan elemen array. Setiap elemen mempunyai nilai indek sesuai
dengan urutannya. Melalui indek inilah kita dapat mengakses data-
data tersebut.
4. Pengenalan array
Definsi :
Indek dari elemen array ini, baik dalam bahasa C++ maupun Java
dimulai dari 0, bukan 1 seperti dalam bahasa Pascal.
Array dideklarasikan dengan tanda [ ] (bracket), baik dalam bahasa
C++ dan Java
5. Pengenalan array
Misa lnya, terdapat tiga variabel dengan tipe data int yang
memiliki identifier yang berbeda untuk tiap variabel.
Code di atas bukanlah contoh yang baik untuk
memperlihatkan proses penginisialisasian dan
penggunaan variabel, terutama jika variabel tersebut
digunakan untuk tujuan yang sama.
int number1;
int number2;
int number3;
number1 = 1;
number2 = 2;
number3 = 3;
Identifier
Isi Matriks
6. 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.
7. Pendeklarasian array
Untuk mendeklarasikan array :
tulis tipe datanya,
diikuti dengan tanda kurung [],
serta diikuti oleh nama identifier.
Contoh:
int []ages;
atau
int ages[];
8. 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.
9. Array instantiation
Untuk meng-instantiate (atau membuat) sebuah array,
Tulislah new keyword,
Diikuti oleh tanda kurung [] yang berisi angka dari elemen yang diinginkan 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];
11. 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).
12. 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};
13. Contoh program
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
System.out.println(cars[0]);
// Outputs Volvo
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
System.out.println(cars[0]);
// Now outputs Opel instead of Volvo
14. 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)
15. 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]);
16. 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.
17. 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 }
18. 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];
19. 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.
20. 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
21. 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] );
}
}
}
22. 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];
23. Dasar Pengolahan Array Secara Umum
// lakukan inisialiasi yang diperlukan sebelumnya
for (int i = 0; i < A.length; i++)
{
. . . // proses A[i]
}
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 :
24. Dasar Pengolahan Array Secara Umum
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
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,
25. Dasar Pengolahan Array Secara Umum
// 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
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
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)
26. Dasar Pengolahan Array Secara Umum
int[] a = {22, 44, 66, 88};
print(a);
int[] b = (int[])a.clone(); // duplicate a[] in b[]
print(b);
Since it is an object, an array can be duplicated by invoking the
Object.clone() method,
27. 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).
28. Array multidimensi
Array multidimensi diimplementasikan sebagai array
di dalam array .
Array multidimensi dideklarasikan dengan
menambahkan jumlah tanda kurung setelah nama
array.
29. 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"}
};
30. 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.
31. 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
32. 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.
33. 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.