Array


Apa itu Array?

Array adalah kumpulan elemen dari tipe data yang sama yang disimpan pada lokasi memori yang bersebelahan.


Notes

  • Index array dimulai dari 0, bukan dari 1
  • Kita perlu mendefinisikan kapasitas dari array di awal
  • Jika kamu ingin array yang bisa ditambah kapasitasnya di tengah jalan (menambah elemen), itu akan dibahas di data struktur lain seperti Vector (C++), ArrayList (Java), ataupun List (Python)
  • Tentu saja ada cara untuk menambah kapasitas dengan bahasa C tetapi tidak disarankan karena terlalu kompleks bagi pemula, kemungkinan memory leak, dan hal hal lainnya yang tidak baik.

Ilustrasi

Ini adalah contoh gambar dari array, dimana index dimulai dari 0 dan angka didalam kotak adalah elemen yang kita simpan dan kita bisa melihat bahwa array bisa di-visualisasikan sebagai tempat penyimpanan banyak kotak kecil.

array visualization

Jika kita membuat array dengan kapasitas 5 kotak dan kita hanya deklarasi 4 elemen [10, 20, 30, 40], maka pada kotak ke-5 akan terisi value 0 sebagai default.

array visualization

Implementasi


Membuat Array

Untuk mendeklarasikan sebuah array di C, Anda menggunakan sintaks berikut:

tipe_data nama_array[ukuran];

Di sini, tipe_data adalah tipe data dari elemen-elemen dalam array (seperti int atau float), nama_array adalah nama array, dan ukuran adalah jumlah elemen dalam array. Contohnya, untuk mendeklarasikan sebuah array bilangan bulat dengan lima elemen, Anda akan menuliskannya sebagai berikut:

int angka[5];

Anda juga dapat menginisialisasi elemen-elemen dalam array pada saat deklarasi menggunakan sintaks berikut:

tipe_data nama_array[ukuran] = {nilai1, nilai2, nilai3, ..., nilaiN};

Di sini, nilai1 sampai nilaiN adalah nilai awal untuk elemen-elemen dalam array. Sebagai contoh, untuk mendeklarasikan dan menginisialisasi sebuah array bilangan bulat dengan empat elemen, Anda akan menuliskannya sebagai berikut:

int angka[4] = {10, 30, 20, 40};

Mengakses Array

contoh pengaksesan array secara individu dan melalui perulangan dalam bahasa C:

#include <stdio.h>

int main() {
  // Pengaksesan array secara individu
  int arr[] = {1, 2, 3, 4, 5};
  printf("SECARA INDIVIDU\n");
  printf("Elemen ke-1 dari array adalah %d\n", arr[0]);
  printf("Elemen ke-2 dari array adalah %d\n", arr[1]);
  printf("Elemen ke-3 dari array adalah %d\n", arr[2]);
  printf("Elemen ke-4 dari array adalah %d\n", arr[3]);
  printf("Elemen ke-5 dari array adalah %d\n", arr[4]);

  printf("=================================\n");

  // Pengaksesan array melalui perulangan
  printf("SECARA LOOPING\n");
  int i;
  for (i = 0; i < 5; i++) {
    printf("Elemen ke-%d dari array adalah %d\n", i+1, arr[i]);
  }

  return 0;
}

Output

SECARA INDIVIDU
Elemen ke-1 dari array adalah 1
Elemen ke-2 dari array adalah 2
Elemen ke-3 dari array adalah 3
Elemen ke-4 dari array adalah 4
Elemen ke-5 dari array adalah 5
=================================
SECARA LOOPING
Elemen ke-1 dari array adalah 1
Elemen ke-2 dari array adalah 2
Elemen ke-3 dari array adalah 3
Elemen ke-4 dari array adalah 4
Elemen ke-5 dari array adalah 5

Manipulasi Array

#include <stdio.h>

int main() {
  // Membuat array
  int arr[] = {1, 2, 3, 4, 5};

  // Menampilkan array sebelum dimanipulasi
  printf("Array sebelum dimanipulasi:\n");
  for (int i = 0; i < 5; i++) {
    printf("%d ", arr[i]);
  }
  printf("\n");

  // Mengubah nilai elemen array pada indeks ke-2
  arr[2] = 10;

  // Menampilkan array setelah dimanipulasi
  printf("Array setelah dimanipulasi:\n");
  for (int i = 0; i < 5; i++) {
    printf("%d ", arr[i]);
  }
  printf("\n");

  return 0;
}

Output

Array sebelum dimanipulasi:
1 2 3 4 5
Array setelah dimanipulasi:
1 2 10 4 5

Menambah Elemen pada Array

#include <stdio.h>

int main() {
  // Defining an array with 5 elements but 10 capacity
  int arr[10] = {1, 2, 3, 4, 5};

  // Displaying the original array
  printf("Original array:\n");
  for (int i = 0; i < 10; i++) {
    printf("%d ", arr[i]);
  }
  printf("\n");

  // Adding a new element to the array
  arr[5] = 6;

  // Displaying the modified array
  printf("Modified array:\n");
  for (int i = 0; i < 10; i++) {
    printf("%d ", arr[i]);
  }
  printf("\n");

  return 0;
}

Output

Original array:
1 2 3 4 5 0 0 0 0 0
Modified array:
1 2 3 4 5 6 0 0 0 0