Mengenal Solidity
Apa itu Solidity?
Solidity adalah bahasa pemrograman tingkat tinggi yang bersifat static-typing, dirancang untuk mengembangkan smart contract pada blockchain Ethereum. Bahasa ini dipengaruhi oleh JavaScript, Python, dan C++, sehingga memudahkan pengembang menulis kode untuk menerapkan logika bisnis secara aman dan terdesentralisasi.
Fitur Utama Solidity
-
Static-typing yabg berarti setiap variabel dan tipe data nya diketahui sebelum waktu kompilasi. Ini bisa membantu mengetahui error lebih awal dalam proses pengembangan, mengurangi risiko kesalahan saat runtime.
-
Pewarisan memungkinkan sebuah kontrak untuk mewarisi dari satu kontrak induk, di Solidity struktur pewarisan sangat mudah untuk dikelola.
-
Library adalah potongan kode yang dapat digunakan kembali yang dapat dipanggil tanpa harus terhubung ke instance kontrak tertentu. Library menyediakan cara untuk berbagi function di berbagai kontrak, mempermudah pengembang untuk memakai dan maintain dengan lebih efektif.
-
Modifier di Solidity digunakan untuk mengubah perilaku function dengan cara deklaratif. Mereka sangat berguna untuk menambahkan prasyarat atau aturan dan batasan lain pada tingkat function tanpa mengacaukan logika utama di dalam function tersebut.
-
Event di Solidity digunakan untuk mencatat kejadian tertentu di dalam blockchain, yang kemudian dapat di listen oleh aplikasi eksternal. Event berfungsi sebagai mekanisme komunikasi antara blockchain dan sistem di luar blockchain (off-chain).
Menulis Smart Contract Pertama
Siapkan Project
-
Buat folder baru untuk project:
mkdir MySolidityProject
cd MySolidityProject -
Inisialisasi Truffle:
truffle init
Dengan menjalankan perintah di atas, semua file konfigurasi dan struktur folder akan dibuatkan secara otomatis.
Membuat Smart Contract Sederhana
-
Buat file Solidity:
Di dalam folder
contracts
, buat file baru bernamaSimpleStorage.sol
.Tulis kode berikut:
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
contract SimpleStorage {
uint256 public storedData;
function set(uint256 x) public {
storedData = x;
}
function get() public view returns (uint256) {
return storedData;
}
}
Melakukan Kompilasi dan Deploy Contract
Kompilasi Contract
-
Jalankan perintah berikut untuk mengkompilasi kode Solidity:
truffle compile
Perintah ini akan mengkompilasi kode Solidity dan menghasilkan artifact yang digunakan untuk proses deployment atau pengiriman smart contract ke blockchain.
Buat Script Deployment
-
Di dalam folder
migrations
, buat file baru bernama1_deploy_contracts.js
. -
Tulis kode berikut di dalam file tersebut:
const SimpleStorage = artifacts.require("SimpleStorage");
module.exports = function (deployer) {
deployer.deploy(SimpleStorage);
};
Deploy Contract
-
Jalankan perintah berikut untuk mendepoy smart contract ke blockchain lokal (Ganache):
truffle migrate
Pastikan program Ganache sudah berjalan sebelum menjalankan perintah ini.
Berinteraksi dengan Contract yang Sudah di Deploy
-
Buka Truffle Console:
truffle console
-
Berinteraksi dengan Contract:
// Mendapatkan instance dari contract yang sudah di-deploy
let instance = await SimpleStorage.deployed();
// Menyimpan nilai ke dalam contract
await instance.set(42);
// Mengambil nilai dari contract
let value = await instance.get();
// Menampilkan nilai dalam bentuk string
value.toString(); // Should print '42'