Belajar Pemrograman C #11: Apa itu Pointer?

Setiap variabel yang kita buat pada program akan memiliki alamat memori.

Alamat memori berfungsi untuk menentukan lokasi penyimpanan data pada memori (RAM).

Alamat memori biasnya direpresentasikan dalam bilangan heksa desimal.

Variabel dan alamat memori

Contoh:

Coba perhatikan program berikut!

#include <stdio.h>

void main () {

   int  a;
   char b[10];

   printf("Alamat memori variabel a: %x\n", &a);
   printf("Alamat memori variabel b: %x\n", &b);

}

Pada program tersebut, kita menggunakan simbol & untuk mengambil alamat memori dari variabel a dan b.

Hasil outputnya:

Output program alamat memori

Lalu apa hubungannya alamat memori dengan pointer?

Mari kita bahas…

Apa itu Pointer?

Pointer adalah sebuah variabel berisi alamat memori dari variabel yang lain.

Pointer pada pemrograman C

Pointer seperti variabel pada umumnya, ia harus dideklarasikan atau dibuat dulu sebelum dapat digunakan.

Cara membuat pointer:

int *nama_pointer;
double *nama_pointer;
float *nama_pointer;
char *nama_pointer;

Pointer selalu diawali dengan tanda bintang (*) di depannya. Simbol ini akan menandakan, kalau ini adalah sebuah pointer.

Tipe data yang digunakan pada pointer tergantung dari tipe data variabel yang akan menjadi referensinya.

Contoh:

float a = 4.12;
float *pa = &a;

Pointer *pa akan menyimpan alamat memori dari variabel a. Pointer *pa juga akan bisa mengakses dan mengubah nilai dari variabel a.

Cara Menggunakan Pointer

Ada beberapa langkah yang harus dilakukan saat menggunakan pointer:

  1. Membuat Pointer;
  2. Mengisinya dengan alamat memori;
  3. Mengakses nilai dari pointer.

Mari kita coba lihat contohnya:

#include <stdio.h>

void main () {

   int  x = 20;   /* membuat variabel x */
   int  *px;        /* membuat pointer untuk variabel x */

   px = &x;  /* mengisi alamat memori variabel x ke dalam pointer px */

   printf("Alamat memori variabel x: %x\n", &x  );

   /* alamat memori yang disimpan pointer */
   printf("Alamat memori di pointer px: %x\n", px );

   /* mengambil nilai x menggunakan pointer */
   printf("Nilai pada *px: %d\n", *px );

}

Hasilnya:

Contoh Pointer pada pemrograman C

Lihatlah perpedaanya saat kita menggunakan pa dan *pa. pa akan berisi alamat memori sedangkan *pa akan berisi nilai dari variabel yang alamat memorinya tersimpan pada pointer pa.

Melalui pointer, kita juga bisa mengubah nilai dari variabel x.

Tidak percaya?

Mari kita coba…

#include <stdio.h>

void main () {

   int  x = 20;   /* membuat variabel x */
   int  *px;        /* membuat pointer untuk variabel x */

   px = &x;  /* mengisi alamat memori variabel x ke dalam pointer px */

   printf("Alamat memori variabel x: %x\n", &x  );

   /* alamat memori yang disimpan pointer */
   printf("Alamat memori di pointer px: %x\n", px );

   /* mengambil nilai x menggunakan pointer */
   printf("Nilai pada *px: %d\n", *px );

   /* mencetak isi variabel x sebelum diubah*/
   printf("Nilai x sebelum: %d\n", x );

   /* mengubah isi nilai variabel x melalui pointer */
   *px = 48;

   /* mencetak isi variabel x sesudah diubah */
   printf("Nilai x sesudah: %d\n", x );

}

Hasilnya:

Contoh Pointer untuk mengubah nilai

Mengapa bisa begitu?

Karena pointer *px memiliki alamat memori dari variabel x jadi dia bisa melakukan apa saja dengannya.

Apa Selanjutnya?

Kita sudah membahas konsep dasar pointer pada pemrograman C. Konsep ini harus kamu pahami, agar nanti ketemu pointer tidak bingung.

Intinya pointer bertugas menyimpan alamat memori dari sebuah variabel, lalu dengan pointer kita bisa memanipulasi nilai variabel tersebut.

Selanjutnya silahkan pelajari tentang:

  • Belajar C #12: Mengenal Tipe Data Enum (Coming Soon)
  • Belajar C #13: Menggunakan Tipe Data Boolean pada C (Coming Soon)
  • Belajar C #14: Mengenal Tipe Data Structure (Coming Soon)
  • Belajar C #15: Mengenal Tipe Data String (Coming Soon)

Silahkan cek list tutorial pemrograman C untuk tutorial yang lainnya.