Struct di Solidity
Penjelasan
Struct mengelompokkan beberapa field (boleh beda tipe) jadi satu tipe data kustom, dideklarasikan dengan `struct NamaStruct { tipe field1; tipe field2; ... }`. Struct sangat sering dikombinasikan dengan mapping untuk menyimpan data kompleks per alamat, misalnya profil pengguna atau detail sebuah item.
Contoh Konsep
contract Kepegawaian {
struct Karyawan {
string nama;
uint256 gaji;
bool aktif;
}
mapping(address => Karyawan) public dataKaryawan;
function tambahKaryawan(string memory nama, uint256 gaji) public {
dataKaryawan[msg.sender] = Karyawan(nama, gaji, true);
}
}
Praktikum
Buat struct Produk dengan field nama (string) dan harga (uint256), lalu mapping(uint256 => Produk) public produkById dan function tambahProduk(uint256 id, string memory nama, uint256 harga).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Pola "mapping dari ID/address ke struct" adalah kombinasi PALING umum di smart contract nyata — hampir semua kontrak token, marketplace, atau sistem membership memakai pola ini untuk menyimpan data per entitas.