Study
Solidity

Tugas Akhir

Penjelasan

Sekarang saatnya menggabungkan semua yang sudah dipelajari — dari mapping sampai payable — jadi satu smart contract utuh: sistem tabungan sederhana dengan pencatatan setor dan tarik.

Tugas

Buat contract Tabungan dengan: mapping(address => uint256) public saldo, event Setor(address indexed akun, uint256 jumlah) dan event Tarik(address indexed akun, uint256 jumlah), modifier cukupSaldo(uint256 jumlah) yang require saldo[msg.sender] >= jumlah, function payable setor() yang menambah saldo[msg.sender] dengan msg.value lalu emit Setor, dan function tarik(uint256 jumlah) yang memakai modifier cukupSaldo, mengurangi saldo, mengirim Ether balik ke msg.sender lewat call, lalu emit Tarik.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Kerjakan modifier cukupSaldo dulu, lalu setor(), baru terakhir tarik() yang paling kompleks (butuh urutan yang benar: kurangi saldo DULU sebelum kirim Ether, supaya aman dari serangan reentrancy). Program besar selalu lebih mudah kalau dipecah jadi langkah-langkah kecil.