Anda di halaman 1dari 16

Presentasi

BAB POINTER

POINTER
Pengertian :
Pointer : variabel yang berisi alamat
memori.
Bentuk Umum :
Type *variable name;
Ket :
Type adalah tipe dasar pointer
Variable name adalah nama variabel pointer
Tanda * adalah operator memori untuk mengembalikan nilai variabel
pada alamatnya yang ditentukan oleh operand.

OPERATOR POINTER
Operator Pointer
Ada beberapa operator yang digunakan dalam pointer yaitu operator alamat (&)
Contoh :
int y = 5;
int *yPtr;
Maka pernyataan
yPtr = &y;
Mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer yPtr.
Contoh program operator pointer :
//Program :pointer2. cpp
#include <iostream.h>
Int main()
{
int *ptr, num; // 1
ptr = &num; // 2
*ptr = 100; // 3
cout << num << ;
(*ptr)++; // 4
cout << num << ;
(*ptr)*2; // 5
cout << num << \n ;
return 0;
}
Bila dijalankan hasilnya adalah sebagai berikut :
100 101 101

DEKLARASI POINTER
Bentuk umum deklarasi pointer adalah :
Tipe_data *nama_pointer;
Aturan dari deklarasi pointer :
-Variabel pointer dapat dideklarasikan dengan tipe data
apapun.
-Pendeklarasian variabel pointer dengan tipe data tertentu
digunakan untuk menyimpan alamat memori yang berisi
data sesuai dengan tipe data yang dideklarasikan, bukan
untuk berisi nilai bertipe data tertentu.
-Tipe data digunakan sebagai lebar data untuk alokasi
memori (misal char berarti lebar datanya 1 byte, dst).

Berikut contoh dari deklarasi pointer


mensubstitusikan alamat sebuah variabel ke
pointer dengan memakai alamat operator &:
#include<stdio.h>
void main()
{

int x; //mendeklarasikan variabel x

int *ptr;

ptr=&x;
}

OPERASI POINTER LOGIKA


OPERASI POINTER
-Operasi Assignment/ pengerjaan
-Operasi Aritmatika
-Operasi Logika

Operasi Assignment/ pengerjaan


#include <stdio.h>
main()
{

float Y, *X1, *X2;

Y = 12.34;

X1 = & Y;

X2 = X1;
// simpan nilai X1 ke X2
printf(Alamat X1 = %p, isinya = %f\n, X1, *X1);
printf(Alamat X2 = %p, isinya = %f\n, X2, *X2);
}

OPERASI POINTER ARITMATIKA


Pointer Aritmetika
Ada 4 operator aritmetika yang digunakan yaitu : ++, = =, + dan
Tidak berlaku untuk perkalian dan pembagian.
Contoh program:
#include <iostream.h>
int main()
{
int A [5] = { 100, 200, 300, 400, 500 };
int*P;
P=&A[0];
cout<<"Nilai*P:"<<*P<<endl;
P=P+2;
cout<<"Nilai*P:"<<*P<<endl;
P=P-1;
cout<<"Nilai*P:"<<*P<<endl;
return 0;
}

OPERASI POINTER ARITMATIKA


contoh output dari program di atas,

Operasi Logika

POINTER KE POINTER
dalam C++, kita dapat mempunyai pointer yang menunjuk ke dalam pionter yang lain
yang telah menunjuk ke alamat tertentu. situasi ini sering disebut multiple indirection atau
pointer ke pointer. pointer ke pointer ini memang sering membingungkan apalagi untuk
seorang programmer pemula. sebenarnya konsepnya sederhana, kita tahu bahwa pointer
normalnya berisi alamat dari sebuah objek (variabel) yang menyimpan nilai berupa data.
sebagai gambaran:

pointer

alamat

pointer
alamat

pointer

variabel
nilai
single indirection
variabel
alamat
multiple indirection

nilai

untuk menndistribusikan pointer yang


akan menunjuk ke pointer lain adalah
menggunakan tanda asterisk sebanyak 2
kali (**). sebagai contoh, jika kita
mendeklarasikan pointer seperti pada
potongan sintak di bawah ini:
Int **P;

Maka P bukan pointer yang menunjuk ke


tipe data int, melainkan pointer yang
menunjuk pointer ke data int. Untuk dapat
lebih memahaminya, perhatikan program
berikut

#include <iostream.h>

int main()
{
int X = 25;
int *P1;
int **P2;

P1 = &X;
P2 = &P1;

cout<<"Nilai X
cout<<"Nilai *P1
cout<<"Nilai *P2
cout<<"Nilai **P2
cout<<endl;

: "<<X<<endl;
: "<<*P1<<endl;
: "<<*P2<<endl;
: "<<**P2<<endl;

cout<<"Nilai &X
cout<<"Nilai P1
cout<<"Nilai P2

:"<<&X<<endl;
:"<<P1<<endl;
:"<<P2<<endl;

return 0;

Hasil yang diperoleh dari program di atas


adalah sebagai berikut:

Anda mungkin juga menyukai