Fungsi
Fungsi adalah blok kode yang bisa digunakan ulang (reusable). Mendefinisikan fungsi dengan kata kunci fungsi.
Mendefinisikan Fungsi
Sintaks
fungsi namaFungsi(parameter1, parameter2) {
// kode fungsi
kembalikan nilai
}
Fungsi Tanpa Parameter
Contoh
fungsi sapa() {
tampilkan("Selamat datang di NusaScript!")
}
sapa() // panggil fungsi
Output
Selamat datang di NusaScript!
Fungsi dengan Parameter
Contoh
fungsi luas_persegi(sisi) {
kembalikan sisi * sisi
}
fungsi luas_segitiga(alas, tinggi) {
kembalikan (alas * tinggi) / 2
}
tampilkan("Luas persegi 5:", luas_persegi(5))
tampilkan("Luas segitiga 8x6:", luas_segitiga(8, 6))
Output
Luas persegi 5: 25 Luas segitiga 8x6: 24
Fungsi Rekursif
Contoh — Faktorial
fungsi faktorial(n) {
jika n <= 1 {
kembalikan 1
}
kembalikan n * faktorial(n - 1)
}
tampilkan("5! =", faktorial(5)) // 120
tampilkan("10! =", faktorial(10)) // 3628800
Output
5! = 120 10! = 3628800
Fungsi Anonim
Fungsi anonim adalah fungsi tanpa nama yang bisa disimpan dalam variabel atau dikirim sebagai argumen.
Contoh
// Fungsi anonim disimpan dalam variabel
buat tambah = fungsi(a, b) {
kembalikan a + b
}
buat kali = fungsi(a, b) {
kembalikan a * b
}
tampilkan(tambah(3, 4)) // 7
tampilkan(kali(3, 4)) // 12
Output
7 12
Fungsi sebagai Argumen (Higher-Order Function)
Contoh
fungsi lakukan_dua_kali(fn, nilai) {
kembalikan fn(fn(nilai))
}
buat tambah_sepuluh = fungsi(x) {
kembalikan x + 10
}
tampilkan(lakukan_dua_kali(tambah_sepuluh, 5)) // 5+10+10 = 25
Output
25
Tipe Kembali (Opsional)
Contoh dengan Anotasi Tipe
// Anotasi tipe bersifat opsional (dokumentasi)
fungsi hitung_umur(tahun_lahir: bilangan) -> bilangan {
kembalikan 2026 - tahun_lahir
}
fungsi nama_lengkap(depan: teks, belakang: teks) -> teks {
kembalikan depan + " " + belakang
}
tampilkan(hitung_umur(2000))
tampilkan(nama_lengkap("Budi", "Santoso"))
Output
26 Budi Santoso
Tipe data pada parameter (
: bilangan) dan tipe kembali (-> teks) bersifat opsional — hanya untuk dokumentasi. NusaScript menggunakan dynamic typing.