Menu
CoddyTech

Mengubah Variabel melalui Pointer

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

Sekarang kamu bisa memanfaatkan kekuatan pointer yang sebenarnya: mengubah variabel asli melalui fungsi. Saat kamu meneruskan pointer ke fungsi, fungsi tersebut dapat menggunakan operator dereferensi untuk mengubah nilai yang tersimpan di alamat memori tersebut.

Di dalam fungsi, kamu melakukan dereferensi pointer menggunakan operator * untuk mengakses dan mengubah nilai variabel asli. Teknik ini disebut pass-by-reference karena kamu meneruskan referensi ke lokasi variabel di memori.

void doubleValue(int *ptr) {
    *ptr = *ptr * 2;  // Dereferensikan pointer untuk mengubah nilai aslinya
}

int main() {
    int x = 5;
    doubleValue(&x);  // Teruskan alamat x
    // x sekarang bernilai 10!
    return 0;
}

Kuncinya adalah menggunakan *ptr di sisi kiri penugasan untuk mengubah nilai pada alamat memori yang disimpan pointer. Ini memungkinkan fungsi mengubah variabel secara permanen dari fungsi pemanggil, sehingga membuka berbagai kemungkinan pemrograman hebat yang tidak dapat dicapai hanya dengan pengoperan berdasarkan nilai.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan cara mengubah variabel melalui pointer dengan membuat fungsi yang mengalikan nilai integer dengan 3.

Programmu harus:

  1. Membuat fungsi bernama tripleValue yang menerima pointer ke integer sebagai parameternya
  2. Di dalam fungsi tripleValue, menggunakan operator dereferensi untuk mengalikan nilai di alamat memori dengan 3
  3. Di dalam fungsi tripleValue, mencetak nilai baru dengan format: Value tripled to: [value]
  4. Di dalam fungsi main, mendeklarasikan variabel integer bernama number dan menginisialisasinya dengan nilai 8
  5. Mencetak nilai awal dengan format: Original value: [value]
  6. Memanggil fungsi tripleValue dan memberikan alamat variabel number menggunakan operator address-of
  7. Setelah pemanggilan fungsi, mencetak nilai akhir number dengan format: Final value: [value]

Output programmu harus menunjukkan bahwa fungsi berhasil mengubah variabel asli melalui pointer:

Original value: 8
Value tripled to: 24
Final value: 24

Tantangan ini menunjukkan keunggulan pass-by-reference menggunakan pointer. Fungsi dapat mengubah variabel asli secara permanen dengan mendereferensi pointer dan mengubah nilai di lokasi memori tersebut.

Coba sendiri

#include <stdio.h>

// TODO: Tulis fungsi tripleValue-mu di sini

int main() {
    // TODO: Tulis kodemu di sini
    // Deklarasikan dan inisialisasi variabel number
    // Cetak nilai awal
    // Panggil fungsi tripleValue
    // Cetak nilai akhir
    
    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