Study
← Semua Kategori

Solidity

Pengenalan Solidity & Smart Contract

Pengertian Solidity, smart contract, dan Ethereum Virtual Machine (EVM) sebagai tempat kontrak dijalankan.

Struktur Kontrak & Pragma Version

Anatomi file Solidity: SPDX license identifier, pragma version, dan keyword contract sebagai pembungkus kode.

Tipe Data di Solidity

Tipe data dasar Solidity: uint/int, bool, address (alamat wallet/kontrak), bytes, dan string.

Variabel State & Visibility

Variabel state yang tersimpan permanen di blockchain, dan visibility (public/private/internal/external) yang mengatur siapa boleh mengaksesnya.

Function Dasar: view, pure, payable

Mendefinisikan function di Solidity, dan tiga modifier khusus: view (baca state), pure (tanpa akses state), payable (bisa menerima Ether).

Operator di Solidity

Operator aritmatika, perbandingan, dan logika di Solidity, serta perlindungan overflow/underflow bawaan sejak versi 0.8.

Percabangan di Solidity

Struktur if, else if, else di Solidity — sintaks mirip bahasa C-family.

Perulangan di Solidity

Perulangan for dan while di Solidity, dan alasan kenapa loop harus dipakai hati-hati karena batas gas.

Array di Solidity

Array fixed-size dan dynamic di Solidity, storage array (permanen) vs memory array (sementara).

Mapping di Solidity

Struktur data key-value paling penting di Solidity — mapping, dipakai untuk saldo, kepemilikan, dan lookup cepat berbasis address.

Struct di Solidity

Mengelompokkan beberapa field jadi satu tipe data kustom dengan struct, sering dikombinasikan dengan mapping.

Enum di Solidity

Merepresentasikan status/kategori tetap dengan enum, umum dipakai untuk state machine sederhana pada kontrak.

Function Modifier di Solidity

Membuat aturan yang bisa dipakai ulang di banyak function dengan modifier kustom, misalnya membatasi akses khusus pemilik kontrak.

Events & Logging di Solidity

Mencatat aktivitas penting kontrak ke blockchain log dengan event dan emit, agar bisa dipantau aplikasi luar.

Error Handling: require, revert, assert

Membatalkan transaksi dengan aman memakai require (validasi input), revert (custom error), dan assert (invariant internal).

Inheritance & Interface di Solidity

Pewarisan contract dengan is, override function, dan interface sebagai kontrak standar untuk interoperabilitas antar kontrak.

Payable & Ether: msg.sender, msg.value

Menerima Ether dengan function payable, dan variabel global msg.sender/msg.value untuk mengetahui siapa mengirim berapa.

Storage vs Memory vs Calldata

Tiga lokasi penyimpanan data di Solidity — storage (permanen, mahal), memory (sementara), dan calldata (parameter external, paling murah).

Tugas Akhir

Latihan akhir menggabungkan struct, mapping, modifier, event, dan require dalam satu smart contract sistem tabungan sederhana.