Fundamental Programing — Array

Mengupas Fundamental Programming mengenai array menggunakan Java.

Alfi Naufal
Komunitas Android  CCIT-FTUI
6 min readJul 20, 2019

--

Assalamualaikum wr.wb. Halo Semua! Pada kesempatan Fundamental Programming kali ini gue mau berbagi insight mengenai Array. Sebelumnya mari kita pahami dulu apa itu array.

Array adalah objek yang bisa digunakan untuk menyimpan kumpulan data lebih dari satu dengan tipe sama. Array memiliki jumlah data yang fixed (tetap).

Ilustrasi Array

Array bisa diilustrasikan dengan gambar berikut.

Angka di atas menunjukkan indeks dari array tersebut, yakni dimulai dari 0 sampai 7. Setiap kolom nilai bisa disebut sebagai elemen.

Perhatikan bedanya di ilustrasi berikut. Nilai di tiap elemennya sudah ditambahkan.

Jadi, elemen pada nomor 1 memiliki indeks 0 dengan nilai A; elemen nomer 2 memiliki indeks 1 dengan nilai B; begitu seterusnya.

Deklarasi Array

Untuk mendeklarasikan suatu array kita bisa menuliskannya seperti berikut ini.

void cobaArray() {double[] arrA;
arrA = new double[10]
}

Tanda [] menunjukkan bahwa objek tersebut adalah sebuah array. Kemudian, setelah membuat suatu objek array yang memiliki tipe data double, kita harus mendefinisikan length (panjang) dari array tersebut. Untuk mendefinisikan panjangnya, kita harus menuliskan jumlahnya dalam nominal integer di dalam tanda [].

Nah kamu juga harus tau nih kalo terdapat dua jenis penulisan array yang diperbolehkan di dalam Java yaitu:

void cobaArray(){

// Cara pertama
double[] arrA = new double[10];

// Cara kedua
double arrB[] = new double[10];
}

Keduanya diperkenankan, akan tetapi cara pertama lebih banyak digunakan oleh banyak developer.

Inisiasi Array

Untuk inisiasi suatu array, ada 2 cara yang bisa digunakan.

Pertama, kita akan menggunakan tanda {} (sepasang kurawal atau brackets, bukan kurama ya!) dan memisahkan nilai antar elemen dengan tanda koma, misalnya seperti ini.

void kumpulanInteger() {           int[] arrInt = new int[]{1, 2, 3, 4, 5, 6,};        }

Kedua, dengan melakukan inisiasi array per-elemen.

void kumpulanInteger() {int[] arrInt = new int[6];
arrInt[0] = 1;
arrInt[1] = 2;
arrInt[2] = 3;
arrInt[3] = 4;
arrInt[4] = 5;
arrInt[5] = 6;
}

Kegunaan Array

Lalu apa kegunaan utama dari suatu array ? Seperti yang sudah dijelaskan sebelumnya, array berupa kumpulan data. Ini berarti bahwa satu objek array dapat menyimpan beberapa data sekaligus.

Jika dibandingkan dengan variabel primitif maka untuk membuat 6 buah variabel integer kita bisa menuliskannya seperti berikut.

void kumpulanInteger() {             int int1 = 1;
int int2 = 2;
int int3 = 3;
int int4 = 4;
int int5 = 5;
int int6 = 6;
}

Penulisan kode di atas bisa kita konversi dengan menggunakan sebuah array yang memiliki 6 elemen, seperti ini.

void kumpulanInteger() {int[] arrInt = new int[6];}

Bayangkan jika program kita mengharuskan penulisan obyek sebanyak 1 juta? Tentu kita dapat menghemat banyak energi dalam menulis baris kode dengan array!

Namun sebenarnya proses konversi kode di atas belum selesai karena kita belum memberikan nilai pada setiap elemennya. Mari masuk ke bab selanjutnya.

Akses Array

Lebih lanjut, cara untuk mengakses elemen dari suatu array adalah masih sama dengan inisiasi, yaitu dengan menggunakan tanda [] (tanda kurung siku atau square backets) dan indeksnya. Perhatikan kode di bawah ini untuk akses array.

void kumpulanInteger() {             int[] arrInt = new int[]{1, 2, 3, 4, 5, 6};
System.out.println(arrInt[0]);
System.out.println(arrInt[1]);
System.out.println(arrInt[2]);
System.out.println(arrInt[3]);
System.out.println(arrInt[4]);
System.out.println(arrInt[5]);
}

Proses Array

Sebelumnya telah dijelaskan mengenai beberapa poin penting mengenai array, tapi yang tidak kalah penting adalah hubungan antara array dengan looping. Kenapa looping? Kembali ke pertanyaan bagaimana jika array-nya memiliki satu juta panjang elemen, maka kita harus menggunakan looping untuk melakukan proses elemennya.

Jika kita ingin menampilkan nilai array yang memiliki panjang 1 juta dengan menggunakan akses, tiap indeksnya akan kurang lebih seperti ini.

void loopingArray() {int[] arrInt = new int[]{1, 2, 3, 4, 5, ... 999998, 999999, 1000000};
System.out.println(arrInt[0]);
System.out.println(arrInt[1]);
System.out.println(arrInt[2]);
System.out.println(arrInt[999998]);
System.out.println(arrInt[999999]);
System.out.println(arrInt[1000000]);
}

Jika kita konversi kode di atas dengan menggunakan looping, kita bisa mendapatkan panjang array dengan mengakses atribut length. Kodenya akan menjadi seperti ini.

void loopingArray() {       int[] arrInt = new int[1000000];                // Inisiasi arrInt dari elemen ke 1 sampai 1000000
for (int x = 0 ; x < arrInt.length ; x++){
arrInt[x] = x + 1;
}

for (int x = 0 ; x < arrInt.length ; x++){
System.out.println(arrInt[x]);
}
}

Multi Dimensional Array

Seperti dengan namanya “multi dimensional” berarti array bisa memiliki lebih dari satu dimensi. Pada penjelasan sebelumnya kita baru hanya menggunakan array yang memiliki 1 dimensi. Jika diilustrasikan dengan dimensi maka 1 dimensi array baru hanya menggunakan sumbu x, seperti ini.

Untuk dua dimensi array kita bisa menambahkan sumbu y, dengan ilustrasi seperti berikut.

Penulisan kode untuk 2 dimensi array adalah seperti ini.

void cobaArray2D() {int[][] arrInt = new int[][];}

Perhatikan bahwa ada 2 tanda [] (bracket) yaitu [][]. Tanda [] pertama adalah dimensi pertama dan tanda [] kedua adalah dimensi kedua. Sama juga dengan dimensi yang lebih dari itu, misalnya 3 dimensi, maka ada 3 tanda [] yaitu [][][].

Kemudian untuk panjang elemen, pada dimensi kedua tiap panjang elemen-nya pun bisa bervariasi. Misalnya kita ingin membuat array dua dimensi, panjang elemen dimensi 1 nya adalah 2, kemudian panjang elemen pada dimensi keduanya adalah 2 dan 3 secara berurutan. Kita bisa menuliskannya seperti ini.

void cobaArray2D() {char[][] arrChar = new char[2][];
arrChar [0] = new char[3];
arrChar [1] = new char[5];
}

Kemudian kita inisiasi array-nya dengan huruf abjad secara urut.

void cobaArray2D() {                char[][] arrChar = new char[2][];
arrChar[0] = new char[2];
arrChar[1] = new char[3];
// Dimensi 1 yang indeksnya 0 memiliki panjang elemen 2
arrChar[0][0] = 'A';
arrChar[0][1] = 'B';
// Dimensi 1 yang indeksnya 1 memiliki panjang elemen 3
arrChar[1][0] = 'C';
arrChar[1][1] = 'D';
arrChar[1][2] = 'E';
// Tampilkan semua data dari dimensi 1 yang memiliki indeks 0System.out.println("Dimensi 1 dengan indeks 0 dan Dimensi 2 dengan indeks 0 : " + arrChar[0][0]);System.out.println("Dimensi 1 dengan indeks 0 dan Dimensi 2 dengan indeks 1 : " + arrChar[0][1]); // Tampilkan semua data dari dimensi 1 yang memiliki indeks 1System.out.println("Dimensi 1 dengan indeks 1 dan Dimensi 2 dengan indeks 0 : " + arrChar[1][0]);System.out.println("Dimensi 1 dengan indeks 1 dan Dimensi 2 dengan indeks 1 : " + arrChar[1][1]); System.out.println("Dimensi 1 dengan indeks 1 dan Dimensi 2 dengan indeks 2 : " + arrChar[1][2]);
}

Output :

Dimensi 1 dengan indeks 0 dan Dimensi 2 dengan indeks 0 : A
Dimensi 1 dengan indeks 0 dan Dimensi 2 dengan indeks 1 : B
Dimensi 1 dengan indeks 1 dan Dimensi 2 dengan indeks 0 : C
Dimensi 1 dengan indeks 1 dan Dimensi 2 dengan indeks 1 : D
Dimensi 1 dengan indeks 1 dan Dimensi 2 dengan indeks 2 : E

IndexOutOfBounds

Terakhir, selama menggunakan array Anda perlu berhati-hati. Jika tidak, Anda akan sering menemui error indexOutOfBounds. Ini adalah eror yang disebabkan oleh percobaan saat melakukan akses indeks yang tidak dimiliki oleh array. Misalnya kita melakukan akses pada indeks 4 sedangkan array tersebut hanya memiliki 4 elemen. Ingatlah bahwa indeks dimulai dari 0 dan indeks terakhir adalah panjang element — 1. Contohnya dalam kode adalah seperti ini

 void cobaIndexOutofBound() {int[] arrA = {1, 2, 3, 4};
System.out.println(arrA[0]);
System.out.println(arrA[1]);
System.out.println(arrA[2]);
// Akses indeks ke 4
System.out.println(arrA[4]);
}

Output :

1
2
3
eception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Main.cobaIndexOutofBound(Main.java:202)
at Main.main(Main.java:3)

Pada kode di atas, kita melakukan perulangan dengan mengeluarkan seluruh isi array. Metode ini dapat kita sebut sebagai iterasi. Cara di atas kita tidak perlu menginisalisasi angka awal dan akhir pada sebuah perulangan. Menggunakan cara ini sangat direkomendasikan.

EXERCISE TIME

Sekarang waktunya latihan untuk meningkatkan skill coding kita, yuk simak soal dibawah:

  1. Buatlah sebuah array String yang berisi kalimat sebagai berikut “Hello World”, “CCIT — FTUI”, “Komunitas Android CCIT — FTUI”, “Saya adalah programmer”, “Aku mahasiswa baru tapi udah bisa coding”. Cetak semua kalimat menggunakan FOR.
  2. Buatlah sebuah array Integer yang berisi nilai sebagai berikut 1,4,5,7,8,9,2,3,45,8,41,22,33. Cetak array ketiga dan kedelapan!

Kerjakan dua soal diatas untuk bahan latihan ya!

Selesai sudah materi tentang array yang akan sangat sering kita gunakan di dalam pemrograman.

Happy Coding~ ^^

Tutorial ini telah ditulis pada dicoding. Komunitas Android CCIT — FTUI hanya mengganti sebagian bahasa penulisan pada artikel ini sesuai dengan gaya penulisan kami sendiri.

--

--