Minggu, 15 November 2015

POINTER

      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 = &num;                // 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.
Continue Reading...

Followers

Top Ad

Follow The Author