1. Operator penugasan dasar =
Simpan nilai ekspresi di sebelah kanan ke variabel sebelah kiri dan timpa nilai lama variabel tersebut.
Sintaks:
variabel = nilai atau ekspresi;
int age;
age = 10; // Berikan nilai 10 ke variabel age
String name;
name= "sam"; // Penugasan teks stringCode language: JavaScript (javascript)
2. Operator penugasan peka null ??=
Penugasan hanya dijalankan jika nilai variabel sebelah kiri adalah null. Jika variabel bukan null, nilai asli tetap tidak berubah.
Sintaks:
variabel ??= nilai;
Sama dengan kode berikut:
if (variabel == null) {
variabel = nilai;
}Code language: JavaScript (javascript)
Contoh:
void main() {
int? total = null;
total ??= 5;
print(total); // Keluar 5, penugasan berlaku karena total bernilai null
int? count = 100;
count ??= 200;
print(count); // Keluar 100, penugasan tidak berlaku karena count bukan null
}Code language: PHP (php)
3. Operator penugasan gabungan
Melakukan operasi aritmatika sekaligus penugasan dalam satu langkah
Untuk operator apapun op
a op= b memiliki makna yang sama dengan a = a op b
| Kategori | Operator | Makna |
|---|---|---|
| Aritmatika dasar | += | Tambah lalu tugaskan |
-= | Kurang lalu tugaskan | |
*= | Kali lalu tugaskan | |
/= | Bagi pecahan lalu tugaskan | |
| Pembagian bulat | ~/= | Bagi bilangan bulat lalu tugaskan |
| Sisa bagi | %= | Hitung modulus lalu tugaskan |
| Pergeseran bit kiri | <<= | Geser bit ke kiri lalu tugaskan |
| Pergeseran bit kanan | >>= | Geser bit ke kanan lalu tugaskan |
| Pergeseran kanan tanpa tanda | >>>= | Geser kanan tanpa tanda lalu tugaskan |
| Bitwise AND | &= | Operasi AND bit lalu tugaskan |
| Bitwise XOR | ^= | Operasi XOR bit lalu tugaskan |
| Bitwise OR | |= | Operasi OR bit lalu tugaskan |
| Cara kerja operator: | a op= b | a = a op b |
| Contoh nyata: | a += b | a = a + b |
Contoh kode:
void main() {
var num = 2;
// *= Penugasan gabungan perkalian
num *= 3;
print(num); // 6, sama dengan num = num * 3
// += Penjumlahan
num += 4;
print(num); // 10, sama dengan num = num + 4
// -= Pengurangan
num -= 2;
print(num); // 8
// /= Pembagian pecahan
double d = 10;
d /= 2;
print(d); // 5.0
// ~/= Pembagian bilangan bulat
int n = 7;
n ~/= 2;
print(n); // 3
// %= Modulus
int m = 9;
m %= 2;
print(m); // 1
// <<= Pergeseran kiri
int bit1 = 1;
bit1 <<= 2; // 1 << 2 = 4
print(bit1); // 4
// >>= Pergeseran kanan
int bit2 = 8;
bit2 >>= 2; // 8 >> 2 = 2
print(bit2); // 2
// >>>= Pergeseran kanan tanpa tanda
int bit3 = -8;
bit3 >>>= 2;
print(bit3); //4611686018427387902 bilangan yang sangat besar
// &= Bitwise AND
int x = 6; // 110
x &= 3; // 011
print(x); // 010 = 2
// ^= Bitwise XOR
int y = 5;
y ^= 3;
print(y);
// |= Bitwise OR
int z = 4;
z |= 1;
print(z); // 5
}Code language: PHP (php)
Tentang pergeseran bit: int bit1 = 1; geser ke kiri sebanyak 2 bit,
Representasi biner 32 bit dari bilangan desimal 1:
00000000 00000000 00000000 00000001
x << n: Geser semua bit biner x sebanyak n posisi ke kiri, isi bit kosong di kanan dengan angka 0, buang bit yang keluar batas di sebelah kiri.
Hasil dari contoh di atas menjadi:
00000000 00000000 00000000 00000100
Nilai biner ini setara dengan bilangan desimal 4
Kita akan bahas operator logika di bagian selanjutnya. Untuk sekarang cukup pahami operator penugasan saja, ini materi utama pelajaran ini.
void main() {
// 1. Penugasan dasar =
var a = 2;
print(a == 2);
// 2. Penugasan perkalian gabungan *=
a *= 3; // a = a * 3;
print(a == 6);
// 3. Penugasan penjumlahan gabungan +=
a += 4; // a = a + 4;
print(a == 10);
// 4. Penugasan peka null ??=
int? b; // Nilai bawaan null
b ??= 20;
print(b == 20);
b ??= 99; // b bukan null, tidak berubah
print(b == 20);
// 5. Pengurangan -=
a -= 5;
print(a == 5);
// 6. Modulus %=
a %= 3;
print(a == 2);
}Code language: Dart (dart)
Semua hasil cetak bernilai true