Pengenalan Fungsi

Pengenalan Fungsi 🔧

Fungsi adalah blok kode yang dapat digunakan kembali — cukup didefinisikan sekali dan bisa dipanggil berkali-kali dari tempat yang berbeda.


Mengapa Menggunakan Fungsi?

// 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');

Struktur Fungsi Dart

// TipeKembali namaFungsi(TipeParam parameter) {
//   isi fungsi
//   return nilai;
// }

void sapa(String nama) {
  print('Halo, $nama!');
}

int tambah(int a, int b) {
  return a + b;
}

Fungsi void — Tanpa Nilai Kembali

void 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();
}

Fungsi dengan Nilai Kembali

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!
}

Fungsi Memanggil Fungsi Lain

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
}

Scope (Ruang Lingkup) Variabel

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
}

Tips Menulis Fungsi yang Baik

// 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. 🛠️

Selanjutnya

Informasi Kursus

Kursus

Dart Dasar

Kategori

Fungsi

Durasi Pelajaran

20 menit

Pelajaran dalam Kategori Ini