Menu
CoddyTech

Fungsi Bersarang

Pelajaran 7 dari 14 dalam kursus Deklarasi Fungsi di JavaScript di Coddy.

Fungsi bersarang seperti pahlawan super dengan rekan pendampingnya. Fungsi ini sangat andal dan dapat membuat serta menggunakan fungsi lain di dalamnya.

Fungsi bersarang adalah fungsi yang didefinisikan di dalam fungsi lain. Fungsi bagian dalam dapat mengakses variabel dan parameter fungsi bagian luar, sehingga menciptakan cakupan lokal di dalam fungsi bagian luar.

Bayangkan kamu memiliki fungsi utama (pahlawan super) yang membutuhkan bantuan untuk tugas tertentu. Alih-alih mengandalkan fungsi eksternal, fungsi tersebut dapat membuat fungsi pembantu (rekan pendamping) di dalam dirinya untuk menangani tugas itu. Fungsi pembantu ini hanya dapat diakses dan digunakan oleh fungsi utama. Contoh:

function calculateDiscount(originalPrice, discountPercentage) {
  	function calculateDiscountAmount(price, discount) {
    	return price * discount; // Hitung jumlah diskon (fungsi dalam)
  	}

  	const discountAmount = calculateDiscountAmount(originalPrice, discountPercentage / 100);
  	const finalPrice = originalPrice - discountAmount;
  	return finalPrice;
}

const discountedPrice = calculateDiscount(100, 20);
console.log(discountedPrice); // output: 80
  • Fungsi Bagian Luar:
    • Kita mendefinisikan fungsi bernama calculateDiscount yang menerima dua argumen: originalPrice dan discountPercentage.
  • Fungsi Bagian Dalam:
    • Di dalam fungsi bagian luar, kita mendefinisikan fungsi lain bernama calculateDiscountAmount. Inilah fungsi bersarang. Fungsi ini menerima dua argumen: price dan discount (perhatikan bahwa fungsi ini tidak dapat mengakses originalPrice atau discountPercentage secara langsung).
  • Output: Fungsi ini mengembalikan harga akhir, yaitu 80 (setelah diskon 20% diterapkan).
challenge icon

Tantangan

Mudah

Tugasmu adalah membuat fungsi bersarang bernama calculateTaxAmount yang mengambil price dan taxRate dari fungsi luar calculateWithTax, menghitung jumlah pajak, lalu mengembalikannya. (Jumlah pajak adalah harga dikalikan dengan tarif pajak.)

Terakhir, fungsi luar harus menghitung dan mengembalikan harga akhir (termasuk pajak) dengan menambahkan jumlah pajak ke harga awal, lalu mengembalikan harga akhir.

Coba sendiri

function calculateWithTax(product) {
    let price = product.price;
    let taxRate = product.taxRate;
   // tulis kodemu di sini
}

Semua pelajaran di Deklarasi Fungsi di JavaScript

Latihan sendiri: Compiler JavaScript online