Study
Solidity

Mapping di Solidity

Penjelasan

Mapping (`mapping(KeyType => ValueType)`) adalah struktur data key-value paling FUNDAMENTAL di Solidity — dipakai di HAMPIR SEMUA kontrak untuk menyimpan saldo per alamat, kepemilikan token, atau data lain yang di-lookup berdasarkan key. Berbeda dari dictionary di bahasa lain, mapping TIDAK punya `.length` dan TIDAK BISA di-iterasi (di-loop) — kamu harus tahu key-nya untuk mengakses value, atau simpan daftar key terpisah kalau perlu iterasi.

Contoh Konsep

contract Token {
    mapping(address => uint256) public saldo;

    function setor(uint256 jumlah) public {
        saldo[msg.sender] += jumlah;   // msg.sender = alamat pemanggil function
    }

    function cekSaldo(address akun) public view returns (uint256) {
        return saldo[akun];   // key yang belum pernah diisi otomatis bernilai 0
    }
}

Praktikum

Buat contract dengan mapping(address => bool) public sudahVoting, dan function vote() yang menandai msg.sender sudah voting (set true).

Editor Latihan

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

Tips

Key mapping yang BELUM PERNAH diisi otomatis bernilai default (0 untuk uint, false untuk bool, dst) — TIDAK melempar error seperti mengakses key yang tidak ada di dictionary bahasa lain. Ini nyaman tapi juga bisa menyembunyikan bug kalau kamu lupa key-nya memang belum pernah diisi.