Ethereum and Solidity Basics (Teori Dasar 03)

Yohan Wijaya
3 min readOct 30, 2024

Kenapa Ethereum?

Ethereum adalah blockchain pertama yang mendukung smart contract secara luas. Awalnya, blockchain seperti Bitcoin hanya bisa melakukan transaksi sederhana, mirip seperti mengirim uang dari satu orang ke orang lain. Namun, Ethereum membawa sesuatu yang baru dengan menyediakan lingkungan yang bisa diprogram, memungkinkan kita membuat aplikasi yang berjalan otomatis di blockchain. Itulah yang membuat Ethereum menjadi pilihan utama untuk smart contract.

Ethereum memungkinkan kita untuk:

  1. Membuat Aplikasi Terdesentralisasi (DApps): Ini adalah aplikasi yang berjalan di blockchain tanpa kontrol dari pihak ketiga. Contohnya, DApps untuk keuangan, game, dan voting.
  2. Fleksibilitas dengan Solidity: Karena Ethereum mendukung bahasa pemrograman seperti Solidity, developer dapat menulis smart contract yang kompleks dan unik.
  3. Keamanan dan Transparansi: Dengan sifatnya yang terdesentralisasi dan transparan, data di Ethereum sangat sulit diubah atau dipalsukan, membuatnya aman dan dapat diandalkan untuk berbagai jenis transaksi dan aplikasi.

Pengenalan Solidity

Solidity adalah bahasa pemrograman utama untuk membuat smart contract di blockchain Ethereum. Dikembangkan dengan sintaks yang mirip dengan JavaScript, Solidity dirancang untuk memudahkan developer dalam membangun dan mengontrol fungsi dari smart contract. Dengan Solidity, kita bisa menetapkan aturan, fungsi, dan kondisi yang mengatur bagaimana smart contract beroperasi.

Beberapa hal yang membuat Solidity penting:

  • Statically Typed: Semua variabel harus dideklarasikan dengan tipe data tertentu, sehingga lebih mudah mengontrol bagaimana data akan diproses.
  • Event-Driven: Solidity memungkinkan pembuatan event yang memudahkan pemantauan dan pelacakan aktivitas di smart contract.
  • Smart Contract-Oriented: Semua yang kita buat dengan Solidity langsung dapat dipakai dalam bentuk smart contract di Ethereum.

Struktur Dasar Solidity

Di dalam Solidity, kita punya komponen utama seperti fungsi, variabel, tipe data, dan kontrol aliran (if, for, while). Berikut adalah beberapa elemen kunci dalam Solidity:

1. Fungsi (Functions)

Fungsi adalah bagian dari smart contract yang menjalankan perintah tertentu, misalnya untuk menyimpan data, mengirim token, atau memeriksa suatu kondisi.

function setNumber(uint256 _number) public {
storedNumber = _number;
}
  • Di sini, setNumber adalah fungsi untuk menyimpan angka ke dalam variabel storedNumber.

2. Variabel (Variables)

Variabel digunakan untuk menyimpan data dalam smart contract. Ada beberapa jenis variabel seperti state variables(variabel global yang tersimpan di blockchain) dan local variables (variabel yang hanya digunakan dalam fungsi tertentu).

uint256 public storedNumber; // State variable

Pada contoh di atas, constructor menetapkan angka menjadi 10 dan pesan menjadi "Selamat datang di smart contract!" saat kontrak ini pertama kali diterbitkan di blockchain. Constructor tidak bisa dipanggil lagi setelah kontrak dibuat.

3. Tipe Data (Data Types)

Solidity mendukung beberapa tipe data seperti:

  • uint256: Angka bulat tanpa tanda, sering digunakan untuk menyimpan angka non-negatif.
  • address: Alamat yang merujuk ke pengguna atau kontrak lain di blockchain.
  • bool: Tipe data yang menyimpan nilai true atau false.
address public owner; // Menyimpan alamat dari pemilik kontrak
bool public isActive = true; // Status kontrak aktif atau tidak
  • setAngka: Fungsi ini menerima input _angka dan menetapkannya ke state variable angka. Ini mengubah data yang tersimpan di blockchain.
  • getAngka: Fungsi ini mengembalikan nilai dari angka tanpa mengubah data apapun, sehingga aman untuk dibaca.

4. Kontrol Aliran (Control Flow)

Kita juga bisa mengontrol alur eksekusi dengan kondisi dan loop seperti if, for, dan while.

function checkNumber(uint256 _number) public pure returns (string memory) {
if (_number > 10) {
return "Angka lebih besar dari 10";
} else {
return "Angka 10 atau kurang";
}
}

Contoh Smart Contract Sederhana

Untuk menggabungkan semua konsep di atas, mari kita buat sebuah contoh smart contract sederhana yang bisa menyimpan dan menampilkan sebuah angka.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStorage {
uint256 public storedNumber; // State variable untuk menyimpan angka

// Function untuk menyimpan angka ke dalam kontrak
function setNumber(uint256 _number) public {
storedNumber = _number;
}

// Function untuk mengambil angka yang sudah disimpan
function getNumber() public view returns (uint256) {
return storedNumber;
}
}

Penjelasan

  • storedNumber: Variabel global yang menyimpan angka, yang bisa diakses oleh siapa saja.
  • setNumber: Fungsi untuk menyimpan angka yang diberikan oleh pengguna ke dalam variabel storedNumber.
  • getNumber: Fungsi untuk mengambil angka yang tersimpan dan mengembalikannya ke pengguna.

Kontrak ini menunjukkan dasar-dasar Solidity dan bagaimana setiap komponen bekerja bersama untuk membangun smart contract.

next

--

--

Yohan Wijaya
Yohan Wijaya

Written by Yohan Wijaya

Blockchain | Web3 | DeFi & NFT : Yuk, kita eksplorasi dan Belajar teknologi ini bareng bareng 🚀 || Linkedin : yohanwijaya10 || Instagram : yohan_wijy

No responses yet