Belajar Blockchain Developer - Ethereum & EVM
Episode 3 of 28

Belajar Blockchain Developer - Ethereum & EVM

Menyelami Ethereum dan Ethereum Virtual Machine (EVM): bagaimana state tersimpan, cara kerja gas, perbedaan akun EOA dan contract, serta praktik men-deploy kontrak pertama ke testnet Sepolia

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 2 kita memahami block, hashing, dan consensus, pada episode ini kita masuk ke ekosistem yang paling relevan untuk karir blockchain developer: Ethereum dan Ethereum Virtual Machine (EVM). Kenapa Ethereum? Karena mayoritas smart contract di dunia — Solidity, DeFi, NFT, tokenization — hidup di EVM. Menguasai EVM berarti kalian bisa bekerja di Ethereum, BNB Chain, Polygon, Base, dan puluhan chain lainnya dengan satu keterampilan.

EVM adalah "CPU virtual" yang berjalan di ribuan node sekaligus. Setiap node mengeksekusi kode kontrak yang sama dan menghasilkan hasil yang sama — inilah yang menjamin state Ethereum konsisten tanpa perlu mempercayai node mana pun.

Ethereum sebagai State Machine

Ethereum bisa dipandang sebagai state machine: satu state raksasa (daftar semua akun dan saldo) yang diubah oleh transaksi. State ini tidak disimpan di database pusat, melainkan digabung ke dalam setiap block dan direplikasi ke seluruh node.

Komponen utama Ethereum
┌──────────────────────────────────────────────┐
│  ETHEREUM STATE                              │
│  ├── Account A (EOA)   → saldo ETH, nonce    │
│  ├── Account B (EOA)   → saldo ETH, nonce    │
│  ├── Contract X        → storage, code hash  │
│  └── ... (jutaan akun)                       │
├──────────────────────────────────────────────┤
│  Transaksi → mengubah state → dikemas block  │
└──────────────────────────────────────────────┘

Sebagai developer, kalian berinteraksi dengan mesin ini lewat tiga primitif: transaksi (mengubah state), call (membaca state tanpa biaya), dan gas (biaya eksekusi).

Dua Tipe Akun

TipeDipicu olehIsi StateContoh
EOA (Externally Owned Account)Private key penggunaBalance, nonceWallet MetaMask
Contract accountTransaksi/function callBalance, storage, codeKontrak ERC-20

Perbedaan kritis: EOA dikendalikan manusia (punya private key), contract dikendalikan kode. EOA bisa memulai transaksi; contract hanya bisa bertindak ketika dipanggil. Ini menjadi dasar banyak pola keamanan dan otomasi yang akan kita bahas.

Gas: Harga Komputasi

Setiap operasi di EVM punya harga gas tetap — menjumlahkan angka itu murah, menyimpan data lebih mahal. Transaksi menghitung total gas, lalu biaya total = gas * harga gas (gwei). Kalian harus paham tiga istilah:

  • Gas limit: batas maksimum gas yang mau kalian bayar.
  • Gas used: gas aktual yang dieksekusi.
  • Gas price / priority fee: harga per unit gas, termasuk tip ke validator.

Kenapa gas penting? Karena ia membuat setiap program on-chain tunduk pada disiplin efisiensi. Kontrak yang boros komputasi (loop panjang, storage besar) akan sangat mahal dipakai — ini yang mendorong optimasi yang kita pelajari di episode 17.

Tip

Gunakan hardhat-gas-reporter atau forge test --gas-report untuk melihat biaya gas setiap fungsi selama pengembangan. Membangun kebiasaan membaca gas report sejak dini menghemat banyak biaya production nanti.

Mari deploy kontrak paling sederhana ke Sepolia testnet — jaringan uji coba Ethereum yang menggunakan ETH faucet (gratis, bukan uang asli).

Buat proyek dan kontrak:

Inisialisasi proyek Hardhat
mkdir ~/blockchain-lab/hello-evm && cd ~/blockchain-lab/hello-evm
npm init -y
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox
npx hardhat init --yes

Buat kontrak HelloEVM:

contracts/HelloEVM.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
 
contract HelloEVM {
    string public message;
 
    event MessageChanged(address indexed by, string value);
 
    constructor(string memory _message) {
        message = _message;
    }
 
    function setMessage(string memory _message) external {
        message = _message;
        emit MessageChanged(msg.sender, _message);
    }
}

Tambahkan jaringan Sepolia di hardhat.config.js:

hardhat.config.js
require("@nomicfoundation/hardhat-toolbox");
 
module.exports = {
  solidity: "0.8.24",
  networks: {
    sepolia: {
      url: "https://ethereum-sepolia-rpc.publicnode.com",
      accounts: [process.env.PRIVATE_KEY],
    },
  },
};

Ambil ETH gratis dari faucet Sepolia, lalu deploy:

Deploy ke Sepolia
PRIVATE_KEY=<private_key_testnet> npx hardhat run scripts/deploy.js --network sepolia

Warning

Gunakan hanya wallet testnet dengan private key khusus untuk development. Jangan pernah memakai wallet utama — key yang bocor ke log atau repositori berarti dana hilang. Di episode 18 kita bahas pengelolaan key yang benar.

Verifikasi Kontrak

Setelah deploy, verifikasi kode kontrak di explorer (Sepolia Etherscan) supaya transparan dan bisa dibaca siapa pun:

Verifikasi kontrak di explorer
PRIVATE_KEY=<private_key_testnet> npx hardhat verify <alamat_kontrak> "Halo EVM" --network sepolia

Verifikasi penting bukan hanya untuk kredibilitas — aplikasi frontend dan alat analitik membaca ABI terverifikasi untuk menampilkan antarmuka kontrak kalian.

Penutup

Inti yang harus dibawa pulang:

  • Ethereum adalah state machine; EVM mengeksekusi kode yang sama di semua node.
  • EOA dikendalikan private key; contract dikendalikan kode.
  • Gas = biaya komputasi EVM; gas limit, gas used, dan gas price menentukan biaya.
  • Deploy pertama ke Sepolia: Hardhat + faucet + npx hardhat run --network sepolia.
  • Verifikasi kontrak di explorer membuat kontrak transparan dan terintegrasi.

Di episode 4 selanjutnya kita mulai menulis bahasa yang akan menemani kalian bertahun-tahun — Solidity dasar: tipe data, fungsi, modifier, events, dan token standard ERC-20, dengan praktik membangun kontrak token pertama kalian. Mari lanjut ke episode 4!