Tipe Bawaan Dart

Tabel Tipe Dasar Bawaan Dart

Nama KategoriIdentifier TipePenulisan / Contoh LiteralPenjelasan Singkat
Numbers (Angka)int、doubleint a = 10; double b = 3.14;Angka terbagi dua jenis: bilangan bulat dan bilangan pecahan presisi ganda, kelas induk umumnya adalah num
Strings (String Teks)Stringvar str = "foxdevelop.com";Menyimpan urutan karakter UTF-16, mendukung interpolasi string, teks multibaris dan string mentah
Booleans (Boolean)boolbool flag = true;Hanya ada dua nilai yang dapat digunakan: true / false
Records (Record Tuple)Literal record (v1, v2)var record = (10, "test");Tipe komposit dengan panjang tetap yang menampung banyak nilai, mendukung dekomposisi variabel
Functions (Fungsi)Functionvoid fn() {} Function func = ()=>1;Objek kelas pertama: dapat ditugaskan ke variabel, dikirim sebagai parameter, dan dijadikan nilai kembalian
Lists (Daftar / Array)Listvar list = [1,2,3];Koleksi berurutan yang mengizinkan elemen duplikat, setara dengan array
Sets (Himpunan)Setvar set = {1,2,3};Koleksi tidak berurutan yang tidak mengizinkan elemen duplikat
Maps (Pemetaan Kunci-Nilai)Mapvar map = {"name":"Tom"};Struktur penyimpanan pasangan kunci dan nilai, setiap kunci bersifat unik
Runes (Titik Kode Unicode)RunesRunes("\u{1f600}")Cara lama untuk membaca titik kode Unicode di dalam string; secara resmi disarankan menggunakan paket characters
Null (Nilai Kosong)NullNull n = null;Hanya memiliki satu nilai yaitu null, tipe dasar tingkat tertinggi pada sistem keamanan null

Semua variabel di Dart pada dasarnya adalah objek (instance kelas). Kamu bisa membuatnya dengan cepat menggunakan literal atau menginisialisasi dengan memanggil konstruktor yang sesuai.

'hello' adalah literal string, true adalah literal boolean; konstruktor Map() digunakan untuk membuat instance Map.

Tipe Bantu Khusus Bahasa

Bukan tipe dasar bawaan, namun semuanya merupakan kata kunci cadangan Dart.

Tipe-tipe ini memiliki fungsi khusus untuk sistem tipe, pemrograman asinkron, dan pemeriksaan tipe statis:

TipePenjelasan Fungsi
ObjectKelas induk dari semua kelas Dart, kecuali Null
EnumKelas induk dari semua tipe enumerasi
Future / StreamKhusus untuk pemrograman asinkron
IterableDigunakan untuk perulangan for-in dan generator sinkron
NeverEkspresi yang tidak pernah selesai dieksekusi dengan normal (digunakan untuk fungsi yang selalu melempar pengecualian)
dynamicMenonaktifkan pemeriksaan tipe statis; sebaiknya gunakan Object / Object?
voidTidak memiliki nilai kembalian, sering dipakai sebagai tipe kembalian fungsi

1 Numbers Angka

Kelas induk:num

Angka terbagi menjadi dua subkelas: int (bilangan bulat), double (bilangan pecahan). Keduanya mewarisi num

1.1 int Bilangan Bulat

Perbedaan rentang nilai (Dart juga mendukung pengembangan frontend sehingga ada versi Web):

  • Platform native:-2^63 ~ 2^63 - 1
  • Web (berbasis JS):-2^53 ~ 2^53 - 1

Tanpa titik desimal; mendukung notasi desimal dan heksadesimal dengan awalan 0x

Contoh


void main() {
	// Bilangan bulat desimal
	var pageCount = 123;
	
	// Heksadesimal
	var hex = 0xDEADBEEF;
	
	// Pemisah digit garis bawah (Dart 3.6+, meningkatkan keterbacaan)
	var million = 1_000_000;
	var mac = 0x00_14_22_01_23_45;
	
	print(pageCount);
	print(hex);
	print(million);
	print(mac);
}Code language: Dart (dart)

Hasil eksekusi

123
3735928559
1000000
86469845829

1.2 double Bilangan Pecahan Presisi Ganda

Memuat titik desimal atau notasi ilmiah

void main() {
	var pi = 3.14; // titik desimal
	var raid = 1.61e5; // 1.61 * 10^5 notasi ilmiah
	var tiny = 0.000_000_000_02; // garis bawah untuk pecahan
	
	print(pi);
	print(raid);
	print(tiny);
}Code language: PHP (php)
3.14
161000.0
2e-11Code language: CSS (css)

1.3 Kelas induk num

Variabel bertipe num dapat menyimpan nilai int maupun double:

void main() {
	num money = 5;
	money += 2.5; // Konversi otomatis ke double, money = 7.5
	
	// Menugaskan int ke double akan dikonversi otomatis menjadi 1.0
	double zoom = 1;
	
	print(money);
	print(zoom);
}Code language: PHP (php)

Hasil eksekusi

7.5
1.0Code language: CSS (css)

1.4 Konversi antar tipe

void main() {
	// String → int
	var one = int.parse('123');


	// String → double
	var pi = double.parse('3.14');

	// int / double → String
	String intStr = 99.toString();
	String pi2 = 3.14159.toStringAsFixed(2); // Menyimpan 2 digit pecahan → "3.14"

	
	print(one);
	print(pi);
	print(pi2);
}Code language: JavaScript (javascript)

Hasil eksekusi

123
3.14
3.14Code language: CSS (css)

1.5 Operator bit khusus int

Hanya int yang mendukung operasi geser, bit AND/OR/XOR dan inversi bit. Detail: Dart Bitwise and shift operators – FoxDevelop

void main() {
	print(3 << 1);  // Geser kiri 0011 <<1 → 0110
	print(3 | 4);   // Bit OR
	print(3 & 4);   // Bit AND
	print(~3);       // Inversi bit
}Code language: PHP (php)
6
7
0
-4

1.6 Konstanta angka (compile-time constant)

Literal angka murni dan operasi aritmatika antar konstanta bisa ditandai dengan const

Nilai yang dihitung menjadi tetap pada tahap kompilasi (sebelum program berjalan), tidak berubah saat eksekusi dan tidak perlu dihitung ulang disebut konstanta waktu kompilasi, ditandai dengan const.

const msPerSec = 1000;
const waitSec = 5;
const waitMs = waitSec * msPerSec; // Konstanta waktu kompilasiCode language: JavaScript (javascript)

const: Konstanta waktu kompilasi. Kompiler menghitung ekspresi sebelum program dijalankan dan menanam nilai tetap langsung ke file biner hasil kompilasi; saat eksekusi hanya dibaca tanpa perhitungan tambahan.

final: Konstanta waktu eksekusi (nilai hanya ditugaskan sekali saat program berjalan, tidak bisa diubah setelahnya).

1.7 Metode matematika bawaan

Tersedia langsung pada tipe num; untuk perhitungan kompleks gunakan paket dart:math

abs()ceil()floor()round() dll.

num n = -3.6;
print(n.abs()); // 3.6
print(n.ceil()); // -3
print(n.floor()); // -4Code language: PHP (php)

2. String Teks

Urutan karakter dengan encoding UTF-16 untuk merepresentasikan teks, ada dua cara deklarasi: tanda kutip tunggal atau ganda.

2.1 Cara deklarasi: kutip tunggal / kutip ganda

var s1 = 'teks pakai kutip tunggal';
var s2 = "teks pakai kutip ganda";

// Karakter escape
var s3 = 'It\'s ok';
var s4 = "It's ok"; // Ganti jenis kutip tidak butuh escape
Code language: JavaScript (javascript)

Ada beberapa karakter di dalam string yang memiliki makna khusus (kutip ganda ", baris baru, backslash \). Jika ditulis langsung akan merusak struktur string dan menimbulkan error kompilasi.

Karakter escape \ berfungsi menghapus makna khusus karakter atau menampilkan simbol kontrol yang tidak terlihat.

Tombol Enter, Tab tidak tampil di layar sehingga pakai urutan escape seperti \t. Coba jalankan kode berikut untuk melihat cara kerjanya:

  print("name\tage\tcountry");
  print("Jack\t18\tUSA");
  print("Lucy\t20\tEgypt");Code language: PHP (php)

2.2 Interpolasi string ${ekspresi}

  • Untuk variabel sederhana kurung kurawal bisa dihilangkan:$variabel
  • Objek akan otomatis memanggil .toString()
void main() {
	var word = "interpolation";
	var str1 = "Dart memiliki fitur $word";
	var str2 = "Huruf besar:${word.toUpperCase()}";
	print(str2); //Huruf besar:INTERPOLATION
}Code language: JavaScript (javascript)

2.3 Penggabungan string

  1. Literal yang berdekatan akan digabung otomatis (meskipun ada baris baru)
  2. Operator + untuk penggabungan
var s1 = "Baris pertama"
    "Baris kedua";
var s2 = "a" + "b";
assert(s1 == "Baris pertamaBaris kedua");
assert(s2 == "ab");Code language: JavaScript (javascript)

2.4 String multibaris: tiga kutip tunggal ”’ / tiga kutip ganda “””

void main() {
	var multi1 = '''
	Teks
	multibaris
	''';

	var multi2 = """
	String multibaris tiga kutip ganda
	hello foxdevelop.com
	""";
	
	print(multi1);
	print(multi2);

}Code language: PHP (php)
        Teks
        multibaris

        String multibaris tiga kutip ganda
        hello foxdevelop.comCode language: JavaScript (javascript)

Kutip ganda di dalam tiga kutip tunggal dan sebaliknya tidak perlu escape:

2.5 String mentah r”” abaikan karakter escape

var raw = r"Simbol baris baru \n tidak akan diproses";
print(raw); // \n dicetak apa adanya
Code language: PHP (php)

2.6 Batasan string const

Konten interpolasi hanya boleh berupa konstanta waktu kompilasi (angka, bool, string const); variabel biasa dan koleksi tidak diizinkan

const num cNum = 10;
const bool cBool = true;
const String cStr = "const";
// String const valid
const valid = "$cNum $cBool $cStr";

var normalNum = 10;
// Salah: interpolasi memuat variabel non-konstanta 
// const invalid = "$normalNum";
Code language: JavaScript (javascript)

3. bool Tipe Boolean

Hanya ada dua instance: true / false, keduanya konstanta waktu kompilasi

Dart menggunakan tipe kuat: tidak bisa langsung gunakan angka atau string untuk pengecekan benar/salah, wajib pakai perbandingan eksplisit

void main() {
	var emptyStr = "";
	print(emptyStr.isEmpty); // Cek string kosong

	var zero = 0;
	print(zero == 0); // Cek nol

	var nil = null;
	print(nil == null); // Cek null

	var nan = 0 / 0;
	print(nan.isNaN); // Cek bukan angka

}Code language: PHP (php)

4. Runes & characters Pengolahan Karakter Unicode

  1. Runes: cara lama untuk membaca titik kode Unicode di dalam string
  2. Disarankan pakai package:characters: memproses klaster grafem yang tampak sebagai satu karakter penuh (seperti emoji bendera negara)

Sintaks escape Unicode

  • 4 digit heksadesimal:\uXXXX
  • Titik kode besar lebih dari 4 digit:\u{heksadesimal}
var heart = "\u2665"; // ♥
var laugh = "\u{1f606}"; // 😆
Code language: JavaScript (javascript)

Contoh paket characters

import 'package:characters/characters.dart';
void main() {
  var text = "Hi 🇩🇰";
  print(text.characters.last); // Mencetak emoji bendera Denmark utuh
}
Code language: JavaScript (javascript)

5. Symbol Simbol

Digunakan untuk refleksi dan obfuscasi kode, literal #identifier, konstanta waktu kompilasi.

Proses obfuscasi tidak mengubah Symbol, cocok untuk merujuk identifier secara dinamis berdasarkan nama.

#userName
#getData
Code language: CSS (css)

6. Null Tipe Nilai Kosong

Hanya memiliki satu nilai yaitu null. Dalam sistem keamanan null, Null adalah tipe akar mandiri, semua tipe yang menerima null kompatibel dengan null.

String? name = null;
Null n = null;
Code language: JavaScript (javascript)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *