POINTER PADA C++ DAN CONTOHNYA

Pengertian Pointer  

Pointer merupakan tipe data berukuran 32 bit yang berisi satu nilai yang berpadanan dengan alamat memori tertentu. Sebagai contoh, sebuah variabel P bertipe pointer bernilai 0x0041FF2A, berarti P menunjuk pada alamat memori 0x0041FF2A. Pointer dideklarasikan seperti variabel biasa dengan menambahkan * (asterik) yang mengawali nama variabel. Singkatnya, pointer merupakan variabel yang hanya menyimpan alamat memori dan memiliki * asterik didepannya.


 Deference

Deference memiliki simbol (&) yang digunakan untuk menanyakan/ mencari alamat memori tujuan.

Pointer berfungsi sama halnya dengan :

int a=15;
int b=a;

atau

int c=15;
int d=c;


Namun kenapa perlu digunakan pointer sedangkan bisa saja langsung mendeklarasikan b=a; tanpa harus memanggil repot-repot memakai pointer?

Nah sebenarnya, fungsinya sama saja, bedanya yaitu pointer dapat dibaca disetiap fungsi-fungsi pada program sedangkan variabel local tidak. 

Tapi kan boleh pakai variabel global?

Hehehe iya juga ya... Tapi sebenarnya, pointer terlebih dahulu ditemukan oleh programer terdahulu sebelum menemukan variabel global. Kita tahu sendiri programmer dulu itu tidak seperti sekarang yang dimanjakan sama GUI. Selain itu, pointer akan sangat berguna dan dipakai saat ingin membuat program menjadi dinamis dan fleksibel dengan menggunakan Linked List.

Bentuk umum :

   
<tipe data> namaVariabel;

contoh:

      float *px;
      int *nim;
      char *nama[12];
      string *alamat;

   
Statement diatas mendeklarasikan px yang merupakan pointer. Penyebutan tipe data float, int, char, dan string berarti bahwa alamat memori ditunjuk oleh px dimaksudkan untuk berisi data bertipe yang sama.

Contoh Program:

contoh 1

#include <iostream>

using namespace std;
main()
{
        int *p;
        int b=3;
p=&b;
cout<<p<<endl;
cout<<*p<<endl;

}

outputnya adalah : 

- 0x23fe44
- 3

penjelasan program :

0x23fe44 merupakan alamat memori dari b dimana p=&b sedangkan 3 merupakan nilai dari b dimana.


contoh 2


#include <iostream>

using namespace std;
main(){

     int x;
     int *px;

     x=2;
     px= &x;

     cout<<"Nilai &x                     :  "<<&x<<endl;
     cout<<"Nilai &px                 :  "<<&px<<endl;

}

outputnya adalah :

- 0x23fe4c
- 0x23fe40

penjelasan program :  & digunakan untuk menyimpan alamat dari x dan juga px. Variabel pointer hanya menyimpan  alamat memori dan tidak boleh menyimpan nilai. Oleh karena itu & digunakan untuk mencari alamat variabel yang dituju


contoh 3


#include <iostream>

using namespace std;
main(){
     int x[10]={0,1,2,3,4,5,6,7,8,9};
     int *px;
     int i;

     for (i=0; i<10; i++){
         px = &x[i];
     cout<<x[i]<<"  "<<*px<<px<<endl;
}

ouputnya berupa angka yang pada alamat yang dituju (x[i]), dan juga alamat memori dari setiap x[i].



contoh 4

#include <iostream>

using namespace std;
main(){
     int b=15;
     int *p;

     b=(*p+b)-*p+b*b;
cout<<b;
}

outputnya adalah 12

mengapa demikian? karena b = ( 15+ 15 ) - 15 + 15 * 15 = 12


Penggunaan Pointer pada fungsi



contoh
     
        #include <iostream>
        using namespace std;

        void jumlah(int *nilai){
        *nilai +=20;
        }
         int main(){
         int nilaiawal= 30;
         cout<<"Nilai pada variabel nilai adalah = "<<nilaiawal<<endl;
         jumlah(&nilaiawal); //Memasukkan alamat variabel nilai pada fungsi tambah
         cout<<"Nilai variabel nilai adalah = "<<nilaiawal<<endl;
         return 0;
        }

maka outputnya akan berupa nilai akhir = 50. Kenapa? karena pada saat fungsi jumlah pada parameter actual berupa alamat nilai awal berupa nilai=30, maka pada parameter formal di fungsi jumlah akan memprocess nilai yang awalnya 30 akan di tambahkan sebanyak 20. Sehingga 20 + 30 = 50.

Itulah tadi sedikit penjelasan, contoh, dan penggunaan dari pointer. Kritik saran nya diperlukan, karena kita sama-sama belajar. Itu saja blog kali ini, Kurang lebihnya mohon dimaafkan, Wassalam....

Subscribe to receive free email updates:

0 Response to "POINTER PADA C++ DAN CONTOHNYA"

Post a Comment