Study
Solidity

Variabel State & Visibility

Penjelasan

Variabel STATE dideklarasikan langsung di dalam contract (bukan di dalam function) — nilainya tersimpan PERMANEN di blockchain (storage), bertahan antar pemanggilan function. Visibility mengatur siapa boleh mengakses: `public` (bisa dibaca siapa saja, Solidity otomatis membuatkan "getter function"), `private` (hanya bisa diakses dari dalam contract itu sendiri), `internal` (bisa diakses contract itu sendiri DAN contract turunannya), `external` (khusus function, hanya bisa dipanggil dari LUAR contract).

Contoh Konsep

contract Akun {
    uint256 public saldo = 100;      // bisa dibaca siapa saja, ada getter otomatis
    address private pemilik;          // cuma bisa diakses dari dalam contract ini
    uint256 internal batasMinimal = 10; // bisa diakses contract ini + turunannya

    constructor() {
        pemilik = msg.sender;   // msg.sender = alamat yang men-deploy contract
    }
}

Praktikum

Buat contract Karyawan dengan variabel state public string nama dan private uint256 gaji (biar tidak bisa dibaca langsung dari luar).

Editor Latihan

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

Tips

Variabel `public` OTOMATIS mendapat getter function gratis dari compiler — kamu tidak perlu menulis function `getSaldo()` manual, tinggal panggil `namaKontrak.saldo()` dari luar.