๐Ÿ’ก Ikuti kami untuk mendapatkan update menarik lainnya Follow Now!

Tutorial Dart: Functional Programming

Functional programming adalah satu jenis model yang lebih memperhatikan penggunaan fungsi untuk bekerja dengan data dan aplikasi.

Dart adalah bahasa pemrograman yang fleksibel dengan dukungan berbagai paradigma, termasuk functional programming. Intinya, functional programming adalah cara kita memikirkan fungsi sebagai bagian utama dari mengelola kode. Berikut beberapa glosarium tentang konsep functional programming di Dart dengan penjelasan singkat penting:

Paradigma Functional Programming

Functional programming adalah satu jenis model yang lebih memperhatikan penggunaan fungsi untuk bekerja dengan data dan aplikasi. Beberapa konsep penting tentang model ini adalah pure functions, recursion, dan first-class citizens functions.

  • Pure functions adalah fungsi yang memerlukan input dan selalu memiliki keluaran yang sama untuk input tertentu serta tidak mempengaruhi lingkungan luar.

    Kode:

    int kaliDua(int x) {
      return x * 2;
    }
    void main() {
      print(kaliDua(4));  // ini mencetak 8
    }
    
  • Recursion
    Recursion adalah teknik pemrograman yang memungkinkan fungsi memanggil dirinya sendiri.
    Contoh dunia nyata: Ketika Anda naik tangga, setiap langkah memanggil fungsi tangga yang meminta Anda melangkah lebih tinggi atau rendah sampai tujuan tercapai.
    Kode:

    int faktorial(int n) {
      if (n == 0) {
        return 1;
      } else {
        return n * faktorial(n - 1);
      }
    }
    void main() {
      print(faktorial(5));
    }
    

Functions are First-Class Citizens and Can Be Higher-Order

Fungsi di Dart dianggap sebagai warga kelas pertama, artinya mereka dapat diperlakukan seperti variabel atau objek. Fungsi dapat disimpan dalam variabel, dikirim sebagai argumen, atau dikembalikan oleh fungsi lain.
Kode:

   void ucapkanSalam(Function pesan) {
       print("Selamat datang!");
       pesan();
   }
   void main() {
       ucapkanSalam(() {
         print("Selamat datang di web kami.");
       });
       // Output:
       // Selamat datang!
       // Selamat datang di web kami.
   }

Anonymous Functions

Anonymous functions adalah fungsi yang tidak memiliki nama. Kadang-kadang kita hanya perlu menggunakan fungsi sekali di tempat yang sangat spesifik.
Kode:

   void main() {
     var angka = [1, 2, 3];
     angka.forEach((item) => print(item * 3));
   }

Higher-Order Functions

Higher-order functions adalah fungsi yang bisa mengambil fungsi lain sebagai argumen atau mengembalikan fungsi sebagai hasil. Ini memberi fleksibilitas untuk menulis kode yang lebih adaptif.
Kode:

   void tampilkanPesan(Function pesan) {
     print("Halo!");
     pesan();
   }
   void main() {
     tampilkanPesan(() {
       print("Selamat datang di aplikasi kami.");
     });
   }

Closures

Closure adalah fungsi yang dapat mengakses variabel dari luar lingkupnya, bahkan setelah fungsi luar tersebut selesai dieksekusi.
Kode:

   Function buatPenambah(int nilai) {
     return (int angka) => angka + nilai;
   }
   void main() {
     var tambahLima = buatPenambah(5);
     print(tambahLima(10)); // ini mencetak 15
   }

Penutup

Dengan memahami konsep functional programming seperti pure functions, recursion, first-class functions, anonymous functions, higher-order functions, dan closures, Anda dapat menulis kode yang lebih bersih dan modular di Dart. Terima kasih!

Baca juga :

About the Author

Need more coffee ☕, If you want to support me to pay domain, you can donate via Donate or Trakteer

1 komentar

  1. Mantap bang saya langsung jadi programmer
Komentar blog
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.