Fungsi adalah blok kode yang dapat digunakan kembali — cukup didefinisikan sekali dan bisa dipanggil berkali-kali dari tempat yang berbeda.
// Tanpa fungsi — kode berulang:
print('Selamat datang, Budi!');
print('Selamat datang, Ani!');
print('Selamat datang, Citra!');
// Dengan fungsi — cukup tulis sekali:
void sapa(String nama) {
print('Selamat datang, $nama!');
}
sapa('Budi');
sapa('Ani');
sapa('Citra');
// TipeKembali namaFungsi(TipeParam parameter) {
// isi fungsi
// return nilai;
// }
void sapa(String nama) {
print('Halo, $nama!');
}
int tambah(int a, int b) {
return a + b;
}
void — Tanpa Nilai Kembalivoid berarti fungsi tidak mengembalikan nilai:
void cetakGaris() {
print('-------------------');
}
void tampilkanInfo(String nama, int umur) {
print('Nama: $nama');
print('Umur: $umur tahun');
}
void main() {
cetakGaris();
tampilkanInfo('Budi', 25);
cetakGaris();
}
int kali(int a, int b) {
return a * b;
}
double hitungRataRata(int jumlah, int banyak) {
return jumlah / banyak;
}
String sapa(String nama) {
return 'Halo, $nama!';
}
void main() {
int hasil = kali(4, 5);
print(hasil); // 20
double rata = hitungRataRata(150, 5);
print(rata); // 30.0
String pesan = sapa('Budi');
print(pesan); // Halo, Budi!
}
int persegi(int sisi) {
return sisi * sisi;
}
int kubus(int sisi) {
return sisi * persegi(sisi); // memanggil fungsi persegi
}
void main() {
print(persegi(4)); // 16
print(kubus(3)); // 27
}
int globalVar = 100; // variabel global
void fungsiA() {
int lokal = 50; // hanya ada di dalam fungsiA
print(globalVar); // bisa akses variabel global
print(lokal); // bisa akses
}
void fungsiB() {
print(globalVar); // bisa akses variabel global
// print(lokal); // ERROR! tidak bisa akses dari fungsiA
}
// BURUK — satu fungsi melakukan terlalu banyak hal:
void prosesPesanan() {
// validasi input
// hitung total harga
// simpan ke database
// kirim email konfirmasi
// update stok barang
}
// BAIK — satu fungsi, satu tanggung jawab:
bool validasiPesanan(Map pesanan) { /* ... */ }
double hitungTotal(List items) { /* ... */ }
void simpanPesanan(Map pesanan) { /* ... */ }
void kirimKonfirmasi(String email) { /* ... */ }
💡 Tips: Sebuah fungsi yang baik hanya melakukan satu hal dan melakukannya dengan baik. Beri nama fungsi dengan kata kerja yang menggambarkan aksinya:
hitungTotal(),validasiInput(),tampilkanHasil(). Jika fungsimu lebih dari 20 baris, pertimbangkan untuk memecahnya menjadi fungsi yang lebih kecil. 🛠️
Kursus
Dart Dasar
Kategori
Fungsi
Durasi Pelajaran
20 menit