edubun
Bahasa Indonesia

Fungsi

Tulis function square(n) { return n * n; } sekali saja, lalu square(4) memberi 16, square(9) memberi 81, dan seterusnya untuk bilangan apa pun yang kamu masukkan.

Memberi nama pada sebuah pekerjaan

Kamu sudah memakai fungsi yang ditulis orang lain: console.log, Math.round, dan toUpperCase semuanya fungsi. Fungsi adalah blok kode bernama yang mengerjakan satu tugas. Kamu mendefinisikannya sekali, lalu memanggilnya dengan namanya sesering yang kamu mau. Dengan fungsi, kamu tidak perlu menyalin baris yang sama ke mana-mana. Fungsi juga membantumu memikirkan program dalam potongan yang lebih besar: "hitung tipnya, lalu bagi tagihannya", bukan daftar panjang hitungan.

function greet(name) {
  return "Hello, " + name + "!";
}

console.log(greet("Ana"));   // Hello, Ana!
console.log(greet("Ji"));    // Hello, Ji!

Definisinya dimulai dengan kata kunci function, lalu nama fungsi, lalu daftar parameter di dalam tanda kurung. Parameter adalah variabel yang menerima nilai saat fungsi dipanggil; di sini parameternya name. Badan fungsi di dalam kurung kurawal mengerjakan tugasnya. Saat kamu memanggil greet("Ana"), nilai "Ana", yang disebut argumen, dimasukkan ke parameter name, lalu badan fungsi dijalankan.

return mengembalikan sebuah nilai

Kata kunci return mengakhiri fungsi dan mengirim sebuah nilai kembali ke tempat fungsi itu dipanggil. Pemanggilan greet("Ana") adalah ekspresi, dan nilainya adalah apa pun yang dikembalikan. Karena itulah pemanggilan ini bisa diletakkan di dalam console.log, di dalam perhitungan, atau disimpan dalam variabel: const msg = greet("Ana");.

Mengembalikan nilai dan mencetaknya adalah dua hal berbeda, dan pemula sering mencampuradukkannya. Fungsi yang hanya memanggil console.log menampilkan sesuatu di layar, tetapi tidak mengembalikan apa-apa. Pemanggilannya bernilai undefined, jadi hasilnya tidak bisa dipakai dalam perhitungan. Sebagai aturan, biarkan fungsi mengembalikan hasil, dan biarkan kode yang memanggilnya memutuskan apakah hasil itu dicetak.

function addPrint(a, b) {
  console.log(a + b);
}
function add(a, b) {
  return a + b;
}

const x = add(2, 3) * 10;
console.log(x);      // 50
addPrint(2, 3);      // mencetak 5, tetapi tidak mengembalikan apa pun yang bisa dipakai

return juga langsung menghentikan fungsi. Baris sesudahnya di jalur yang sama tidak dijalankan. Dengan begitu kamu bisa menangani kasus khusus lebih dulu: if (n < 0) return "negative"; di bagian atas fungsi, lalu kasus biasa ditulis di bawahnya.

Beberapa parameter dan nilai bawaan

Fungsi bisa menerima beberapa parameter yang dipisahkan koma, dan argumen dicocokkan menurut urutannya: pada add(2, 3), a bernilai 2 dan b bernilai 3. Kalau sebuah pemanggilan tidak menyertakan argumen, parameter itu bernilai undefined. Kamu bisa memberi parameter nilai bawaan yang dipakai saat tidak ada nilai yang dikirim: function tip(bill, rate = 0.15) memakai 0.15 kecuali pemanggil memberikan rate lain.

Fungsi panah

JavaScript modern juga punya cara yang lebih singkat untuk menulis fungsi kecil, yaitu fungsi panah (arrow function). const square = (n) => n * n; sama artinya dengan fungsi square di awal bab. Kalau badannya hanya satu ekspresi, nilainya otomatis dikembalikan, tanpa kurung kurawal dan tanpa kata kunci return. Kamu akan melihat fungsi panah di mana-mana dalam kode modern.

Variabel di dalam tetap di dalam

Parameter dan variabel yang dideklarasikan di dalam fungsi hanya ada di dalam fungsi itu. Ini disebut cakupan (scope). Dua fungsi yang berbeda masing-masing boleh punya variabel bernama total tanpa saling mengganggu, dan kode di luar fungsi tidak bisa melihat variabel pribadinya. Fungsi bisa membaca variabel yang dideklarasikan di luarnya, tetapi fungsi yang paling rapi menerima semua yang dibutuhkannya lewat parameter dan mengembalikan semuanya lewat return. Dengan begitu kamu bisa memahaminya tanpa melihat bagian lain.

function nama(parameter) { return hasil; } const nama = (parameter) => hasil;

fungsiBlok kode bernama yang mengerjakan satu tugas
pemanggilanMenjalankan fungsi: nama(argumen)
parameterVariabel dalam definisi yang menerima nilai
argumenNilai yang dikirim saat pemanggilan
returnMengakhiri fungsi dan mengembalikan sebuah nilai
parameter bawaanrate = 0.15: dipakai saat tidak ada argumen
fungsi panah(n) => n * n
cakupan (scope)Tempat sebuah variabel bisa dilihat; yang di dalam fungsi tetap di dalam
  1. Apa yang dicetak kode ini?
    function double(n) {
      return n * 2;
    }
    console.log(double(7));
  2. Apa yang dicetak kode ini?
    function add(a, b) {
      return a + b;
    }
    console.log(add(2, 3) * add(1, 1));
  3. Apa yang dicetak kode ini?
    function minus(a, b) {
      return a - b;
    }
    console.log(minus(3, 10));
  4. Apa yang dicetak kode ini?
    function f(x) {
      return x + 1;
      console.log("hi");
    }
    console.log(f(1));
    • 2
    • hi, then 2
    • 2, then hi
  5. Apa yang dicetak kode ini?
    function show(n) {
      console.log(n);
    }
    const r = show(5);
    console.log(typeof r);
    • 5, then number
    • 5, then undefined
    • Only undefined
  6. Apa yang dicetak kode ini?
    const triple = (n) => n * 3;
    console.log(triple(4));
  7. Apa yang dicetak kode ini?
    function tip(bill, rate = 0.1) {
      return bill * rate;
    }
    console.log(tip(50));
  8. Apa yang dicetak kode ini?
    function tip(bill, rate = 0.1) {
      return bill * rate;
    }
    console.log(tip(50, 0.2));
  9. Apa yang dicetak kode ini?
    function sign(n) {
      if (n < 0) return "neg";
      if (n === 0) return "zero";
      return "pos";
    }
    console.log(sign(0));
  10. Pada function area(w, h) yang dipanggil sebagai area(3, 5), w dan h disebut apa, dan 3 serta 5 disebut apa?
    • w dan h adalah parameter; 3 dan 5 adalah argumen
    • w dan h adalah argumen; 3 dan 5 adalah parameter
    • Keempatnya adalah nilai kembalian
Poin penting
  • function nama(params) { ... } mendefinisikan; nama(args) memanggil.
  • Argumen dicocokkan dengan parameter menurut urutan.
  • return mengakhiri fungsi dan mengembalikan nilai; mencetak bukan mengembalikan.
  • Parameter bawaan mengisi argumen yang tidak diberikan.
  • Fungsi panah: (n) => n * n.
  • Variabel di dalam fungsi tetap di dalam (cakupan).
Sumber kursus ini (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Diperiksa: 2026-10-17