Program penjualan tiket harus mengingat nama pembeli, jumlah tiket, dan harga satuan selama proses berjalan. Data seperti ini disimpan dalam variable: sebuah nama yang terikat pada lokasi memori dengan tipe tertentu. Bab ini membahas aturan mendeklarasikan variable di C#, mulai dari sintaks dasar, perilaku compiler saat variable dibuat, sampai larangan membaca variable yang belum diberi nilai.

Sintaks Deklarasi Variable #

Bentuk umum deklarasi variable di C#:

text
tipe namaVariable = nilaiAwal;

Tiga bagian membentuk satu deklarasi:

  1. Tipe menentukan ukuran slot memori dan operasi yang sah atas nilainya; tipe-tipe dibedah pada bab-bab berikutnya di section ini.
  2. Nama harus berupa identifier yang sah; aturan lengkapnya dibahas pada bab Identifier dan Keyword.
  3. Nilai awal bersifat opsional, tetapi variable tanpa nilai awal tidak boleh dibaca sebelum diberi nilai.

Compiler memproses deklarasi dengan menyiapkan slot memori seukuran tipenya, lalu mengikat nama variable ke slot tersebut. Tanda sama dengan (=) menyalin hasil evaluasi sisi kanan ke dalam slot. Contoh berikut menggabungkan ketiga bentuk: deklarasi dengan nilai awal, deklarasi tanpa nilai awal, dan pemberian nilai belakangan.

csharp
string namaPembeli = "Budi";
int jumlahTiket = 3;
int hargaTiket = 50000;
int totalHarga;

totalHarga = jumlahTiket * hargaTiket;

Console.WriteLine(namaPembeli);
Console.WriteLine(jumlahTiket);
Console.WriteLine(hargaTiket);
Console.WriteLine(totalHarga);

Output yang Dihasilkan:

text
Budi
3
50000
150000

Mari kita telaah baris demi baris:

  1. Baris 1 (string namaPembeli = "Budi";): Compiler menyiapkan slot bertipe string, memberi nama namaPembeli, lalu mengisi nilai awal "Budi".
  2. Baris 2 (int jumlahTiket = 3;): Slot int bernama jumlahTiket dibuat dan diisi 3.
  3. Baris 3 (int hargaTiket = 50000;): Slot int kedua menampung harga satuan tiket.
  4. Baris 4 (int totalHarga;): Variable dideklarasikan tanpa nilai; slot sudah disiapkan tetapi belum boleh dibaca.
  5. Baris 6 (totalHarga = jumlahTiket * hargaTiket;): Perhitungan 3 * 50000 dievaluasi terlebih dahulu, lalu hasilnya 150000 disalin ke totalHarga.
  6. Baris 8-11 (Console.WriteLine(...)): Setiap variable dicetak satu per satu sehingga isi slot terlihat di terminal.

Variable Tanpa Nilai Awal #

Menunda pemberian nilai sah, asalkan variable diberi nilai sebelum dibaca. Compiler menerapkan aturan definite assignment: setiap jalur kode harus memberi nilai pada variable sebelum variable tersebut dibaca. Pelanggaran aturan ini ditolak saat kompilasi, bukan saat program berjalan.

csharp
int totalHarga;
Console.WriteLine(totalHarga);

Pesan compiler:

text
Program.cs(2,19): error CS0165: Use of unassigned local variable 'totalHarga'

Salinan lengkap pesan juga memuat path project; bagian path dipangkas agar ringkas. Kode CS0165 menunjuk persis posisi variable dibaca sebelum diberi nilai. Perbaikannya satu: beri nilai terlebih dahulu, persis seperti totalHarga pada contoh utama.

Banyak Variable dalam Satu Deklarasi #

Tipe yang sama boleh menampung beberapa variable dalam satu baris, dipisah koma:

csharp
int lebar = 8, tinggi = 5;
int luas = lebar * tinggi;

Console.WriteLine(luas);

Output yang Dihasilkan:

text
40

Compiler membuat dua slot int sekaligus pada baris 1. Pola ini sah, tetapi kebanyakan pedoman gaya kode menyarankan satu variable per baris supaya daftar variable mudah dipindai.