Pointer




Pointer adalah obyek bahasa pemrograman yang nilainya mengacu pada (atau menunjuk ke) nilai lain yang disimpan di dalam memori komputer menggunakan alamatnya. Sebuah pointer mereferensikan suatu lokasi di dalam memori, dan memperoleh nilai yang tersimpan yang dikenal sebagai dereferencing pointer. Sebagai analogi, sebuah nomor halaman dalam indeks buku dapat dianggap sebagai sebuah pointer ke halaman yang bersangkutan. Derefencing pointer tersebut akan dilakukan dengan membalik ke halaman dengan nomor halaman yang diberikan.
ATAU

  •   Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu lokasi memori tertentu.  
  •   Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat memori atau null jika tidak berisi data.
  •   Pointer yang tidak diinisialisasi disebut dangling pointer
  •   Lokasi memori tersebut bisa diwakili sebuah variabel atau dapat juga berupa nilai alamat memori secara langsung.

ILUSTRASI

  •   Kita memiliki variabel X yang berisi nilai karakter ‘a’
  •   Oleh kompiler C, nilai ‘a’ ini akan disimpan di suatu alamat tertentu di memori.
  •   Alamat variabel X dapat diakses dengan menggunakan statemen &X.
  •   Jika kita ingin menyimpan alamat dari variabel X ini, kita dapat menggunakan suatu variabel
}  misalnya char alamat_x = &X;
  •   alamat_x adalah suatu variabel yang berisi alamat dimana nilai X, yaitu ‘a’ disimpan. 
  •  Variabel alamat_x disebut variabel pointer atau sering disebut pointer saja.

Perbedaan Variabel Biasa dan Pointer
Variabel Biasa
Pointer
Berisi data/nilai
Berisi alamat memori dari suatu variabel tertentu
Operasi yang bisa dilakukan seperti layaknya operasi aritmatika biasa: +, -, *, /
Membutuhkan operator khusus: “&” yang menunjuk alamat dari suatu variabel tertentu. Operator “&” hanya dapat dilakukan pada variabel dan akan menghasilkan alamat dari variabel tersebut.
Contoh: p = &n

Yang kedua: operator “*”. Operator ini menggunakan nilai dari alamat variabel yang ditunjuk oleh pointer tersebut.
Contoh: int *p;
Bersifat statis (tidak dapat diubah)
Bersifat dinamis (dapat diubah)
Deklarasi: int a;
Deklarasi int *a

Manfaat Pointer
  •   Dapat mengirimkan “Parameter yang berupa variabel” ke dalam fungsi, artinya nilai variabel bisa diubah di dalam fungsi.
  •   Penggunaan pointer dapat meningkatkan kinerja untuk operasi yang dilakukan secara berulang seperti tranversing string, lookup table, control table, dan tree structures.
  •   Lebih cepat dan tidak membutuhkan banyak memori untuk menyalin alamat memori(dereference) pointer daripada menyalin dan mengakses data menggunakan variabel biasa (pointers point).
  •   Digunakan untuk menyimpan alamat dari titik masuk untuk memanggil subrutin dalam pemrograman prosedural dan untuk run-time penghubung ke dynamic link libraries (DLL). Dalam pemrograman berorientasi objek, pointer ke fungsi yang digunakan untuk mengikat/menjilid method, ini sering disebut tabel method virtual.

      1.      & (ampersand)
      2.      * (asterisk)
  1. Operasi Penugasan
  2. Operasi Aritmatika
  3. Operasi Logika

Passing Argument by Reference
·         Pointer digunakan untuk mengakses variabel dengan menggunakan referensi atau alamat.
·         Akses ini memungkinkan terjadinya perubahan data pada variabel referensi.
Passing Argument by Value
·         Pointer digunakan untuk mengakses variabel berdasarkan nilainya.
·         Ketika nilai pada variable yang dirujuk berubah, nilai pada variable rujukan tidak berubah.


Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment