Pemrograman pointer
13.1. Pemrograman pointer
Pada programmer pemula hal mempunyai alamat yang unik. yang sulit dipahami adalah pointer. Sebuah variable alamat merupakan Pointer adalah pada dasarnya sama
alamat dimana sebuah byte data dengan veriabel lain. Dengan pointer
pertama dapat dialokasikan. Sebagai setiap variable diletakan pada alamat
contoh misalnya dapat didefinisikan memori yang besarnya cukup untuk dalam program sebagai berikut; menampung nilai dari sebuah variable tipe data. Pada sebuah char huruf; komputer PC misalnya satu byte data
short angka;
secara umum dialokasikan untuk tipe
float amount;
data char, 2 byte untuk tipe data
short, 4 byte untuk tipa data int, long sehingga pengaturan memorinya dan float serta 8 byte untuk tipe data
dapat diilustrasikan sebagai berikut double. Tiap-tiap byte data memori
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Pointer
huruf angka
amount
Gambar 13.1. Ilustrasi Pengaturan Data Pada Sebuah Memori
Pada gambar diatas variable letter Kegunaan pointer yang utama diletakan pada alamat 1200, number
adalah untuk menyimpan alamat pada alamat 1201 dan amount pada
memori dari sebuah variabel (data alamat 1203.
type atau object dari class). Selain
Ketika programmer menyimpan alamat dari variabel, mendeklarasikan sebuah variable, pointer juga dapat digunakan untuk sama halnya dengan menyimpan alamat dari sebuah menginformasikan compiler dua fungsi (function pointer). sesuatu yaitu : nama variable dan
Function pointer telah digunakan tipe variable. Misalnya kita akan sejak dikenalkannya bahasa C, dan mendeklarasikan tipe variable integer
banyak digunakan untuk sebuah dengan nama variable k sehingga fungsi callback atau untuk dapat ditulis:
meningkatkan readability dari sebuah code
Int k Anda dapat memperlakukan function pointer seperti pointer biasa Pada tipe variable integer merupakan
(pointer ke datatype/object), anda tipe data yang digunakan compiler dapat menyimpan,mengirimkan, dimana memori yang terpakai adalah
merubah address, atau meng- dua byte.
evaluasi address dari pointer ke Setiap kali komputer menyimpan
fungsi ini dengan sifat tambahan data, maka sistem operasi akan anda dapat memanggil fungsi yang mengorganisasikan lokasi pada ditunjuk oleh function pointer. memori pada alamat yang unik. Misal
Setiap variabel yang untuk alamat memori 1776, hanya dideklarasikan, disimpan dalam sebuah lokasi yang memiliki alamat sebuah lokasi memori dan pengguna tersebut. Dan alamat 1776 pasti biasanya tidak mengetahui di alamat terletak antara 1775 dan 1777. mana data tersebut disimpan. Dalam Dalam pointer, terdapat 2 jenis C++, untuk mengetahui alamat operator yang biasa digunakan.
tempat penyimpanan data, dapat
Direktorat Pembinaan SMK | 2008
Pointer Bahasa Pemrorgraman
digunakan tanda ampersand (&) yang dapat diartikan “alamat”.
Akan memberikan variable ted Sebenarnya jika programer akan
alamat dari variable andy, karena mendeklarasian sebuah variable, variable andy diberi awalan karakter seorang programer tidak diharuskan ampersand (&), maka yang menjadi menentukan lokasi sesungguhnya pokok disini adalah alamat dalam pada memory, karena hal ini akan memory, bukan isi variable. Misalkan
dilakukan secara otomatis oleh andy diletakkan pada alamat 1776
kompiler dan operating sysem pada kemudian dituliskan instruksi sebagai saat run-time.
berikut :
Jika ingin mengetahui dimana suatu variable akan disimpan, dapat
andy = 25;
dilakukan dengan memberikan tanda
fred = andy;
ampersand (&) didepan variable , ted = &andy; yang berarti "address of".
Perhatikan contoh dibawah ini: Maka hasilnya adalah sebagai berikut:
ted = &andy;
andy
Fred Ted
Gambar 13.2. Operator Alamat (&)
Dengan menggunakan pointer, beth = *ted; kita dapat mengakses nilai yang tersimpan secara langsung dengan (dapat dikatakan:"beth sama dengan memberikan awalan operator asterisk
nilai yang ditunjuk oleh ted") beth = (*) pada identifier pointer, yang
25, karena ted dialamat 1776, dan berarti "value pointed by". Contoh :
nilai yang berada pada alamat 1776 adalah 25.
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Pointer
Ted
25 memori
25 beth
Gambar 13.3. Operator Reference
Ekspresi dibawah ini semuanya (address/derefence operator (&)), benar, perhatikan pernyataan sehingga akan mengembalikan program dibawah:
alamat dari variabel andy. Ketiga bernilai benar karena assignation
andy == 25 untuk ted adalah ted = &andy;. &andy == 1776
Keempat menggunakan reference ted == 1776
operator (*) yang berarti nilai yang *ted == 25
ada pada alamat yang ditunjuk oleh ted, yaitu 25. Maka ekspresi dibawah
Ekspresi pertama merupakan ini pun akan bernilai benar : assignation bahwa andy=25;. Kedua,
menggunakan operator alamat *ted == andy