Minggu, 24 Juli 2011

POINTER


Pointer merupakan salah satu bagian dari bahasa pemrograman C++ yang dapat digunakan untuk :
• Memberikan perubahan pada suatu argumen
• Mendukung alokasi dinamis
• Memberikan tingkat efisien dari suatu rutin

Suatu pointer dapat dikatakan sebagai keunggulan dari bahasa pemrograman C++ / C , sekaligus sebagai salah satu komponen yang berbahaya bagi bahasa pemrograman C++ / C , yaitu dapat menyebabkan sistem rusak atau menyebabkan kerusakan fatal yang sulit untuk ditemukan. Suatu pointer sendiri merupakan sebuah variabel yang mempunyai lokasi memori, yang dapat dilihat seperti dibawah ini :

Dari gambar diatas dapat kita lihat bahwa lokasi memori dimulai dari alamat 1000 hingga 1006, akan tetapi lokasi memori tersebut tidak sebatas sampai alamat 1006 saja bahkan bisa lebih dari itu.

*) Variabel Pointer

Jika suatu variabel akan menunjukkan suatu pointer maka variabel tersebut harus dideklarasikan seperti dibawah ini :
Tipe *nama;
tipe diatas merupakan tipe dari pointer dan nama merupakan nama dari variabel pointer.

*) Operator Pointer
Dalam bahasa program C++ terdapat dua bagian dari operator pointer , yaitu operator * dan &. Operator & ini merupakan suatu operator unari yang menunjukkan suatu lokasi memori, sebagai contoh statement dibawah ini :
y = &x;
y merupakan suatu lokasi memori yang ditunjukkan oleh variabel x. Hal ini dapat diasumsikan jika y merupakan lokasi memori (misalkan) 2000 dan misalkan x mempunyai nilai 100. Dari sini dapat kita ketahui pada alamat y = 2000 terdapat data x = 100. Operator pointer yang berikutnya ialah operator * yang merupakan operator unari yang menunjukkan data atau nilai dari lokasi memori y tersebut , hal ini dapat dilihat dari pernyataan dibawah ini :
z = *y;
z sendiri merupakan data atau nilai yang terletak pada lokasi memori y. Beberapa contoh program dengan menggunakan pointer :

Contoh1 (Kode Program) :
#include
#include
void main()
{ clrscr();
int x,z,*y;;
x = 10;
y = &x;
z = *y;
cout<<"nilai x = "<
cout<<"lokasi memori y = "<
cout<<"data z pada y = "<
getch();
}
Setelah dikompile dan di Run maka hasil dari kode program tersebut :

Contoh2 (Kode Program) :
#include
#include
void main()
{ clrscr();
double x,z,*y;;
x = 10;
y = &x;
z = *y;
cout<<"nilai x = "<
cout<<"lokasi memori y = "<
cout<<"data z pada y = "<
getch();
}
Setelah dikompile dan di Run maka hasil dari kode program tersebut :
Contoh3 (Kode Program) :
#include
#include
void main()
{ clrscr();
float x,z,*y;;
x = 10;
y = &x;
z = *y;
cout<<"nilai x = "<
cout<<"lokasi memori y = "<
cout<<"data z pada y = "<
getch();
}
Setelah dikompile dan di Run maka hasil dari kode program tersebut :
Bila dilihat dari hasilnya, maka lokasi memorinya berbeda, hal ini diakibatkan karena pada inisialisasi awal berbeda ada yang integer , double , dan float. Demikian pula jika anda menggunakan komputer yang spesifikasinya berbeda dengan komputer yang digunakan penulis, maka hasilnya pun bisa berbeda. Artinya disini , kita tidak melihat perbedaan tersebut , akan tetapi kita mengetahui tentang prinsip dari pointer tersebut.

untuk mendownload versi pdf dari artikel diatas:




Readmore »»