1. Pointer ke Variabel
Pointer sering disebut juga dengan
istilah link, referensi, penunjuk adalah suatu variabel yang menyimpan atau
menunjuk alamat dari suatu variabel yang lain. Pointer menunjuk suatu data yang
tersimpan dalam sebuah variabel dengan cara menyimpan alamat dari variabel
penyimpan data tersebut.
Suatu pointer dapat menunjuk ke data
bertipe elementer, terstruktur, pointer yang lain, atau tidak bertipe. Jika
suatu pointer tidak menunjuk ke mana-mana, pointer itu dinamakan dangling,
sedangkan bagian memori yang tidak dapat diakses karena tidak ada pointer yang
menunjuk dinamakan garbage (sampah)
Pendeklarasian
variabel Pointer tidak jauh berbeda dengan pendeklarasian variabel biasa,
hanya perlu ditambahkan simbol topi ( ^ ), biasa juga disebut
ceret, topi atau circumflex. Simbol topi tersebut menandakan bahwa variabel tersebut
menunjuk ke lokasi tertentu di memori.
Deklarasi secara umum adalah sebagai berikut :
Cara 1. Deklarasi type diikuti dengan deklarasi variabel:
Type
nama_pointer:^tipe_data;
Var
nama_var_pointer:nama_pointer;
Cara 2. Deklarasi variabel secara langsung:
Var
nama_pointer:^tipe_data;
Keterangan:
2. Pointer ke Array
Ada dua macam pointer:
-typed(tertentu): merupakan pointer yang menunjuk pada tipe data tertentu pada variable.
-generic(umum): merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable. (Blog.ugm, 2010)
-typed(tertentu): merupakan pointer yang menunjuk pada tipe data tertentu pada variable.
-generic(umum): merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable.
Pointer merupakan sebuah tipe data yang isinya
menunjuk ke data lain memory. Untuk pendeklarasian pointer sendiri hampir sama
dengan pendeklarasian variable biasa pada program. Tetapi hal yang membedakan
pendeklarasian pointer dengan variable biasa terletak pada data bertipe pointer
harus ditambahkan dengan tanda ‘^’’di depan tipe pointer.
Contoh
pendeklarasian pointer :
Var
P1:^integer;
P2:^real;
Antara Array dan Pointer memeliki beberapa
perbedaan. Menurut sifatnya, variable bertipe array bersifat statis yang dimana
ukuran dan urutannya sudah pasti atau sudah ditentukan sebelumnya sehingga
tidak dapat ditambah lagi. Selain itu memori yang dipakai tidak dapat dihapus
bila variable bertipe array tersebut sudah tidak digunakan lagi pada saat
program dijalankan. Sedangkan variable bertipa pointer adalah tipe data yang bersifat dinamis, yaitu
variable hanya dialokasikan pada saat dibutuhkan, dan jika tidak dibutuhkan
lagi dapat dialokasikan kembali.
Perbandiangan
antara tipe data Array dan tipe data Pointer:
|
Kriteria
|
Array
|
Pointer
|
|
Sifat
|
Statis
|
Dinamis
|
|
Ukuran
|
Pasti
|
Sesuai
kebutuhan
|
|
Alokasi
Variabel
|
Saat program dijalankan sampai selesai
|
Dapat diatur sesuai dengan kebetuhan
|
Dalam menggunakan pointer dalam
bahasa pemrograman turbo pascal terdapat nilai-nilai fungsi yang digunakan
dalam penggunaan pointer. Nilai-nilai fungsi tersebut yaitu:
1.
NIL, merupakan reserved word dalam Pascal, di mana pointer yang bernilai
NIL dianggap tidak menunjuk alamat memori manapun.
2. Fungsi
ptr
3. Operator
@
4. Procedure
New dan GetMem
3. Pemanfaatan Pointer
Pointer berguna untuk :
1. Mengirimkan “Parameter yang berupa variabel” ke dalam fungsi, artinya nilai
variabel bisa diubah di dalam fungsi
1. Mengirimkan “Parameter yang berupa variabel” ke dalam fungsi, artinya nilai
variabel bisa diubah di dalam fungsi
2. Untuk membuat variabel
DINAMIS (Bukan variabel Statis)
Penggunaan function pointer pada
C++ dibatasi, yaitu function pointer tidak boleh menunjuk pada function yang
berada dalam sebuah class (class member function) kecuali function tersebut
berjenis static.
Mengapa sih harus menggunakan
POINTER dalam bahasa C++ …??? Karena dapat meningkatkan kinerja untuk operasi
yang dilakukan secara berulang.
dengan syarat Kalau mendeklarasikan pointer kedalam array, tidak boleh menggunakan tanda bintang
dengan syarat Kalau mendeklarasikan pointer kedalam array, tidak boleh menggunakan tanda bintang
Operator yang digunakan untuk
pointer adalah tanda “*” dan tanda “&”.
tanda “*” ini berfungsi sebagai penunjuk nilai dari suatu pointer sedangkan tanda
“&” digunakan sebagai penunjuk alamat dari suatu variable.
Pointer di gunakan untuk mengalokasikan tempat pada memori secara dinamis yakni dapat diubah-ubah alokasi tempatnnya pada memori.
data yang dimasukkan sebagai nilai pointer akan selalu tersimpan sehingga diperlukan penghapusan yang tujuannya untuk mengosongkan memori, perintah yang digunakan untuk menghapus memori adalah delete [] nama variable.
*Operasi pointer dapat diterapkan pada tipe data
Array,tipe data Struck,tanda “*” ini berfungsi sebagai penunjuk nilai dari suatu pointer sedangkan tanda
“&” digunakan sebagai penunjuk alamat dari suatu variable.
Pointer di gunakan untuk mengalokasikan tempat pada memori secara dinamis yakni dapat diubah-ubah alokasi tempatnnya pada memori.
data yang dimasukkan sebagai nilai pointer akan selalu tersimpan sehingga diperlukan penghapusan yang tujuannya untuk mengosongkan memori, perintah yang digunakan untuk menghapus memori adalah delete [] nama variable.
*Pointer dapat digunakan untuk mengakses elemen array
*Pointer dapat menunjuk alamat pointer lain
No comments:
Post a Comment