Fundamental
Tipe data di dalam dart :
int: bilangan bulatdouble: bilangan pecahannum: bisaintataudoubleString: teksbool: nilaitrueataufalsedynamic: bisa menyimpan tipe apapun
int umur = 25;
double tinggi = 1.75;
String nama = 'Ali';
bool isMenikah = false;
dynamic bebas = 'text';Variabel dan Constanta
var: tipe otomatis tergantung nilai awal.final: tidak bisa diubah setelah deklarasi, tapi bisa membaca perubahan.const: tidak bisa diubah tanpa terkecuali.
//Bisa diubah
var name = "Budi";
name = "Andi";
print("var: $name");
Andi
//Tidak bisa diubah tapi bisa membaca perubahan
final date = DateTime.now();
//Tidak bisa diubah tanpa terkecuali
const pi = 3.14;Fungsi
void main() {
final int a = 2;
final int b = 3;
int hasil(int a, int b) {
return a + b;
}
print(hasil(a, b)); // Output: 5
}
atau
void main() {
final int a = 2;
final int b = 3;
int hasil = tambah(a, b);
print(hasil); // Output: 5
}
int tambah(int a, int b) {
return a + b;
}Logic
//If & Else
if (nilai > 80) {
print('Bagus');
} else {
print('Kurang');
}
//Switch Case
switch (angka) {
case 1:
print('Satu');
break;
default:
print('Bukan satu');
}
//Switch Case Complex
enum CustomerType {
regular,
member,
vip,
staff,
}
double calculateDiscount(CustomerType type, double total) {
switch (type) {
case CustomerType.regular:
return total * 0.05; // 5% untuk pelanggan biasa
case CustomerType.member:
return total * 0.10; // 10% untuk member
case CustomerType.vip:
return total * 0.20; // 20% untuk VIP
case CustomerType.staff:
return total * 0.25; // 25% untuk karyawan
default:
return 0.0;
}
}
//Switch Case Complex dengan Break
enum OrderStatus {
pending,
processing,
completed,
canceled,
}
void main() {
OrderStatus status = OrderStatus.processing;
switch (status) {
case OrderStatus.pending:
print('Order sedang menunggu');
break;
case OrderStatus.processing:
print('Order sedang diproses');
break;
case OrderStatus.completed:
print('Order sudah selesai');
break;
case OrderStatus.canceled:
print('Order dibatalkan');
break;
}
}
//For, while & do-while
void main() {
List<String> names = ["Budi", "Andi", "Siti"];
// [For loop]
for (var i = 0; i < names.length; i++) print("$i ${names[i]}");
// [While loop]
var j = 0;
while (j < names.length) {
print("$j ${names[j]}");
j++;
}
// [Do-while loop]
var k = 0;
do {
print("$k ${names[k]}");
k++;
} while (k < names.length);
}
output :
0 Budi
1 Andi
2 Siti
//List
void main() {
List<String> fruits = ['Apple', 'Banana', 'Orange'];
print(fruits[0]); // Output: Apple
}
//Fungsi sebagai parameter
void greeting(String name) {
print("Hello, $name!");
}
void main() {
var user = "Budi";
var func = greeting; // Menyimpan referensi fungsi greeting
func(user); // Output: Hello, Budi!
}Collection
//List
List<int> angka = [1, 2, 3];
angka.add(4);
//Set
Set<int> unik = {1, 2, 2, 3}; // hasil: {1, 2, 3}
//Map
void main() {
Map<String, int> ages = {'Budi': 20, 'Andi': 25, 'Siti': 22};
print(ages['Budi']); // Output: 20
}
//Class & Object
class Manusia {
String nama;
int umur;
Manusia(this.nama, this.umur);
void sapa() {
print('Saya $nama');
}
}
var orang = Manusia('Dino', 22);
orang.sapa();Null Safety
Null Safety membantu mencegah error saat kamu mencoba mengakses data yang belum diisi (alias null). Dart memaksa kamu menyatakan apakah suatu variabel bisa null atau tidak.
String? username;
if (username != null) {
print("Panjang: ${username.length}"); // ✅ Aman
} else {
print("Username masih kosong");
}Last updated