Haiii IMILKOMers! Kali ini IMILKOM belajar akan menjelaskan secara rinci apaan sih POINTER itu?

Variabel yang telah dideklarasikan di dalam program akan tersimpan di dalam memori computer. Masing-masing dari variabel ditempatkan pada alamat yang berbeda. Pointer adalah variabel khusus yang digunakan untuk menunjuk ke alamat memori dari variabel lain. Dengan demikian, isi dari pointer berupa alamat memori, bukan nilai dari tipe data tertentu.

Untuk memahami konsep pointer, anggap kita memiliki variabel a yang dideklarasikan menggunakan tipe int. Dalam C++ alamat memori yang ditempati oleh suatu variabel dapat diambil dengan cara menempatkan tanda & di depan nama variabel bersangkutan.

Text, letter

Description automatically generated

Karena variabel a dideklarassikan menggunakan tipe int, maka pointer yang digunakan untuk menunjuk alamat a juga harus bertipe int.

Agar p menunjuk ke alamat a maka kita perlu menulis kode berikut:

Pointer p yang sedang menunjuk ke alamat variabel a dapat digambarkan seperti berikut:

Pada gambar di atas variabel a bernilai 9 dan tersimpan di dalam alamat 0x7fff266ca46c. Ketika pointer p menunjuk ke alamat tersebut maka p akan bernilai 0x7fff266ca46c, bukan 9. Pointer itu sendiri sebenarnya akan ditempatkan ke alamat lain dalam memori komputer. Dalam contoh ini, pointer p ditempatkan pada alamat 0x7fff266ca460.

Ketika pointer p menunjuk alamat dari variabel a, kita dapat mengakses nilai a melalui pointer p, yaitu dengan cara menambah tanda * di depan p. Proses ini dikenal dengan istilah deference pointer. Dengan demikian, nilai p sama dengan &a dan *p sama dengan a.

A picture containing graphical user interface

Description automatically generated

Berikut adalah outputnya :

A picture containing shape

Description automatically generated

Nahh, Bagaimana sudah mulai paham dengan pointer dan cara menggunakannya? Nantikan materi IMILKOM BELAJAR yang lainnya ya! Mari kita belajar bersama-sama lagi pada artikel berikutnya! See you soon guys.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *