Perulangan di Solidity
Penjelasan
Solidity mendukung `for` dan `while` seperti bahasa C-family. Tapi berbeda dari bahasa biasa, setiap iterasi loop di smart contract MENGKONSUMSI GAS (biaya eksekusi) — loop yang terlalu panjang atau tidak terbatas (mis. mengulang seluruh isi array yang bisa membesar tanpa batas) bisa membuat transaksi kehabisan gas dan GAGAL total, bahkan bisa mengunci kontrak secara permanen kalau loop itu bagian dari logika penting.
Contoh Konsep
function jumlahkanArray(uint256[] memory angka) public pure returns (uint256) {
uint256 total = 0;
for (uint256 i = 0; i < angka.length; i++) {
total += angka[i];
}
return total;
}
Praktikum
Buat function cariMaksimum(uint256[] memory angka) yang mengembalikan nilai terbesar dari array angka memakai for loop.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
HINDARI loop pada array yang ukurannya bisa terus bertambah tanpa batas dari input pengguna (mis. daftar SEMUA orang yang pernah transaksi) — kalau arraynya jadi terlalu besar, function itu bisa selamanya gagal dipanggil karena kehabisan gas.