Menu
CoddyTech

Cakupan Variabel

Termasuk bagian Dasar-Dasar dalam perjalanan PHP di Coddy. Pelajaran 67 dari 71.

Variabel yang dibuat di dalam fungsi sepenuhnya terpisah dari variabel di luarnya. Konsep ini disebut cakupan variabel, dan memahaminya dapat mencegah bug yang membingungkan dalam kodemu.

Variabel yang didefinisikan di dalam fungsi hanya ada di dalam fungsi tersebut. Ini disebut variabel lokal:

<?php
function sayHi() {
    $message = "Hello!";
    echo $message;
}

sayHi();
echo $message; // error: $message tidak ada di sini
?>

Variabel $message dibuat di dalam sayHi() dan menghilang saat fungsi berakhir. Mencoba mengaksesnya dari luar akan menyebabkan error.

Demikian pula, variabel yang didefinisikan di luar fungsi tidak otomatis tersedia di dalamnya:

<?php
$name = "Alice";

function greet() {
    echo $name; // error: $name tidak didefinisikan di dalam fungsi ini
}

greet();
?>

Meskipun $name ada di kode utama, fungsi tidak bisa melihatnya. Untuk menggunakan nilai dari luar dalam fungsi, berikan nilai tersebut sebagai parameter. Itulah pendekatan yang rapi dan disarankan, yang sudah kamu pelajari.

Pemisahan ini sebenarnya membantu. Artinya, fungsi tidak akan secara tidak sengaja mengubah variabel di bagian lain programmu, sehingga kodemu lebih mudah diprediksi dan di-debug.

challenge icon

Tantangan

Mudah

Baca dua baris input:

  1. Nama seseorang (misalnya, Alice)
  2. Jumlah bonus dalam bilangan bulat (misalnya, 50)

Buat fungsi bernama calculateBonus yang menerima dua parameter: $name (string) dan $bonus (int).

Di dalam fungsi:

  • Buat variabel lokal $baseSalary dan tetapkan nilainya menjadi 1000
  • Hitung total gaji dengan menjumlahkan $baseSalary dan $bonus
  • Kembalikan string dengan format: [name] earns [total]

Panggil fungsi dengan nilai input dan cetak hasil yang dikembalikan.

Contoh 1:

Jika inputnya adalah Alice dan 50, outputnya harus berupa:

Alice earns 1050

Contoh 2:

Jika inputnya adalah Bob dan 200, outputnya harus berupa:

Bob earns 1200

Contoh 3:

Jika inputnya adalah Emma dan 0, outputnya harus berupa:

Emma earns 1000

Coba sendiri

<?php
// Baca input
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));

// TODO: Buat fungsi calculateBonus di bawah ini
// - Fungsi ini harus menerima $name (string) dan $bonus (int) sebagai parameter
// - Buat variabel lokal $baseSalary dengan nilai 1000
// - Hitung total gaji dan kembalikan "[name] earns [total]"



// Panggil fungsi dan cetak hasilnya
echo calculateBonus($name, $bonus);
?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler PHP online