Menu
CoddyTech

Penerusan dengan Nilai

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 25 dari 63.

Ketika kamu meneruskan variabel ke fungsi dalam C, fungsi menerima salinan nilai variabel tersebut, bukan variabel itu sendiri. Konsep dasar ini disebut pass-by-value.

Inilah yang terjadi: jika kamu memiliki variabel x dengan nilai 10 dan meneruskannya ke sebuah fungsi, fungsi tersebut mendapatkan salinan terpisah dari nilai itu. Perubahan apa pun yang dibuat fungsi pada salinan ini tidak memengaruhi variabel asli di fungsi pemanggil.

void tryToChange(int num) {
    num = 99;  // Ini hanya mengubah salinannya
}

int main() {
    int x = 10;
    tryToChange(x);
    // x tetap bernilai 10, bukan 99
    return 0;
}

Perilaku ini melindungi data asli kamu agar tidak diubah secara tidak sengaja oleh fungsi. Namun, ini juga berarti bahwa jika kamu ingin fungsi benar-benar mengubah nilai variabel, pass-by-value tidak akan berfungsi. Memahami keterbatasan ini sangat penting saat kamu melanjutkan belajar tentang pointer dan cara pointer dapat mengatasi masalah ini.

challenge icon

Tantangan

Mudah

Tulis program C yang mendemonstrasikan konsep pass-by-value dengan mencoba mengubah variabel di dalam fungsi dan mengamati bahwa variabel aslinya tetap tidak berubah.

Programmu harus:

  1. Membuat fungsi bernama tryToModify yang menerima parameter integer bernama number
  2. Di dalam fungsi tryToModify, menambahkan 50 ke parameter number
  3. Di dalam fungsi tryToModify, mencetak nilai yang telah diubah dengan format: Inside function: [value]
  4. Di dalam fungsi main, mendeklarasikan variabel integer bernama original dan menginisialisasinya dengan nilai 25
  5. Mencetak nilai asli sebelum memanggil fungsi dengan format: Before function call: [value]
  6. Memanggil fungsi tryToModify dan meneruskan variabel original sebagai argumen
  7. Setelah pemanggilan fungsi, mencetak kembali nilai original dengan format: After function call: [value]

Output programmu harus menunjukkan bahwa nilai variabel asli tetap tidak berubah meskipun ada perubahan di dalam fungsi:

Before function call: 25
Inside function: 75
After function call: 25

Tantangan ini mendemonstrasikan konsep dasar pass-by-value dalam C, yaitu fungsi menerima salinan variabel, bukan variabel itu sendiri. Perubahan apa pun pada parameter di dalam fungsi tidak memengaruhi variabel asli dalam fungsi pemanggil.

Coba sendiri

#include <stdio.h>

// TODO: Tulis fungsi tryToModify-mu di sini

int main() {
    // TODO: Tulis kodemu di sini
    // 1. Deklarasikan dan inisialisasi variabel awal
    // 2. Cetak nilai sebelum pemanggilan fungsi
    // 3. Panggil fungsi tryToModify
    // 4. Cetak nilai setelah pemanggilan fungsi
    
    return 0;
}
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online