Kita sudah melihat array diisi langsung lewat kurung kurawal. Pada praktiknya, nilai sering kali baru tersedia saat program berjalan, misalnya dihitung dari transaksi penjualan, sehingga array perlu disiapkan kosong terlebih dahulu. Bab ini merangkum seluruh bentuk inisialisasi array beserta perilaku elemen yang belum diisi, termasuk cara mengakses elemen dari ujung akhir.
Empat Bentuk Inisialisasi #
| Bentuk | Kapan dipakai |
|---|---|
{ 45000, 12000, 7500 } | Nilai sudah diketahui saat deklarasi; ukuran dihitung compiler |
new int[3] | Ukuran diketahui, nilai diisi kemudian |
new int[3] { 8000, 9000, 10000 } | Ukuran dan nilai ditulis eksplisit |
[5000, 15000] | Collection expression (C# 12), singkat seperti kurung kurawal |
int[] hargaA = { 45000, 12000, 7500 };
int[] hargaB = new int[3];
int[] hargaC = new int[3] { 8000, 9000, 10000 };
int[] hargaD = [5000, 15000];
Console.WriteLine(string.Join(" ", hargaA));
Console.WriteLine(string.Join(" ", hargaB));
Console.WriteLine(string.Join(" ", hargaC));
Console.WriteLine(string.Join(" ", hargaD));
int jumlahBaris = 4;
int[] hargaE = new int[jumlahBaris];
Console.WriteLine(hargaE.Length);Output yang Dihasilkan:
45000 12000 7500
0 0 0
8000 9000 10000
5000 15000
4Mari kita telaah poin-poin pentingnya:
- Baris 1 (
hargaA): Bentuk kurung kurawal hanya sah pada deklarasi yang langsung mengisi nilai. - Baris 2 (
hargaB):new int[3]membuat tiga elemen yang semuanya bernilai0karena elemenintdiberi nilai default. - Baris 4 (
hargaD): Tanda kurung siku adalah collection expression; compiler menghasilkan array yang sama seperti bentuk kurung kurawal. - Baris 9-10 (
hargaE): Ukuran array boleh berasal dari variabel, sehingga kapasitas bisa mengikuti data saat program berjalan.
Nilai Default Elemen #
Elemen yang belum diisi mengikuti nilai default tipenya: 0 untuk tipe numerik, False untuk bool, dan null untuk string atau tipe referensi lain. Kondisi ini penting diingat sebelum membaca elemen array string, karena elemennya belum menunjuk objek apa pun:
string[] nama = new string[3];
Console.WriteLine(nama[0] == null);Output yang Dihasilkan:
TrueIndeks dari Akhir dengan Operator Hat #
C# menyediakan operator hat (^) untuk menghitung indeks dari ujung akhir: ^1 adalah elemen terakhir, ^2 elemen sebelumnya, dan seterusnya. Operator ini juga berlaku pada penugasan:
int[] stok = { 10, 25, 40, 55 };
Console.WriteLine(stok[^1]);
Console.WriteLine(stok[^2]);
stok[^1] = 60;
Console.WriteLine(stok[3]);Output yang Dihasilkan:
55
40
60stok[^1] membaca elemen terakhir 55 tanpa perlu menulis stok[stok.Length - 1]. Penugasan stok[^1] = 60 kemudian mengubah elemen terakhir, sehingga stok[3] yang membaca posisi yang sama ikut melaporkan 60.