JavaScript & Node.js
JavaScript
Function

Function

Function

Function adalah sebuah blok kode yang akan dijalankan ketika dipanggil. Function dapat menerima input dan mengembalikan output. Function dapat digunakan untuk menghindari duplikasi kode, karena jika ada kode yang sama di beberapa tempat, kita dapat menggunakan function untuk menggantikannya.

Ada 3 cara untuk mendefinisikan function di Javascript. Pertama dengan menggunakan function declaration, kedua dengan menggunakan function expression, dan ketiga dengan menggunakan arrow function.

Function Declaration

Function declaration adalah cara mendefinisikan function dengan kata kunci function. Contoh:

function sayHello() {
  console.log("Hello");
}
 
sayHello(); // Hello

Function Expression

Function expression adalah cara mendefinisikan function dengan menyimpannya ke dalam sebuah variabel. Contoh:

const sayHello = function () {
  console.log("Hello");
};
 
sayHello(); // Hello

Arrow Function

Arrow function adalah cara mendefinisikan function dengan menggunakan tanda panah =>. Contoh:

const sayHello = () => {
  console.log("Hello");
};
 
sayHello(); // Hello

Function Parameter

Function parameter adalah sebuah variabel yang digunakan sebagai input untuk function. Contoh:

function sayHello(name) {
  console.log(`Hello ${name}`);
}
 
sayHello("John"); // Hello John

Function parameter bisa lebih dari satu. Contoh:

function add(a, b) {
  console.log(a + b);
}
 
add(1, 2); // 3

Function Return

Function return adalah sebuah keyword yang digunakan untuk mengembalikan nilai dari function. Contoh:

function add(a, b) {
  return a + b;
}
 
const result = add(1, 2);
console.log(result); // 3

Scope

Scope adalah sebuah konsep yang digunakan untuk menentukan akses sebuah variabel. Ada 2 jenis scope di Javascript, yaitu global scope dan local scope. Global scope adalah scope yang bisa diakses dari mana saja, sedangkan local scope adalah scope yang hanya bisa diakses dari dalam function.

Contoh global scope:

const name = "John";
 
function sayHello() {
  console.log(`Hello ${name}`);
}
 
sayHello(); // Hello John

Contoh local scope:

function sayHello() {
  const name = "John";
  console.log(`Hello ${name}`);
}
 
sayHello(); // Hello John
console.log(name); // ReferenceError: name is not defined

Closure

Closure adalah sebuah function yang mengakses variabel di luar function tersebut. Contoh:

function sayHello() {
  const name = "John";
  return function () {
    console.log(`Hello ${name}`);
  };
}
 
const hello = sayHello();
hello(); // Hello John

Penggunaan closure yang paling umum adalah untuk membuat private variable. Contoh:

function counter() {
  let count = 0;
  return function () {
    count++;
    console.log(count);
  };
}
 
const increment = counter();
increment(); // 1
increment(); // 2
increment(); // 3

Callback

Callback adalah sebuah function yang dikirimkan sebagai parameter ke function lain. Contoh:

function sayHello(name) {
  console.log(`Hello ${name}`);
}
 
function getName(callback) {
  const name = "John";
  callback(name);
}
 
getName(sayHello); // Hello John

Contoh lain callback

function add(a, b) {
  return a + b;
}
 
function multiply(a, b) {
  return a * b;
}
 
function calculate(a, b, callback) {
  return callback(a, b);
}
 
const result1 = calculate(1, 2, add);
console.log(result1); // 3
 
const result2 = calculate(1, 2, multiply);
console.log(result2); // 2