Sabtu, 14 November 2009

pointer pada c++

Pengertian Pointer
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat me¬mo¬ri dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (bia¬sanya variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat da¬ri variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua.

Operator Pointer
Ada 2 operator pointer yang dikenal secara luas, yaitu operator & dan operator *.
Operator &
- Operator & bersifat Unary (hanya memerlukan satu operand saja)
- Operator & menghasilkan alamat dari operandnya
Operator & merupakan operator alamat. Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler dan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable , yang berarti "address of". Contoh :
ted = &andy;
Penulisan tersebut berarti akan memberikan variable ted alamat dari variable andy. Karena variabel andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkan andy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb :
andy = 25;
fred = andy;
ted = &andy;
Operator *

- Operator * bersifat Unary (hanya memerlukan satu operand saja)
- Operator * menghasilkan nilai yang berbeda pada sebuah alamat
Operator * merupakan operator reference. Dengan menggunakan po¬inter, kita dapat mengakses nilai yang tersimpan secara langsung dengan mem¬berikan awalan operator asterisk (*) pada identifier pointer, yang ber¬arti "value pointed by". Contoh :
beth = *ted;
(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.
Deklarasi Pointer
Seperti halnya variabel lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan. Bentuk umum deklarasi pointer adalah :
Tipe_data*nama_pointer
Dimana Tipe_data merupakan tipe dari data yang ditunjuk, bukan tipe dari pointer-nya. Contoh :
1. Mensubstitusikan address sebuah variabel ke pointer dengan memakai address operator &
int x;
int *ptr;
ptr = &x;
2. Mensubstitusikan address awal sebuah array ke pointer
char t[5];
char *ptr;
ptr = t;
3. Mensubstitusikan address salah satu elemen array dengan address operator
char t[5] ;
char *ptr;
ptr = &t[3];
4. Mensubstitusikan address awal character string ke pointer char
char *ptr;
ptr = ”jakarta”
5. Mensubstitusikan NULL pada pointer. NULL ada pointer kosong, menunjukkan suatu status dimana pointer itu belum diinisialisasikan dengan sebuah address tertentu.
6. Memakai fungsi MALLOC.

Macam – macam Pointer
Pointer Bertipe Void
Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, po¬inter semacam ini dideklarasikan dengan tipe void sehingga sering dikenal de¬ngan is¬ti¬lah Void Pointer. Berikut ini contoh listing program yang meng¬gu¬na¬kan Berikut ini ditu¬lis¬kan dua buah contoh program yang dapat menjelaskan pernyataan ini.
Program yang ditulis tanpa menggunakan pointer

Pointer Aritmetika
Elemen-elemen array biasanya diakses melalui indeksnya, sebenarnya ada cara lain yang lebih efisien, yaitu dengan menggunakan pointer. Pointer sema¬cam ini disebut dengan istilah pointer aritmetika. Konsep dasar dari pointer arit¬me¬tika ini adalah melakukan operasi aritmetika terhadap variabel yang bertipe po¬int¬er. Misalnya kita mempunyai 5 buah data bertipe int yang disimpan dalam ben¬tuk array dengan nama A

Jika kita mempunyai pointer p, maka kita dapat mengakses elemen-ele¬me¬n array di atas dengan cara melakukan operasi terhadap p. Berikut contoh pro¬gram yang akan mengilustrasikan kasus tersebut.
Operasi-operasi Pointer
Operasi Penugasan
Suatu variabel pointer seperti halnya variabel yang lain, juga bisa mengalami operasi penugasan. Nilai sari suatu variabel pointer dapat disalin ke variabel pointer yang lain.
Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.
Operasi Logika
Operasi logika juga dapat dilakukan pada sebuah variabel pointer. Contoh programnya :

Tidak ada komentar:

Posting Komentar