Operator penugasan Dart

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

KategoriOperatorMakna
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:op= ba = a op b
Contoh nyata:a += ba = 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

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *