Apa itu Solidity?
Dapps atau biasa disebut dengan Decentralized Applications adalah aplikasi open source yang berjalan di jaringan peer-to-peer blockchain yang menggunakan smart contract dan front-end user interfaces untuk membuat platform decentralized.
Mengembangkan Dapps sama seperti aplikasi lainnya, memerlukan programming dan executing code di dalam sistem. Biasanya Dapps yang berjalan dengan smart contract pada jaringan blockchain Ethereum menggunakan bahasa pemrograman Solidity.
Pada artikel sebelumnya kita sudah membahas tentang smart contract, sekarang kita akan berkenalan dengan salah satu bahasa pemrograman untuk membuat smart contract yaitu solidity.
Apa Itu Solidity
Solidity adalah high-level programming language berorientasi objek yang digunakan untuk membuat smart contract. Setelah diperkenalkan pada tahun 2014, bahasa ini dikembangkan oleh para anggota komunitas Ethereum. Bahasa ini biasanya digunakan untuk membuat smart contract di Blockchain Ethereum. Jadi, Secara sederhana bahasa solidity adalah bahasa pemrograman untuk blockchain Ethereum.
Solidity merupakan curly-bracket language atau bahasa pemrograman yang sintaksnya menggunakan { } atau kurung kurawal untuk melampirkan blok, yang didesain untuk menargetkan Ethereum Virtual Machine (EVM). Bahasa ini terinspirasi dari C++, Python dan JavaScript. Solidity sendiri sangat terinspirasi dari C++, dimana ini dapat dilihat pada sintaks solidity untuk deklarasi variabel, for loop, konsep fungsi overloading, konversi tipe implicit, explicit dan banyak lainnya.
Selain itu solidity juga mendukung sintaks untuk import dan sintaks semantics yang mirip dengan JavaScript, dimana cara mendeklarasi fungsi juga masih menggunakan keyword function yang sama dengan JavaScript.
Bahasa lain yang mempengaruhi solidity juga adalah python. Dimana solidity modifiers menambahkan model python decorators, multiple inheritance, C3 linearization, begitu juga dengan general assignment, copy semantics of value dan reference types.
Fungsi dan Bagaimana Solidity bekerja?
Setelah seorang developers membuat program dengan solidity, salah satu komponen penting yang membantu menjalankan code-nya adalah Ethereum Virtual Machine (EVM) yang merupakan komputer virtual yang ada di blockchain, EVM membantu developer menerjemahkan kode solidity mereka ke dalam program yang berjalan di Ethereum.
EVM merupakan core engine yang bertanggung jawab untuk mengeksekusi smart contract pada jaringan Ethereum. Tujuan inti EVM sendiri sebetulnya berfokus untuk memastikan keamanan dari program dengan memanfaatkan jaringan global node publik, mencegah serangan Denial-of-Service, serta membangun komunikasi tanpa kemungkinan gangguan.
Secara umum, smart contract dapat ditulis dalam bahasa pemrograman seperti Solidity, Rush, atau C++ tergantung pada jenis platform blockchain yang digunakan. Namun, EVM hanya dapat menjalankan smart contract yang ditulis dalam solidity. EVM melakukan penerjemahan kode menjadi Bytecode kemudian disimpan dalam Opcode (Operation code) agar Ethereum dapat memahami dan menjalankan perintah yang diberikan.
Tipe Data Pada Solidity
Desain bahasa pemrograman Solidity memiliki banyak kesamaan dengan high-level programming language yang populer seperti C++, Python dan JavaScript. Sebagai bahasa pemrograman berorientasi objek, tipe data dalam Solidity mirip dengan bahasa OOP lainnya. Solidity mendukung semua tipe data umum yang ada dalam bahasa OOP lain, seperti:
- Boolean – Tipe data Boolean mengembalikan ‘1’ ketika kondisi benar dan ‘0’ ketika salah, tergantung pada status kondisi.
- Integer – kita dapat menggunakan Nilai Signed dan unsigned integer di solidity. Keyword yang digunakan adalah ‘int8’ sampai ‘int256’ untuk signed dan ‘uint8’ sampai ‘uint256’ untuk unsigned.
- String – Tanda kutip tunggal atau ganda dapat mengklasifikasikan data sebagai string.
- Modifier -Modifier memverifikasi bahwa sebuah kondisi itu rasional, sebelum kode mengeksekusi.
- Array – Sintaks untuk tipe data array di solidity mirip dengan bahasa OOP lainnya, terutama dengan supports untuk single multidimensional arrays.
Selain itu, pemrograman Solidity memungkinkan kita untuk “Mapping” struktur data dengan enum, operator, dan nilai hash untuk return nilai di tempat penyimpanan tertentu.
Bagaimana Memulai Pemrograman Solidity?
Mempelajari dasar solidity di Ethereum dapat mendorong siapapun untuk mulai merancang dan membuat smart contract. Kita harus mengetahui beberapa hal dasar untuk mulai belajar pemrograman Solidity. Berikut ini adalah beberapa hal dasar yang perlu kalian ketahui jika ingin mempelajari Solidity.
1. Version Pragma
- Pragma adalah arahan kepada kompiler tentang cara menangani kode. Setiap baris kode Solidity harus dimulai dengan “version pragma”, yang menentukan versi kompiler Solidity mana yang akan digunakan.
- Ini membuat kode bisa kompatibel dengan versi kompiler keluaran terbaru nantinya.
2. Contact Keyword
Keyword “contract” merupakan hal penting untuk memulai pemrograman dengan Solidity dan fungsinya. Keyword ini mendeklarasikan contract yang akan mengenkapsulasi kode.
3. State/Declare Variables
State variable ini ditulis di Blockchain Ethereum dan disimpan secara permanen dalam penyimpanan kontrak. Pada baris pertama contoh di atas mendeklarasi variabel dengan tipe uint (unsigned integer 256 bits) dengan nama test, sementara baris kedua deklarasi variabel dengan tipe data boolean dengan nama ended. Keyword public yang digunakan oleh kedua variabel akan membuat function getter secara otomatis untuk mengakses value dari variable, jika tidak semua tipe variabel akan memiliki value 0 atau ekuivalen.
4. Deklarasi Fungsi
Sama seperti function pada bahasa pemrograman lainnya function adalah block code yang melakukan tugas tertentu. Perbedaanya terdapat keyword untuk accessibility dari function.
Contoh di atas adalah contoh deklarasi fungsi dengan nama test_fungsi yang mengambil variabel a dengan tipe data uint sebagai parameter dan accessibility public, dan akan mengembalikan data dengan tipe data uint.
Kelebihan Pemrograman Solidity
Setelah membahas tentang penjelasan, cara kerjanya, pemrograman Solidity ini juga memiliki beberapa keunggulan sebagai berikut:
- Easy access ke object-oriented attributes dalam smart contracts, seperti sifat multi-level inheritance.
- Solidity menyediakan Application Binary Interface (ABI) untuk mengaktifkan keamanan tipe data. Jika kompiler menemukan ketidakcocokan tipe data untuk variabel apapun, ABI akan mengembalikan error.
- Sintaks yang mirip dengan bahasa pemrograman populer seperti yang disebutkan di atas sehingga membantu pemula dalam mempelajari dasar-dasar smart contract dan development blockchain.
- Jumlah yang akan dibayar dan gas fees dapat dikodekan dalam smart contract.
Demikian pembahasan tentang bahasa pemrograman solidity kali ini. Untuk konsultasi lebih lanjut mengenai development menggunakan solidity atau teknologi blockchain lainnya, silakan kunjungi Blockchain Technology Service | Email : info@xsis.co.id | Phone : (+62) 21 2788 3570.
Penulis : Aulia Brahmantio Diaz – Webmaster Xsis Mitra Utama.
Source :
https://docs.soliditylang.org/