Menu
CoddyTech

Cheat Sheet Dart

Terakhir diperbarui

Hello World & struktur program

Setiap program Dart dimulai di fungsi main tingkat atas.

OperasiSintaks
Titik masuk programvoid main() { ... }
Mencetak satu barisprint("Hello, World!");
Interpolasi stringprint("Hi $name");
Ekspresi dalam interpolasiprint("Sum: ${a + b}");
Komentar// this is a comment
Komentar beberapa baris/* ... */
Mengimpor libraryimport 'dart:math';
Menjalankan filedart run main.dart

Variabel & tipe

Dart bertipe statis, tetapi bisa menyimpulkan tipe dengan var.

OperasiSintaks
Variabel dengan tipe disimpulkanvar age = 30;
Tipe eksplisitint age = 30;
Konstanta saat compileconst pi = 3.14;
Konstanta saat runtimefinal name = getName();
Tipe dasarint, double, String, bool
Tipe dinamisdynamic x = 5;
Konversi tipeint.parse("42"), n.toString()
Memeriksa tipex is String, x as String

Null safety

Tipe bersifat non-nullable secara default; tambahkan ? untuk mengizinkan null.

OperasiSintaks
Non-nullable (default)int count = 0;
Tipe nullableString? name;
Akses null-awareuser?.name
Null-coalescingname ?? "default"
Penugasan null-coalescingname ??= "default";
Memastikan tidak nullname!
Inisialisasi latelate String value;
Spread null-aware[...?maybeList]

String

String mendukung kutip tunggal, ganda, dan tiga kutip.

OperasiSintaks
Panjangs.length
Huruf besar / kecils.toUpperCase(), s.toLowerCase()
Interpolasi"Total: $price"
Menggabungkan"foo" + "bar"
Mengandung tekss.contains("ell")
Diawali / diakhiri dengans.startsWith("he")
Memecah"a,b,c".split(",")
Menggantis.replaceAll("a", "b")
Substrings.substring(0, 3)
Menghapus spasi di tepis.trim()

Collection (List, Map, Set)

Tiga tipe collection inti dengan sintaks literal.

OperasiSintaks
Literal listvar nums = [1, 2, 3];
Menambah ke listnums.add(4);
Akses / panjangnums[0], nums.length
Map / wherenums.map((n) => n * 2), nums.where((n) => n > 1)
Literal mapvar ages = {"Ada": 30};
Akses mapages["Ada"]
Literal setvar ids = {1, 2, 3};
Operator spreadvar all = [...a, ...b];
Collection if / for[if (show) 1, for (n in xs) n]

Alur kontrol

Kondisi ditulis di dalam tanda kurung; switch mendukung pattern.

OperasiSintaks
If / elseif (x > 0) { ... } else { ... }
Ternaryvar r = x > 0 ? "pos" : "neg";
Switchswitch (n) { case 1: ...; default: ... }
For loopfor (var i = 0; i < 10; i++) { ... }
For-in loopfor (var item in items) { ... }
forEachitems.forEach((x) => print(x));
While loopwhile (x < 100) { ... }
Do-whiledo { ... } while (x < 100);
Break / continuebreak;, continue;

Fungsi

Fungsi adalah first-class; sintaks arrow mempersingkat ekspresi tunggal.

OperasiSintaks
Mendefinisikan fungsiint add(int a, int b) { return a + b; }
Fungsi arrowint square(int x) => x * x;
Posisional opsionalvoid log(String m, [int? code]) { ... }
Parameter bernamavoid box({int w = 0, int h = 0}) { ... }
Parameter bernama wajibvoid box({required int w}) { ... }
Fungsi anonimvar f = (x) => x * 2;
Mengirim sebagai argumennums.map((n) => n * 2)
Typedeftypedef IntOp = int Function(int);

Class & constructor

Class menyimpan state dan perilaku; constructor punya beberapa bentuk.

OperasiSintaks
Mendefinisikan classclass Point { int x; int y; }
ConstructorPoint(this.x, this.y);
Constructor bernamaPoint.origin() : x = 0, y = 0;
Membuat instancevar p = Point(1, 2);
Methoddouble dist() { ... }
Getterint get area => w * h;
Inheritanceclass Circle extends Shape { ... }
Memanggil supersuper(args)
Class abstrakabstract class Shape { ... }
Mengimplementasikan interfaceclass Dog implements Animal { ... }

Async (Future / async-await)

Future mewakili nilai yang tersedia nanti; await berhenti sejenak sampai nilainya siap.

OperasiSintaks
Fungsi asyncFuture<int> load() async { ... }
Menunggu future dengan awaitvar data = await load();
Mengembalikan nilaireturn 42; di dalam fungsi async
Jedaawait Future.delayed(Duration(seconds: 1));
Menangani errortry { await load(); } catch (e) { ... }
Merangkai dengan thenload().then((v) => print(v));
Menjalankan secara paralelawait Future.wait([a(), b()]);
Stream asyncawait for (var x in stream) { ... }

Sintaks Dart yang paling sering kamu pakai, dalam satu halaman. Cheat sheet Dart ini adalah referensi cepat untuk inti bahasanya: variabel dan tipe, null safety, string, collection, alur kontrol, fungsi, class, serta future dan async/await yang kamu pakai untuk menulis aplikasi di balik Flutter.

Semua yang ada di sini adalah Dart standar dan berjalan di SDK resmi. Salin yang kamu butuhkan, atau coba setiap potongan kode langsung di playground Dart, tanpa perlu instalasi.

FAQ cheat sheet Dart

Apakah cheat sheet Dart ini gratis?

Ya. Cheat sheet Dart ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark dan kembali kapan pun kamu perlu mencari operator null safety, method collection, atau pola async.

Bagaimana cara kerja null safety di Dart?
Di Dart, setiap tipe bersifat non-nullable secara default: int count tidak pernah bisa berisi null. Untuk mengizinkan null, kamu menambahkan ? (String? name), lalu compiler memaksamu menangani kasus null. Ada operator yang membuatnya ringkas: ?. untuk akses null-aware, ?? untuk nilai cadangan, dan ! untuk memastikan sebuah nilai tidak null saat kamu yakin. Dengan begitu, error null tertangkap saat compile, bukan saat runtime.
Apa itu Future dan bagaimana cara kerja async dan await?
Future mewakili nilai yang baru tersedia nanti, misalnya hasil panggilan jaringan. Menandai sebuah fungsi dengan async membuatmu bisa memakai await, yang menghentikan eksekusi sejenak sampai future selesai lalu memberimu nilainya. Jadi kamu menulis kode asinkron yang terbaca dari atas ke bawah seperti kode sinkron. Bungkus await dengan try/catch untuk menangani error.
Bisakah saya berlatih Dart secara online?

Bisa. Buka playground Dart untuk menjalankan potongan kode apa pun dari cheat sheet ini di browsermu, tanpa perlu menginstal SDK. Kalau kamu ingin belajar terarah, kursus Dart interaktif gratis dari Coddy membawamu dari null safety dan collection sampai class dan async/await, langkah demi langkah.

Apakah cheat sheet ini cocok untuk pemula?

Cocok. Isinya disusun mulai dari topik yang paling umum (variabel, null safety, alur kontrol) sampai yang lanjutan (class, future, async/await), jadi kamu bisa memakai bagian atas sejak hari pertama dan pelan-pelan menguasai sisanya.

Ilustrasi bahasa pemrograman di Coddy

Belajar Dart bersama Coddy

Mulai