Tutorial js

Function JavaScript: Mengorganisir Kode

Function adalah sekumpulan kode yang dibungkus dalam satu nama. Bayangkan seperti resep masakan - sekali tulis, bisa dipakai berkali-kali!

Mengapa Pakai Function?

Function membantu kita:

  • Menghindari pengulangan kode
  • Mengorganisir program agar rapi
  • Mempermudah perbaikan bug
  • Membuat kode yang bisa dipakai ulang

Cara Membuat Function

1. Function Sederhana

function sapa_tamu() {
  console.log("Selamat datang!");
  console.log("Semoga hari Anda menyenangkan!");
}

// Cara pakai function
sapa_tamu(); // Panggil function

2. Function dengan Parameter

function sapa_dengan_nama(nama_tamu) {
  console.log("Halo " + nama_tamu + "!");
  console.log("Selamat datang di website saya!");
}

// Cara pakai
sapa_dengan_nama("Budi"); // Hasil: Halo Budi!
sapa_dengan_nama("Sarah"); // Hasil: Halo Sarah!
sapa_dengan_nama("Ahmad"); // Hasil: Halo Ahmad!

3. Function dengan Return (Mengembalikan Nilai)

function hitung_luas_persegi(sisi) {
  let luas_hasil = sisi * sisi;
  return luas_hasil;
}

// Cara pakai
let luas_kamar = hitung_luas_persegi(5);
console.log("Luas kamar: " + luas_kamar + " meter persegi");

let luas_ruang_tamu = hitung_luas_persegi(8);
console.log("Luas ruang tamu: " + luas_ruang_tamu + " meter persegi");

Contoh Function Praktis

1. Kalkulator Sederhana

function tambah(angka_1, angka_2) {
  return angka_1 + angka_2;
}

function kurang(angka_1, angka_2) {
  return angka_1 - angka_2;
}

function kali(angka_1, angka_2) {
  return angka_1 * angka_2;
}

function bagi(angka_1, angka_2) {
  return angka_1 / angka_2;
}

// Cara pakai
console.log("5 + 3 = " + tambah(5, 3));
console.log("10 - 4 = " + kurang(10, 4));
console.log("6 × 7 = " + kali(6, 7));
console.log("15 ÷ 3 = " + bagi(15, 3));

2. Function untuk Konversi

function celsius_ke_fahrenheit(celsius) {
  let fahrenheit = (celsius * 9) / 5 + 32;
  return fahrenheit;
}

function meter_ke_kilometer(meter) {
  let kilometer = meter / 1000;
  return kilometer;
}

function rupiah_ke_dollar(rupiah) {
  let dollar = rupiah / 15000; // Asumsi 1 USD = 15.000 IDR
  return dollar;
}

// Cara pakai
console.log("25°C = " + celsius_ke_fahrenheit(25) + "°F");
console.log("5000 meter = " + meter_ke_kilometer(5000) + " km");
console.log("Rp 150.000 = $" + rupiah_ke_dollar(150000));

3. Function untuk Validasi

function cek_umur_dewasa(umur) {
  if (umur >= 17) {
    return "Sudah dewasa";
  } else {
    return "Belum dewasa";
  }
}

function cek_nilai_lulus(nilai) {
  if (nilai >= 75) {
    return "LULUS";
  } else {
    return "TIDAK LULUS";
  }
}

function cek_password_kuat(password) {
  if (password.length >= 8) {
    return "Password cukup kuat";
  } else {
    return "Password terlalu pendek";
  }
}

// Cara pakai
console.log("Umur 20: " + cek_umur_dewasa(20));
console.log("Umur 15: " + cek_umur_dewasa(15));
console.log("Nilai 85: " + cek_nilai_lulus(85));
console.log("Nilai 60: " + cek_nilai_lulus(60));

Function dengan Multiple Parameter

function hitung_gaji_bersih(gaji_pokok, tunjangan, potongan) {
  let total_gaji = gaji_pokok + tunjangan;
  let gaji_bersih = total_gaji - potongan;
  return gaji_bersih;
}

function info_lengkap_siswa(nama, kelas, nilai_rata_rata) {
  let status = "";
  if (nilai_rata_rata >= 75) {
    status = "LULUS";
  } else {
    status = "TIDAK LULUS";
  }

  console.log("=== INFO SISWA ===");
  console.log("Nama: " + nama);
  console.log("Kelas: " + kelas);
  console.log("Rata-rata: " + nilai_rata_rata);
  console.log("Status: " + status);
}

// Cara pakai
let gaji_net = hitung_gaji_bersih(5000000, 1000000, 500000);
console.log("Gaji bersih: Rp " + gaji_net);

info_lengkap_siswa("Budi Santoso", "12 IPA 1", 85.5);
info_lengkap_siswa("Sari Indah", "12 IPS 2", 72.0);

Arrow Function (Modern)

// Cara tradisional
function kuadrat_tradisional(angka) {
  return angka * angka;
}

// Cara modern (Arrow Function)
const kuadrat_modern = (angka) => {
  return angka * angka;
};

// Arrow function pendek
const kuadrat_pendek = (angka) => angka * angka;

// Cara pakai sama
console.log(kuadrat_tradisional(5)); // 25
console.log(kuadrat_modern(5)); // 25
console.log(kuadrat_pendek(5)); // 25

Latihan Praktek

Buat function untuk:

1. Kalkulator BMI

function hitung_bmi(berat_kg, tinggi_meter) {
  let bmi = berat_kg / (tinggi_meter * tinggi_meter);
  return bmi;
}

function status_bmi(bmi) {
  if (bmi < 18.5) {
    return "Kurus";
  } else if (bmi < 25) {
    return "Normal";
  } else if (bmi < 30) {
    return "Gemuk";
  } else {
    return "Obesitas";
  }
}

// Test
let bmi_saya = hitung_bmi(65, 1.7);
console.log("BMI: " + bmi_saya.toFixed(1));
console.log("Status: " + status_bmi(bmi_saya));

2. Diskon Belanja

function hitung_diskon(total_belanja) {
  let diskon = 0;

  if (total_belanja >= 500000) {
    diskon = total_belanja * 0.2; // Diskon 20%
  } else if (total_belanja >= 200000) {
    diskon = total_belanja * 0.1; // Diskon 10%
  } else if (total_belanja >= 100000) {
    diskon = total_belanja * 0.05; // Diskon 5%
  }

  return diskon;
}

function total_bayar(total_belanja) {
  let diskon = hitung_diskon(total_belanja);
  let bayar = total_belanja - diskon;

  console.log("Total belanja: Rp " + total_belanja);
  console.log("Diskon: Rp " + diskon);
  console.log("Total bayar: Rp " + bayar);

  return bayar;
}

// Test
total_bayar(150000); // Diskon 5%
total_bayar(300000); // Diskon 10%
total_bayar(600000); // Diskon 20%

Tips Function

💡 Nama function yang jelas:

// ❌ Kurang jelas
function calc(x, y) {
  return x + y;
}

// ✅ Lebih jelas
function hitung_total_harga(harga, jumlah) {
  return harga * jumlah;
}

💡 Satu function, satu tugas:

// ❌ Function yang terlalu banyak tugas
function proses_data_siswa(nama, nilai) {
  console.log("Nama: " + nama);
  console.log("Nilai: " + nilai);
  if (nilai >= 75) {
    console.log("LULUS");
    console.log("Selamat!");
  }
}

// ✅ Dipecah jadi beberapa function
function tampilkan_info_siswa(nama, nilai) {
  console.log("Nama: " + nama);
  console.log("Nilai: " + nilai);
}

function cek_kelulusan(nilai) {
  return nilai >= 75 ? "LULUS" : "TIDAK LULUS";
}

function tampilkan_ucapan(status) {
  if (status === "LULUS") {
    console.log("Selamat!");
  }
}

Ringkasan

Function adalah:

  • Kumpulan kode yang diberi nama
  • Bisa menerima input (parameter)
  • Bisa mengembalikan output (return)
  • Membantu mengorganisir kode

Keuntungan:

  • Kode tidak berulang
  • Mudah diperbaiki
  • Bisa dipakai berkali-kali
  • Program lebih terstruktur

Lanjut ke Conditional Statement untuk membuat program yang lebih pintar! 🧠