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