Apa itu Smart Contract ?

Smart Contract adalah istilah yang digunakan untuk menggambarkan sebuah code program komputer yang mampu memfasilitasi, mengeksekusi suatu agreement atau contract dengan menggunakan teknologi Blockchain.

Smart Contract adalah sebuah software program yang berisi sekumpulan instruksi, dan sekumpulan instruksi tersebut adalah sebuah code yang akan dieksekusi dalam Blockchain tanpa campur tangan orang lain dan dapat dijamin keamanannya.

Smart Contract digunakan untuk membuat sebuah DApp atau disebut juga Decentralized Application pada jaringan Blockchain. Smart Contract bisa dibuat di atas platform Blockchain Ethereum. Smart Contract tidak dikendalikan oleh manusia, melainkan dikendalikan oleh sebuah code. Developer lah yang akan menulis code dalam Smart Contract ini, dan menginstruksikan setiap code nya. Setiap orang yang terlibat di dalamnya adalah orang yang tidak diketahui identitasnya, tetapi contract itu sendiri tetap tersimpan dalam public ledger.

Dalam Smart Contract Ethereum terdapat Contract Account, sebuah contract yang dimiliki oleh Account seseorang. Dalam Contract Account terdapat beberapa properti seperti balance, storage, dan code.

  • Balance balance ini adalah saldo pada account contract kita.
  • Storage adalah penyimpanan data dimana kita dapat menyimpan beberapa data dalam contract kita. Data ini berhubungan dengan aplikasi (DApp) yang akan kita buat menggunakan smart contract. Data tersebut bisa jadi sebuah angka, string, array, data apapun yang bersangkutan dengan aplikasi.
  • Code code ini berisi semua raw code pada contract kita. Code ini adalah sebuah code level mesin yang artinya sangat sulit bagi kita untuk membaca dan memahami code tersebut, bisa juga dibilang tidak mungkin. Dalam Ethereum membuat smart contract menggunakan bahasa solidity, code solidity yang kita tulis dalam smart contract akan di-compile ke dalam raw code ini.
Image for post
Image for post

Pada gambar tersebut, kita mempunyai contract code atau contract source yang dapat di-deploy ke beberapa jaringan Ethereum baik testnet ataupun main net. Misalnya pada gambar tersebut terdapat 3 jaringan yaitu Rinkeby, Ropsten, dan Main. Sebuah contract dapat di-deploy berulang kali pada 1 jaringan, dan contract dapat di-deploy pada jaringan yang berbeda. Setelah smart contract di-deploy, maka contract tersebut akan di broadcast ke jaringan Blockchain.

Bahasa Pemrograman Solidity

Ethereum Blockchain menggunakan bahasa pemrograman solidity untuk smart contractnya. Solidity dibuat secara khusus untuk smart contract. Ada banyak fitur dalam bahasa pemrograman ini untuk membuat eksekusi smart contract menjadi lebih mudah.

Solidity ditulis dalam file .sol, dan solidity sangat mirip dengan javascript seperti syntax nya yang sangat mirip dengan javascript. Jika anda familiar dengan javascript dan syntaxnya maka anda tidak akan merasa kesulitan untuk menulis solidity.

Image for post
Image for post

Ketika kita menulis sebuah contract yang kemudian disebut contract definition dengan menggunakan solidity, namun solidity bukan lah code yang sebenarnya yang dieksekusi pada jaringan Ethereum. Maka contract definition tersebut yang sudah ditulis menggunakan solidity akan di-compile menggunakan solidity compiler. Compiler ini akan terbagi menjadi 2 buah file. File yang pertama berisi bytecode dan bytecode ini adalah code yang sebenarnya yang di-deploy pada jaringan Ethereum. Dan file 1 lagi adalah Application Binary Interface atau biasa disebut juga ABI, ABI inilah yang akan menjadi sebuah layer untuk berinteraksi dengan smart contract.

Misalnya seperti gambar diatas, ketika kita menulis sebuah javascript code, kita memerlukan ABI sebagai layer untuk menerjemahkan code javascript kita ke dalam byte code. Baiklah, artikel ini menjelaskan tentang smart contract dan solidity, untuk artikel selanjutnya saya akan membuat sebuah smart contract sederhana.

EMURGO Indonesia Facebook : https://www.facebook.com/emurgo.id/
EMURGO Indonesia Twitter : https://twitter.com/emurgo_id
EMURGO Indonesia Instagram : https://instagram.com/emurgo.id/

Source : Dimas Prasetiyo (Junior Developer EMURGO Indonesia)

Written by

EMURGO Solusi Indonesia

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store