Array

Array adalah tipe data bentukan yang digunakan untuk menyimpan beberapa nilai dengan tipe data yang sama. Array bisa dianalogikan seperti beberapa tempat penyimpanan yang disusun dalam satu barisan. Karena berada di dalam satu barisan, kalian bisa menyebut masing-masing tempat penyimpanan tersebut berdasarkan posisi dari salah satu ujungnya.

Deklarasi variabel array hampir sama dengan variabel biasa. Bedanya, array bisa dideklarasikan dengan menyertakan ukuran atau banyaknya nilai yang bisa disimpan. Nilai-nilai yang tersimpan di dalam array disebut dengan elemen. 

Array bisa dideklarasikan dengan pemberian nilai awal dari elemen-elemen array. Jika tidak ada inisiasi nilai dari elemen-elemen array, maka nilai setiap elemen mungkin saja diambil acak dari memori komputer.

Sintaks deklarasi array bisa kalian lihat di bawah ini.

  • tipe_data nama_variabel [ukuran]
  • tipe_data nama_variabel [] = {nilai1, nilai2, nilai3, ... }
  • Tipe_data nama_variabel [ukuran] = {nilai1, nilai2, nilai3, ... }

Elemen-elemen array bisa diakses berdasarkan posisi penyimpanannya. Posisi penyimpanan tersebut berupa angka yang diapit dengan kurung kotak. Angka tersebut disebut dengan indeks / index. 

Contoh kode program yang menggunakan array bisa kalian lihat di bawah ini.

#include <iostream>

using namespace std;

int main(){
    int data[3]={2, 3, 0};
    data[2]=4;
    cout << "elemen ke-1 : " << data[0] << endl;
    cout << "elemen ke-2 : " << data[1] << endl;
    cout << "elemen ke-3 : " << data[2] << endl;
    return 0;
}
Output :
elemen ke-1 : 2
elemen ke-2 : 3
elemen ke-3 : 4

Indeks array dalam bahasa C++ dimulai dari 0. Itu kenapa kode program di atas menggunakan data[0] untuk mengakses nilai pertama yang disimpan dalam array. Indeks array berselisih satu dengan posisinya. Kalian bisa melihat adanya selisih dari indeks array dengan posisinya dari contoh di atas. Karena indeks awalnya 0, angka yang digunakan untuk indeks hanya boleh terdiri dari 0 dan bilangan bulat positif.

Kenapa indeks array dimulai dari 0? Itu karena array diakses berdasarkan pergeseran alamat penyimpanan pertama dan ukuran tipe datanya. Itu juga kenapa isi array harus punya nilai yang sama. Kalau kalian sudah pusing dengan penjelasan saya di paragraf ini, abaikan saja.

Inisiasi dan indeks array tidak boleh melebihi ukuran yang sudah ditentukan. Jika indeks array melebihi ukuran yang ditentukan, compiler akan menampilkan error.

Array di dalam Loop

Indeks array tidak harus berupa angka. Kalian bisa menggunakan variabel bertipe data bilangan bulat untuk menggantikan angka tersebut. Penggunaan variabel untuk indeks array memungkinkan kalian untuk menampilkan isi array dengan menggunakan loop seperti contoh di bawah ini.

    #include <iostream>
    
    using namespace std;
    
    int main(){
        int data[]={2, 3, 4, 5};
        int n=4;
        for(int i=0;i<n;i++){
            cout << "member ke-" << i+1 << " : ";
            cout << data[i] << endl;
        }
        return 0;
    }
    Output :
    member ke-1 : 2
    member ke-2 : 3
    member ke-3 : 4
    member ke-4 : 5

    Nilai variabel i yang digunakan untuk indeks pada contoh di atas dimulai dari 0. Nilai tersebut digeser dengan menggunakan i++ sehingga indeks array "bergeser satu langkah" di setiap putaran dalam loop. Karena selisih indeks dan posisi adalah 1, kalian perlu menggunakan "i+1" saat menggunakan variabel i untuk menunjukkan posisinya. 

    Contoh di atas menggunakan variabel n untuk menentukan akhir dari loop. Jika kalian menambah atau mengurangi isi array, kalian perlu mengubah nilai variabel n sesuai ukuran array. Agar tidak ada error, nilai n tidak boleh melebihi ukuran array.

    Array 2D

    Array bisa diisi dengan array lainnya sehingga membentuk array 2D (2 dimensi), 3D (3 dimensi), atau lebih. Umumnya, pemrograman yang terkait dengan permasalahan di dunia nyata hanya membutuhkan array 2D dan 3D. 

    Array biasa seperti satu baris yang berisi beberapa nilai. Kalau kalian mengganti nilai-nilai tersebut dengan array yang berukuran sama, kalian bisa menghasilkan array 2D.

    #include <iostream>
    
    using namespace std;
    
    int main(){
        int gak_guna[4][2];//ini cuma contoh yg bisa dihapus
        int data[4][2]={{2, 3}, {4, 5}, {6, 7}, {8, 9}};
    
        for(int i=0;i<3;i++){
            for(int j=0;j<2;j++){
                cout << "Data[" << i << "][" << j << "] : ";
                cout << data[i][j] << endl;
            }
            cout << endl;
        }
    
        cout << "Data[3][0] : ";
        cout << data[3][0] << endl;
    
        cout << "Data[3][1] : ";
        cout << data[3][1] << endl;
    
        return 0;
    }
    Output :
    Data[0][0] : 2
    Data[0][1] : 3
    
    Data[1][0] : 4
    Data[1][1] : 5
    
    Data[2][0] : 6
    Data[2][1] : 7
    
    Data[3][0] : 8
    Data[3][1] : 9

    Contoh kode di atas menginisiasi array sesuai ukurannya. Jika tidak diperlukan, kalian juga bisa membuat array tanpa inisiasi dengan membuang sebagian dari statement mulai dari tanda sama dengan hingga titik koma.