Pointer , Belajar C++ Part IV  

Posting oleh ibnu amirudin


Pointer dalam bahasa Indonesia berarti penunjuk. Pointer merupakan variabel yang menangani alamat variabel lain. Hal ini menyebabkan bahwa pointer tidak berhubungan langsung dengan data yang aktual, melainkan dengan cara tidak langsung. Jadi, varibel
pointer hanya berisi alamat memory dari variabel lain yang memiliki nilai data tertentu saja.



example:


int data = 10;


int*ptr,hasil; //ptr dideklarasikan sebagai pointer


ptr=&data; //ptr mengambil alamat variabel data


hasil=*ptr;//hasil mengambil data dari alamat variabel ptr.


Tanda & berfungsi untuk mengetahui alamat memory dari variabel tertentu.



Catatan:





    • Jika ditampilkan isinya ptr, akan menghasilkan alamat memory dari variabel data, atau dengan cara lain untuk menampilkan alamat dari variabel data yaitu dengan &data.




    • Jika ditampikan isinya *ptr, akan menghasilkan nilai dari variabel data, atau dengan cara lain jika ditampilkan isi dari *(&data) akan menghasilkan isi dari variabel data, yaitu 10.








Beberapa hal tentang pointer




  • Operasi variabel pointer dapat dikerjakan oleh variabel pointer yang lain.




example:


X = 10;


Ptr1 = &X;


Ptr2 = Ptr1;


Ptr1 dan Ptr2 menghasilkan alamat variabel X yang sama.




  • Operasi pointer dapat diterapkan pada tipe data array




  • Pointer dapat digunakan untuk mengakses elemen array




  • Pointer dapat menunjuk alamat pointer lain.




example:


int X = 11;


int *Ptr1, **Ptr2;


Ptr1 = &X;


Ptr2 = &Ptr1;


Jika ditampilkan isi Ptr1 dan Ptr2 akan menghasilkan nilai 11.


Ptr2 Ptr1 X



Pointer sebagai parameter


Dalam menjalankan tugas sebagai parameter fungsi, pointer dapat mengembalikan nilai dari parameter yang disertakan.



PROGRAM PERCOBAAN


// Contoh 1


#include <stdio.h>


void ubah(int *x,int*y);


void main()


{


int a=5;


int b=6;


printf("Semula a = %d b = %d\n",a,b);


ubah(&a,&b);


printf("Kini a = %d b = %d\n",a,b);


}





void ubah(int *x,int *y)


{


*x = *x * *x;


*y = *y + 60;


}





//Contoh 2


#include <stdio.h>


#include <conio.h>


void main()


{


long int *A,*B,*C;


clrscr();


printf("Isikan nilai A: ");scanf("%d",A);


*B = 10;


*C = *A * *B;


printf("Alamat variabel A = %p \n",&A);


printf("Alamat variabel B = %p \n",&B);


printf("Alamat variabel C = %p \n",&C);


printf("Nilai C adalah :%6d \n",*C);


getch();


}








//Contoh 3


#include <stdio.h>


#include <conio.h>


void main()


{


int X[] = {10,20,50},*baca,i,sum=0;


clrscr();


baca = &X[0];


for(i=0;i<3;i++)


{


sum = sum + *(baca+i);


printf("Nilai X[%d] = %d \n",i+1,*baca+i);


}


printf("Nilai Penjumlahan X = %d \n",sum);


getch();


}



//Contoh 4


#include <stdio.h>


#include <conio.h>


void main()


{


int *X,N=0,i=0,sum=0,data=0;


clrscr();


do{


*(X+N) = data;


printf("isikan data %d: ",N+1);scanf("%d",&data);


N++;


} while (data != 0);


printf("\n\n");


for(i=1;i<N-1;i++)


{


sum = sum + *(X+i);


printf("Nilai X[%d] = %d \n",i,*(X+i));


}


printf("Nilai Penjumlahan X = %d \n",sum);


getch();


}


 


Sumber : mti.ugm.ac.id


 



This entry was posted on 21.47 and is filed under . You can leave a response and follow any responses to this entry through the Langganan: Posting Komentar (Atom) .

1 comments

panjang banget nih levisnya...
berapa meter nih bahanya :p
oia yang ini belum tambahin yah...
alasan mengapa harus memakai pointer??
syarat membuat pointer??