11. POINTER
Pointer adalah suatu variabel yang berisi alamat memori
sebagai nilainya.
Merupakan variabel level rendah yang
dapat digunakan untuk menunjuk nilai integer, character, float, double, atau
single dan tipe-tipe data lain yang didukung oleh bahasa pemrograman.
Bersifat dinamis dan lebih
fleksibel.
Variabel pointer yang tidak menunjuk
pada nilai apapun berarti memiliki nilai NULL, disebut sebagai dangling
pointer karena nilainya tidak diinisialisasi dan tidak dapat diprediksi.
Variabel pointer berisi alamat dari suatu obyek lain.
Sebagai contoh, px adalah variabel pointer dan
x adalah variabel yang ditunjuk oleh px.
Kalau x berada pada alamat memori (alamat awal) 100, maka px akan berisi
100.
FUNGSI POINTER
Meningkatkan kinerja untuk operasi yang
dilakukan secara berulang, karena variabel pointer bersifat dinamis (dapat
diubah-ubah lokasi penyimpannya dalam memory).
Pada variabel biasa kita tidak perlu tahu
alamat memory dari variabel tersebut. Untuk mengakses hanya perlu nama variabel
tersebut. Tapi untuk struktur data dinamis (linked list, tree dsb) hal tersebut
tidak bisa.
Penggunaan pointer yang tepat dapat mempercepat
sebuah proses secara signifikan.
Pemindahan data yang besar dari sebuah
variabel.
OPERATOR ALAMAT
Setiap variabel yang dideklarasikan, disimpan
dalam sebuah lokasi memori dan pengguna biasanya tidak mengetahui di alamat
mana data tersebut disimpan.
Dilambangkan dengan simbol “&”.
OPERATOR REFERENCE
Penggunaan operator ini, berarti mengakses
nilai sebuah alamat yang ditunjuk oleh variabel pointer
DEREFERENCING POINTER
Adalah mengambil nilai yang ditunjuk oleh
sebuah variabel pointer .
Untuk melakukan dereferencing pointer, kita
harus menggunakan simbol *. Bila p adalah pointer, maka *p adalah nilai yang
ditunjuk oleh p.
OPERASI POINTER
Operasi Penugasan
Operasi Aritmatika
Operasi Logika
OPERASI PENUGASAN
Nilai dari suatu variabel pointer dapat disalin
ke variabel pointer yang lain.
Contoh:
y = 65;
x1 =
&y;
X2 =
x1;
OPERASI ARITMATIKA
Suatu variabel pointer hanya dapat dilakukan
operasi aritmatika dengan nilai integer saja.
Operasi penambahan dengan suatu nilai
menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori.
Hanya 4 operator aritmatika dapat digunakan
pada pointer, yaitu ++, ==, +, dan -.
Operasi yang biasa dilakukan adalah operasi
penambahan dan pengurangan.
OPERASI LOGIKA
Atau disebut operasi perbandingan.
Pointer dapat dibandingkan dengan menggunakan
operator hubungan, seperti !=, ==, <, dan >.
Contoh:
{
int num[4];
int *start,
*end;
start = num;
end =
&num[3];
while (start !=
end)
}
POINTER DAN ARRAY
Array secara internal akan diterjemahkan dalam
bentuk pointer.
Deklarasi variabel:
int tgl_lahir[3]
= { 01, 09, 64 };
int *ptgl;
Kemudian diberi instruksi:
ptgl =
&tgl_lahir[0];
maka ptgl akan berisi alamat dari elemen
array tgl_lahir yang berindeks nol.
Instruksi di atas bisa juga ditulis menjadi:
ptgl = tgl_lahir;
Nama array tanpa tanda kurung menyatakan alamat
awal dari array.
POINTER DAN STRING
Pointer juga dapat digunakan untuk
mendeklarasikan variabel string.
Contoh:
char
*pkota = “SEMARANG”;
Hampir sama dengan:
char
kota[] = “SEMARANG”;
Tetapi sebenarnya tidak tepat sama.
pkota adalah pointer (menyatakan alamat) yang menunjuk
ke
string “SEMARANG”, kota adalah array (array
menyatakan alamat yang konstan, tak dapat diubah).

Komentar
Posting Komentar