Minggu, 18 Maret 2018

Farid Savarudin

Pointer Di Pemrograman C++

1. Pengertian Pointer

Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu lokasi memori tertentu. Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat memori. Lokasi memori tersebut bisa diwakili sebuah variabel atau juga berupa alamat memori secara langsung.

2. Operator Pointer

Ada dua operator yang digunakan pada tipe data pointer yaitu:

1. Operator Deference (&)
Operator ini biasanya disebut dengan address of atau operator alamat. Dengan menggunakan operator deference (&) ini, suatu variabel akan menghasilkan alamat memori.

Contoh:
int x = 45; 
cout << &x;

Pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

2. Operator reference (*)
Operator ini biasanya disebut value pointed by. Dengan menggunakan operator ini, kita dapat mengakses secara langsung nilai yang terdapat pada suatu alamat memori.

Contoh:
int x = 45; 
cout <<*&x;

Pada program di atas, akan ditampilkan nilai dari alamt memori &x.

Contoh Program nya :
#include <iostream>

using namespace std;

int main () {
   int  var = 20;   
   int  *ip;        

   ip = &var;       

   cout << "Value of var variable: ";
   cout << var << endl;

   
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

3. Pointer Pada Array

Pada Array/Larik, pointer hanya perlu menunjukan alamat elemen pertama saja karena alamat array dalam memori sudah disusun secara berurutan.

Contoh:
int a[] = {76, 67, 88, 98}; 
int *pa; 
pa = a;

Pernyataan pa=a artinya pointer pa menyimpan alamat array a, yang alamatnya diwakili alamat elemen pertama, yaitu a[0]. Kita juga bisa mengganti perintah pa=a dengan pa=&a[0]. Untuk pembacaan semua elemen array dengan pointer, bisa menggunakan perulangan seperti pada penggalan program berikut.
for (int i=0; i < 4; i++) { 
cout << *pa << " "; 
pa++; 
}

Contoh Program:
#include <iostream.h> 
#include <conio.h> 
#define MAX 5 

void main() { 
int a[MAX]; 
int *pa; pa = a; //atau pa = &a[0]

for (int i = 0; i < MAX; i++) { 
cout << "Masukkan Nilai " << i+1 << " : "; 
cin >> a[i]; 
} 

cout << endl; 

for (int i = 0; i < MAX; i++) { 
cout << "Nilai a[" << i << "] = " << *pa << endl;
pa++; 
} 

getch(); 
}

Output:
Masukkan Nilai 1 : 100 
Masukkan Nilai 2 : 120 
Masukkan Nilai 3 : 50 
Masukkan Nilai 4 : 111 
Masukkan Nilai 5 : 47 

Nilai a[0] = 100 
Nilai a[1] = 120 
Nilai a[2] = 50 
Nilai a[3] = 111 

Nilai a[4] = 47

4. Pointer Pada Parameter Fungsi

Seperti halnya dengan array, pointer dapat digunakan sebagai parameter suatu fungsi. Karena sifat pointer yang hanya sebagai penunjuk, maka setiap perubahan yang terjadi pada parameter, sebenarnya terjadi pada variabel yang ditunjuk bukan pada variabel pointer. Berikut saya contohkan program sederhananya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
void tambah(int *angka){
*angka +=20;
}
int main(){
int nilai = 10;
cout<<"Nilai variabel nilai adalah = "<<nilai<<endl;
tambah(&nilai); //Memasukkan alamat variabel nilai pada fungsi tambah
cout<<"Nilai variabel nilai adalah = "<<nilai<<endl;
return 0;
}

Farid Savarudin

About Farid Savarudin -

Author Description here.. Nulla sagittis convallis. Curabitur consequat. Quisque metus enim, venenatis fermentum, mollis in, porta et, nibh. Duis vulputate elit in elit. Mauris dictum libero id justo.

Subscribe to this Blog via Email :