Anda di halaman 1dari 13

BAB V

POINTER

5.1. Pointer

Pointer adalah variabel yang berisi alamat memori sebagai nilainya dan berbeda

dengan variabel biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari

variabel yang mempunyai nilai tertentu. Pointer tidak hanya berlaku untuk variabel, kita

juga bisa menerapkannya ke fungsi, objek, dll. Implementasinya masih sama seperti yang

kita lakukan dengan variabel.

10 10

Variabel x berisi data 10 alamat variabel x 0x55d7245e

Sebuah pointer dapat berisi alamat dari variabel lain, dan akses langsung ke

nilai dalam variabel pointer dapat dilakukan dengan menggunakan operator. Jadi,

setiap variabel mempunyai data (isi data) dan alamat memori yang menunjukkan

variabel tersebut disimpan dimana.

Ada dua jenis pointer yang disediakan oleh borland c++, yaitu Operator Deference

(&) Dan Operator Reference (*).

1. Operator Deference (&)

Operator deference adalah operator yang memungkinkan kita untuk

mendapatkan/melihat alamat memori milik variable, operator ini juga sering disebut
sebagai address of operator (&). Penggunaannya adalah dengan meletakkan simbol “&”

sebelum variabel yang berarti alamat. Ini akan memaksa kompiler untuk memberikan

alamat memori alih-alih konten/nilai memori itu.

2. Operator Reference (*)

Operator reference adalah operator yang memungkinkan untuk mendapatkan

konten/nilai memori dari alamat memori, operator ini biasa disebut dengan value pointed

by. Operator ini akan menampilkan nilai yang terdapat pada alamat memori, bukan alamat

memori. Selama program berjalan, kita bebas mengubah tujuan penunjuk, mengubahnya

untuk menunjuk ke alamat memori variabel lain, atau menunjuk ke alamat memori yang

bukan variabel.

5.1.1 Cara Membuat Pointer

Setelah memahami fungsi dari kedua operator yang telah dijelaskan di

atas.Sekarang Anda dapat membuat pointer menggunakan dua operator tersebut.

Bentuk penulisan

Gambar 5.1 Bentuk Penulisan


Contoh Penulisan

Gambar 5.2 Contoh Penulisan


Secara umum pointer sebenarnya adalah variabel, aturan untuk variabel juga

berlaku untuk pointer, jadi tidak jauh berbeda dengan variabel. pointer hanya mendapatkan

beberapa perbedaan, yaitu menambahkan dua operator akan menjadikan variabel tersebut

sebagai variabel pointer.

Untuk mengatur variabel pointer, kita hanya perlu menambahkan operator

dereferencing sebelum identitas. Operator dereference tidak harus terikat dengan

identitas, ia juga dapat ditempatkan setelah tipe data atau di antara tipe data dan identitas.

Dari berbagai cara penulisan yang berbeda memiliki arti yang sama, yaitu operator

deference hanya akan berlaku untuk satu variabel.

5.1.2 Cara Mengakses Pointer

Variabel pointer adalah variabel yang memiliki alamat memori sebagai nilai

variabel pointer. Dan di pointer kita dimungkinkan untuk mengakses nilai pointer itu sendiri

dan nilai alamat memori yang dimiliki (ditunjuk) oleh pointer. Pointer adalah variabel,

menggunakan pointer tidak jauh berbeda dengan menggunakan variabel. Untuk

mendapatkan nilai pointer kita hanya perlu memanggil identitas pointer.

plnt panggilan akan mengembalikan nilai penunjuk yang merupakan alamat

memori dari variabel yang ditunjuk oleh pointer tersebut. Karena pointer hanya dapat

memiliki nilai berupa alamat memori, untuk mengubah nilai pointer atau mengubah tujuan

pointer, kita memerlukan operator address-of (&) pada operan sumber.

plnt = &myVar operan sumber mengembalikan alamat memori myVar, dan ini

adalah nilai yang diminta oleh variabel pointer. variabel pointer hanya dapat meneriman

alamat memori dari variabel yang memiliki tipe data yang sama.
5.2 Study Kasus

1. Pointer Konstanta

Flowchart:

Gambar 5.3 Flowchart pointer konstanta


Penjelasan flowchart :

Program dimulai dengan start lalu, menampilkan judul. Kemudian mendeklarasikan

variabel konstan yaitu *nama = “Borlan C++” bertipe data char. Kemudian tampilkan isi dari

variabel nama. Lalu dilanjutkan dengan memproses nama = “ Visual C++ “. Dan tampilkan

lagi isi dari variabel nama tersebut. Program selesai.


Program:

Gambar 5.4 contoh program pointer konstanta

Gambar 5.5 hasil running program pointer konstanta


2. Pointer Variabel
Flowchart:

Gambar 5.6 flowchart pointer deference


Penjelasan:

Program dimulai dengan start, lalu mendeklarasikan variabel ilham, amir, dan raka

sebagai tipedata integer. Kemudian memproses ilham = 75, amir = ilham, dan raka =

&ilham. Kemudian tampilkan nilai dari ilham, amir, dan raka. program selesai.
Program:

Gambar 5.7 program pointer deference

Gambar 5.8 hasil running program pointer deference


3. Pointer
Flowchart:

Gambar 5.9 flowchart operasi aritmatika pointer


Penjelasan :

Program dimulai dengan start, lalu menampilkan judul. Kemudian

mendeklarasikan variabel nilai[3], dan *penunjuk sebagai tipe data integer. Kemudian

memproses nilai[0] = 125, nilai[1] = 345, nilai[2] = 750. Dan memproses bahwa variabel

penunjuk = %nilai[0]. Lalu program tampilkan nilai dari variabel *penunjuk << penunjuk,

*(penunjuk + 1) << (penunjuk + 1), dan *(penunjuk + 2) << (penunjuk + 2). Program

selesai.

Program

Gambar 5.10 program operasi aritmatika

Gambar 5.11 running progam operasi aritmatika pointer


4. Pointer Dalam Array
Flowchart:

Gambar 5.12 flowchart pointer dalam array


Penjelasan:

Program dimulai dengan mendeklarasikan variabel c[4] sebagai tipedata char dan

variabel i sebagai tipedata integer. Kemudian memproses i = 0. Dan masuk ke syarat

perulangan jika i < 4 maka tampilkan “address of c[i]” << &c[i]. kemudian lakukan proses +

+i. Jika syaratnya perulangannya tidak terpenuhi lagi maka program selesai.
Program:

Gambar 5.13 program pointer dalam array

Gambar 5.14 hasil running pointer dalam array


5.3 Kesimpulan Dan Saran

5.3.1 Kesimpulan

pointer berisi alamat dari variabel yang mempunyai nilai tertentu. Pointer tidak

hanya berlaku untuk variabel, kita juga bisa menerapkannya ke fungsi, objek, dll.

Implementasinya masih sama seperti yang kita lakukan dengan variabel. Sebuah pointer

dapat berisi alamat dari variabel lain, dan akses langsung ke nilai dalam variabel pointer

dapat dilakukan dengan menggunakan operator. Jadi, setiap variabel mempunyai data (isi

data) dan alamat memori yang menunjukkan variabel tersebut disimpan dimana. Ada dua

jenis pointer yang disediakan oleh borland c++, yaitu Operator Deference (&) Dan

Operator Reference (*).

5.3.2 Saran

Penggunaan pointer pada proses program harus benar-benar diperhatikan. Sedikit

saja kesalahan dalam menggunakan pointer akan mengakibatkan kesalahan fatal pada

program. Karena pointer bisa langsung menunjukan pada lokasi memori, apabila lokasi

yang ditunjuk salah, berarti data yang diambil juga akan salah, dan sudah tentu program

anda akan menjadi salah juga.

Anda mungkin juga menyukai