Dart Function

Dart Function

Fungsi (function) adalah blok yang berisi beberapa baris kode yang mudah dibaca dan dapat digunakan kembali. Sebuah fungsi adalah kumpulan pernyataan atau perintah yang melakukan tugas tertentu. Fungsi mengorganisir program menjadi blok-blok kode logika. Setelah didefinisikan, fungsi dapat dipanggil untuk oleh fungsi lain atau oleh kode lain secara berulang-ulang. Hal ini membuat kode dapat digunakan kembali. Selain itu, fungsi membuat mudah untuk membaca dan memelihara kode program.

Deklarasi fungsi berisi nama fungsi, tipe nilai kembalian fungsi, dan parameter-parameter yang dibutuhkan oleh fungsi tersebut.

Mendefinisikan Fungsi (Function)

Definisi fungsi menentukan apa dan bagaimana tugas tertentu akan dilakukan dilakukan oleh fungsi tersebut. Sebelum menggunakan fungsi, fungsi harus didefinisikan terlebih dahulu. Berikut adalah cara penylisan untuk mendefinisikan fungsi standar.

namaFungsi () {  
   // beberapa pernyataan atau perintah kode      
}

Atau

void namaFungsi() { 
   // beberapa pernyataan atau perintah kode 
}

Kata kunci “void” menunjukkan bahwa fungsi tersebut tidak mengembalikan nilai apapun kepada pemanggilnya.

Contoh

test() { 
   print("fungsi dipanggil"); 
}

Memanggil Fungsi

Sebuah fungsi harus dipanggil agar baris dan kumpulan perintah, pernyataan dan kode dalam fungsi tersebut dapat dijalankan. Proses ini disebut sebagai function invocation.

Cara Penulisan

namaFungsi()

Contoh berikut mengilustrasikan bagaimana sebuah fungsi dapat dipanggil :

void main() { 
   test(); 
}  
test() { 
   print("fungsi dipanggil"); 
}

Kode di atas akan mengeluarkan output berikut :

fungsi dipanggil

Nilai Kembalian Fungsi

Fungsi juga dapat mengembalikan nilai bersamaan dengan kontrol kepada baris kode yang memanggil fungsi tersebut.

Cara Penulisan

tipeKembalian namaFungsi(){  
   // beberapa pernyataan atau perintah kode  
   return value;  
}
  • tipeKembalian dapat berupa tipe data apa saja yang valid
  • Pernyataan return itu opsional. Jika tidak ditentukan, fungsi akan mengembalikan null.
  • Tipe data dari nilai yang dikembalikan harus sesuai dengan tipe data kembalian dari fungsi.
  • Sebuah fungsi hanya dapat mengembalikan satu nilai saja. Dengan kata lain, hanya boleh ada satu pernyataan return per fungsi.

Contoh

Mari kita ambil contoh untuk memahami bagaimana nilai kembalian bekerja.

  • Contoh ini mendeklarasikan fungsi test(). Tipe kembalian dari fungsi ini adalah String.
  • Fungsi ini mengembalikan nilai String ke pemanggil. Hal ini dicapai dengan pernyataan return.
  • Fungsi test() mengembalikan sebuah String. Ini akan ditampilkan sebagai output.
void main() { 
   print(test()); 
}  
String test() { 
   return "Halo Dunia"; 
}

Kode di atas akan mengembalikan output :

Halo Dunia

Parameter Fungsi

Parameter adalah mekanisme untuk mengirimkan nilai ke dalam fungsi. Parameter merupakan bagian dari deklarasi suatu fungsi. Nilai parameter dikirimkan ke dalam fungsi pada saat pemanggilannya. Kecuali dijelaskan secara eksplisit, jumlah nilai yang dikirimkan ke dalam fungsi harus sesuai dengan jumlah parameter yang didefinisikan.

Sekarang mari kita bahas cara-cara di mana parameter dapat digunakan oleh fungsi.

Required Parameters

Diharuskan untuk memasukkan value ke required parameter selama pemanggilan fungsi.

Cara Penulisan

NamaFungsi (tipeData param_1, tipeData param_2[…]) { 
   // beberapa pernyataan atau perintah kode
}

Contoh

Potongan kode berikut mendeklarasikan fungsi test_param dengan dua parameter yaitu n1 dan s1.

  • Tidak wajib untuk menspesifikasikan tipe data parameter. Jika tipe data tidak didefinisikan, tipe data parameter akan ditentukan secara dinamis saat runtime.
  • Tipe data nilai yang diberikan harus sesuai dengan tipe data parameter pada saat deklarasi. Apabila tipe data tidak cocok, kompiler akan menghasilkan error.
void main() { 
   test_param(123,"ini adalah sebuah string"); 
}  
test_param(int n1,String s1) { 
   print(n1); 
   print(s1); 
}

Output dari kode di atas adalah sebagai berikut :

123 
ini adalah sebuah string

Optional Parameters

Parameter opsional dapat digunakan ketika parameter tidak perlu dipaksa untuk memiliki nilai saat eksekusi fungsi. Sebuah parameter dapat ditandai sebagai opsional dengan menambahkan tanda tanya pada namanya. Parameter opsional harus diatur sebagai argumen terakhir dalam sebuah fungsi.

Dart memiliki tiga jenis parameter opsional :

NoParameter & Deskripsi
1Optional Positional Parameter
Untuk menentukan optional positional parameter, gunakan tanda kurung siku [].
2Optional Named Parameter
Nama parameter harus ditentukan saat nilainya diberikan. Kurung kurawal {} bisa digunakan untuk menetapkan Optional Named Parameter.
3Optional Parameter dengan Nilai Default
Parameter fungsi juga dapat diberi nilai secara default. Namun, parameter ini juga dapat diberikan nilai.

Optional Positional Parameter

Untuk menentukan parameter posisional yang opsional, gunakan tanda kurung kotak [].

Cara Penulisan

void namaFungsi(param1, [optional_param_1, optional_param_2]) { } 

Jika parameter opsional tidak diberikan nilai, maka nilainya akan otomatis menjadi NULL.

Contoh

void main() { 
   test_param(123); 
}  
test_param(n1,[s1]) { 
   print(n1); 
   print(s1); 
}

Output dari kode di atas adalah sebagai berikut:

123 
null

Optional Named Parameter

Nama parameter harus ditentukan saat nilai parameter tersebut diberikan. Kurung kurawal {} dapat digunakan untuk menentukan optional named parameter.

Cara Penulisan

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

Cara Pemanggilan

function_name(optional_param:value,…);

Contoh

void main() { 
   test_param(123); 
   test_param(123,s1:'hello'); 
   test_param(123,s2:'hello',s1:'world'); 
}  
test_param(n1,{s1,s2}) { 
   print(n1); 
   print(s1); 
}

Output dari kode di atas adalah sebagai berikut :

123 
null 
123 
hello 
123 
world 

Optional Parameters dengan Nilai Default

Parameter fungsi juga dapat diberi nilai default. Namun, parameter tersebut juga dapat diberikan nilai secara eksplisit.

Cara Penulisan

namaFungsi (param1,{param2= default_value}) { 
   //...... 
}

Contoh

void main() { 
   test_param(123); 
}  
void test_param(n1,{s1:12}) { 
   print(n1); 
   print(s1); 
}

Kode di atas akan menghasilkan output berikut :

123 
12

Fungsi Recursive

Rekursi adalah teknik untuk mengulang suatu operasi dengan memanggil fungsi itu sendiri secara berulang-ulang sampai mencapai hasil akhir. Rekursi paling baik digunakan ketika Anda perlu memanggil fungsi yang sama secara berulang dengan parameter yang berbeda dari dalam suatu loop.

Contoh

void main() { 
   print(factorial(6));
}  
factorial(number) { 
   if (number <= 0) {         
      return 1; 
   } else { 
      return (number * factorial(number - 1));    
      // function invokes itself 
   } 
}

Output dari kode di atas adalah sebagai berikut :

720

Lambda Function

Fungsi lambda adalah mekanisme yang ringkas untuk merepresentasikan fungsi. Fungsi ini juga disebut sebagai arrow function.

Cara Penulisan

[return_type] namaFungsi(parameters)=>expression;

Contoh

void main() { 
   printMsg(); 
   print(test()); 
}  
printMsg()=>
print("hello"); 

int test()=>123;                       

Kode di atas ketika dijalankan akan menghasilkan output berikut :

hello
123

Tutorial sebelumnya : Dart Enumeration
Tutorial setelahnya : Dart Interface
Semua Tutorial Dart : Tutorial Dart

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0