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).
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.