unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Tipe Data

Tipe Data #

Dart adalah bahasa pemrograman yang kuat dengan sistem tipe data yang fleksibel dan aman. Memahami tipe data dalam Dart sangat penting karena ini mempengaruhi cara Anda menulis dan mengoptimalkan kode. Dart menggunakan tipe data untuk menentukan jenis nilai yang dapat disimpan dalam variabel, serta operasi yang dapat dilakukan pada nilai-nilai tersebut.

Tipe Data Primitif #

Tipe data primitif adalah tipe data dasar yang langsung disediakan oleh bahasa pemrograman. Dalam Dart, tipe data primitif mencakup:

  • int: Bilangan bulat
  • double: Bilangan desimal
  • num: Tipe data umum untuk int dan double
  • bool: Nilai boolean (true/false)
  • String: Kumpulan karakter (teks)

int #

Tipe data int digunakan untuk menyimpan bilangan bulat, baik positif maupun negatif.

Contoh:

int umur = 25;
int tinggi = -180;

Pada contoh di atas, umur dan tinggi adalah variabel bertipe int.

double #

Tipe data double digunakan untuk menyimpan bilangan desimal (floating-point). Dart menggunakan tipe double untuk angka-angka dengan titik desimal.

Contoh:

double berat = 70.5;
double pi = 3.14159;

Pada contoh di atas, berat dan pi adalah variabel bertipe double.

num #

Tipe data num adalah tipe data umum yang dapat menyimpan nilai int maupun double. Tipe ini berguna ketika Anda tidak ingin menentukan secara spesifik apakah nilai yang disimpan akan berupa int atau double.

Contoh:

num a = 10; // int
num b = 20.5; // double

Pada contoh di atas, a adalah int dan b adalah double, tetapi keduanya bertipe num.

bool #

Tipe data bool digunakan untuk menyimpan nilai boolean, yaitu true atau false. Tipe ini biasanya digunakan dalam operasi logika dan kontrol alur seperti if, while, dan for.

Contoh:

bool isActive = true;
bool isComplete = false;

Pada contoh di atas, isActive dan isComplete adalah variabel bertipe bool.

String #

Tipe data String digunakan untuk menyimpan teks. String adalah kumpulan karakter yang diapit oleh tanda kutip tunggal (') atau ganda (").

Contoh:

String nama = 'John Doe';
String pesan = "Selamat datang di Dart!";

Pada contoh di atas, nama dan pesan adalah variabel bertipe String.

Tipe Data Koleksi #

Dart menyediakan beberapa tipe data koleksi untuk menyimpan kumpulan nilai. Tipe data koleksi ini mencakup:

  • List: Daftar nilai (array)
  • Set: Kumpulan nilai unik
  • Map: Peta pasangan kunci-nilai

List #

List adalah tipe data yang digunakan untuk menyimpan kumpulan nilai dalam urutan tertentu. Nilai-nilai ini dapat diakses melalui indeks mereka. Dart mendukung List yang dapat berubah (mutable) dan yang tidak dapat berubah (immutable).

Contoh:

List<int> angka = [1, 2, 3, 4, 5];
List<String> nama = ['Alice', 'Bob', 'Charlie'];

Pada contoh di atas, angka adalah daftar bilangan bulat (int), dan nama adalah daftar string (String).

Akses Elemen List:

print(angka[0]); // Output: 1
print(nama[1]); // Output: Bob

Menambahkan Elemen:

angka.add(6);
print(angka); // Output: [1, 2, 3, 4, 5, 6]

Immutable List:

final List<int> angka = const [1, 2, 3, 4, 5];
// angka.add(6); // Akan menyebabkan error

Set #

Set adalah tipe data yang digunakan untuk menyimpan kumpulan nilai unik. Tidak seperti List, Set tidak mempertahankan urutan elemen.

Contoh:

Set<int> angka = {1, 2, 3, 4, 5};
Set<String> nama = {'Alice', 'Bob', 'Charlie'};

Pada contoh di atas, angka adalah kumpulan bilangan bulat unik, dan nama adalah kumpulan string unik.

Menambahkan Elemen:

angka.add(6);
angka.add(2); // Tidak akan menambahkan karena 2 sudah ada dalam set
print(angka); // Output: {1, 2, 3, 4, 5, 6}

Map #

Map adalah tipe data yang digunakan untuk menyimpan pasangan kunci-nilai (key-value pairs). Setiap kunci di dalam Map harus unik, tetapi nilainya bisa duplikat.

Contoh:

Map<String, int> skor = {
  'Alice': 90,
  'Bob': 85,
  'Charlie': 88
};

Pada contoh di atas, skor adalah peta yang menyimpan nama (kunci) sebagai String dan skor sebagai int.

Akses Nilai:

print(skor['Alice']); // Output: 90

Menambahkan atau Mengubah Nilai:

skor['David'] = 92;
print(skor); // Output: {Alice: 90, Bob: 85, Charlie: 88, David: 92}

Tipe Data Khusus #

Dart juga mendukung tipe data khusus yang memberikan fungsionalitas tambahan, seperti dynamic, var, Object, dan Null.

dynamic #

dynamic adalah tipe data yang memungkinkan variabel berubah tipe selama waktu eksekusi. Ini memberikan fleksibilitas, tetapi juga mengurangi keamanan tipe, karena Dart tidak akan melakukan pemeriksaan tipe pada variabel yang bertipe dynamic.

Contoh:

dynamic variabel = 42;
print(variabel); // Output: 42

variabel = 'Halo';
print(variabel); // Output: Halo

Pada contoh di atas, variabel dapat berubah tipe dari int ke String karena bertipe dynamic.

var #

var adalah kata kunci yang digunakan untuk mendeklarasikan variabel tanpa menentukan tipe secara eksplisit. Dart akan secara otomatis menentukan tipe variabel berdasarkan nilai awal yang diberikan.

Contoh:

var umur = 25; // Dart akan mengenali ini sebagai int
var nama = 'John'; // Dart akan mengenali ini sebagai String

Pada contoh di atas, meskipun tipe variabel tidak ditentukan secara eksplisit, Dart tetap mengenali tipe berdasarkan nilai awal.

Object #

Object adalah tipe dasar dari semua tipe di Dart. Setiap tipe data di Dart adalah turunan dari Object. Ini berarti Anda bisa menyimpan nilai apa pun dalam variabel bertipe Object.

Contoh:

Object data = 42;
print(data); // Output: 42

data = 'Halo';
print(data); // Output: Halo

Pada contoh di atas, variabel data dapat menyimpan nilai int dan String karena bertipe Object.

Null #

Null adalah tipe data yang hanya memiliki satu nilai, yaitu null. Ini digunakan untuk menyatakan bahwa suatu variabel tidak memiliki nilai atau tidak terinisialisasi.

Contoh:

int? umur; // Deklarasi tipe nullable int
print(umur); // Output: null

umur = null;
print(umur); // Output: null

Pada contoh di atas, umur adalah tipe int yang nullable (int?), sehingga bisa menyimpan nilai null.

Nullable dan Non-Nullable Types #

Sejak Dart 2.12, fitur null safety diperkenalkan, yang secara default tidak mengizinkan variabel menyimpan nilai null, kecuali jika Anda secara eksplisit mengizinkannya dengan menggunakan tanda tanya (?).

Non-Nullable:

int umur = 25;
// umur = null; // Ini akan menyebabkan error

Nullable:

int? umur;
umur = null; // Ini diperbolehkan karena variabel umur bertipe nullable

Fitur null safety ini membantu mencegah kesalahan null reference yang umum dalam pemrograman.

Kesimpulan #

Dart menawarkan sistem tipe data yang kaya dan fleksibel, mulai dari tipe primitif seperti int, double, dan bool, hingga tipe koleksi seperti List, Set, dan Map. Selain itu, Dart juga mendukung tipe khusus seperti dynamic, var, Object, dan Null, yang memberikan fleksibilitas dalam penulisan kode. Memahami tipe data dan bagaimana mereka bekerja dalam Dart adalah kunci untuk menulis kode yang efisien, aman, dan mudah dipelihara. Fitur null safety yang diperkenalkan pada Dart 2.12 juga memberikan lapisan keamanan tambahan dalam penanganan nilai null, sehingga membantu mengurangi bug dalam kode Anda.

« Konstanta
Operator »