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.
| Operator | Contoh | Ekuivalen dengan |
|---|---|---|
+= | poin += 50 | poin = poin + 50 |
-= | poin -= 30 | poin = poin - 30 |
*= | poin *= 2 | poin = poin * 2 |
/= | poin /= 8 | poin = poin / 8 |
%= | poin %= 7 | poin = poin % 7 |
Contoh Lengkap dan Bedah Baris #
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:
100
150
120
240
30
2Mari kita telaah baris demi baris:
- Baris 1 (
int poin = 100;): Variabelpoindibuat dengan nilai awal100. - Baris 3 (
poin += 50;): Nilai lama100ditambah50, lalu hasil150disimpan kembali kepoin. - Baris 5 (
poin -= 30;): Nilai150dikurangi30;poinkini bernilai120. - Baris 7 (
poin *= 2;): Nilai120dikali2;poinkini bernilai240. - Baris 9 (
poin /= 8;): Pembagian240 / 8menghasilkan30, dan hasilnya disimpan kepoin. - Baris 11 (
poin %= 7;): Sisa bagi30 % 7bernilai2; nilai akhirpoinadalah2.
Pola yang sama berlaku untuk skenario nyata. Dompet digital dengan saldo awal tertentu cukup diperbarui dengan satu statement:
int saldo = 25000;
saldo += 15000;
Console.WriteLine(saldo);Output yang Dihasilkan:
40000Operator compound juga bekerja pada string. Karena + pada string berarti penggabungan teks, bentuk += menambahkan teks baru di akhir string yang ada:
string salam = "Halo";
salam += ", Siti";
Console.WriteLine(salam);Output yang Dihasilkan:
Halo, Siti