Dart Programming Untuk Pemula Bagian 2

Pada artikel sebelumnya kita sudah membahas tentang apa itu Dart, cara menginstalnya, dan Tipe data pada Dart. Maka pada artikel kali ini kita akan melanjutkan pembahasan Dart Programming ke bagian Operator, Function, dan Control Flow (Loops).


1. Operator

Expression merupakan jenis pernyataan khusus yang merepresentasikan suatu nilai. Expression terdiri dari:

  • Operands – Merepresentasikan data
  • Operator – Mendefinisilan bagaimana operands akan diproses untuk menghasilkan nilai.

Contohnya, 2 + 3 = 5. Maka 2 dan 3 adalah operands dan simbol “+” (Plus) adalah operator.

Operator pada dart terdiri dari 6 bagian:

Arithmetic Operators

Equality and Relational Operators

Relational Operators berfungsi untuk menguji atau mendefinisikan jenis hubungan antara 2 entitas dengan mengembalikan nilai boolean yaitu True/False.

Type test Operators

Operator ini berguna untuk memeriksa Tipe Data saat runtime.

Bitwise Operators

Assignment Operators

Logical Operators

Operator ini biasanya digunakan untuk menggabungkan dua atau lebih kondisi dengan mengembalikan nilai boolean.


Conditional Operators

Dart memiliki 2 operator untuk mengevaluasi Expression yang mungkin memerlukan statement if-else.

condition ? expr1 : expr2 – Jika kondisi true, maka expression mengevaluasi expr1 (dan mengembalikan nilainya). jika falseexpr2 yang akan dievaluasi bersama nilainya.

expr1 ?? expr2 – Jika expr1 non-null,  maka kembalikan nilai dari expr1. Jika null, maka akan mengevaluasi dan mengembalikan nilai expr2.


2. Function

Function merupakan bangunan blok kode yang mudah dibaca, dipelihara, dan digunakan kembali. Di dalam function terdapat sekumpulan statement untuk melakukan tugas tertentu. Function mengatur program ke dalam blok kode, kemudian setelah didefinisikan function dapat dipanggil untuk mengakses kode yang ada di dalamnya. Berikut step-step untuk menggunakan function:

    1. Defining a Function yaitu menentukan apa dan bagaimana tugas tertentu akan dieksekusi, sebelum menggunakannya function wajib didefinisikan.
    2. Supaya function dapat digunakan maka kita harus melakukan Calling a Function, proses ini disebut sebagai function invocation.
    3. Selanjutnya, function juga dapat mengembalikan nilai bersamaan dengan kontrol untuk kembali ke pemanggilnya atau caller. Fungsi tersebut dikenal juga sebagai returning functions. Berikut sintaksnya:
      return_type function_name(){  
         //statements  
         return value;  
      }


    4. Terakhir, pada function kita juga dapat memberikan parameter. Parameter sendiri merupakan mekanisme untuk meneruskan nilai ke function. Nilai parameter tersebut akan diteruskan ke function selama invocation, kecuali nilai sudah ditentukan secara eksplisit. Kemudian jumlah nilai yang diteruskan ke suatu function harus sesuai dengan jumlah parameter yang sudah ditentukan. Berikut sintaksnya:
      Function_name(data_type param_1, data_type param_2[…]) { 
         //statements 
      }
      

Optional Parameters

Optional Parameters dapat digunakan ketika argumen tidak perlu diteruskan pada saat function dieksekusi. Parameter dapat ditandai optional dengan menambahkan tanda tanya(?) pada namanya.  Ada 3 jenis tipe dari Optional Parameters, sebagai berikut:

  1. Jenis Pertama yaitu Optional Positional Parameter, untuk menggunakan jenis ini kita harus menggunakan kurung siku. Berikut adalah sintaks dari Optional Positional Parameter:
    void function_name(param1, [optional_param_1, optional_param_2]) { } 
    

    Jika optional patameters tidak memberikan nilai, maka secara otomatis akan diatur ke NULL.

  2. Jenis Kedua yaitu Optional Named Parameter. Tidak seperti positional parameter, Named Parameter harus ditentukan saat nilai sedang diteruskan. Tanda kurung kurawal { } digunakan untuk menetapkan Optional Named Parameter. Berikut adalah sintaks dari Optional Named Parameter:
    ➡️
    Syntax – Declaring the function

    void function_name(a, {optional_param1, optional_param2}) { } 
    

    ➡️Syntax – Calling the function

    function_name(optional_param:value,…); 
    

  3. Jenis yang terakhir yaitu Optional Parameters with Default Values. Parameter function juga dapat diberi nilai secara default. Namun, parameter tersebut juga dapat secara eksplisit melewati nilai. Berikut adalah sintaks dari Optional Parameters with Default Values:
    function_name(param1,{param2= default_value}) { 
       //...... 
    }

Recursive Dart Functions

Recursion adalah teknik untuk mengulangi suatu operasi dengan melakukan pemanggilan function ke dirinya sendiri berulang kali sampai tiba di suatu hasil. Recursion paling baik diterapkan ketika kita perlu memanggil function yang sama berulang kali dengan parameter berbeda dari dalam satu perulangan.

Lambda Functions

Lambda Functions adalah mekanisme ringkas untuk merepresentasikan fungsi. Fungsi-fungsi ini juga disebut sebagai Arrow functions.


3. Control Flow (Loops)

Terkadang kita temui instruksi tertentu memerlukan instruksi yang berulang, maka Loops adalah cara yang paling ideal untuk melakukan hal tersebut. Sebuah Loops, mewakili satu set instruksi yang harus diulang dan pengulangan tersebut disebut iteration. Berikut klasifikasi dari Loops:

Mari kita mulai diskusi tentang Definite Loops. Perulangan yang jumlah iterasinya pasti/tetap disebut definite loop atau perulangan pasti. Ada 2 jenis perulangan pasti yaitu for loop dan for…in loop, penjelasannya sebagai berikut:

  1. for loop merupakan implementasi dari definite loop yang mengeksekusi blok kode secara berulang kali dengan batasan tertentu. Ini dapat digunakan untuk mengulangi serangkaian pengeksekusian blok kode yang memiliki nilai tetap, seperti array. Berikut adalah sintaks dari for loop:
    for (initial_count_value; termination-condition; step) { 
       //statements 
    }    
    


  2. Jenis yang berikutnya yaitu for…in loop, biasanya digunakan untuk mengulang properti dari sebuah objek. Berikut sintaksnya:
    for (variablename in object){  
       statement or block to execute  
    }

    Dalam setiap iterasi, satu properti dari objek ditetapkan ke sebuah variabel dan loop ini berlanjut hingga semua properti objek tersebut habis.

Selanjutnya kita akan membahas indefinite loops atau loop tak tentu, indefinite loops digunakan ketika jumlah iterasi dalam loop tidak tentu atau tidak diketahui. Indefinite loops dapat diimplementasikan menggunakan while loop dan do…while loop. Contohnya sebagai berikut:

  1. while loop mengeksekusi instruksi setiap kalo kondisi yang ditentukan bernilai true. Dengan kata lain, loop mengevaluasi kondisi sebelum blok kode dieksekusi. Berikut ilustrasi dari while loop:Berikut adalah sintaks dari while loop:
    while (expression) {
       Statement(s) to be executed if expression is true  
    }
    

  2. do…while loop hampir sama seperti while loop, namun do…while loop tidak mengevaluasi kondisi pada saat pertama kali loop dieksekusi. Kondisi akan dievaluasi pada iterasi berikutnya, dengan kata lain blok kode akan dieksekusi setidaknya sekali dalam perulangan do…while loop. Berikut ilustrasi dari do…while loop:Berikut adalah sintaks dari do…while loop:
    do {  
       Statement(s) to be executed;  
    } while (expression);

Loops di Dart terdapat Loop Control Statements yang harus kita ketahui, contohnya sebagai berikut:

  1. Break Statement digunakan untuk mengambil kendali sebuah konstruksi kode. Menggunakan Break Statement pada sebuah loop menyebabkan eksekusi program akan langsung keluar dari loop.
  2. Continue Statement akan melewatkan konstruksi kode berikutnya dalam iterasi saat program berjalan dan mengambil kendali jalannya program untuk kembali ke awal perulangan atau loop. Tidak seperti break yang keluar dari loop, continue akan mengakhiri iterasi yang sedang berjalan dan memulai iterasi berikutnya.Contoh di atas menampilkan nilai genap antara 0 sampai 20. Perulangan akan keluar dari iterasi yang sedang berjalan saat angkanya genap.
Penggunaan Labels pada Control Flow

Secara sederhana Label diidentifikasi diikuti oleh titik 2 ( : ) yang diterapkan pada sebuah statement atau sebuah blok kode. Sebuah Label dapat digunakan dengan break dan continue supaya dapat mengontrol aliran program dengan lebih tepat. Contohnya penerapan Label pada break:Selanjutnya adalah penerapan Label pada continue:


Jika ada pertanyaan silahkan komen dan jika artikel ini dirasa bermanfaat, jangan lupa like dan sharenya ya teman-teman. ??????? Sampai bertemu di artikel selanjutnya.
Terima Kasih, Assalamu’alaykum… Salam KODINGINDONESIA

Referensi : dart.dev, tutorialspoint.com 

Anton Prafanto

Konten developer kodingindonesia.com & staf pengajar tetap di Universitas Mulawarman Samarinda

all author posts