Kasir sebuah toko perlu mencatat stok empat produk: apel 12, jeruk 8, mangga 25, dan pisang 5. Tanpa array, kita membuat empat variabel terpisah, dan setiap penambahan produk menuntut variabel baru beserta penyesuaian di seluruh kode. Array satu dimensi menyelesaikan masalah tersebut: satu variabel menampung banyak nilai sejenis, dan setiap nilai diakses lewat nomor posisi yang tetap.

Mendeklarasikan Array Satu Dimensi #

Sintaks tipe[] nama mendeklarasikan array, sedangkan kurung kurawal mengisi nilainya. Runtime menempatkan elemen secara berurutan di memori, memberi indeks 0 pada elemen pertama, dan menyimpan jumlah elemen pada properti Length. Array termasuk tipe referensi: variabelnya menyimpan alamat objek array, bukan nilai-nilai elemennya secara langsung.

csharp
int[] stokBuah = { 12, 8, 25, 5 };

Console.WriteLine(stokBuah[0]);
Console.WriteLine(stokBuah[2]);

stokBuah[1] = 20;
Console.WriteLine(stokBuah[1]);
Console.WriteLine(stokBuah.Length);

Output yang Dihasilkan:

text
12
25
20
4

Mari kita telaah baris demi baris:

  1. Baris 1 (int[] stokBuah = { 12, 8, 25, 5 };): Compiler menghitung empat nilai di dalam kurung kurawal, lalu runtime mengalokasikan array int berukuran empat dan mengisinya sesuai urutan.
  2. Baris 3 (stokBuah[0]): Indeks 0 menunjuk elemen pertama, sehingga program mencetak 12.
  3. Baris 4 (stokBuah[2]): Indeks 2 menunjuk elemen ketiga karena perhitungan indeks dimulai dari nol.
  4. Baris 6 (stokBuah[1] = 20;): Penugasan lewat indeks mengganti nilai lama 8 menjadi 20; jumlah elemen array tidak berubah.
  5. Baris 8 (stokBuah.Length): Properti Length melaporkan jumlah elemen, yaitu 4, bukan nilai salah satu elemen.

Ukuran yang Tetap Sejak Alokasi #

Array dibuat dengan ukuran tetap: setelah int[] stokBuah dialokasikan untuk empat elemen, kita tidak bisa menambah elemen kelima atau menghapus salah satunya. Perintah seperti stokBuah.Add(...) memang tidak ada pada array, karena array adalah struktur berukuran statis. Bila kebutuhan datanya memang bertambah dan berkurang selama program berjalan, gunakan koleksi seperti List yang dibahas pada section tersendiri.

Hal yang tetap bisa dilakukan adalah mengganti nilai elemen yang ada. Penugasan stokBuah[1] = 20 pada contoh sebelumnya bekerja kapan saja tanpa mengubah ukuran array. Perbedaan “ganti isi” dan “ubah ukuran” ini penting dipahami sejak awal agar pilihan struktur data tepat.

Batas Indeks yang Sah #

Indeks yang sah berada pada rentang 0 sampai Length - 1. Akses di luar rentang tersebut memicu exception IndexOutOfRangeException saat program berjalan:

csharp
try
{
    Console.WriteLine(stokBuah[4]);
}
catch (IndexOutOfRangeException e)
{
    Console.WriteLine(e.Message);
}

Output yang Dihasilkan:

text
Index was outside the bounds of the array.

Statement stokBuah[4] meminta elemen kelima, padahal array hanya memuat empat elemen. Runtime kemudian melempar exception, dan blok catch menangkapnya lalu mencetak pesan bawaan .NET.