Pemrograman Dart
1. Dasar
2. Variabel
3. Operator
4. Fungsi
5. Control Flow
6. Perulangan
7. Asinkron
8. Class
9. Cascade notation
10. Collection
Untuk mencobanya kita bisa langsung menggunakan editor online, silahkan
buka halaman 聽 https://dartpad.dartlang.org/.
dartpad
Langsung saja :
1. Dasar
// Pemrograman dart dimulai dari mengeksekusi main()
main() {
var number = 42; // Deklarasi dan beri nilai ke variabel number
printInteger(number); // Panggil fungsi
}// Definisikan fungsi.
printInteger(int aNumber) {
print('Nomornya $aNumber.'); // Tampilkan di konsol
}
Note : Program dart diawali dengan fungsi main()
2. Variabel
Variable Mutable
Variabel berfungsi untuk menyimpan sebuah data sementara
Untuk membuat variabel pada dart kita bisa menuliskannya dengan,
menggunakan var :
var namaVariabel;
atau agar lebih jelas kita bisa menuliskannya dengan tipe datanya seperti
berikut :
int angka1 = 40; // bilangan bulat
double angka2 = 20.4; // bilangan desimal
String nama = 'Rizal'; // string
kita print
Variable Immutable
Berbeda dengan variabel mutable yang kita bisa mengubah-ubah isinya, pada
immutable kita mengunci nilainya sehingga nilai dari variabel tersebut tidak bisa
kita ubah-ubah, untuk membuatnya kita tuliskan seperti berikut :
const angka1 = 90;
const int angka2 = 80; // dengan tipe data
kita coba ubah, maka dia akan error :
immutable
sedangkan mutablenya dia bisa kita ubah-ubah:
3. Operator
Operator ada banyak maka kita akan mempelajarinya
Aritmatika Operator
+ untuk melakukan penjumlahan
- untuk melakukan pengurangan
* untuk melakukan perkalian
/ untuk melakukan pembagian
% untuk mendapatkan sisa pembagian
Perbandingan
== sama dengan
!= tidak sama dengan
> lebih besar dari
< kurang dari
>= lebih besar atau sama dengan
<= lebih kecil atau sama dengan
Logika
! membalikan nilai boolean
|| OR logika
&& AND logika
Condition
(kondisi)聽?聽 true statement 聽:聽 false statement;
int suhu = 34;
String kesehatan = (suhu > 37) ? 'demam; : 'normal';
operator kondisi
kondisi jika null
null terjadi apabila datanya tidak ada atau memang dia null, untuk itu dalam dart
kita bisa memberi nilai default apabila suatu variable itu bernilai null, caranya
main() {
var nama;
print(nama ?? "rizal");
var nama2 = "Bambang";
print(nama2 ?? "rizal");
}
kita run :
default if null
4. Fungsi
Fungsi adalah blok kode program yang bisa kita gunakan berulang-ulang
dengan cara memanggilnya
bentuk fungsi dasar adalah seperti berikut :
namaFungsi(parameter) {
// body function
}
kita coba buat sebuah fungsi untuk mengecek apakah dia bilangan genap :
cekGenap(int number) {
if (number % 2 == 0) {
return true;
}
return false;
// lebih singkat
// return number % 2 == 0;
}
% artinya sisa pembagian, apabila sisanya sama dengan 0 maka dia
bilangan genap.
Tipe data boolean adalah tipe data yang berisi nilai 聽 true 聽 dan 聽 false
聽 saja
// adalah komentar dan tidak akan di eksekusi4
kita run :
cekGenap
Dengan tipe data return
Sama seperti variable, fungsi pada dart juga bisa kita definisikan tipe data yang
di kembalikan/return nilainya, seperti berikut :
bool cekGenap(int number) {
if (number % 2 == 0) {
return true;
}
return false;
}
// hasilnya sama seperti sebelumnya
fungsi anonim
fungsi anonim adalah fungsi yang tidak memiliki nama, fungsi
anonim/anonymouse function ini biasanya digunakan sebagai parameter,
seperti berikut :
anonymouse function pada forEach
forEach menerima parameter sebuah fungsi, maka kita dapat langsung
menuliskan fungsinya.
5. Control Flow
Untuk mengeksekusi baris program sesuai dengan kondisi yang diinginkan
maka kita akan menggunakan :
1. if
2. switch case
ifelse
if seperti berikut:
int angka = 11;
if (cekGenap(angka)) {
print("$angka adalah bilangan genap");
} else {
print("$angka adalah bilangan ganjil");
}
if condition dart
kita juga bisa membuat else if
main() {
int nilai = 70;
if (nilai >= 80) {
print("baik");
} else if (nilai >= 70) {
print("cukup");
} else {
print("kurang");
}
}
kita run :
if else condition dart
danswitch case
switch case penulisannya yaitu :
switch (nilai){
case 'A':
// blok kode;
break;
case 'B':
// blok kode;
break;
case 'C':
// blok kode;
break;
default:
// blok kode;
}
kita buat kodenya :
main() {
String nilai = "C";
switch (nilai) {
case "A":
print("Sangat Baik");
break;
case "B":
print("Baik");
break;
case "C":
print("Cukup");
break;
default:
print("Mengulang");
}
}
kita run :
switch case dart
6. Perulangan
Pada perulangan ini kita bisa mengeksekusi baris program secara berulang kali
ada 3 cara yang umumnya digunakan, yaitu :
1. for
2. while
3. do while
for loop
penulisan perulangan dengan for seiderhana yaitu :
for (nilai awal; kondisi; operasi) {}
nilai awal adalah variabel yang nantinya akan dicek di kondisi
kondisi ini jika hasilnya true maka perulangan akan tetap dijalankan
operasi digunakan untuk mencapai kondisi tertentu
bingung ? kita coba langsung saja, kita buat daftar nama-nama buah lalu kita
print seluruhnya satu-satu :
main() {
List<String> buah = ["anggur", "nanas", "mangga", "apel", "manggis", "jeruk",
"pir", "leci", "pisang", "kecapi", "durian", "naga", "semangka"];
for (int i = 0; i < buah.length; i++) {
print(buah[i]);
}
}
list diawali dari 0
.length berfungsi untuk mendapatkan total datanya
kita run :
for loop dart
selama nilai i masih lebih kecil dari total buah maka tampilkan buahnya,
lalu kita tambah 1 agar bisa menampilkan buah selanjutnya.
while loop
sama dengna for loop namun dia hanya menerima parameter untuk kondisinya
saja, perulangan dengan while sintaksnya yaitu seperti berikut :
while (kondisi) {}
selama kondisinya bernilai benar maka jalankan kodenya
kita coba buat implementasinya dengan membuat perulangan yang akan
menampilkan angka dari 1 sampai 9:
main() {
int i = 1;
while (i < 10) {
print(i);
i++;
}
}
dan hasilnya :
while loop dartbisa terjadi ketika kita lupa memberi nilainya
do while loop
pada do while ini bedanya kita jalankan dulu kodenya baru kita cek kondisinya,
sintaksnya yaitu:
do {} while (kondisi);
jalankan kode ini selama kondisi
kita coba di dartpad :
main() {
int i = 1;
do {
print(i);
i++;
} while (i < 10);
}
kita run :
do while loop dart
Tips tambahan
kita bisa skip atau loncati perulangan dengan menggunakan continue
continue
kita juga bisa berhentikan perulangan dengan break
break loop dart
berhati-hati ketika membuat perulangan karena bisa menyebabkan
infinite looping yang menyebabkan komputer hang, kode berikut akan
menyebabkan infinite looping karena tidak ada penambahan nilai i
infinite loop
7. Asinkron
ketika kita membuat sebuah kode program, maka biasanya kode-kode akan
dijalankan secara berurutan, artinya kode di baris berikutnya tidak akan
dijalankan sebelum kode dibaris sekarang sedang beroperasi, cara seperti itu
akan membuat program menjadi terlihat hang ketika kita menjalankan operasi
yang membutuhkan waktu lebih lama seperti mendapatkan gambar melalui
internet, mengakses API, mengirim data keserver, dll.
Untuk mengatasi hal itu kita bisa menggunakan teknik asinkron, artinya kode
tersebut dijalankan namun dia sifatnya non-blocking, sehingga program tidak
akan terlihat hang.
dalam Flutter untuk membuat Asinkron, kita cukup buat seperti berikut :
hitungDetik() async {
int i = 1;
while (i <= 60) {
print(i);
i++;
// kita hentikan program 1 detik
await Future.delayed(Duration(seconds: 1));
}
}
async = untuk membuat fungsi kita bersifat asinkron
await = fungsinya untuk menunggu proses asinkron hingga selesai
kita run
async dart
kita bisa lihat fungsi hitung detik belum selesai, namun kita tetap bisa melakukan
print(鈥淗 itung 鈥);
return
kita juga bisa mereturn async tersebut menggunakan class Future
return then dart
pada fungsi ini kita membuat sebuah listener ketika proses jumlah angka selesai
maka kita print nilainya;
then = sama seperti await, bedanya kalau await untuk mempersingkat
kode namun dia harus didalam fungsi async.
8. Class
Dart adalah bahasa pemrograman berorientasi objek, sehingga dia mendukung
penggunaan class.
untuk membuatnya sama seperti bahasa pemrograman lain yaitu seperti
berikut :
class NamaClass {
// member/properti
int a;
int b;
// constructor
NamaClass(this.b);
// method - method
setA(int a){
this.a = a;
}
showAB() {
print("A: $a, B: $b");
}
}
member atau properti adalah sama seperti variabel biasa
constructor adalah nilai awal yang kita berikan saat menginisialisasi
sebuah class
method sama seperti fungsi, beda istilah saja
kita run :
kita membuat sebuah class yang ketika di inisialisasi membutuhkan
parameter integer untuk memberi nilai b
kita juga membuat setter untuk nilai A
kita membuat sebuah method untuk menampilkan nilai keduanya
Tambahan
kita bisa juga membuat constructor dengan parameter opsional dengan
menggunakan kurung kurawal seperti berikut :
main() {
NamaClass x = NamaClass(2, c: 20);
x.setA(3);
x.showAB();
x.showC();
}class NamaClass {
// member/properti
int a;
int b;
int c;
// constructor
NamaClass(this.b, {this.c});
// method - method
setA(int a){
this.a = a;
}
showAB() {
print("A: $a, B: $b");
}
showC() {
print(c ?? "C belum di set");
}
}
kita tambahkan parameter opsional untuk mengisi variable c
kita tampilkan dengan method showC()
parameter opsional perlu tambahan nama memberny, kita coba :
optional class paramter dart
jika tanpa c:
without c parameter
Latihan Class Lingkaran
sekarang kita akan membuat program sederhana untuk menghitung sebuah
luas lingkaran dan kelilingnya:
silahkan buat sebuah class seperti berikut, lalu kita panggil hasilnya :
main() {
Lingkaran lingkaran = Lingkaran(17);
print("Keliling = ${lingkaran.getKeliling()}cm");
print("Luas = ${lingkaran.getLuas()}cm");
}class Lingkaran {
double pi = 3.14;
double r;
Lingkaran(this.r);
void setJariJari(double r) {
this.r = r;
}
double getKeliling() {
return 2 * pi * r;
}
double getLuas() {
return pi*(r * r);
}
}dan
kita run maka hasilnya :
class lingkaran dart
9. Cascade Notation
Untuk memahaminya kita akan membuat sebuah class baru yang berfungsi
untuk menghitung kelulusan ujian, buat seperti ini :
class Ujian {
int matPel1;
int matPel2;
int matPel3;
setMatPel1(int nilai) {
this.matPel1 = nilai;
}
setMatPel2(int nilai) {
this.matPel2 = nilai;
}
setMatPel3(int nilai) {
this.matPel3 = nilai;
}
bool isLulus() {
int jumlahNilai = matPel1 + matPel2 + matPel3;
double rata2 = jumlahNilai / 3;
if (rata2 < 70) {
return false;
}
return true;
}
}
sekarang kita akan menjalankannya :
kita inisialisasi dan panggil methodnya:
main() {
Ujian ujian = Ujian();
ujian.setMatPel1(80);
ujian.setMatPel2(70);
ujian.setMatPel3(30);
if (ujian.isLulus()) {
print("Anda lulus");
} else {
print("Anda tidak lulus");
}
}
maka hasilnya :
ujian dart
jika kita lihat untuk menset semua nilainya maka kita perlu menulis objek ujian
berulang kali:
ujian.
agar lebih singkat penulisannya maka kita bisa menggunakan 聽 Cascade
Notation 聽(..), kita langsung implementasikan :
cascade notation dart
10. Collection
collection adalah kumpulan dari data-data atau koleksi sesuai dengan namanya,
ada beberapa collection yang akan kita pelajari dan salah satunya telah kita
pakai, yaitu :
1. Lists
2. Sets
3. Maps
Lists
list atau biasa dikenal dengan istilah array, adalah salah satu contoh collection,
kita bisa membuat dengan cara seperti berikut :
List<String> hewan = ["rusa", "singa", "gajah", "buaya", "angsa"];
Sets
sets adalah collection yang tidak berurutan dan sifatnya unik, artinya
data-datanya tidak boleh ada yang sama
data sama maka dihitung satu
Maps
map adalah collection yang menggunakan key dan value, keduanya(key dan
value) bisa dalam bentuk tipe apapun, kita buat:
main() {
Map<String, int> nilai = {
"math": 80,
"ipa": 90,
"bindo": 100,
"fisika": 85,
"bing": 70
};
print(nilai['math']);
print(nilai['bindo']);
}
lalu kita run, maka hasilnya :
Sekian artikel pada kali ini, mudah mudahan bermanfaat.
Referensi :聽 https://dart.dev/guides/language/language-tour