Lompat ke konten utama
Change page

Bahasa kontrak pintar

Pembaruan terakhir halaman: 25 Februari 2026

Aspek yang luar biasa tentang Ethereum adalah bahwa kontrak pintar dapat diprogram menggunakan bahasa yang relatif ramah pengembang. Jika Anda berpengalaman dengan Python atau bahasa kurung kurawal (opens in a new tab) apa pun, Anda dapat menemukan bahasa dengan sintaksis yang familier.

Dua bahasa yang paling aktif dan dipelihara adalah:

  • Solidity
  • Vyper

Remix IDE menyediakan lingkungan pengembangan yang komprehensif untuk membuat dan menguji kontrak di Solidity dan Vyper. Coba Remix IDE di dalam peramban (opens in a new tab) untuk mulai membuat kode.

Pengembang yang lebih berpengalaman mungkin juga ingin menggunakan Yul, bahasa perantara untuk Mesin Virtual Ethereum, atau Yul+, sebuah ekstensi untuk Yul.

Jika Anda penasaran dan ingin membantu menguji bahasa baru yang masih dalam tahap pengembangan berat, Anda dapat bereksperimen dengan Fe, bahasa kontrak pintar baru yang saat ini masih dalam tahap awal.

Prasyarat

Pengetahuan sebelumnya tentang bahasa pemrograman, terutama JavaScript atau Python, dapat membantu Anda memahami perbedaan dalam bahasa kontrak pintar. Kami juga menyarankan Anda memahami kontrak pintar sebagai sebuah konsep sebelum menggali terlalu dalam tentang perbandingan bahasa. Pengantar kontrak pintar.

Solidity

  • Bahasa tingkat tinggi berorientasi objek untuk mengimplementasikan kontrak pintar.
  • Bahasa kurung kurawal yang paling banyak dipengaruhi oleh C++.
  • Diketik secara statis (tipe variabel diketahui pada saat kompilasi).
  • Mendukung:
    • Pewarisan (Anda dapat memperluas kontrak lain).
    • Pustaka (Anda dapat membuat kode yang dapat digunakan kembali yang dapat Anda panggil dari kontrak yang berbeda – seperti fungsi statis di kelas statis dalam bahasa pemrograman berorientasi objek lainnya).
    • Tipe kompleks yang ditentukan pengguna.

Contoh kontrak

Contoh ini akan memberi Anda gambaran tentang seperti apa sintaksis kontrak Solidity. Untuk deskripsi yang lebih mendetail tentang fungsi dan variabel, lihat dokumentasinya (opens in a new tab).

Vyper

  • Bahasa pemrograman Pythonic
  • Pengetikan yang kuat
  • Kode kompilator yang kecil dan mudah dipahami
  • Pembuatan bytecode yang efisien
  • Sengaja memiliki lebih sedikit fitur daripada Solidity dengan tujuan membuat kontrak lebih aman dan lebih mudah diaudit. Vyper tidak mendukung:
    • Modifier
    • Pewarisan
    • Inline assembly
    • Function overloading
    • Operator overloading
    • Pemanggilan rekursif
    • Perulangan tak terbatas
    • Titik tetap biner

Untuk informasi lebih lanjut, baca rasional Vyper (opens in a new tab).

Contoh

Contoh ini akan memberi Anda gambaran tentang seperti apa sintaksis kontrak Vyper. Untuk deskripsi yang lebih mendetail tentang fungsi dan variabel, lihat dokumentasinya (opens in a new tab).

Yul dan Yul+

Jika Anda baru mengenal Ethereum dan belum pernah melakukan pengodean dengan bahasa kontrak pintar, kami menyarankan Anda untuk memulai dengan Solidity atau Vyper. Pelajari Yul atau Yul+ hanya setelah Anda familier dengan praktik terbaik keamanan kontrak pintar dan spesifikasi bekerja dengan EVM.

Yul

  • Bahasa perantara untuk Ethereum.
  • Mendukung EVM dan Ewasm (opens in a new tab), WebAssembly dengan cita rasa Ethereum, dan dirancang untuk menjadi penyebut umum yang dapat digunakan dari kedua platform tersebut.
  • Target yang baik untuk tahap pengoptimalan tingkat tinggi yang dapat menguntungkan platform EVM dan Ewasm secara setara.

Yul+

  • Ekstensi tingkat rendah dan sangat efisien untuk Yul.
  • Awalnya dirancang untuk kontrak optimistic rollup.
  • Yul+ dapat dilihat sebagai proposal peningkatan eksperimental untuk Yul, yang menambahkan fitur-fitur baru ke dalamnya.

Contoh kontrak

Contoh sederhana berikut mengimplementasikan fungsi pangkat. Ini dapat dikompilasi menggunakan solc --strict-assembly --bin input.yul. Contoh ini harus disimpan dalam file input.yul.

Jika Anda sudah sangat berpengalaman dengan kontrak pintar, implementasi ERC20 penuh di Yul dapat ditemukan di sini (opens in a new tab).

Fe

  • Bahasa yang diketik secara statis untuk Mesin Virtual Ethereum (EVM).
  • Terinspirasi oleh Python dan Rust.
  • Bertujuan agar mudah dipelajari -- bahkan untuk pengembang yang baru mengenal ekosistem Ethereum.
  • Pengembangan Fe masih dalam tahap awal, bahasa ini merilis versi alfanya pada Januari 2021.

Contoh kontrak

Berikut ini adalah kontrak sederhana yang diimplementasikan di Fe.

Cara memilih

Sama seperti bahasa pemrograman lainnya, ini sebagian besar tentang memilih alat yang tepat untuk pekerjaan yang tepat serta preferensi pribadi.

Berikut adalah beberapa hal yang perlu dipertimbangkan jika Anda belum mencoba salah satu bahasa tersebut:

Apa yang hebat dari Solidity?

  • Jika Anda seorang pemula, ada banyak tutorial dan alat pembelajaran di luar sana. Lihat selengkapnya tentang hal itu di bagian Belajar dengan Membuat Kode.
  • Tersedia perkakas pengembang yang baik.
  • Solidity memiliki komunitas pengembang yang besar, yang berarti Anda kemungkinan besar akan menemukan jawaban atas pertanyaan Anda dengan cukup cepat.

Apa yang hebat dari Vyper?

  • Cara yang bagus untuk memulai bagi pengembang Python yang ingin menulis kontrak pintar.
  • Vyper memiliki jumlah fitur yang lebih sedikit yang membuatnya bagus untuk pembuatan prototipe ide secara cepat.
  • Vyper bertujuan agar mudah diaudit dan dapat dibaca manusia secara maksimal.

Apa yang hebat dari Yul dan Yul+?

  • Bahasa tingkat rendah yang sederhana dan fungsional.
  • Memungkinkan untuk lebih dekat dengan EVM mentah, yang dapat membantu mengoptimalkan penggunaan gas dari kontrak Anda.

Perbandingan bahasa

Untuk perbandingan sintaksis dasar, siklus hidup kontrak, antarmuka, operator, struktur data, fungsi, alur kontrol, dan lainnya, lihat lembar sontekan oleh Auditless (opens in a new tab) ini.

Bacaan lebih lanjut

Apakah artikel ini bermanfaat?