Masukkan Password
09 Dart data type | Data types in Dart | Dart Tutorial #8
Di video ini kita mulai masuk ke bagian yang sangat penting dalam Dart, yaitu data types (tipe data).
Kalau sebelumnya kita belajar tentang variable, sekarang pertanyaannya:
“Data apa yang sebenarnya bisa disimpan oleh variable tersebut?”
Misalnya:
int age = 20;
String name = "Budi";
double price = 15.5;
bool isStudent = true;
age, name, price, dan isStudent semuanya adalah variable, tetapi jenis datanya berbeda.
Mari kita bahas satu per satu dengan cara yang sederhana.
1. Apa Itu Data Type?
Data type adalah jenis atau kategori data yang digunakan oleh sebuah nilai.
Contoh dalam kehidupan sehari-hari:
Umur → angka
Nama → teks
Harga → angka desimal
Status → benar/salah
Dalam Dart:
20 → int
15.5 → double
"Budi" → String
true → bool
Jadi bisa kita bayangkan:
DATA
│
┌───────┴────────┐
│ │
Angka Teks
│ │
int/double String
│
Boolean
│
true/false
2. Dua Kelompok Data Type
Transcript membagi data type menjadi dua kelompok untuk mempermudah pemahaman:
A. Single-value type
Tipe yang digunakan untuk merepresentasikan satu nilai.
Contohnya:
int
double
String
bool
Misalnya:
int age = 20;
Variable age menyimpan satu nilai:
20
B. Multi-value / collection type
Tipe yang digunakan untuk menyimpan sekumpulan nilai.
Contohnya:
List
Set
Map
Misalnya:
List<int> numbers = [10, 20, 30];
Sekarang variable numbers menyimpan beberapa nilai:
10
20
30
3. Gambaran Besarnya
Untuk materi video ini, kita fokus dulu ke data type dasar:
Data Types
│
├── Single Value
│ ├── int
│ ├── double
│ ├── String
│ └── bool
│
└── Multiple Values
├── List
├── Set
└── Map
Nanti List, Set, dan Map akan lebih mudah dipahami ketika kita masuk ke materi collection.
4. int — Bilangan Bulat
int adalah singkatan dari integer.
Integer digunakan untuk menyimpan bilangan bulat, yaitu angka yang tidak memiliki bagian desimal.
Contoh:
int age = 20;
int score = 95;
int temperature = -5;
int year = 2026;
Semua ini valid:
20
95
-5
2026
Tetapi:
int price = 10.5;
❌ Tidak cocok, karena 10.5 memiliki bagian desimal.
Untuk angka seperti itu kita menggunakan double.
5. Contoh Penggunaan int
Misalnya kita ingin menyimpan umur:
int age = 21;
Atau jumlah barang:
int quantity = 5;
Atau skor:
int score = 100;
Contoh program:
void main() {
int age = 21;
int score = 95;
print(age);
print(score);
}
Output:
21
95
6. Range int
Transcript menyebut bahwa int dapat memiliki nilai sekitar:
-2^63 sampai 2^63 - 1
Untuk pemahaman dasar, yang penting kamu tahu bahwa Dart menyediakan int untuk bilangan bulat dengan rentang yang sangat besar.
Namun ada sedikit nuance penting.
Di native Dart, integer memiliki kemampuan menangani integer dengan presisi sesuai implementasinya dan tidak perlu dipahami sebagai sekadar angka 64-bit untuk semua situasi.
Di web, Dart dikompilasi ke JavaScript dan representasi angka JavaScript memiliki karakteristik yang berbeda.
Jadi untuk tahap belajar sekarang, jangan terlalu fokus menghafalkan angka 2^63.
Yang jauh lebih penting:
int→ bilangan bulat.
7. double — Bilangan Desimal
Sekarang kita masuk ke double.
double digunakan untuk menyimpan angka yang memiliki bagian pecahan/desimal.
Contoh:
double price = 19.99;
double height = 175.5;
double percentage = 85.5;
double temperature = 36.7;
Perhatikan:
int
20
double
20.5
8. Contoh int vs double
Misalnya harga barang:
int price = 10000;
Kalau harga tidak memiliki desimal, int bisa digunakan.
Tetapi:
double price = 10000.50;
Kalau ada pecahan/desimal, double cocok.
Contoh:
void main() {
int quantity = 3;
double price = 10.5;
print(quantity);
print(price);
}
Output:
3
10.5
9. Jangan Tertukar: 10 dan 10.0
Ini menarik untuk diperhatikan.
var a = 10;
var b = 10.0;
Dart akan menganggap:
a → int
b → double
Kita bisa mengeceknya:
void main() {
var a = 10;
var b = 10.0;
print(a.runtimeType);
print(b.runtimeType);
}
Hasil:
int
double
Jadi:
10 → int
10.0 → double
10. String — Teks
Sekarang kita masuk ke tipe data yang sangat sering digunakan dalam Flutter:
String
String digunakan untuk menyimpan teks.
Contoh:
String name = "Budi";
String city = "Madiun";
String message = "Hello World";
String bisa berisi:
Nama
Alamat
Email
Pesan
Judul
Deskripsi
URL
dll.
11. Cara Membuat String
Ada dua cara umum untuk membuat String.
Single quote
String name = 'Budi';
Double quote
String name = "Budi";
Keduanya valid.
String firstName = 'Budi';
String lastName = "Santoso";
12. String Adalah Object
Transcript mengatakan bahwa String adalah object dari class String.
Untuk pemahaman Dart, ini penting.
Banyak hal di Dart merupakan object, termasuk String.
Misalnya:
String name = "Budi";
String memiliki berbagai property dan method.
Contoh:
String name = "Budi";
print(name.length);
print(name.toUpperCase());
print(name.toLowerCase());
Hasilnya:
4
BUDI
budi
Artinya String bukan sekadar “kumpulan karakter” yang pasif. Ia mempunyai operasi yang bisa kita gunakan.
13. Escape Sequence pada String
Nah, bagian ini cukup penting.
Di dalam String, beberapa karakter tertentu mempunyai arti khusus.
Contohnya:
\n
\n berarti new line atau pindah ke baris baru.
Contoh:
String message = "Hello\nWorld";
print(message);
Output:
Hello
World
Perhatikan:
"Hello\nWorld"
↑
pindah baris
Jadi \n tidak dianggap sebagai tulisan biasa \ dan n.
Dart menginterpretasikannya sebagai karakter khusus untuk baris baru.
14. Apa Itu Raw String?
Sekarang kita masuk ke konsep raw string.
Raw string adalah String yang membuat Dart tidak memproses escape sequence tertentu seperti pada String biasa.
Caranya dengan menambahkan:
r
sebelum String.
Contoh:
String text = r"Hello\nWorld";
print(text);
Output:
Hello\nWorld
Perhatikan bedanya.
String biasa
String text = "Hello\nWorld";
Output:
Hello
World
Raw String
String text = r"Hello\nWorld";
Output:
Hello\nWorld
15. Kenapa Raw String Berguna?
Bayangkan kita ingin menulis regular expression, path, atau teks yang banyak menggunakan backslash.
Misalnya:
String path = r"C:\Users\Budi\Documents";
Dengan raw string, backslash diperlakukan lebih literal.
Contoh lain:
String regex = r"\d+\.\d+";
Untuk kasus tertentu, raw string membuat penulisan lebih mudah karena kita tidak perlu terus-menerus melakukan escaping.
16. r pada Raw String
Perhatikan:
r"Hello\nWorld"
Huruf:
r
harus berada sebelum literal String.
Contoh:
var text = r"Hello\nWorld";
Bukan:
var text = "rHello\nWorld";
Karena yang kedua hanyalah String biasa yang kebetulan dimulai dengan huruf r.
17. Raw String Bisa Menggunakan Single Quote atau Double Quote
Keduanya bisa:
var text1 = r"Hello\nWorld";
var text2 = r'Hello\nWorld';
18. Multi-line String
Dart juga mendukung String yang terdiri dari beberapa baris.
Kita menggunakan:
'''
...
'''
atau:
"""
...
"""
Contoh:
String message = '''
Hello
Welcome
to Dart
''';
print(message);
Output:
Hello
Welcome
to Dart
Jadi kita tidak perlu menulis:
String message = "Hello\nWelcome\nto Dart";
Kita bisa langsung menulis bentuknya seperti yang kita inginkan:
String message = '''
Hello
Welcome
to Dart
''';
19. Kenapa Multi-line String Berguna?
Misalnya kita memiliki deskripsi panjang:
String description = '''
Dart adalah bahasa pemrograman
yang digunakan oleh Flutter
untuk membuat aplikasi.
''';
Ini jauh lebih mudah dibaca daripada:
String description = "Dart adalah bahasa pemrograman\n"
"yang digunakan oleh Flutter\n"
"untuk membuat aplikasi.";
Multi-line string juga sering berguna untuk:
- teks panjang
- template
- JSON
- query
- pesan
- konfigurasi
- konten yang memang memiliki banyak baris
20. bool — Boolean
Sekarang tipe data terakhir yang dibahas dalam video:
bool
bool berasal dari Boolean.
Boolean hanya mempunyai dua kemungkinan nilai:
true
false
Contoh:
bool isStudent = true;
bool isLogin = false;
bool hasPermission = true;
21. Contoh Penggunaan Boolean
Misalnya:
bool isLoggedIn = true;
Artinya:
User sedang login.
Sedangkan:
bool isLoggedIn = false;
Artinya:
User tidak sedang login.
22. Boolean Sangat Penting untuk Decision Making
bool akan sangat sering digunakan ketika kita belajar if.
Contoh:
bool isLoggedIn = true;
if (isLoggedIn) {
print("Welcome!");
}
Karena:
isLoggedIn = true
↓
kondisi benar
↓
"Welcome!"
Kalau:
bool isLoggedIn = false;
maka blok if tersebut tidak dijalankan.
Jadi bool sangat penting untuk membuat program mengambil keputusan.
23. Contoh Lengkap Semua Tipe Dasar
Sekarang kita gabungkan:
void main() {
int age = 20;
double price = 19.99;
String name = "Budi";
bool isStudent = true;
print(age);
print(price);
print(name);
print(isStudent);
}
Output:
20
19.99
Budi
true
Kita bisa menggambarkannya:
age
↓
20
↓
int
price
↓
19.99
↓
double
name
↓
"Budi"
↓
String
isStudent
↓
true
↓
bool
24. Hubungan Variable dan Data Type
Ini juga penting karena materi sebelumnya adalah variable.
Misalnya:
int age = 20;
Ada tiga bagian:
int age = 20
│ │ │
│ │ └── value
│ └──────────────────── variable
└────────────────────────────── data type
Jadi:
int → tipe data
age → nama variable
20 → nilai
Contoh lain:
String name = "Budi";
String → tipe data
name → variable
"Budi" → value
25. Bagaimana dengan var?
Karena sebelumnya kita sudah belajar var, sekarang kamu bisa menghubungkannya.
Kita bisa menulis:
int age = 20;
atau:
var age = 20;
Pada contoh kedua, Dart melakukan type inference.
Dart melihat:
var age = 20;
dan menyimpulkan:
20 → int
Sehingga secara konsep:
var age = 20;
↓
Dart infer
↓
int
Begitu juga:
var price = 19.99;
Dart mengetahui:
price → double
Dan:
var name = "Budi";
Dart mengetahui:
name → String
Sedangkan:
var isStudent = true;
Dart mengetahui:
isStudent → bool
26. dynamic Berbeda
Jangan sampai tertukar dengan dynamic.
dynamic value = 10;
dynamic tidak berarti:
“Dart akan menebak tipe seperti
var.”
dynamic justru berarti variable tersebut menggunakan dynamic type.
Misalnya:
dynamic value = 10;
value = "Hello";
value = true;
value = 10.5;
Bisa berubah tipe seperti itu.
Sedangkan:
var value = 10;
value = "Hello"; // ❌
tidak diperbolehkan karena var value = 10 diinfer sebagai int.
27. Kesalahan yang Sering Terjadi
Salah 1 — Memasukkan desimal ke int
int price = 10.5;
❌ Salah.
Gunakan:
double price = 10.5;
Salah 2 — Memasukkan teks ke int
int age = "20";
❌ Salah.
Karena "20" adalah String, bukan integer.
Yang benar:
int age = 20;
Salah 3 — Menganggap 20.0 sebagai int
var number = 20.0;
Ini akan diinfer sebagai:
double
bukan int.
Salah 4 — Lupa bahwa bool hanya true atau false
bool isLogin = "yes";
❌ Salah.
Yang benar:
bool isLogin = true;
atau:
bool isLogin = false;
28. Tabel Cheat Sheet
Simpan tabel ini karena sangat berguna:
| Data Type | Contoh | Kegunaan |
|---|---|---|
int | 20 | Bilangan bulat |
double | 20.5 | Bilangan desimal |
String | "Hello" | Teks |
bool | true | Nilai benar/salah |
List | [1, 2, 3] | Kumpulan data berurutan |
Set | {1, 2, 3} | Kumpulan nilai unik |
Map | {"name": "Budi"} | Data key-value |
Untuk video ini, fokus utamanya:
int
double
String
bool
29. Cara Cepat Mengingat
Gunakan contoh sebuah aplikasi toko online:
String productName = "Laptop";
int quantity = 2;
double price = 15000000.50;
bool isAvailable = true;
Kita punya:
productName
↓
"Laptop"
↓
String
quantity
↓
2
↓
int
price
↓
15000000.50
↓
double
isAvailable
↓
true
↓
bool
Jadi ketika kamu melihat suatu data, tanyakan:
“Data ini bentuknya apa?”
Kalau angka bulat:
→ int
Kalau angka desimal:
→ double
Kalau teks:
→ String
Kalau benar/salah:
→ bool
🎯 Kesimpulan
Materi video ini sebenarnya ingin kamu memahami empat tipe data dasar Dart:
1. int
Untuk bilangan bulat.
int age = 20;
2. double
Untuk angka dengan bagian desimal.
double price = 19.99;
3. String
Untuk teks.
String name = "Budi";
Bisa menggunakan single quote:
'Hello'
atau double quote:
"Hello"
Bisa juga raw string:
r"Hello\nWorld"
dan multi-line string:
'''
Hello
World
'''
4. bool
Untuk nilai benar atau salah.
bool isLogin = true;
🧠 Peta konsep yang paling penting
DATA TYPES
│
┌─────────────┴─────────────┐
│ │
SINGLE VALUE MULTIPLE VALUE
│ │
┌─────┼─────┐ ┌───┼───┐
│ │ │ │ │ │
int double String List Set Map
│
bool
Dan hubungan dengan materi sebelumnya:
Variable
│
├── punya nama
│
├── menyimpan/mereferensikan value
│
└── value tersebut punya type
│
├── int
├── double
├── String
└── bool
Kalimat yang paling penting untuk diingat:
int= angka bulat,double= angka desimal,String= teks,bool= true/false.
Setelah memahami empat tipe dasar ini, kamu sudah punya fondasi penting untuk masuk ke operator, kondisi if/else, dan collection seperti List, Set, dan Map.