shidiq

seseorang yang berusaha untuk hidup

β€’
proses β€’ 3 menit baca

Proses Hari ke 61

masha-roshidere

Basic Data Types in Solidity

Boolean

Yaitu untuk menyimpan nilai true atau false.

SOLIDITY
// true atau false
bool apakahSukaMakanAyam = true;

Uint

Uint adalah singkatan dari unsigned integer, yaitu bilangan bulat positif. Ukurannya dari uint8 sampai uint256. Secara default menggunakan uint256.

SOLIDITY
// bilangan bulat positif
uint umur = 25;

Int

Int adalah singkatan dari integer, yaitu bilangan bulat positif dan negatif. Ukurannya dari int8 sampai int256. Secara default menggunakan int256.

SOLIDITY
// bilangan bulat positif dan negatif
int umur = 25;

Address

Address adalah tipe data yang digunakan untuk menyimpan alamat Ethereum. Ukurannya 20 byte.

SOLIDITY
// alamat Ethereum
address owner = 0x1234567890123456789012345678901234567890;

String

String adalah tipe data yang digunakan untuk menyimpan teks.

SOLIDITY
// teks
string nama = "John Doe";

Bytes

Bytes adalah tipe data yang digunakan untuk menyimpan data biner (low-level data).

SOLIDITY
// data biner
bytes data = "John Doe";

Mengerjakan Soal

πŸ§‘β€πŸ’» Test yourself

  1. πŸ“• What’s the difference between a variable and a value?

  2. πŸ“• Describe the default value of the following types: bool, uint, int256, string, address, bytes, bytes32

  3. πŸ“• How does uint differ from bytes?

  4. πŸ§‘β€πŸ’» Write a smart contract that contains at least five storage variables, each with a distinct data type.

Jawaban:

1. What’s the difference between a variable and a value?

Sebuah variable adalah lokasi penyimpanan bernama yang digunakan untuk menyimpan data di dalam smart contract.
Variable terdiri dari:

  • Sebuah nama
  • Sebuah tipe data
  • Sebuah lokasi penyimpanan (storage/memory)

Sedangkan value adalah data aktual yang tersimpan di dalam variable tersebut.

Contoh:

SOLIDITY
uint256 favoriteNumber = 88;
  • favoriteNumber β†’ variable
  • uint256 β†’ tipe data
  • 88 β†’ value

2. Default Values of Solidity Types

Di dalam Solidity, setiap variable memiliki nilai default apabila tidak diinisialisasi secara eksplisit.

TypeNilai Default
boolfalse
uint0
int2560
string"" (string kosong)
address0x0000000000000000000000000000000000000000
bytes0x (kosong)
bytes320x0000000000000000000000000000000000000000000000000000000000000000

Solidity secara otomatis memberikan nilai nol (zero-value) ini ketika variable dideklarasikan tetapi tidak diberi nilai awal.


3. How does uint differ from bytes?

uint dan bytes memiliki perbedaan dalam tujuan penggunaan dan perilakunya.

uint

  • Merepresentasikan bilangan bulat positif (unsigned integer).
  • Digunakan untuk operasi matematika.
  • Mendukung operasi aritmatika seperti +, -, *, /.
  • Contoh:
SOLIDITY
uint256 number = 10;

bytes

  • Merepresentasikan data biner mentah (raw binary data).
  • Disimpan dalam bentuk heksadesimal.
  • Digunakan untuk manipulasi data tingkat rendah (low-level).
  • Tidak dapat langsung digunakan untuk operasi aritmatika.
  • Contoh:
SOLIDITY
bytes data = "ETH";

Perbedaan Utama

  • uint adalah tipe numerik yang digunakan untuk perhitungan.
  • bytes adalah tipe data mentah yang digunakan untuk menyimpan dan memanipulasi data biner.

Tambahan:

  • bytes32 adalah tipe data berukuran tetap 32 byte.
  • string adalah dynamic byte array yang digunakan khusus untuk teks.
  • bytes bersifat dynamic dan memungkinkan akses per indeks serta manipulasi data.

4. Write a smart contract that contains at least five storage variables, each with a distinct data type.

SOLIDITY
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract DataTypes {
    // 1. Boolean
    bool public isComplete = false;

    // 2. Unsigned Integer (256-bit default)
    uint256 public favoriteNumber = 42;

    // 3. Signed Integer (256-bit default)
    int256 public temperature = -10;

    // 4. Address
    address public owner = msg.sender;

    // 5. String
    string public name = "Cyfrin";

    // 6. Bytes (dynamic)
    bytes public data = "Hello";

    // 7. Bytes32 (fixed-size 32 bytes)
    bytes32 public fixedData = "Fixed Size Data";
}

Β© 2026 Shidiq. All rights reserved.