Type Data

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: