Operator di Solidity
Penjelasan
Solidity memakai operator standar C-family: aritmatika (`+ - * / %`), perbandingan (`== != > < >= <=`), logika (`&& || !`). Sejak Solidity versi 0.8 ke atas, operasi aritmatika OTOMATIS dicek terhadap overflow/underflow (mis. `uint256` yang hasilnya jadi negatif akan otomatis di-revert/dibatalkan) — di versi lama (0.7 ke bawah), overflow ini TIDAK dicek dan jadi sumber bug keamanan terkenal.
Contoh Konsep
uint256 a = 10;
uint256 b = 3;
uint256 hasil = a % b; // 1
bool sama = (a == b); // false
uint256 kecil = 0;
// kecil - 1; // Di Solidity 0.8+, ini otomatis REVERT (underflow terdeteksi)
// Kalau MEMANG butuh overflow tanpa cek (jarang, butuh alasan kuat), pakai unchecked
unchecked {
uint256 hasilUnchecked = kecil - 1; // TIDAK di-revert, hasilnya "wrap around"
}
Praktikum
Buat function bandingkan(uint256 a, uint256 b) yang mengembalikan bool apakah a lebih besar dari b.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Proteksi overflow/underflow otomatis sejak Solidity 0.8 adalah alasan besar kenapa versi ini jauh lebih aman dari versi lama — hindari blok `unchecked` kecuali kamu benar-benar paham konsekuensinya dan butuh optimasi gas.