Memahami Pointer di Pemrograman C

| | | C dan C++
Memahami Pointer di Pemrograman C

C adalah bahasa pemrograman prosedural yang menjadi fondasi banyak bahasa modern.

Memahami apa itu pointer di pemrograman c, pointer adalah sebagai penunjuk alamat memori sebuah deklarasi data sebelumnya, sehingga data yang di tampung ke dalam sebuah variable misal int a = 1 kemudian pointer nya int *b = &a kita bisa di modifikasi tanpa perlu ditampung dulu ke dalam variable maka ketika kira melakukan perubah di variable b maka variable a akan ikut berubah , isi dari pointer adalah penunjuk ke alamat memori yang menyimpan variabel.

Bagi teman-teman ingin mencoba menjalakan program c di vs code bisa baca Cara Menjalankan dan Compile Program Bahasa C di CMD atau bagi yang belum install compiler c di CMD.

contoh pointer di pemrograman C dengan variable dan pointer:

#include <stdio.h>
int main(void){

    int a = 1; // a
    int *b = &a; // 0xCo8800

    return 0
}

Penjelasan :

  • int *b = &a; yang artinya alamat memori dari a di masukkan ke dalam pointer variable b, yang nantinya jika ada ubahan di b akan berpengaruh dengan nilai variable a

Studi Kasus Penggunaan Pointer

Anda telah melihat bagaimana pointer dideklarasikan dan diinisialisasi.Setelah teman-teman tau bagaimana pointer dideklarasikan dan diinisialisasi, mari kita lanjut untuk melihat studi kasus penggunaan pointer yang dasar, atau lebih tepatnya keuntungan menggunakan pointer di program C. sepeti contohnya dalam sebuah fungsi dan parameter yang saling beriringan dengan variabel pointer, yang nantinya untuk memanipulasi nilai memori.

Implementasi Pass by Value

Pass by Value mampu menerima informasi dari tempat dipanggil dan mengembalikan hasil kembali ke tempat asalnya di panggil. Teknik ini adalah bentuk paling dasar dari passing informasi antar fungsi. contoh potongan kode nya:

void melakukan_memanggil_function(void)
{
  int t1, t2, t3;

  t1 = 10;
  t2 = 20;
  t3 = memanggil_function(t1, t2);
}

int memanggil_function(int x, int y)
{
  int t1, t2, t3;

  t1 = x;
  t2 = y;
  t3 = t1 + t2;

  return t3;
}

Penjelasan :

  • Dalam teknik khusus ini, nilai yang diteruskan ke fungsi yang dipanggil. Setelah nilai diteruskan, nilai ini kemudian disalin ke stack dari masing-masing fungsi yang dipanggil.

Implementasi Pass by Reference

Pass by Reference adalah teknik untuk passing data informasi antar fungsi. Pass by reference digunakan untuk bertukar informasi melewati alamat memori dari sebuah variabel dari pada nilai itu sendiri.

void melakukan_memanggil_function(void)
{
  int t1;
  int *t2;

  t1 = 10;
  t2 = memanggil_function(&t1);
}

int* memanggil_function(int* x)
{
  int t2;
  int *t1;
  int *t3;

  t1 = x;
  t2 = 10;
  t3 = (int*)malloc(sizeof(int));
  t3 = *t1 + t2;

  return &t3;
}

Penjelasan :

  • Dalam kasus di atas, hanya alamat variabel yang diteruskan ke fungsi yang dipanggil, yang kemudian disalin ke stack. Teknik ini memiliki keunggulan dibandingkan dengan teknik sebelumnya tanpa adanya penggandaan data informasi di dalam memori.

Kesalahan Umum yang Sering Terjadi

Saat belajar C++, beberapa kesalahan umum yang perlu dihindari:

  1. Lupa titik koma — Setiap statement di C++ harus diakhiri dengan ;.
  2. Out of bounds array — Index array dimulai dari 0, pastikan tidak mengakses index di luar deklarasi.
  3. Mengabaikan return type — Fungsi main() harus bertipe int dan mengembalikan nilai.
  4. Tidak menggunakan namespace — Gunakan using namespace std; atau qualify dengan std:: untuk menghindari ambigu.
  5. Lupa menginisialisasi variabel — Variabel lokal tidak otomatis bernilai 0; selalu inisialisasi sebelum dipakai.

Memahami kesalahan umum ini akan menghemat waktu debugging Anda.

Kesimpulan Penggunaan Pointer di C

Manfaat pointer adalah untuk menghemat pemakaian memori, sehingga dengan pointer data tidak redundant dalam memori.

Sigit N avatar
Tentang Sigit N
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.