Hay hay semua post pertama mimin bakal share pekerjaan mimin tentang sistem informasi mudah mudahan bisa membantu tugas tugas kalian guys :)
A.
PENGERTIAN
POINTER
Pointer adalah variable yang berisi alamat
memory sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai
tertentu. Dengan kata lain, pointer berisi alamat dari variable yang mempunyai
nilai tertentu.
Dengan demikian, ada variabel yang
secara langsung menunjuk ke suatu nilai tertentu, dan variabel yang secara
tidak langsung menunjuk ke nilai.
Adapun bentuk umum dari pernyataan
variabel pointer dalam C++ adalah :
Type *variabel-name
Dengan :
·
Type
adalah tipe dasar pointer
·
Variabel
name adalah nama variabel pointer
·
*
adalah variabel pada alamatnya yang ditentukan oleh operand.
Contoh :
Int *int_pointer; // pointer
to integer
Float *float_pointer; // pointer to float
Contoh :
//Program
:
pointer.cpp
#include <stdio.h>
main()
{
int a, *b;
a=20;
b=&a;
printf (" Pointer b menunjukkan alamat =%p\n",b);
printf (" Alamat tersebut berisi nilai :%d\n",*b);
}
//Program : pointer1.cpp
#include <iostream .h>
// cetak p dan *p
void main(void)
{
int v = 7, *p;
p = &v;
cout << " Nilai v =
" << v << " dan *p = " << *p
<< "\nAlamatnya = "
<< p << '\n';
}
Bila program diatas dijalankan, maka
hasilnya adalah sebagai berikut :
Nilai v = 7 dan *p = 7
Alamatnya = efffb24
//Program:pointer2.cpp
#include <iostream.h>
int main ()
{
int value1 = 5, value2 = 15;
int * mypointer;
mypointer = &value1;
*mypointer = 10;
mypointer = &value2;
*mypointer = 20;
cout << "value1=="
<< value1 << "/ value2==" << value2;
return 0;
}
Bila program diatas dijalankan, maka
hasilnya adalah sebagai berikut :
“value1==” 10 << “/ value2==20
B.
OPERATOR POINTER
Ada beberapa oper ator yang bisa digunakan dalam pointer.
Operator tersebut adalah operator alamat (yang dilambangkan dengan simbol
&) dan operator unary yang mengembalikan alamat dari operandnya. Sebagai contoh, diasumsikan
deklarasi sebagai berikut :
Int y = 5;
Int *yPtr;
Maka pernyataan :
YPtr = &y;
Pernyataan ini mengandung arti bahwa
alamat dari variabel y ditujukan kepada variabel pointer yPtr.
Contoh lain :
Int balance, value;
Int *balptr;
Balance = 3200; // step 1
Balptr=&balance; // step 2
Value=*balptr; // step 3
Contoh diagram :
Step 1
|
Step 2
|
Step 3
|
||||||
12
|
Balptr
|
12
|
100
|
Balptr
|
12
|
100
|
Balptr
|
|
100
|
3200
|
Balance
|
100
|
3200
|
Balance
|
100
|
3200
|
Balance
|
130
|
value
|
130
|
value
|
130
|
3200
|
value
|
||
Contoh :
//Program:pointer3.cpp
#include <iostream.h>
int main()
{
int *ptr, num;
//
Step 1
ptr = #
// Step 2
*ptr = 100;
// Step 3
cout << num << "
";
(*ptr)++;
// Step 4
cout << num << "
";
(*ptr)*=2;
// Step 5
cout << num <<
"\n";
return 0;
}
Bila program dijalankan :
100 101 202
Contoh diagram :
Step 1
|
Step 2
|
Step 3
|
Step 4
|
Step 5
|
||||||||||
12
|
*int
|
Ptr
|
12
|
50
|
Ptr
|
12
|
50
|
Ptr
|
12
|
50
|
Ptr
|
12
|
50
|
Ptr
|
50
|
int
|
num
|
50
|
int
|
num
|
50
|
100
|
num
|
50
|
101
|
num
|
50
|
202
|
num
|
...
|
...
|
...
|
...
|
...
|
||||||||||
C.
EKSPRESI
POINTER
1. Pointer
Aritmatika
Hanya 4 operator aritmatik dapat
digunakan pada pointer ++, = =, +, dan -. Asumsi integer 32 bit.
Contoh :
Int *p1;
p1++;
p1--;
Contoh :
//Program:pointer4.cpp
#include <iostream.h>
int main()
{
int i[10], *i_ptr;
double f[10], *f_ptr;
int x;
i_ptr = i; // i_ptr points to first
element of i
f_ptr = f; // f_ptr points to first
element of f
for(x=0; x<10; x++)
cout << i_ptr+x <<
" " << f_ptr+x << "\n";
return 0;
}
Bila program dijalankan :
0xeffffd9c 0xeffffd48
0xeffffda0 0xeffffd50
0xeffffda4 0xeffffd58
0xeffffda8
0xeffffd60
...
...
2. Pointer Perbandingan
Pointer dapat dibandingkan dengan
menggunakan operator hubungan, seperti !=, ==, <, dan >.
Contoh :
//Program:pointer5.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;
}
Data yang akan dimasukkan sebanyak 9
buah data dan program tidak akan berhenti apabila belum sampai 9 buah data.
Tidak ada komentar:
Posting Komentar