﻿---
title: "Kontrak pintar"
description: "Pelajari arti kontrak pintar, cara node mengeksekusinya, peran data eksternal dan wewenang peningkatan, serta hal yang perlu diperiksa sebelum berinteraksi."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kontrak pintar

> Hanya untuk tujuan edukasi; bukan nasihat investasi. Transaksi kontrak pintar dapat menimbulkan kerugian yang tidak dapat dipulihkan.

<a id="answer"></a>

## Jawaban langsung

Kontrak pintar adalah program yang diterapkan pada blockchain atau jaringan eksekusi terdistribusi sejenis. Program ini berisi kode dan, pada banyak platform, status yang persisten. Transaksi atau kontrak lain dapat memanggil fungsinya; node jaringan menjalankan aturan yang sama dan menerima perubahan status hasilnya melalui proses validasi dan konsensus jaringan.

“Pintar” tidak berarti program memahami maksud pengguna, dan “kontrak” tidak otomatis menjadikannya perjanjian yang dapat ditegakkan secara hukum. Istilah ini menggambarkan kode yang dapat memberlakukan kondisi tertentu dalam batas kemampuan dan data yang tersedia di lingkungan eksekusinya.

Kontrak pintar dapat:

- menyimpan atau memindahkan aset digital sesuai kondisi terprogram;
- mencatat dan memperbarui status aplikasi; dan
- berpadu dengan kontrak lain untuk membangun bursa, sistem pinjaman, permainan, alat tata kelola, dan aplikasi on-chain lainnya.

Prediktabilitasnya terbatas pada kode yang diterapkan dan inputnya. Kontrak dapat berjalan tepat seperti ditulis tetapi tetap menghasilkan akibat yang tidak diinginkan karena cacat, desain berbahaya, hak istimewa yang dibobol, atau data eksternal yang keliru.

<a id="mechanism"></a>

## Cara kerja

Interaksi umum mengikuti langkah berikut:

1. Pengembang menulis dan menguji kode sumber, mengompilasinya jika diwajibkan platform, lalu menerapkan program hasilnya dalam sebuah transaksi.
2. Penerapan memberi program pengenal atau alamat on-chain dan dapat menginisialisasi status serta peran administratifnya.
3. Pengguna, aplikasi, atau kontrak lain mengirim panggilan yang memuat pemilih fungsi, parameter, dan terkadang aset.
4. Setiap node validator menjalankan panggilan berdasarkan aturan mesin virtual dan protokol yang sama. Jika syarat wajib gagal, panggilan dapat dikembalikan meski biaya transaksi masih dapat dikenakan.
5. Jika panggilan berhasil dan dimasukkan jaringan, perubahan status serta peristiwa yang dipancarkan menjadi bagian dari catatan blockchain.

Eksekusi hanya deterministik untuk informasi yang tersedia dalam konteks eksekusi yang disepakati. Kontrak tidak dapat mengambil sendiri cuaca, harga pasar, atau pembayaran bank dari internet. Aplikasi yang memerlukan fakta off-chain memakai oracle, pesan bertanda tangan, bridge, atau operator berhak khusus sehingga menambahkan asumsi kepercayaan dan kegagalan di luar kode.

Kode yang diterapkan tidak selalu merupakan seluruh sistem. Sebagian kontrak tidak dapat diubah, sedangkan pola proxy dan tata kelola dapat mengarahkan panggilan ke logika baru atau mengubah parameter. Karena itu, pengguna perlu memeriksa kunci peningkatan, kewenangan administrator, kontrol jeda, rancangan oracle, dan kontrak yang terhubung selain antarmuka aplikasi.

Sebelum menandatangani interaksi, periksa:

- jaringan dan alamat kontrak lengkap dari sumber independen tepercaya;
- fungsi yang telah didekode, parameter, jumlah aset, dan penerima;
- allowance token atau izin operator yang dibuat oleh panggilan;
- apakah kontrak terverifikasi, dapat ditingkatkan, dijeda, atau dikendalikan akun berhak khusus; dan
- bila praktis, apakah uji bernilai kecil mencakup jalur masuk dan keluar yang dimaksud.

<a id="example"></a>

## Contoh

Bayangkan kontrak escrow untuk layanan digital. Pembeli menyetor 1,000 USDC, lalu kontrak mencatat pembeli, penjual, jumlah, dan syarat penyelesaian. Jika pembeli menyetujui penyerahan, kontrak menyerahkan dana kepada penjual. Jika syarat tidak terpenuhi dalam 24 jam, jalur pengembalian dana yang diprogram menjadi tersedia.

Kontrak tidak mengetahui apakah layanan memuaskan kecuali rancangan memberinya fakta tersebut. Jika persetujuan berasal dari kunci pembeli, kunci yang dibobol dapat mengizinkan pencairan. Jika oracle atau administrator menentukan hasil, pihak itu menjadi bagian model kepercayaan. Cacat kontrol akses atau penanganan token juga dapat menggagalkan aturan escrow. Eksekusi otomatis mengurangi sebagian proses manual, tetapi tidak menghilangkan kebutuhan menilai setiap dependensi.

<a id="risks"></a>

## Risiko dan kontrol

- **Cacat kode:** reentrancy, pembukuan keliru, panggilan eksternal tidak aman, atau kasus batas dapat menghilangkan atau mengunci aset. Utamakan rancangan kecil yang teruji baik dan tinjau kode yang diterapkan, bukan hanya lencana audit.
- **Risiko hak istimewa dan peningkatan:** administrator dapat menjeda sistem, mengganti logika, mengubah biaya, atau memindahkan aset. Periksa pengendali tiap peran, penggunaan timelock atau multisignature, dan apa saja yang dapat berubah.
- **Risiko oracle dan integrasi:** kode yang benar dapat bertindak berdasarkan data usang, dimanipulasi, atau salah skala, sementara kegagalan token, bridge, atau kontrak lain dapat menyebar lewat komposisi.
- **Risiko transaksi dan persetujuan:** antarmuka berbahaya dapat menampilkan alamat, fungsi, penerima, atau allowance tak terbatas yang keliru. Dekode permintaan dan batasi izin sesuai kebutuhan.
- **Risiko desain ekonomi:** transaksi valid masih dapat memicu likuidasi, manipulasi harga, kegagalan insentif, atau penarikan massal atas likuiditas terbatas. Kebenaran kode bukan solvabilitas ekonomi.
- **Risiko operasional:** kemacetan, reorganisasi rantai, gangguan sequencer, atau antarmuka yang tidak tersedia dapat menunda tindakan meski kontrak tetap diterapkan.
- **Tidak dapat dibatalkan:** transaksi rantai publik umumnya tidak memiliki mekanisme chargeback. Dana yang dikirim melalui fungsi salah atau ke kontrak berbahaya mungkin mustahil dipulihkan.

Audit adalah bukti mengenai versi dan cakupan kode tertentu, bukan jaminan. Periksa apakah bytecode yang diterapkan atau sumber terverifikasi cocok dengan versi yang ditinjau dan apakah peningkatan, dependensi, atau perubahan konfigurasi setelahnya berada di luar audit.

<a id="misconceptions"></a>

## Kesalahpahaman umum

- **“Kode berjalan otomatis tanpa transaksi.”** Sebagian besar fungsi pengubah status memerlukan transaksi atau panggilan on-chain lain; tindakan berbasis waktu mungkin memerlukan pelaksana eksternal.
- **“Kode tidak dapat berubah.”** Kontrak imutabel tidak dapat menulis ulang bytecode yang diterapkan, tetapi proxy, tata kelola, dan migrasi dapat mengubah logika yang dijangkau pengguna.
- **“Kode publik adalah kode aman.”** Keterbukaan membantu peninjauan, tetapi tidak membuktikan kebenaran, administrasi yang jujur, atau ekonomi yang sehat.
- **“Audit menjamin keamanan.”** Peninjauan dibatasi waktu dan cakupan, dapat melewatkan cacat atau mengecualikan risiko operasional dan ekonomi.
- **“Transaksi berhasil berarti tindakan yang dimaksud terjadi.”** Keberhasilan hanya berarti kode yang dipanggil tidak dikembalikan; tujuan, peristiwa terdekode, perpindahan aset, dan izin hasilnya tetap perlu diperiksa.

<a id="related"></a>

## Topik terkait

- [Ethereum](/id/crypto/ethereum/)
- [Mesin Virtual Ethereum](/id/crypto/evm/)
- [Audit kontrak](/id/crypto/contract-audit/)
- [Oracle](/id/crypto/oracle/)
- [Kontrak proxy](/id/crypto/proxy-contract/)

<a id="sources"></a>

## Sumber

- [Ikhtisar Teknologi Blockchain](https://doi.org/10.6028/NIST.IR.8202) - NIST (diakses: 2026-08-21)
- [Pengantar kontrak pintar](https://ethereum.org/developers/docs/smart-contracts/) - Ethereum.org (diakses: 2026-08-21)
- [Pertimbangan Keamanan](https://docs.soliditylang.org/en/latest/security-considerations.html) - Solidity documentation (diakses: 2026-08-21)

Source: https://wiki.fcontext.com/id/crypto/smart-contract/index.mdx
