Sabtu, 02 Juli 2022

Penjelasan Singkat Mengenai Pointer C++

 

Pengertian Pointer

pointer merupakan variabel dengan tipe tertentu yang berguna untuk mencatat alamat dari suatu variabel yang setipe dengannya, serta mengakses, dan memanipulasi data yang tersimpan dalam alamat tersebut.
Bila int x adalah sebuah variable bertipe integer, variabel x berarti alamat dari x. Jika p adalah sebuah pointer bertipe integer, unsur p bisa menyimpan dan memegang alamat dari x tersebut.
Berdasarkan Praktikum Algoritma dan Pemrograman I oleh Sistem Informasi Universitas Dian Nusantoro, pointer adalah suatu variabel yang menunjuk kepada suatu alamat memori komputer tertentu.
Pointer ini merupakan variabel level rendah yang bisa dipakai untuk menunjuk nilai integer, character, float, double, atau single hingga tipe data lain yang didukung oleh bahasa C.

Variabel biasa mempunyai sifat statis, sedangkan pointer mempunyai sifat dinamis dan lebih fleksibel. Variabel pointer yang tak menunjuk nilai apa pun berarti mempunyai nilai NULL. Hal itu disebut sebagai dangling pointer karena nilainya tidak diinisialisasi dan tidak bisa diperkirakan.

Operator Pointer

Ada dua operator yang digunakan pada tipe data pointer yaitu:

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

b. 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 kodingan :


Output :


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.

Contoh1:

#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 = 0×0012ff88
Nilai px = 89

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 = 0×0012ff88

 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

 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

Tidak ada komentar:

Posting Komentar

Penjelasan Singkat Mengenai Pointer C++

  Pengertian Pointer pointer merupakan variabel dengan tipe tertentu yang berguna untuk mencatat alamat dari suatu variabel yang setipe den...