Algoritma pointer adalah suatu teknik pemrograman yang memungkinkan kita untuk mengakses dan memanipulasi data secara langsung pada lokasi memori tertentu. Pointer merupakan variabel yang menyimpan alamat memori dari variabel lain. Dengan menggunakan pointer, kita dapat mengakses nilai dari variabel tersebut, serta melakukan operasi aritmatika pada alamat memori. Pointer juga digunakan untuk mengalokasikan memori secara dinamis, yaitu memori yang dialokasikan pada saat program berjalan.
Berikut adalah contoh program sederhana yang menggunakan pointer dalam bahasa C Mengakses data yang disimpan dalam array :
#include
void main(){
int score = 50;
int hp = 100;
// membuat pointer dengan isi alamat memori dari hp
int *ptr_hp = &hp;
// print isi variabel dan alama memori
printf("Nama Variabel \t Alamat \t Konten\n");
printf("score \t\t %x \t %d \n", &score, score);
printf("hp \t\t %x \t %d \n", &hp, hp);
printf("ptr_hp \t %x \t %x \n", &ptr_hp, ptr_hp);
printf("*ptr_hp \t %x \t %d \n", &ptr_hp, *ptr_hp);
// mengubah data pada alamat memori dengan pointer
*ptr_hp = 95;
printf("hp \t\t %x \t %d \n", &hp, hp);
printf("*ptr_hp \t %x \t %d \n", &ptr_hp, *ptr_hp);
}
Output
Nama Variabel Alamat Konten
score 37d3a6bc 50
hp 37d3a6b8 100
ptr_hp 37d3a6b0 37d3a6b8
*ptr_hp 37d3a6b0 100
hp 37d3a6b8 95
*ptr_hp 37d3a6b0 95
Pointer *ptr_hp berhasil mengubah nilai pada alamat d57ba6c menjadi 95.
Saat menggunakan pointer, kita menggunakan tanda * di depan nama pointer untuk mengakses nilai pada alamat memori. Jika tidak menggunakan tanda ini, maka kita akan mendapatkan alamat memori yang di-pointing.
Pointer dapat digunakan untuk berbagai tujuan, seperti :
Pointer memiliki beberapa kelebihan, yaitu:
Namun, pointer juga memiliki beberapa kekurangan, yaitu: