MODUL V
POINTER
A. Tujuan
1. Mahasiswa dapat memahami definisi dan kegunaan pointer.
2. Mahasiswa dapat mengatahui bagaimana mengimplementasikan pointer
dalam program.
B. Dasar Teori
B.1 Pengertian Pointer
Pointer adalah sebuah variabel yang berisikan alamat memori (bukan nilai)
atau dengan kata lain dapat dikatakan bahwa pointer adalah suatu variabel penunjuk
ke alamat memori tertentu. Cara pendeklarasian pointer dalam bahasa C++ adalah
dengan menambakan tanda asterisk (*) di depan nama pointer, seperti berikut:
Tipe_data *nama_pointer; atau
Tipe_data* nama_pointer;
Tipe_data dapat berupa sembarang tipe seperti halnya pendefinisian
variable. Nama_pointer adalah nama variabel pointer yang akan digunakan.
Dereference (*) adalah operator memori untuk mengembalikan nilai variabel pada
alamatnya yang ditentukan oleh operand (Frieyadie, 2017).
Contoh:
int *pint; atau
int* pint;
char *pchr; atau
char* pchr;
Pointer adalah pada dasarnya sama dengan variabel lain. Dengan pointer
setiap variable diletakkan pada alamat memori yang besarnya cukup untuk
menampung nilai dari sebuah variable tipe data. Pada sebuah komputer PC misalnya
satu byte data secara umum dialokasikan untuk tipe data char, 2 byte untuk tipe data
short, 4 byte untuk tipe data int, long dan float serta 8 byte untuk tipe data double.
Tiap-tiap byte data memori mempunyai alamat yang unik. Sebuah variable alamat
merupakan alamat di mana sebuah byte data pertama dapat dialokasikan. Sebagai
contoh misalnya dapat didefinisikan dalam program sebagai berikut :
char huruf;
short angka;
float amount;
Di mana Tipe_data merupakan tipe dari data yang ditunjuk, bukan tipe dari
pointer-nya.
Contoh :
1. Mensubstitusikan address sebuah variabel ke pointer dengan memakai
address operator diference (&)
int x;
int *ptr;
ptr = &x;
2. Mensubstitusikan address awal sebuah array ke pointer char
char *ptr;
ptr = t;
int main()
{
float a=0.5;
float *ptrsatu,**ptrdua;
Ptrsatu=&a;
Ptrdua =&ptrsatu;
cout<<”nilai ptrsatu=”<<*ptrsatu<<endl;
cout<<”nilai ptrdua =”<<**ptrdua<<endl;
}
#include <iostream>
#include <array>
# define pi 3.14159265358979323846
using namespace std;
int main(){
array<double, 3> nilai;
double* ptrNilai = nilai.data();
cout << "Masukkan nilai sisi kubus untuk menghitung
Luas persegi : ";
cin >> *(ptrNilai);
cout << "\nMasukkan nilai jari-jari bola untuk
menghitung Volume Bola : ";
cin >> *(ptrNilai+1);
cout << "\nMasukkan nilai sisi persegi untuk menghitung
Volume Kubus : ";
cin >> *(ptrNilai+2);
double luasPersegi = lp(*(ptrNilai+2));
double volumeBola = vb(*(ptrNilai+1));
double volumeKubus = vk(*(ptrNilai));
cout << "\n=================================\n";
cout << "Luas Persegi : " << luasPersegi << "\n";
cout << "Volume Bola : " << volumeBola << "\n";
cout << "Volume Kubus : " << volumeKubus << "\n";
return 0;
}