Wednesday, July 26, 2017

Pointer C++


Sekarang kita masuk ke pointer ,apakah itu 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.
maksutnya?
Pointer adalah variable yang bernilai alamat berbeda dengan variable biasa yang hanya sebagai penampung

Macam-Macam pointer
The address-of operator (&)atau reference adalah operator yang didalam pendeklarasikan  variabel nya harus pada lokasi yang pasti.pada dasarnya sistem operasi tidak tau pengelamatan dan akan melakukan alamat acak oleh karena itu operator ini sangat beguna untuk mengalamatkan ke memori
contoh


#include <iostream>
 using namespace std;
int main()
{
    int umur =20 ;
    cout <<umur<< '\n'; // print at menampilak nilai dari variable umur
    cout <<&umur << '\n'; // lokasi dari alamat memori umur
 
    return 0;
}
jika program di atas di jalankan maka akan tampil

20
0x7ffe239af4ec

'Untuk 20 adalah nilai variable
sedankan untuk 0x7ffe239af4ec itu adalah alamat dari pointer umur kita yang di letakan di procesor nah alamat akan berubah seiring perbedaan os dan procesor.

selanjutnya
Operator Dereference( * )
Dengan mengunakan dereference kalian dapat langsung mengakses nilai yang di dalam variable,hal ini dapat dilakukan dengan menambahkan (*),
#include <iostream>
using namespace std;
int main()
{
    int umur = 20;
    cout << umur << '\n'; //print at menampilak nilai dari variable umur
    cout << &umur << '\n'; // lokasi dari alamat memori umur
    cout << *&umur  << '\n'; //print isi dari alamat variable  umur
 
    return 0;
}


Dari scrip di atas akan tampil
20
0x7ffe239af4ec
20 

Nah kenapa 20 ada dua? anga 20 yg terakhir merupakan hasil dari eksekusi alamat variable menjadi nilainya lihat script baris terakhir

Pointer
Pointer biasanya dilihat sebagai salah satu bagian yang paling membingungkan dari bahasa C ++, namun bisa sangat mudah jika dijelaskan dan dipelajari dengan benar.
Deklaasi pointer
int *iPoin; // pointer dengan type data integer ,penulisan benar
double *dPoin; // pointer dengan type data double,penulisanya benar

int *iPoin3, *iPoin4; // deklarasi dua pointer dengan type data integer

int* iPoin5;   //penulisan pointer bisa sperti ini tapi sangat dilarang anda gunakan jika
               //untuk aplikasi karena bisa terjadi bug,penulisannya salah

Karena pointer hanya menyimpan alamat, ketika kita memberikan nilai ke pointer, itu harus berupa alamat. Salah satu hal yang paling umum dilakukan adalah dengan alamat variabel yang berbeda.

Untuk mendapatkan alamat sebuah variabel, kita menggunakan address-operator (*):

int umur = 20;
int *poin = &umur; // mengisikan variable dengan alamat dari umur

Deklarasi Pointer pada variable
pada pengunaan deference(&)

#include<iostream.h>
using namespace std; 
int main()
{
   int berat, *tinggi, umur;
   berat = 40;
   tinggi = berat;
   umur = &tinggi;
   cout<<"Value berat = "<<berat<<endl;
   cout<<"Value umur = "<<umur<<endl;
   cout<<"Value tinggi = "<<tinggi<<endl;
   return 0;
}


Null pointer
Seperti variable biasa,pointer tidak diinisialisasi pada saat itu. Jika nilai tidak diberikan, pointer akan menunjuk ke beberapa alamat  secara default/acak.

Selain alamat memori, ada satu nilai tambahan yang dapat dirujuk ke pointer: nilai null. Nilai null adalah nilai khusus yang berarti pointer tidak menunjuk pada apapun atau pointer dalam keadaan netral.

int *pointer(0);  // pointer sekarang null
 int *pointer; // pointer di deklarasikan
pointer = 0; // pointer sekarang menjadi null kembali


Contoh script

#include <iostream>
 using namespace std;
void nullPointer(int *ptr)
{
    if (ptr)
        cout << "Pointernya berisi " << ptr << '\n';
    else
        cout << "Pointernya Null "<<endl";
}
 
int main()
{
    nullPointer(nullptr); 
 
    return 0;
}

Pointer Pada array
Pointer pada array cukup sederhana 

#include <iostream>
 using namespace std;
int main()
{
    int array[5] = { 9, 7, 5, 3, 1 };
 
    // print value array 
    cout << "Array adalah : " << array << '\n';

   //print array ke 3
   cout << "Isi array  adalah [2]: " << array[2] << '\n';
   // print alamat dari  element array pada angka '5' di array 
    cout << "ALamat pointer adalah [2]: " << &array[2] << '\n';
 
    return 0;
}

Pointer Arimatika
Nah ini ternyata pointer bisa menjadi arimatika
berikut scriptnya
#include <iostream>
 
int main()
{
    short isi = 7;
    short *ptr = &isi;
 
    cout << ptr <<endl;
    cout << ptr+1 <<endl;
    cout << ptr+2 <<endl;
    cout << ptr+3 <<endl;
 
    return 0;
}

Sekian tutorial pointer berikut semoga mudah di pahami
SEkian dan bertemu lagi bersama saya di [] ex code / syntax spot

Bagikan

Jangan lewatkan

Pointer C++
4/ 5
Oleh

Subscribe via email

Suka dengan artikel di atas? Tambahkan email Anda untuk berlangganan.