Pointer
Pointer
Pointer
Pointer
Bhs.Pemrograman 1
Bhs.Pemrograman 1
Oleh:
Oleh:
Desma Fitri, S.Kom
Pointer
DEKLARASI POINTER
Tipe data *nama_var_pointer
Operator
Pointer
• Operator Alamat / Dereference Operator(&)
untuk mendapatkan alamat memori operand/ variable pointer. Cth: Bil1 = &Bil2;
dibaca: isi variabel bil1 sama dengan alamat bil2
• Operator Reference (*)
untuk mengakses nilai data operand/ variable pointer.
Bil1=*Bil2;
Contoh:
/Program :pointer1. cpp
/Program :pointer1. cpp
#include <iostream.h>
#include <iostream.h>
#include<conio.h>
#include<conio.h>
// cetak p dan *p
// cetak p dan *p
void main(void)
void main(void)
{
{
int v = 7, *p;
int v = 7, *p;
p = &v;
p = &v;
cout << "Nilai v = " << v << " dan *p = " << *p
cout << "Nilai v = " << v << " dan *p = " << *p
<< " \nAlamatnya = " << p << 'n';
<< " \nAlamatnya = " << p << 'n';
getch();
getch();
}
}
Hasil dari program adalah sebagai berikut :
Hasil dari program adalah sebagai berikut :
Nilai v = 7 dan *p = 7
Nilai v = 7 dan *p = 7
Alamatnya = efffb24
contoh2
#include <stdio.h>#include <conio.h> int main()
{
char pointerku[10]="";
pointerku[0]='a'; pointerku[1]='b';
printf("%s",pointerku);
contoh3
#include <stdio.h>
#include<conio.h>
int main()
{
char pointerku[10]="pointerku";
char tampung[10]="";
if(pointerku[2]=='i')
{
tampung[0]=pointerku[2];
}
printf("%s",tampung);
getch();
Contoh program operator pointer
:
//Program :pointer2. cpp
#include <iostream.h>
Int main()
{
int *ptr, num; // 1
ptr = # // 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
Penjelasan :
1. Kondisi variabel num menunjukkan angka 50 dan kondisi variabel pointer ptr masih kosong
2. Variabel pointer ptr menunjuk pada isi dari variabel num sehingga variabel pointer ptr isinya 50
3. Variabel num berisi angka 100 sedangkan variabel pointer ptr isinya tetap 50
4. Isi variabel num bertambah 1 dari 100 menjadi 101
5. Isi variabel num dari 101 menjadi 202. Hasil ini diperoleh dari 101*2
Pointer Aritmetika
Ada 4 operator aritmetika yang digunakan yaitu : ++, = =, + dan – Contoh program yang dapat menampilkan 10 buah data yang
mempunyai alamat berbeda-beda:
//Program :pointer3. cpp #include <iostream.h> int main()
{
int i [10], *i_ptr; double f[10], *f_ptr; int x;
i_ptr = i; f_ptr = f;
for(x=0; x<10; x++)
cout << i_ptr+x << “ “ << f_ptr+x << “\n”; return 0;
}
Pointer Perbandingan
Pointer dapat dibandingkan dengan Operator hubungan seperti !=, ==,<,
dan >.
//Program :pointer4. cpp #include <iostream.h> int main()
{
int num[10];
int *start, *end; start = num;
end = &num[9];
while(start != end) {
cout << “Masukkan bilangan sebanyak 9 data : ”; cin >> *start;
start++; }
return 0; }
Konstanta String Dan Pointer
Konstanta string terlihat dalam program teks dan disimpan dalam tabel.
String
Contoh Program pointer string //Program :pointer5. cpp
#include <iostream.h> int main()
{
char *s;
S = “Pointer mudah digunakan. \n”; cout << s;
return 0; }
Output :
Pointer mudah digunakan
Array Pointer
Pointer dapat di-array seperti tipe data lain dalam C++ integer contoh :
Int *pi[10];
Contoh Program array pointer //Program :pointer6. cpp
#include <iostream.h> int main()
{
Int numbers[5]; Int *p;
p = numbers; *p = 10; p++; *p =20;
p = &numbers[2]; *p = 30; p = numbers + 3; *p = 40; p = numbers; *(p+4) = 50; for (int n=0; n<5; n++)
cout << numbers[n] << “, “; return 0;
}
Output :
10, 20, 30, 40, 50,
Pointer Dalam Pointer
C++ memperbolehkan penggunaan pointer dalam pointer
Yang masing-masing berisi data yang sama atau berbeda.
address
value
pointer
variable
address
value
Pointer tunggaladdress
pointer
pointer
variable
Pointer dalam pointer
Contoh : char a; char * b; char ** c; a = ‘z’ ; b = &a; c = &b;