Variabel #
Variabel adalah salah satu konsep dasar dalam pemrograman yang digunakan untuk menyimpan dan mengelola data dalam program. Dalam bahasa Dart, variabel dapat dideklarasikan dengan berbagai cara dan memiliki beberapa sifat unik yang membedakannya dari bahasa pemrograman lain. Berikut ini adalah penjelasan lengkap dan mendetail mengenai variabel dalam Dart.
Deklarasi Variabel #
Dart mendukung beberapa cara untuk mendeklarasikan variabel, baik secara eksplisit dengan tipe data tertentu atau secara implisit menggunakan kata kunci var
, final
, atau const
.
-
Menggunakan
var
: Kata kuncivar
digunakan untuk mendeklarasikan variabel tanpa secara eksplisit menyebutkan tipe datanya. Tipe data dari variabel tersebut akan diinferensikan oleh Dart berdasarkan nilai yang diberikan.Contoh:
var nama = 'Dart'; // Tipe data adalah String var umur = 25; // Tipe data adalah int
-
Deklarasi dengan Tipe Data: Anda juga dapat secara eksplisit mendeklarasikan tipe data dari variabel, seperti
int
,double
,String
,bool
, dll.Contoh:
String bahasa = 'Dart'; int tahun = 2024; double pi = 3.14; bool isDartFun = true;
-
Menggunakan
final
: Kata kuncifinal
digunakan untuk mendeklarasikan variabel yang nilainya tidak bisa diubah setelah diinisialisasi.final
bisa digunakan baik dengan atau tanpa tipe data.Contoh:
final String nama = 'Dart'; final umur = 25; // Tipe data adalah int
-
Menggunakan
const
: Kata kunciconst
digunakan untuk mendeklarasikan variabel sebagai konstanta waktu kompilasi. Nilai dari variabelconst
harus diketahui dan diinisialisasi pada saat kompilasi. Variabelconst
bersifat immutable (tidak dapat diubah).Contoh:
const double kecepatanCahaya = 299792458; // dalam meter per detik const umur = 25; // Tipe data adalah int
Inisialisasi Variabel #
Setelah variabel dideklarasikan, variabel tersebut dapat langsung diinisialisasi dengan nilai. Jika variabel tidak diinisialisasi, nilai default-nya adalah null
, dengan pengecualian untuk tipe data const
yang harus diinisialisasi saat deklarasi.
-
Inisialisasi Langsung: Variabel dapat diinisialisasi langsung pada saat deklarasi.
Contoh:
var angka = 10; final pi = 3.14;
-
Inisialisasi Kemudian: Variabel yang dideklarasikan dengan
var
atau tipe data tertentu dapat diinisialisasi kemudian, tetapi tidak berlaku untukfinal
danconst
tanpa inisialisasi langsung.Contoh:
var nama; nama = 'Dart';
Variabel Nullable dan Non-Nullable #
Dart mendukung sistem tipe yang null-safe, yang berarti bahwa secara default, variabel tidak dapat menyimpan nilai null
kecuali dideklarasikan sebagai nullable dengan menambahkan tanda tanya (?
) setelah tipe data.
-
Non-Nullable: Variabel yang tidak dapat menyimpan nilai
null
.Contoh:
String bahasa = 'Dart';
-
Nullable: Variabel yang dapat menyimpan nilai
null
.Contoh:
String? bahasa; // Bisa menyimpan nilai null bahasa = null;
Late Variables #
Dart memiliki fitur late
yang memungkinkan deklarasi variabel yang diinisialisasi nanti, tetapi tetap dijamin untuk diinisialisasi sebelum digunakan. late
sangat berguna untuk variabel yang membutuhkan inisialisasi yang kompleks atau tertunda hingga runtime.
-
Menggunakan
late
dengan variabel: Variabellate
bisa dideklarasikan tanpa inisialisasi langsung, namun harus diinisialisasi sebelum digunakan.Contoh:
late String nama; nama = 'Dart'; // Inisialisasi kemudian print(nama); // Output: Dart
-
Late
final
Variables: Variabelfinal
juga dapat dideklarasikan denganlate
, yang artinya variabel tersebut tidak bisa diubah setelah diinisialisasi, tetapi inisialisasi bisa dilakukan nanti.Contoh:
late final String nama; nama = 'Dart'; // Hanya bisa diinisialisasi sekali
Scope Variabel #
Variabel dalam Dart memiliki cakupan (scope) yang dapat dibagi menjadi dua kategori utama: global dan lokal.
-
Global Scope: Variabel yang dideklarasikan di luar fungsi atau kelas memiliki cakupan global dan dapat diakses dari mana saja dalam program.
Contoh:
int angkaGlobal = 42; void printAngka() { print(angkaGlobal); // Dapat mengakses variabel global }
-
Local Scope: Variabel yang dideklarasikan di dalam fungsi, blok, atau kelas hanya dapat diakses di dalam cakupan tersebut.
Contoh:
void printAngka() { int angkaLokal = 10; print(angkaLokal); // Hanya dapat diakses di dalam fungsi ini }
Type Inference #
Dart mendukung inferensi tipe, di mana compiler Dart secara otomatis menentukan tipe variabel berdasarkan nilai yang diberikan. Ini membuat kode lebih ringkas dan mudah dibaca.
-
Contoh Inferensi Tipe:
var angka = 42; // Tipe variabel adalah int var nama = 'Dart'; // Tipe variabel adalah String
Mutability dan Immutability #
Variabel dalam Dart dapat mutable (dapat diubah) atau immutable (tidak dapat diubah).
-
Mutable Variables: Variabel yang nilainya dapat diubah setelah inisialisasi.
Contoh:
var bahasa = 'Dart'; bahasa = 'Flutter'; // Nilai variabel berubah
-
Immutable Variables: Variabel
final
danconst
adalah immutable, artinya setelah diinisialisasi, nilainya tidak dapat diubah.Contoh:
final pi = 3.14; // pi = 3.14159; // Error: Nilai variabel tidak dapat diubah
Kesimpulan #
Variabel dalam Dart merupakan elemen dasar yang fleksibel dan kuat, dengan berbagai fitur seperti inferensi tipe, null safety, final
, const
, dan late
, yang memberikan kontrol penuh kepada pengembang atas bagaimana data dikelola dalam aplikasi. Memahami konsep-konsep ini akan membantu Anda menulis kode Dart yang lebih efisien, aman, dan mudah dipelihara.