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!