Mari Berkenalan Dengan Dart
Dart merupakan sebuah bahasa pemrograman yang dikembangkan oleh Google untuk membangun aplikasi mobile, desktop, backend dan web. Mungkin bagi teman-teman yang sudah familiar ngoding javascript, belajar Dart bukanlah hal yang terlalu menyulitkan.
- Flutter merupakan Framework Dart untuk membuat aplikasi baik Android maupun iOS atau dengan katalain aplikasi cross-platform.
- Web merupakan pengembangan Dart dalam dunia Web, terutama dalam hal front-end, yang dimana kode program yang ditulis dengan Dart dikompilasi (transpile) menjadi javascript sehingga dapat dimengerti oleh web browser. Sebagai contoh AngularDart.
- Server/CLI merupakan pengembangan Dart dalam pembuatan aplikasi berbasis text (CLI), backend, IoT dan sebagainya. Sebagai contoh Exspress.
Nah disini gw nggak akan bahas bagaimana implementasi Dart untuk web, mobile mauapun server. Melainkan gw bakal bahas dasar-dasar dari Dart, seperti :
- Tipe Data
- Variabel
-
Operator
- Arithmetic
- Relational
- Type Test
- Assigment
- Conditional
- Ternary
- Loop Control
Tipe Data
Bahasa pemrograman Dart memiliki tipe data seperti dibawah ini.
Tipe Data | Default |
---|---|
String | null |
Integer | Double | null |
Boolean | null |
List | Set | null |
Maps | null |
Runes | null |
Semua tipe data dalam bahasa pemrograman Dart memiliki default value null
, dan untuk tipe data String
, Integer
, Double
dan Maps
mungkin sudah tidak asing lagi ditelinga kalian.
-
Tipe data Set merupakan tipe data sejenis List, namun akan menghapus value yang memiliki nilai yang sama. Sehingga tidak ada duplikat value seperti dibawah ini.
void main(){ var data = Set(); data.add("1"); data.add("2"); data.add("2"); print(data); }
dan hasilnya akan seperti dibawah ini.
{1, 2}
-
Tipe data Runes atau Unit Code merupakan sebuah tipe data yang digunakan untuk membaca
String
yang memiliki deretan kode unitUTF-32
, karena secara defaultString
merupakan menggunakan kode unitUTF-16
. untuk menggunakanRunes
, diperlukan librarydart:core
.main() { var clapping = '\u{1f44f}'; print(clapping); print(clapping.codeUnits); print(clapping.runes.toList()); Runes input = new Runes( '\u2665 \u{1f605} \u{1f60e} \u{1f47b} \u{1f596} \u{1f44d}'); print(new String.fromCharCodes(input)); }
dan hasilnya seperti dibawah ini.
👏 [55357, 56399] [128079] ♥ 😅 😎 👻 🖖 👍
Variabel
Deklarasi variabel di Dart dapat dideklarasikan secara eksplisit maupun implisit, sebagai contoh.
var nama = "Wahyu Permadi"
Deklarasi variabel diatas merupakan
salah satu contoh deklarasi secara implisit, karena tidak memberitahukan tipe data dari variabel nama
itu apa, bisa
string
, int
, dsb. Tipe variabel jika dideklarasikan secara implisit akan bergantung dari value yang di-assign, dan variabel nama
tersebut secara tidak
langsung bertipe data String
, karena di-assign sebuah String
value. Contoh deklarasi secara eksplisit adalah seperti dibawah ini.
String nama = "Wahyu Permadi"
Jika ingin membuat sebuah variabel yang nilainya bersifat tetap, dapat menggunakan const
maupun final
. Keduanya memiliki perbedaan, dimana const
akan dibuat ketika aplikasi pertama kali di compile atau dengan kata lain compile-time
variabel. Sedangkan final
adalah variabel yang dibuat pada saat runtime
. Penggunannya seperti contoh dibawah ini.
const phi = 3.14;
// nilai phi tetap dan diketahui sebelum runtime
final dateNow = new DateTime.now();
// nilai datenow hanya diketahui pada saat runtime, jadi gunakan final
Operator Arithmetic
Operator arithmetic merupakan operator yang digunakan untuk melakukan perhitungan mamtematis, contoh dari operator arithmetic adalah sebagai berikut.
Operator | Meaning |
---|---|
+ | Add |
- | Substract |
* | Multiply |
/ | Divide |
% | Modulo |
-expr | Unary Minus |
~/ | Divide (Return Integer) |
++ | Increment |
— | Decrement |
Contoh penggunaan dari operator arithmetic adalah sebagai berikut.
void main(){
print(1 + 1);
print(5 - 2);
print(3 * 3);
print(4 / 2);
print(5 % 2);
print(-5);
print(5 ~/ 2);
var increment = 0;
print(++increment);
var decrement = 5;
print(--decrement);
}
1+1 = 2
5-2 = 3
3*3 = 9
4/2 = 2
5%2 = 1
-(5)= -5
5 ~/ 2 = 2 (return always integer not double)
++increment = 1 (increment = increment + 1)
--decrement = 4 (decrement = decrement - 1)
Operator Relational
Operator relational merupakan operator yang digunakan untuk menentukan relasi atau hubungan dari duah buah operand. Operator relational ditempatkan untuk membandingkan dua ekspresi yang kemudian hasilnya menentukan apakah benar atau tidaknya hasil operasi itu. Contoh dari operator relational dapat dilihat dibawah ini.
Operator | Meaning |
---|---|
> | Greater Than |
< | Less Than |
>= | Greater Than or Equal To |
<= | Less Than or Equal To |
== | Equal To |
!= | Not Equal To |
contoh penggunaannya sebagai berikut.
void main(){
print(3 > 1); //true
print(5 < 10); //true
print(3 >= 3); //true
print(5 <= 6); //true
print(10 == 10); //true
print(10 != 5); //true
print(10 == 9); //false
}
Operator Type Test
Operator type test biasanya digunakan untuk mengecek apakah suatu variabel/object memiliki tipe data sesuai apa yang diinginkan. Contoh dari operator type test seperti dibawah ini.
Operator | Meaning |
---|---|
is | True if the object has specified type |
is! | True if the object has not specified type |
Contoh penggunaannya seperti dibawah ini.
void main(){
var nama = "Wahyu Permadi";
print(nama is String); // true
var jumlah = 100;
print(jumlah is Map); // false
}
Seperti contoh diatas, dimana dilakukan type checking terhadapat variabel dengan nama name
dan jumlah
, untuk variabel name is String
return True
, karena
benar variabel tersebut adalah String
, sedangkan variabel jumlah is Map
return False
karena tipe dari variabel jumlah
adalah Integer
bukan Map
.
Operator Assigment
Operator assigment merupakan operator yang digunakan untuk memberikan suatu nilai ke sebuah variabel. Contoh dari operator assigment adalah sebagai berikut.
Operator | Meaning |
---|---|
= | Assign value from right operand to left operand |
??= | Assign value only if the value is null |
contoh penggunannya seperti ini.
void main(){
var nama = "Wahyu";
nama = "Wahyu Permadi";
String title = "Wahyu";
title ??= "Putu Wahyu";
String jobs = null;
jobs ??= "Android Engineer";
print(nama);
print(title);
print(jobs);
}
Hasilnya sudah pasti bisa kalian tebak dong bagaimana, okeh jadi hasilnya seperti ini.
Wahyu Permadi
Wahyu
Android Engineer
Nah operator ??=
hanya akan mengisi variabel tersebut jika variabel yang akan di-assign null
, itulah mengapa pada variabel title
valuenya tidak berubah.
Operator Conditional
Operator conditional merupakan operator yang digunakan untuk mengecek kondisi dari satu, dua atau lebih boolean
expressions. Contoh operator conditional adalah sebagai berikut.
Operator | Meaning |
---|---|
&& | Return true if all conditions are true |
II | Return true if any one conditions are true |
! | Return the inverese of the result |
Contoh implementasinya sebagai berikut.
void main(){
var isWahyuMale = true;
var isWahyuStupid = true;
print(isWahyuMale && isWahyuStupid);
var isWahyuGanteng = true;
var isWahyuDokter = false;
print(isWahyuGanteng && isWahyuDokter);
print(isWahyuGanteng || isWahyuDokter);
print(!isWahyuGanteng);
}
Nah dari contoh implementasi diatas, sudah bisa ditebak dong hasilnya bagaimana. Yap benar hasilnya seperti dibawah ini.
true
false
true
false
Operator Ternary
Operator ternary bisa dikatakan operator seperti if-else
namun lebih pendek penulisannya, sebagai contoh disini kita akan mengecek apakah seseorang ini benar adalah wahyu
, jika benar maka print("wahyu")
jika tidak maka print("bukan")
. Pertama kita gunakan if-else
seperti dibawah ini.
void main(){
var isThisWahyu = true;
if(isThisWahyu){
print("wahyu");
}else{
print("bukan");
}
}
Nah dengan ternary operator, kita dapat mempersingkatnya menjadi.
void main(){
var isThisWahyu = true;
isThisWahyu ? print("wahyu") : print("bukan");
}
Cukup mudah bukan untuk dipahami, ?
digunakan untuk kondisi true
, dan :
digunakan sebagai pengganti else
.
Loop Control
Perulangan didalam bahasa pemrograman Dart bisa menggunakan For
, While
dan Do-While
.
-
For sendiri memerlukan
initial count value
,termination condition
danstep
. Contoh penggunaan dariFor
seperti ini.void main() { var num = 5; var factorial = 1; for( var i = num ; i >= 1; i-- ) { factorial *= i ; } }
var i = num
merupakan initial count value,i >= 1
merupakan termination condition (bertujuan agar tidak loopoing foreva), dani--
merupakan step. -
Penggunaan
While
memerlukantermination condition
danstep
seperti ini.void main() { var num = 5; var factorial = 1; while(num >= 1){ factorial*=num; num--; } }
num >= 1
merupakan termination condition dannum--
merupakan step. -
Dan yang terakhir penggunaan
Do-While
,Do-While
sendiri melaukan proses terlebih dahulu, baru kemudian melakukan checking kondisi. seperti dibawah ini.void main() { var num = 5; var factorial = 1; do{ factorial*=num; num--; }while(num >= 1); }
Terimakasih, sekian dari saya semoga artikel ini bermanfaat dan jika ada kekurangan bisa dibantu untuk create issue di github sata, terimakasih :)