Apa Itu Solidity? Bahasa Pemrograman Kontrak Pintar
Satu baris kode Solidity yang ceroboh pernah memberikan 3,6 juta ETH kepada penyerang. Kode tersebut melakukan persis seperti yang diperintahkan. Itulah bagian yang mengkhawatirkan. Solidity memindahkan uang. Kode sumbernya biasanya terlihat jelas. Dan begitu sebuah kontrak aktif, tidak ada perbaikan diam-diam — bug tetap ada, dana tetap terekspos, dan seluruh dunia dapat membaca keduanya. Ini adalah bahasa pemrograman dominan untuk menulis kontrak pintar di Ethereum dan setiap blockchain EVM di sampingnya. Singkirkan jargonnya dan sebagian besar DeFi dan NFT pada dasarnya adalah Solidity. Kuat. Juga tidak kenal ampun. Berikut adalah apa itu Solidity, bagaimana kode tersebut sebenarnya berjalan, seperti apa kontrak pertama, dan mengapa keamanan selalu menjadi perhatian utama.
Apa itu Solidity sebagai bahasa pemrograman?
Semua panduan mengatakan hal yang sama: Solidity adalah bahasa tingkat tinggi untuk kontrak pintar. Baik. Itu hampir tidak membantu Anda. Tapi, bahasa seperti apa? Bertipe statis. Berorientasi objek. Kurung kurawal dan titik koma, sintaks yang dipinjam dari JavaScript, C++, dan Python. Jika Anda pernah merilis kode dalam salah satu bahasa tersebut, file `.sol` akan terasa familiar dalam waktu sekitar sepuluh menit.
Gavin Wood membuat sketsa konsepnya pada tahun 2014, dibantu oleh tim kecil Ethereum yang termasuk Christian Reitwiessner. Tujuannya sederhana: membiarkan orang menulis kontrak pintar untuk blockchain publik. Unit intinya adalah `kontrak`. Anggap saja sebagai `kelas` yang kebetulan berada di sebuah rantai — ia menyimpan status, mengekspos fungsi, dan mewarisi dari yang lain. Yang menarik adalah di mana kontrak tersebut dijalankan. Kompilasi ke bytecode, dan kontrak yang sama akan dieksekusi secara identik di setiap node di seluruh jaringan terdesentralisasi, semuanya saling memeriksa satu sama lain. Tuntutan tunggal itulah yang menjelaskan mengapa Solidity terasa begitu terkekang.
| Kekokohan sekilas | |
|---|---|
| Pertama kali dirilis | Tahun 2014 |
| Desainer utama | Gavin Wood (Ethereum) |
| Paradigma | Berorientasi objek, berorientasi kontrak |
| Mengetik | Statis |
| Dikompilasi menjadi | Kode biner EVM |
| Kompiler terbaru | v0.8.35 (April 2026) |
| Ekstensi file | .sol |
Cara Kerja Solidity: Dari Kode ke EVM
Bagian menarik dari Solidity bukanlah sintaksnya. Melainkan alur kerjanya. Kode yang mudah dibaca menjadi sesuatu yang disepakati oleh ribuan mesin untuk dijalankan dengan cara yang sama. Determinisme adalah intinya. Jika dua node menjalankan kontrak yang sama dan mendapatkan jawaban yang berbeda, jaringan tidak dapat menyepakati saldo siapa pun. Persyaratan tunggal itu menjelaskan banyak batasan aneh dari bahasa ini: tidak boleh mengambil angka acak, tidak boleh memanggil API web eksternal di tengah eksekusi. Semuanya harus dapat direproduksi dari rantai itu sendiri.
Kompiler dan kode biner
Anda menulis file `.sol`, yang dapat dibaca manusia dan berlevel tinggi. Kompilator Solidity, `solc`, mengubahnya menjadi bytecode EVM, serangkaian panjang operasi tingkat rendah, ditambah ABI yang mencantumkan fungsi-fungsi kontrak. Bytecode inilah yang masuk ke dalam blockchain. Tidak ada yang membacanya secara manual. Ini adalah target mesin, seperti halnya C yang akhirnya menjadi kode assembly.
EVM dan gas
Ethereum Virtual Machine menjalankan bytecode tersebut. Setiap node Ethereum memilikinya. Setiap operasi yang dilakukannya membutuhkan gas, yaitu biaya yang dibayarkan dalam ETH. Gas bukanlah detail sampingan. Ini adalah cara jaringan menetapkan harga komputasi dan melindungi dirinya sendiri: loop yang tak terkendali tidak membekukan rantai — itu hanya menghabiskan gas pengirim dan kembali ke keadaan semula. Solidity yang baik menjaga gas tetap rendah.
ABI
ABI, atau Application Binary Interface, adalah peta JSON tentang cara berkomunikasi dengan kontrak yang telah diimplementasikan. Dompet seperti MetaMask, atau dApp front-end, menggunakannya untuk mengkodekan panggilan fungsi ke dalam format yang diharapkan EVM, lalu mendekode apa pun yang dikembalikan. Anggap ABI sebagai jembatan antara antarmuka yang dilihat pengguna dan kontrak yang berada di alamat tertentu di blockchain.

Menulis Kontrak Pintar Solidity Pertama Anda
Cukup teori. Cara tercepat untuk memahami Solidity adalah dengan membaca kontrak kecil dan mengenali bagian-bagiannya.
Anatomi sebuah kontrak
kekokohan
// Pengenal-Lisensi SPDX: MIT
pragma solidity ^0.8.20;
Kontrak Counter {
uint256 public count;
event Incremented(uint256 newCount);
function increment() public {
count += 1;
emit Incremented(count);
}
}
```
Beberapa bagian menopang keseluruhan sistem. Baris `pragma` menetapkan versi kompiler, sehingga rilis yang tidak kompatibel tidak dapat secara diam-diam mengkompilasi ulang kode Anda. `contract Counter` membuka kontrak, seperti membuka kelas. `count` adalah variabel status, disimpan di blockchain secara permanen. `increment()` adalah fungsi publik yang dapat dipanggil siapa pun. `event Incremented` mencatat setiap perubahan sehingga aplikasi di luar blockchain dapat bereaksi. Kode berorientasi objek, dengan blockchain di bawahnya.
Alat-alat yang sebenarnya Anda gunakan
Anda tidak perlu menginstal apa pun untuk memulai. Remix adalah IDE berbasis browser: tulis, kompilasi, dan sebarkan Solidity hanya dengan beberapa klik, yang menjadikannya tempat standar untuk mempelajari Solidity. Proyek nyata beralih ke kerangka kerja lokal. Hardhat dan Foundry menangani kompilasi, pengujian, dan penyebaran dengan benar. Dan hampir semua orang mengandalkan OpenZeppelin, sebuah pustaka kontrak yang diaudit dan dapat digunakan kembali untuk token dan kontrol akses, daripada membuat ulang kode berisiko dari awal.
Dari kode ke alamat aktif.
Deployment berarti mengirimkan bytecode yang telah dikompilasi dalam sebuah transaksi. Uji terlebih dahulu di testnet gratis. Sepolia biasanya menjadi pilihan di 2026. Hubungkan dompet seperti MetaMask. Dorong ke mainnet hanya ketika kontrak berfungsi dengan baik. Deployment juga membutuhkan biaya gas, yang dibayar dengan ETH asli. Dan inilah kalimat yang patut diingat: setelah di-deploy, kode tersebut tidak dapat diubah. Anda tidak dapat mengedit kontrak yang sedang berjalan. Fakta tunggal itulah—lebih dari sekadar keanehan sintaksis—yang menjadi alasan mengapa bagian selanjutnya ada.
Blockchain Mana yang Mendukung Solidity?
Solidity sudah tidak lagi menjadi "bahasa Ethereum" sejak bertahun-tahun lalu. Begitu banyak jaringan yang mengadopsi EVM untuk menggunakan kembali perangkat Ethereum sehingga Solidity menjadi bahasa bersama dari seluruh keluarga blockchain. ChainList melacak lebih dari 385 blockchain yang kompatibel dengan EVM pada tahun 2026. Nama-nama besar semuanya memenuhi syarat: Polygon, BNB Chain, Arbitrum , Base, dan Avalanche, semuanya menjalankan bytecode yang sama dengan yang dikompilasi oleh file `.sol` Anda.
Ethereum masih menjadi pusat gravitasi. Menurut DeFiLlama , Ethereum menyimpan total nilai terkunci sekitar $45 miliar, lebih dari setengah dari seluruh DeFi. Dan aktivitasnya terus meningkat: sekitar 8,7 juta penyebaran kontrak pintar baru hanya dalam kuartal keempat tahun 2025, menurut perhitungan Token Terminal. Bagi seorang pengembang, jangkauan tersebut adalah alasan sebenarnya untuk memilih Solidity daripada bahasa yang terikat pada satu blockchain.
Jadi, apa saja yang dibangun dengannya? Hampir semua kategori aplikasi terdesentralisasi yang pernah Anda dengar. Protokol pinjaman dan perdagangan DeFi. Kontrak ERC-20 di balik sebagian besar token, kontrak ERC-721 di balik NFT. DAO mengkodekan aturan pemungutan suara mereka dalam Solidity. Stablecoin mengelola pasokan dengannya. Game on-chain menyimpan logika mereka di sana. Ketika sebuah proyek mengatakan bahwa proyek tersebut "berada di Ethereum," hampir pasti seseorang telah menulis dan menerapkan Solidity.
Mengapa Keamanan Kontrak Pintar Solidity Sulit?
Sifat-sifat yang membuat Solidity ampuh adalah sifat-sifat yang sama yang membuat bug-nya sangat mahal. Kode tersebut menyimpan uang. Kode sumbernya seringkali bersifat publik. Kode tersebut tidak dapat ditambal. Penyerang dapat membaca kontrak Anda dengan santai, dan dananya ada di alamat tersebut. Ini bukan bahasa pemrograman untuk bergerak cepat dan merusak sesuatu. Saya belum pernah bekerja dengan perangkat lunak di mana kesenjangan antara "berhasil dikompilasi" dan "aman" begitu lebar.
Reentrancy dan peretasan DAO
Kerentanan Solidity yang paling umum adalah reentrancy. Sebuah kontrak mengirimkan ETH ke alamat eksternal sebelum memperbarui saldo internalnya sendiri, dan kontrak penerima memanggil kembali untuk menarik dana lagi, dan lagi, sebelum panggilan pertama selesai. Pada Juni 2016, kelemahan persis ini menguras sekitar 3,6 juta ETH, senilai sekitar $60 juta pada saat itu, dari The DAO . Akibatnya, Ethereum terpecah menjadi ETH dan Ethereum Classic, sebuah rantai yang masih diperdagangkan hingga saat ini. Dan solusinya? Hampir sangat sederhana. Perbarui status Anda terlebih dahulu, kirim uang terakhir. Pola ini bahkan memiliki nama: checks-effects-interactions.
Integer overflow dan SafeMath
Sebelum Solidity 0.8, aritmatika dapat secara diam-diam mengalami pembungkus (wrap around). Menambahkan 1 ke nilai maksimum `uint256` akan langsung kembali ke nol, yang dieksploitasi oleh penyerang untuk mencetak saldo token yang tidak masuk akal, seperti dalam insiden BeautyChain (BEC) pada tahun 2018. Selama bertahun-tahun, pengembang melindungi diri dari hal ini dengan pustaka bernama SafeMath, yang untuk sementara waktu menjadi salah satu file yang paling banyak diimpor di seluruh Solidity. Kemudian versi 0.8 membangun pemeriksaan overflow dan underflow ke dalam bahasa itu sendiri. Bug aritmatika yang paling umum sekarang dikembalikan secara default, tanpa memerlukan pustaka tambahan.
Audit dan biayanya
Karena kesalahan bersifat permanen, proyek-proyek serius membayar untuk peninjauan. Mereka membangun di atas komponen yang telah diaudit oleh OpenZeppelin dan kemudian menyewa perusahaan untuk mengaudit seluruh sistem. Audit kontrak pintar profesional biasanya berkisar antara $25.000 hingga lebih dari $100.000 untuk protokol DeFi, menurut data pasar dari Sherlock , dan audit Solidity cenderung 25 hingga 40 persen lebih murah daripada audit Rust yang setara hanya karena kumpulan talenta yang lebih besar. Perusahaan-perusahaan yang bagus juga cepat penuh. Protokol berukuran sedang dapat menunggu berminggu-minggu untuk mendapatkan slot, lalu berminggu-minggu lagi untuk laporan. Semua ini tidak cepat, dan tidak ada yang opsional.
| Kerentanan | Apa yang salah? | Kasus terkenal | Memperbaiki |
|---|---|---|---|
| Masuk kembali | Panggilan eksternal masuk kembali sebelum pembaruan status. | DAO, 2016 | Periksa-efek-interaksi |
| Luapan bilangan bulat | Aritmatika melampaui batasnya | BeautyChain (BEC), 2018 | Pemeriksaan bawaan (Solidity 0.8+) |
| Kontrol akses | Siapa pun dapat memanggil fungsi istimewa. | Bermacam-macam | `onlyOwner` / penjaga peran |
| Panggilan eksternal yang tidak diperiksa | Panggilan gagal diabaikan, logika berlanjut. | Bermacam-macam | Validasi nilai kembalian |
Kabar baiknya adalah kerugiannya semakin berkurang. Kerugian mata uang kripto akibat eksploitasi khusus DeFi turun menjadi sekitar $680 juta pada tahun 2025, turun sekitar 74 persen dari puncaknya sebesar $2,62 miliar pada tahun 2022, menurut Immunefi . Perangkat yang lebih baik dan pemeriksaan keamanan yang kini terintegrasi dalam kompiler adalah sebagian dari alasannya.

Solidity vs Bahasa Kontrak Pintar Lainnya
Solidity memiliki pesaing. Bahkan, Solidity bukanlah yang teraman di antara mereka. Vyper minimalis dan mirip Python, sengaja dirancang sederhana untuk mengurangi kemungkinan kesalahan fatal; Curve berjalan di atasnya. Rust mendukung kontrak di Solana dan NEAR, lebih aman dalam beberapa hal, tetapi lebih sulit dipelajari dan lebih mahal untuk diaudit. Jadi mengapa Solidity masih unggul? Bukan karena desain bahasanya. Efek jaringan. Perangkat pendukung yang paling lengkap, pustaka yang paling banyak diaudit, seluruh ekosistem EVM yang terdiri dari rantai dan dompet, semuanya sudah menggunakan Solidity.
| Bahasa | Rantai | Basis sintaksis | Terbaik untuk | Pertukaran |
|---|---|---|---|---|
| Kepadatan | Ethereum + semua EVM | JavaScript/C++ | Jangkauan maksimal, peralatan yang matang | Mudah untuk menulis kode yang tidak aman. |
| Vyper | EVM | Python | Kontrak sederhana yang mengutamakan keselamatan | Fitur lebih sedikit, komunitas lebih kecil. |
| Karat | Solana, DEKAT | Karat | Performa tinggi, keamanan terjamin | Kurva yang curam, audit yang lebih mahal |
Jika Anda ingin mengirimkan produk ke tempat pengguna dan uang sudah berada, Solidity adalah pilihan pragmatis yang tepat, bahkan ketika pesaingnya secara teknis lebih aman.
Apakah Anda Harus Mempelajari Pemrograman Solidity di 2026?
Antusiasme spekulatif seputar kripto mereda, tetapi permintaan akan orang-orang yang dapat menulis kode Solidity yang benar tidak berkurang. Ethereum menambahkan sekitar 16.181 pengembang baru antara Januari dan September 2025, menurut perhitungan Electric Capital , dan sekitar 74 persen dari semua pengembang multi-chain bekerja di rantai EVM. Di situlah pekerjaan yang menghasilkan uang dan pustaka yang dapat digunakan kembali berada.
Cara yang masuk akal untuk mempelajari pemrograman Solidity: mulailah di Remix, baca dokumentasi resmi Solidity, lalu pelajari kontrak OpenZeppelin agar Anda memahami bagaimana para profesional menyusun token dan kontrol akses. Sebarkan proyek-proyek kecil ke testnet hingga pola keamanan terasa otomatis dan bukan sekadar hafalan. Keterampilan yang langka bukanlah menulis kode Solidity yang dapat dikompilasi; banyak orang yang dapat melakukannya. Yang sebenarnya dibayar untuk seorang pengembang Solidity adalah menulis kode yang mampu bertahan dari serangan lawan — seseorang yang telah membaca kontrak Anda dan mempertaruhkan uang.
Mengapa Solidity Tetap Menjadi Bahasa Pemrograman Standar
Solidity menjadi pilihan default karena alasan konkret, bukan karena tren. Bahasa ini digunakan di setiap blockchain EVM. Ia memiliki perangkat pendukung yang paling lengkap. Ia mendasari sebagian besar DeFi dan NFT. Tetapi hal pertama yang perlu dipahami bukanlah sintaksnya. Melainkan ini: di blockchain, kode yang diimplementasikan adalah hukum, dan bug akan selalu ada. Pelajari bahasa dan pola keamanannya secara bersamaan, karena keduanya tidak dapat dipisahkan di sini. Langkah selanjutnya yang jujur adalah langkah kecil dan gratis. Buka Remix, tulis kontrak sepuluh baris, dan implementasikan ke testnet minggu ini.