Dart adalah bahasa pemrograman berorientasi objek (OOP) yang dikembangkan oleh Google dan diperkenalkan pertama kali pada tahun 2011 oleh Lars Bak dan Kasper. Sintaksnya menyerupai bahasa C, Java, dan JavaScript, sehingga memudahkan pengembang yang sudah terbiasa dengan bahasa-bahasa tersebut. Dart mendukung berbagai paradigma pemrograman, termasuk fungsional, imperatif, dan reflektif. Fitur-fiturnya mencakup class-based, garbage collection, mixins, generics, serta type inference, yang membuat penulisan kode lebih fleksibel dan efisien.
Dalam hal kinerja, Dart menawarkan kompilasi Just-in-Time (JIT) untuk pengembangan cepat dan Ahead-of-Time (AOT) untuk performa optimal saat dijalankan. Sejak versi 2.12, Dart menerapkan sound null safety, yang secara signifikan mengurangi risiko NullPointerException, dan sejak Dart 3 semua kode wajib mematuhi aturan null safety.
Salah satu kekuatan utama Dart adalah sebagai bahasa utama Flutter, framework open-source dari Google untuk membangun aplikasi lintas platform mulai dari Android, iOS, web, hingga desktop—dengan satu basis kode. Selain itu, Dart juga bisa digunakan untuk pengembangan aplikasi web (dengan kompilasi ke JavaScript atau WebAssembly), server-side, dan desktop. Ekosistemnya didukung oleh manajer paket pub.dev, berbagai pustaka, serta tooling seperti DevTools dan plugin editor, yang membantu pengembang bekerja lebih cepat dan efisien.
Instalasi SDK Dart dengan Chocolatey
Untuk menggunakan Dart SDK, ada beberapa cara yang bisa dilakukan, misalnya:
- Menggunakan Chocolatey (khusus Windows).
- Mengunduh file SDK dalam bentuk ZIP, kemudian mengekstraknya secara manual di perangkat.
Pada contoh ini, kita akan menggunakan cara instalasi dengan Chocolatey karena lebih praktis dan mudah.
Instalasi Chocolatey
Langkah pertama adalah menginstal Chocolatey. Caranya:
- Buka PowerShell dengan mode Administrator.
- Jalankan perintah berikut di PowerShell:
Set-ExecutionPolicy Bypass -Scope Process -Force; `
[System.Net.ServicePointManager]::SecurityProtocol = `
[System.Net.ServicePointManager]::SecurityProtocol -bor 3072; `
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
- Jika muncul konfirmasi di Command Prompt/PowerShell, tekan
ylalu Enter. - Tunggu proses instalasi hingga selesai.
Verifikasi Instalasi Chocolatey
Setelah instalasi selesai, kita bisa mengecek apakah Chocolatey sudah terpasang dengan baik menggunakan perintah:
choco -v
jika berhasil maka akan seperti ini :

Setelah install Chocolatey, barulah kita bisa menginstall dart di perangkat kita. Caranya dengan memasukkan perintah berikut di command prompt:
choco install dart-sdk
JIka berhasil diinstall, maka cek dengan masukkan keyword “dart” di Command Prompt. Jika berhasil maka tampilannya akan seperti berikut:

Kemudian install dart di vscode :

Setelah itu, kita buat project dart pertama kita. Caranya dengan perintah cmd berikut:
dart create halo
Untuk menjalankan project, gunakan perintah:
dart run bin/halp.dart
Maka tampilannya akan seperti berikut:

Selanjutnya adalah membuat List dalam bahasa pemrograman Dart. Untuk membuat list yaitu:
List<Tipe Data> variabel=[]
Atau:
List<Tipe Data> var variabel = <Tipe Data>[]
Untuk lebih memahami bagaimana list berkerja, gunakan kode berikut:
Selanjutnya adalah membuat List dalam bahasa pemrograman Dart.
Untuk membuat list yaitu:
List<Tipe Data> variabel = []
Atau:
List<Tipe Data> var variabel = <Tipe Data>[]
Untuk lebih memahami bagaimana list bekerja, gunakan kode berikut:
void main(List<String> arguments) {
// list
List<String> fruits = ['Apel', 'Alpukat', 'Nanas', 'Mangga', 'Pisang'];
print(fruits.toString());
// manipulasi list
fruits.add('Jeruk');
print(fruits.toString());
fruits.remove('Alpukat');
print(fruits.toString());
fruits[0] = 'Semangka';
print(fruits.toString());
fruits.sort();
print(fruits.toString());
fruits.shuffle();
print(fruits.toString());
print(fruits.length);
print(fruits.first);
print(fruits.last);
print(fruits.contains('Mangga'));
print(fruits.indexOf('Pisang'));
print(fruits.isEmpty);
print(fruits.isNotEmpty);
}
Hasilnya adalah sebagai berikut:

Selanjutnya adalah Set.
Set merupakan sebuah tipe data yang mirip dengan list, akan tetapi set tidak memiliki index sehingga data yang ada pada set tidak berurutan.
Selain itu, set tidak menerima duplikasi data dan tidak bisa diakses menggunakan index.
Untuk membuat set yaitu:
Set<TipeData> namaVariabel = {}
Atau:
var namaVariabel = <TipeData>{}
Untuk lebih memahami bagaimana cara set bekerja di bahasa pemrograman Dart, berikut adalah contoh kodenya:
void main(List<String> arguments) {
// set
Set<String> animals = {'Kucing', 'Anjing', 'Kelinci', 'Burung'};
print(animals.toString());
// manipulasi set
animals.add('Ikan');
print(animals.toString());
animals.remove('Kelinci');
print(animals.toString());
print(animals.length);
print(animals.contains('Anjing'));
print(animals.isEmpty);
print(animals.isNotEmpty);
}
Hasil dari kode tersebut adalah sebagai berikut:

Selanjutnya adalah Map.
Map adalah tipe data key-value, di mana key berperan seperti index dan value adalah datanya.
Map menggunakan kurung kurawal {} serta tanda : untuk memisahkan key dan value.
Jika ada key yang sama, maka value terakhir akan menimpa value sebelumnya.
Untuk membuat map yaitu:
Map<TipeDataKey, TipeDataValue> namaVariabel = {};
Atau:
var namaVariabel = Map<TipeDataKey, TipeDataValue>();
Atau:
var namaVariabel = <TipeDataKey, TipeDataValue>{};
Contoh penggunaannya adalah sebagai berikut:

Selanjutnya, kita akan masuk ke perulangan pada Dart.
Ada dua cara perulangan dalam Dart, yaitu:
Cara pertama: for-in dan forEach
for (var fruit in fruits) {
print(fruit);
}
for (var animal in animals) {
print(animal);
}
productPrices.forEach((key, value) {
print('$key: $value');
});
atau
for (var i = 0; i < fruits.length; i++) {
print(fruits[i]);
}
for (var i = 0; i < animals.length; i++) {
print(animals.elementAt(i));
}
for (var i = 0; i < productPrices.length; i++) {
print(
'${productPrices.keys.elementAt(i)}: ${productPrices.values.elementAt(i)}',
);
}
Hasil untuk perulangan cara pertama adalah sebagai berikut:

hasil kedua :

Selanjutnya, Object-Oriented Programming dalam bahasa pemrograman Dart. Buatkan kode berikut agar lebih memahami bagaimana OOP di Dart berkerja:
void main(List<String> arguments) {
//Object Oriented Programming (OOP)
//membuat object
var car1 = Car();
car1.color = 'Red';
car1.brand = 'Toyota';
car1.year = 2020;
car1.drive();
car1.honk();
print('Car 1: ${car1.color}, ${car1.brand}, ${car1.year}');
Cat cat1 = Cat();
cat1.eat();
cat1.meow();
}
class Car {
//property
String color = '';
String brand = '';
int year = 0;
//method
void drive() {
print('The $color $brand is driving.');
}
void honk() {
print('The $color $brand is honking.');
}
}
//pewarisan
class Animal {
void eat() {
print('The animal is eating.');
}
}
class Dog extends Animal {
void bark() {
print('The dog is barking.');
}
}
class Cat extends Animal {
void meow() {
print('The cat is meowing.');
}
}
Hasilnya akan seperti berikut:

Tugas
Deskripsi Tugas:
Buatlah aplikasi sederhana mini laundry menggunakan Bahasa pemgrograman Dart dengan ketentuan sebagai berikut :
- Paket Cuci dan Setrika 1 kg 6.000
- Paket Cuci 1 kg 4.000
- Paket Setrika 1 kg 3.000
- Jika total laundry >= 50.000 maka mendapatkan potongan harga 5%, dan jika lebih dari 100.000 mendapatkan potongan 10%
- Tampilkan output jumlah yang harus dibayar
berikut kode proceduralnya :
import ‘dart:io’;
void main() {
print(“Selamat Datang Mini Laundry”);
print(“Pilih Paket yang kamu inginkan.”);
print(“1. Cuci + Setrika (Rp 6000/kg)”);
print(“2. Cuci saja (Rp 4000/kg)”);
print(“3. Setrika saja (Rp 3000/kg)”);
stdout.write(“pilih paket: “);
int pilihan = int.parse(stdin.readLineSync()!);
stdout.write(“jumlah kg: “);
int kg = int.parse(stdin.readLineSync()!);
int hasil = 0;
switch (pilihan) {
case 1:
hasil = 6000 * kg;
break;
case 2:
hasil = 4000 * kg;
break;
case 3:
hasil = 3000 * kg;
break;
default:
print(“Input salah!”);
return;
}
double total = 0.0;
if (hasil >= 100000) {
double persen = hasil * 10 / 100;
total = hasil – persen;
} else if (hasil >= 50000) {
double persen = hasil * 5 / 100;
total = hasil – persen;
} else {
total = hasil.toDouble();
}
print(“Total harga: Rp ${total.toInt()}”);
}
berikut hasilnya

berikut kode yang sudah diubah ke oop:
import ‘dart:io’;
void main() {
var cucian = Laundry();
print(“Selamat Datang Mini Laundry”);
print(“Pilih Paket yang kamu inginkan.”);
print(“1. Cuci + Setrika (Rp 6000/kg)”);
print(“2. Cuci saja (Rp 4000/kg)”);
print(“3. Setrika saja (Rp 3000/kg)”);
stdout.write(“pilih paket: “);
int pilihan = int.parse(stdin.readLineSync()!);
stdout.write(” jumlah kg: “);
cucian.kg = int.parse(stdin.readLineSync()!);
int totalHarga = cucian.pilih(pilihan);
if (totalHarga > 0) {
double hargaSetelahDiskon = cucian.diskon(totalHarga.toDouble());
print(“Total: Rp ${hargaSetelahDiskon.toInt()}”);
if (hargaSetelahDiskon < totalHarga) {
double persenDiskon = totalHarga >= 100000 ? 10 : 5;
print(“Anda mendapat diskon ${persenDiskon}%!”);
}
}
}
class Laundry {
int kg = 0;
int hasil = 0;
int pilih(int n) {
switch (n) {
case 1:
return hasil = 6000 * kg;
case 2:
return hasil = 4000 * kg;
case 3:
return hasil = 3000 * kg;
default:
print(“Input salah!”);
return 0;
}
}
double diskon(double n) {
double persen = 0;
if (n >= 100000) {
persen = n * 10 / 100;
return n – persen;
} else if (n >= 50000) {
persen = n * 5 / 100;
return n – persen;
} else {
return n;
}
}
}
dan hasilnya seperti ini
