Hello gengs, pada article kali ini ane akan membahas salah satu fundamental flutter, yaitu pemrograman dart. Khususnya pengertian tipe data dan variannya. Let's kuy.
Pengertian
Dalam bahasa pemrograman dart (gak dart doang sih), tipe data digunakan untuk menjelaskan gambaran tentang sebuah value atau nilai (belum tentu angka lo ya). Ada banyak macam tipe data. Jadi, sebelum kita masuk ke tahap selanjutnya. Mari kita buat persiapan terlebih dahulu.
Persiapan
- Buka dartpad.dev
- Dan langsung praktik di situ ya.
Variabel
Sebelum masuk ke jenis-jenis tipe data. Kita harus mengerti apa itu variabel. variable merupakan nilai atau value yang dapat dipanggil lagi. Lihat pada gambar di bawah

Contekan (Cheat Seet)
String | Text |
int | Angka yang tidak desimal |
num | Angka |
double | Angka desimal |
dynamic | Bisa menjadi text, angka, maupun object lainnya |
List | Tumpukan data dengan kunci sebagai angka integer |
Map | Kumpulan isi dan kunci yang bisa anda buat sendiri |
Object | Merupakan kelas dasar dari semua object yang ada di dart |
bool | Data kebenaran, berisi true dan false |
var | Merupakan tipe data yang digunakan untuk mendeklarasikan Object dari variable yang dipanggil |
final | final mendeskripsikan bahwa variable hanya satu kali setter dan tidak bisa berubah lagi. |
const | Merupakan kependekan dari constant, yang artinya sama sama tidak bisa berubah. |
Future | Merupakan tipe data yang merepresentasikan fungsi asynchronous |
Function | Merupakan tipe data yang digunakan untuk mengirim callback |
Tipe Data
Seperti yang saya bilang tadi, ada banyak macam tipe data, berikut adalah jenis-jenis tipe data.
1. String
String adalah kumpulan huruf, angka, dan tanda baca lainnya. Jadi isinya bebas asalkan tulisan.
contoh:
void main() {
String data = "Hello World!";
print(data);
}
Maka, jika kalian jalankan, akan menghasilkan tulisan
Hello world!
2. integer
integer merupakan tipe data yang merepresentasikan angka tanpa desimal. Cara penulisannya adalah seperti berikut:
int a = 10;
oiya kita bisa menggunakan print()
untuk mengeluarkan console. Dan agar dartpad bisa menjalankan kodenya, maka kalian perlu membuat method main()
. Jadi seperti inilah contohnya,
void main() {
int a = 10;
print(a);
}
kode diatas akan mengeluarkan angka 10 jika kalian jalankan. Nah, jika kalian tidak percaya bahwa integer bukan angka desimal, kalian bisa coba mengubah menjadi int a = 10.5;
Maka hasilnya akan error.
3. num
num, merupakan integer atau angka floating poin. Tipe data ini bisa menjadi integer ataupun double. Contoh penulisan
void main() {
num data = 20;
print(data);
}
Akan menghasilkan angka
20
Tapi perlu diperhatikan, num tidak bisa mengubah angka desimal secara sempurna.
contoh kasus:
void main() {
num a = 0.1;
num b = 0.2;
num c = a+b;
print(c);
}
Menurut kalian hasilnya berapa? 0.3? Yap, hasilnya adalah
0.30000000000000004
haha. Inilah keunikan dari floating number. Maka jika kalian menulis sesuatu, harap hati-hati dan jangan lupakan pembulatan.
4. double
double merupakan angka desimal. Contoh penulisan:
void main() {
double a = 0.1;
print(a);
}
0.30000000000000004
5. dynamic
dynamic merupakan tipe data yang isinya bisa berubah, dynamic bisa berupa integer, string, double, num, object, dan lain sebagainya. pembuktian bahwa variable ini dapat berubah, kalian bisa coba run kode ini di dartpad.dev
void main() {
dynamic a = 0.1;
a = "Hello World!";
print(a);
}
Maka tidak akan error, dan akan mengeluarkan console seperti ini:
Hello World!
6. List
List merupakan tumpukan data. Jika kalian familiar dengan PHP atau Javascript , List merupakan sebuah Array.
isi data dari List bisa dideskripsikan secara statis, contohnya List<double>, List<String>, List<int> , dan terserah lagi.
Jika kalian tidak mendeklarasikan tipe data dari isi List, maka hasilnya akan menjadi List<dynamic>.
Contoh penulisan List
void main() {
List data = [1,2,3,"a","b", "c"];
print(data);
}
Maka hasil console-nya akan menjadi:
[1, 2, 3, a, b, c]
List, memiliki kunci (key) untuk mengambil data secara spesifik. Jika kalian ingin mengambil angka 3 dari List yang sudah saya berikan contoh, maka kalian membutuhkan key untuk mengambil data-nya.
Contoh cara mengambil angka 3:
void main() {
List data = [1,2,3,"a","b", "c"];
print(data[2]);
}
kenapa key-nya adalah angka 2? sebab perhitungan key pada list dimulai dari angka 0. Silakan otak atik di dartpad ya.
dibawah adalah penjelasan key dan isi dari list diatas
0 = 1
1 = 2
2 = 3
3 = "a"
4 = "b"
5 = "c"
7. Map
Jika kalian mengerti Javascript Object Notation (JSON), maka kalian akan lebih mudah memahami apa itu Map. Map merupakan pasangan kunci dan isi. Kunci dan isi tersebut biasa dipanggil dengan key dan value. Setiap key dan value dapat dideklarasikan tipe datanya. Contohnya
Map<String, dynamic>
dari contoh diatas, dapat diartikan bahwa key memiliki tipe data String, dan value-nya memilki tipe data dynamic.
Contoh penulisan:
void main() {
Map<String, dynamic> data = {
"url": "https://gepcode.com",
"domain": "gepcode.com",
"penulis": "Gilang Pratama",
"totalAdmin": 1,
"supportSeo": 100,
};
print(data);
}
Nah, hasil consolenya adalah seperti berikut:
{url: https://gepcode.com, domain: gepcode.com, penulis: Gilang Pratama, totalAdmin: 1, supportSeo: 100}
Bagaimana cara mengambil salah satu value dari Map?
begini contohnya
void main() {
Map<String, dynamic> data = {
"url": "https://gepcode.com",
"domain": "gepcode.com",
"penulis": "Gilang Pratama",
"totalAdmin": 1,
"supportSeo": 100,
};
print(data["domain"]);
}
Nah, hasil consolenya adalah seperti berikut:
gepcode.com
8. Object
Merupakan kelas dasar dari semua object yang ada di dart
contoh penulisan:
void main() {
Object object = "Penulis";
print(object);
}
Hasilnya
Penulis
Selanjutnya adalah Object yang dari class. Kita bisa menuliskan constructor untuk menginisialisasi isinya. Contoh:
void main() {
Person penulis = Person("Gilang Pratama", 27);
print(penulis);
print(penulis.name);
print(penulis.age);
}
class Person{
String name;
int age;
Person(this.name, this.age);
}
Hasilnya adalah
Instance of 'Person'
Gilang Pratama
27
9. bool
Merupakan tipe data yang berisikan kebenaran.
contoh penulisan:
void main() {
bool data = true;
print(data);
}
Hasilnya
true
10. var
var merupakan tipe data yang digunakan untuk mendeklarasikan Object dari variable yang dipanggil.
contoh penulisan
void main() {
var penulis = Person("Gilang Pratama", 27);
print(penulis);
print(penulis.name);
print(penulis.age);
}
class Person{
String name;
int age;
Person(this.name, this.age);
}
Hasilnya adalah
Instance of 'Person'
Gilang Pratama
27
11. final
final mendeskripsikan bahwa variable hanya satu kali setter dan tidak bisa berubah lagi.
Contoh penulisan:
void main() {
final data = "hello";
print(data);
}
Hasilnya adalah
hello
Pembuktian jika tidak bisa berubah:
Contoh penulisan:
void main() {
final data = "hello";
data = "world";
print(data);
}
Hasilnya adalah error.
The final variable 'data' can only be set once.
final ini sangat berguna untuk menghemat ram. Jadi, jakan dilupakan ya.
12. const
seperti namanya, const merupakan kependekan dari constant, yang artinya sama sama tidak bisa berubah. Mirip dengan final, tapi const merupakan level yang lebih dalam dari final.
Contoh penulisan:
void main() {
final data = "hello";
print(data);
}
Hasilnya adalah
hello
Pembuktian jika tidak bisa berubah:
Contoh penulisan:
void main() {
final data = "hello";
data = "world";
print(data);
}
Hasilnya adalah error.
Constant variables can't be assigned a value.
Const ini juga sangat berguna untuk menghemat ram.
13. Future
Future digunakan dalam penggunaan asynchronous programming.
Contoh penulisan:
void main() async {
print(await data);
}
Future get data async{
return "Hello world";
}
Hasilnya adalah
Hello world
14. Function
Function merupakan tipe data yang biasa digunakan untuk callback
contoh penulisan:
void main() {
cariBudi("Malang", (ada){
print(ada);
});
cariBudi("Banyuwangi", (ada){
print(ada);
});
}
void cariBudi(String lokasi, void Function(String ada) cari){
if(lokasi=="Banyuwangi") cari("Ada");
else cari("Tidak ada");
}
Hasilnya adalah
Tidak ada
Ada