Skip to content Skip to sidebar Skip to footer

Widget HTML #1

Belajar Bahasa Pemrograman Dart : Higher-Order Functions

Belajar Bahasa Pemrograman Dart : Higher-Order Functions - Hallo sahabat Ochimz Library, Pada Artikel yang anda baca kali ini dengan judul Belajar Bahasa Pemrograman Dart : Higher-Order Functions, kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan Artikel DUNIA TEKNOLOGI, yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.

Judul : Belajar Bahasa Pemrograman Dart : Higher-Order Functions
link : Belajar Bahasa Pemrograman Dart : Higher-Order Functions

Baca juga


Belajar Bahasa Pemrograman Dart : Higher-Order Functions

Higher-Order Functions

Setelah mempelajari modul sebelumnya, Anda mungkin bertanya apa yang bisa dilakukan dengan lambda atau anonymous function?

Kita bisa memanfaatkan lambda untuk membuat higher-order functionHigher order function adalah fungsi yang menggunakan fungsi lainnya sebagai parameter, menjadi tipe kembalian, atau keduanya.
Coba perhatikan fungsi berikut:


  1. void myHigherOrderFunction(String message, Function myFunction) {

  2.   print(message);

  3.   print(myFunction(3, 4));

  4. }



Fungsi di atas merupakan higher order function karena menerima parameter berupa fungsi lain. Untuk memanggil fungsi di atas, kita bisa langsung memasukkan lambda sebagai parameter maupun variabel yang berisi nilai berupa fungsi.


  1. // Opsi 1

  2. Function sum = (int num1, int num2) => num1 + num2;

  3. myHigherOrderFunction('Hello', sum);

  4.  

  5.  

  6. // Opsi 2

  7. myHigherOrderFunction('Hello', (num1, num2) => num1 + num2);



Jika disimulasikan fungsi myHigherOrderFunction akan memanggil fungsi sum yang dijadikan parameter.


  1. void myHigherOrderFunction(String message, Function myFunction) {

  2.   print(message);

  3.   print(myFunction(3, 4));  // sum(3, 4)    // return 3 + 4

  4. }



Namun deklarasi higher order function ini bisa menjadi sedikit tricky. Misalnya kode di bawah ini tidak akan terdeteksi eror namun ketika dijalankan, aplikasi Anda akan mengalami crash. Tahukah kenapa?


  1. void myHigherOrderFunction(String message, Function myFunction) {

  2.   print(message);

  3.   print(myFunction(4));

  4. }



Karena kita tidak menentukan spesifikasi dari fungsi seperti jumlah parameter atau nilai kembaliannya, maka semua jenis fungsi akan bisa dijalankan termasuk pemanggilan myFunction seperti di atas. 
Untuk mengatasinya kita bisa lebih spesifik menentukan seperti apa fungsi yang valid untuk menjadi parameter.


  1. void myHigherOrderFunction(String message, int Function(int num1, int num2) myFunction) { }



Pada fungsi di atas kita perlu memasukkan fungsi dengan dua parameter dan nilai kembali berupa int sebagai parameter.
Pada materi collection sebenarnya kita telah menggunakan satu fungsi yang merupakan higher order function yaitu fungsi forEach(). Sebagai contoh kita punya daftar bilangan fibonacci yang disimpan ke sebuah variabel.


  1. var fibonacci = [0, 1, 1, 2, 3, 5, 8, 13];



IntelliJ IDEA akan menunjukkan suggestion apa saja yang perlu menjadi parameter. Kita bisa melihat bahwa forEach membutuhkan satu parameter berupa fungsi.
20200330162628fd872a187e6995e583b65dffedf811b1.jpeg
Sehingga ketika memanggil fungsi ini kita bisa melakukan operasi pada masing-masing item misalnya mencetak ke konsol.


  1. fibonacci.forEach((item) {

  2.   print(item);

  3. });




Demikianlah Artikel Belajar Bahasa Pemrograman Dart : Higher-Order Functions

Sekianlah artikel Belajar Bahasa Pemrograman Dart : Higher-Order Functions kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.

Anda sekarang membaca artikel Belajar Bahasa Pemrograman Dart : Higher-Order Functions dengan alamat link https://www.theochimz.eu.org/2022/07/belajar-bahasa-pemrograman-dart-higher.html