UDACODING

Posts

Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2

1*T5w1yb6-TqoZzLX_DFYvDw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2

Bismillah, pada kali ini kita akan mempelajari tentang bahasa pemrogramman dart, alasan kita harus mempelajari pemrograman dart adalah karena bahasa yang digunakan oleh Flutter adalah bahasa pemrogramman dart, sehingga memahami dart itu menjadi hal yang fundamental dan penting untuk dipelajari.

artikel ini adalah seri lanjutan dari Flutter Starter Pack Part 1, yang bisa dikunjungi melalui link berikut :

https://medium.com/flutter-developer-indonesia/belajar-widget-widget-pada-flutter-flutter-starter-pack-part-1-7f386a02fbb6

Pada artikel kali ini ada beberapa hal yang akan kita pelajari pada pemrogramman dart yaitu :

  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/.

1*J8Jdv9Wniyt-clg8TRabCw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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

1*hHZylaDB_JBEIB2qzS8hSw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2

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 :

1*0w_bPB5KvzfFCIFGNpXpnQ Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
immutable

sedangkan mutablenya dia bisa kita ubah-ubah:

1*M9f4hS-qO1InlhEKS7HyHA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2

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';
1*uEZTqlCjRRgnt1CYMWSJCw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*NSShzD01wbLBhQFwdVGLmg Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*tYS5eGtFZ1eFMEYKHCIUWw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*XRGfm5LJS20_9ChOuYTstA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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

if else

if seperti berikut:

  int angka  = 11;
if (cekGenap(angka)) {
print("$angka adalah bilangan genap");
} else {
print("$angka adalah bilangan ganjil");
}
1*yIBWIgTjhKR2jOwcnTKsmg Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*6Bj-8TpT4iTGLPQPFEf1-g Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
if else condition dart

switch 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 :

1*ZN0WK_ck7aVaWgniuK1rVg Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*ilEJ1el57U1hfhq3llRKpQ Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*xt7Fq68unZvcj3UWUzfQsA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*eI1xZ8oj8MtlYIpCqb4zgA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
do while loop dart

Tips tambahan

  • kita bisa skip atau loncati perulangan dengan menggunakan continue
1*sh0q3EMPzqs3I2zJs3ZmOA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
continue
  • kita juga bisa berhentikan perulangan dengan break
1*Ho1dOaoC9O832_1SdbHPvw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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
1*qV8I4DmLlc53R-OHOzC7Fw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
daninfinite 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

1*_18qpQXus2GvwpboKS8Maw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
async dart

kita bisa lihat fungsi hitung detik belum selesai, namun kita tetap bisa melakukan print(“Hitung”);

return

kita juga bisa mereturn async tersebut menggunakan class Future

1*rvtDHKhTe6BlcX7Up4afBg Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*mqP340ALqDKtAILzCngvYA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
  • 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 :

1*KfPCWfEVXAYfuuRvVwH5hg Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
optional class paramter dart

jika tanpa c:

1*ocrIr0Gna3nPYbWzojx5yA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*6G1qIaCtN7FGS5FzOsZTyw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*-1TutRyOIsfXyHQ2zVQ_rQ Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
ujian dart

jika kita lihat untuk menset semua nilainya maka kita perlu menulis objek ujian berulang kali:

1*J21DIIe6NDNUp3-fWOvgMA Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
ujian.

agar lebih singkat penulisannya maka kita bisa menggunakan Cascade Notation (..), kita langsung implementasikan :

1*4_Gg1IaOFBn3UALj6V346g Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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

1*I4Pnycc1Q5jeea1pQxDzig Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2
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 :

1*9DNRRnKI2gCNgO822BhVuw Belajar Pemrogramman Dart Fundamental : Flutter Starter Pack Part 2

Sekian artikel pada kali ini, mudah mudahan bermanfaat.

Referensi : https://dart.dev/guides/language/language-tour

Leave a Reply :

* Your email address will not be published.