-->
g2QFCKwavghUp2yzjKrIFwEeG13RASCerFTCMH35

Pengertian Pointer C++

 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.

3. MENDEKLARASIKAN VARIABEL POINTER

Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :

tipe_data *nama_variabel
  • tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
  • nama_variabel adalah nama variabel pointer.

Contoh program 1:
#include <iostream.h> 
#include <conio.h> 

void main() { 
int x, y; int *px;
x = 89; 
y = x; 
px = &x;
cout << "Nilai x = " << x << endl; 
cout << "Nilai y = " << y << endl; 
cout << "Alamat px = " << px << endl; 
cout << "Nilai px = " << *px << endl; 

getch();
}

Output:
Nilai x = 89 
Nilai y = 89 
Alamat px = 0x0012ff88 
Nilai px = 89

Contoh program 2:
#include <iostream.h> 
#include <conio.h> 

void main() { 
int x, y; 
int *px; 

x = 89; 
y = x; 
px = &x;

cout << "Nilai x = " << x << endl; 
cout << "Nilai y = " << y << endl;
cout << "Alamat x = " << &x << endl; 
cout << "Alamat px = " << px << endl; 
cout << "Nilai px = " << *px << endl; 

x = 108; 
cout << "\nNilai x = " << x << endl; 
cout << "Nilai y = " << y << endl; 
cout << "Alamat x = " << &x << endl; 
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl; 

*px = 123; 
cout << "\nNilai x = " << x << endl; 
cout << "Nilai y = " << y << endl; 
cout << "Alamat x = " << &x << endl; 
cout << "Alamat px = " << px << endl; 
cout << "Nilai px = " << *px << endl; 

getch();
}

Output:
Nilai x = 89 
Nilai y = 89 
Alamat x = 0x0012ff88 
Alamat px = 0x0012ff88 
Nilai px = 89 

Nilai x = 108 
Nilai y = 89
Alamat x = 0x0012ff88 
Alamat px = 0x0012ff88 
Nilai px = 108 

Nilai x = 123 
Nilai y = 89 
Alamat x = 0x0012ff88 
Alamat px = 0x0012ff88 
Nilai px = 123

4. POINTER PADA POINTER

Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat pula menunjuk ke pointer lainnya. Dalam pendeklarasiannya, kita tambahkan pointer reference (*) pada variabel yang akan ditunjuk.

Contoh:
int x; 
int *px; //pointer ke variabel int 
**ppx; //pointer pada pointer 

x = 100; 
px = &nama;
ppx = &pNama;

Contoh Program:
#include <iostream.h> 
#include <conio.h>

void main() { 
int x; 
int *px; //pointer ke variabel 
int **ppx; //pointer ke pointer 

x = 175; 
px = &x; 
ppx = &px;
cout << "Nilai x = " << x << endl; 
cout << "Nilai px = " << *px << endl; 
cout << "Nilai ppx = " << **ppx << endl; 

getch(); 
}

Output:
Nilai x = 175 
Nilai px = 175 
Nilai ppx = 0x0012ff88

5. 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

6. POINTER PADA STRING

Pointer pada string dapat anda lihat pada contoh program berikut:
#include <iostream.h>
#include <conio.h> 
#define MAX 5 

void main() { 
char nama[] = "Albert Einstein"; 
char *pNama = nama;

cout << "Nama = " << nama << endl; 
cout << "pNama = " << pNama << endl; 
pNama += 7; cout << "\nSetelah pNama += 7" << endl; 
cout << "Nama = " << nama << endl; 
cout << "pNama = " << pNama << endl; 

getch();
}

Output:
Nama = Albert Einstein 
pNama = Albert Einstein 

Setelah pNama += 7 
Nama = Albert Einstein 
pNama = Einstein
SUMBER : www.bantubelajar.com
Related Posts

Related Posts

Post a Comment