Nilai variabel jarang tetap diam sepanjang program. Poin skor bertambah, saldo berkurang setiap transaksi, dan penghitung maju satu demi satu. Operator penugasan mengatur semua pembaruan itu: operator menyimpan nilai baru ke dalam variabel yang sudah ada.

Penugasan Dasar #

Operator = menyimpan nilai dari sisi kanan ke variabel di sisi kiri. Compiler mengevaluasi sisi kanan terlebih dahulu, lalu mengikat hasilnya ke variabel. Statement int poin = 100; bukan persamaan matematika, melainkan perintah simpan: variabel poin diberi nilai 100.

Setelah variabel terbentuk, isi variabel boleh ditimpa nilai baru. Statement poin = 200; menggantikan nilai lama tanpa menyisakan apa pun dari nilai sebelumnya. Operator = sendiri menghasilkan nilai yang baru disimpan; sifat inilah yang memungkinkan penugasan berantai seperti a = b = 5, yang kita uji pada bab Precedence dan Associativity.

Compound Assignment #

C# menyediakan bentuk ringkas untuk pola “perbarui variabel dengan operasi terhadap nilainya sendiri”. Bentuk umumnya x op= y, yang ekuivalen dengan x = x op y.

OperatorContohEkuivalen dengan
+=poin += 50poin = poin + 50
-=poin -= 30poin = poin - 30
*=poin *= 2poin = poin * 2
/=poin /= 8poin = poin / 8
%=poin %= 7poin = poin % 7

Contoh Lengkap dan Bedah Baris #

csharp
int poin = 100;
Console.WriteLine(poin);

poin += 50;
Console.WriteLine(poin);
poin -= 30;
Console.WriteLine(poin);
poin *= 2;
Console.WriteLine(poin);
poin /= 8;
Console.WriteLine(poin);
poin %= 7;
Console.WriteLine(poin);

Output yang Dihasilkan:

text
100
150
120
240
30
2

Mari kita telaah baris demi baris:

  1. Baris 1 (int poin = 100;): Variabel poin dibuat dengan nilai awal 100.
  2. Baris 3 (poin += 50;): Nilai lama 100 ditambah 50, lalu hasil 150 disimpan kembali ke poin.
  3. Baris 5 (poin -= 30;): Nilai 150 dikurangi 30; poin kini bernilai 120.
  4. Baris 7 (poin *= 2;): Nilai 120 dikali 2; poin kini bernilai 240.
  5. Baris 9 (poin /= 8;): Pembagian 240 / 8 menghasilkan 30, dan hasilnya disimpan ke poin.
  6. Baris 11 (poin %= 7;): Sisa bagi 30 % 7 bernilai 2; nilai akhir poin adalah 2.

Pola yang sama berlaku untuk skenario nyata. Dompet digital dengan saldo awal tertentu cukup diperbarui dengan satu statement:

csharp
int saldo = 25000;
saldo += 15000;
Console.WriteLine(saldo);

Output yang Dihasilkan:

text
40000

Operator compound juga bekerja pada string. Karena + pada string berarti penggabungan teks, bentuk += menambahkan teks baru di akhir string yang ada:

csharp
string salam = "Halo";
salam += ", Siti";
Console.WriteLine(salam);

Output yang Dihasilkan:

text
Halo, Siti