Anda di halaman 1dari 7

C++ Referensi

Membuat Referensi
Variabel referensi adalah sebuah referensi ke variabel dan dibuat dengan
operator &:

string food = "Pizza"; // Deklarasi variabel food bertipe data string


string &meal = food; // Deklarasi variabel Referensi ke variabel food

Untuk mengakses data pada variabel food (yaitu "Pizza") dapat dilakukan
dengan mengakses variabel food itu sendiri atau referensi meal.

Contoh:

#include <iostream>
using namespace std;

string food = "Pizza";


string &meal = food;

int main()
{
cout << food << "\n"; // Menghasilkan keluaran tulisan Pizza
cout << meal << "\n"; // Menghasilkan keluaran tulisan Pizza
}

Buku Ajar Pemrograman Dasar dan Lanjut Alfian Ma’arif


C++ Alamat Memori
Alamat Memori
Pada contoh halaman sebelumnya, operator & digunakan untuk membuat
variabel referensi. Operator tersebut memiliki fungsi yang lain yaitu dapat
digunakan untuk memperoleh alamat memori variabel ke lokasi dimana
variabel disimpan dalam komputer.

Ketika sebuah varibel dibuat dalam Bahasa C++, sebuah alamat memori
disediakan untuk variabel tersebut. Lalu, ketika kita memberi nilai ke variabel
tersebut, nilai tersebut akan disimpan dalam alamat memori yang sudah
diberikan.

Pergunakan operator & untuk mengakses alamat tersebut dan hasil akan
merepresentasikan tempat variabel disimpan (alamat memori).

Contoh:

#include <iostream>
using namespace std;

string food = "Pizza";

int main()
{
cout << &food; // Menampilkan alamat memori
}

Catatan: Alamat memori berbentuk heksadesimal (0x...). Catat bahwa alamat


memori tidak selalu sama untuk setiap program.

Kenapa sangat penting untuk mengetahui alamat memori?


Referensi dan pointer (akan dipelajari pada bab selanjutnya) sangat penting
di C++, karena kedua fungsi tersebut memberikan fitur untuk memanipulasi
data dalam memori komputer yang dapat mengurangi kode program dan
meningkatkan kinerja program (mempercepat kecepatan eksekusi program).

Buku Ajar Pemrograman Dasar dan Lanjut Alfian Ma’arif


C++ Pointers
Membuat Pointer
Pada bab sebelumnya, alamat memori sebuah variabel dapat diperoleh dengan
menggunakan operator &:

Contoh:
string food = "Pizza"; // Vabiabel food dengan tipe data string

cout << food; // Keluaran variabel food adalah Pizza


cout << &food; // Keluaran alamat memori variabel food

Sebuah pointer adalah variabel yang menyimpan alamat memori sebagai


nilainya.

Variabel pointer merujuk ke variabel dengan tipe data (int atau string) yang
sama, dan dibuat dengan menggunakan operator *. Alamat memori dari
variabel yang sedang dikerjakan saat itu lalu diberikan ke pointer untuk
disimpan sebagai nilai dari variabel pointer.

Contoh:
#include <iostream>
using namespace std;
string food = "Pizza"; // Variabel food dengan tipe data string
string* ptr = &food; // Deklarasi sebuah variabel pointer, dengan
nama variabel ptr, yang menyimpan alamat
memori variabel food
int main() {
cout << food << "\n"; // Menampilkan data food yaitu Pizza
cout << &food << "\n"; // Menampilkan alamat memori food yaitu 0x6dfed4
cout << ptr << "\n"; // Menampilkan alamat memori food dengan pointer
(0x6dfed4)
}

Penjelasan:

Sebuah variabel pointer dengan nama ptr, yang merujuk ke sebuah variabel
string, dengan menggunakan operator * (string* ptr). Perlu diingat bahwa
tipe data pointer harus memiliki tipe data yang sama dengan variabel yang
dikerjakan.

Operator & digunakan untuk menyimpan alamat memori dari variabel food,
dan memberikannya ke pointer sebagai nilai yang akan disimpan. Oleh karena

Buku Ajar Pemrograman Dasar dan Lanjut Alfian Ma’arif


itu, saat ini variabel ptr menyimpan data berupa alamat memori dari variabel
food, untuk contoh yaitu 0x6dfed4. Perlu diketahui bahwa hasil yang
ditampilkan akan berbeda-beda pada tiap program maupun komputer yang
digunakan sebab alamat memori yang digunakan adalah tidak sama untuk
setiap program dan komputer.

Tip: Ada 3 cara untuk mendefinisikan variabel pointer, tetapi cara pertama
adalah cara yang paling direkomendasikan.

string* mystring; // direkomendasikan


string *mystring;
string * mystring;

Buku Ajar Pemrograman Dasar dan Lanjut Alfian Ma’arif


C++ Referensi Balik
Memperoleh Alamat Memori dan Nilainya
Pada contoh halaman sebelumnya, variabel pointer digunakan untuk
memperoleh alamat memori variabel (digunakan bersama dengan operator
referensi &). Selain itu, dengan menggunakan pointer, nilai variabel juga dapat
diperoleh yaitu dengan menggunakan operator * (operator referensi balik):

Contoh:
#include <stream>
using namespace std;

string food = "Pizza"; // Mendeklarasikan variabel food dengan tipe


data string

string* ptr = &food; // Mendeklarasikan variabel pointer dengan tipe


data string
int main()
{
cout << ptr << "\n"; // Referensi: Menghasilkan keluaran
alamat memori variabel food dengan
pointer (hasilnya = 0x...)

cout << *ptr << "\n"; // Referensi balik: Menghasilkan keluaran


data variabel food dengan pointer
yaitu Pizza
}

Catat bahwa tanda * dapat membingungkan, karena memiliki dua fungsi yang
berbeda:

 Ketika digunakan dalam deklarasi (string* ptr), itu berarti membuat


variabel pointer.
 Ketika tidak digunakan dalam deklarasi, itu berarti adalah operator
referensi balik.

Buku Ajar Pemrograman Dasar dan Lanjut Alfian Ma’arif


C++ Modifikasi Pointers
Memodifikasi Data/Nilai Pointer
Data/Nilai Pointer juga dapat diganti. Akan tetapi catat bahwa hal tersebut
juga akan mengganti nilai variabel asli.

Contoh:
#include <stream>
using namespace std;

string food = "Pizza";


string* ptr = &food;

int main()
{
cout << food << "\n"; // Keluaran nilai Food yaitu Pizza

cout << &food << "\n";// Keluaran alamat memori food yaitu 0x...

cout << *ptr << "\n"; // Mengakses alamat memori food dan
mengeluarkan nilainya yaitu Pizza

*ptr = "Hamburger"; // Mengganti nilai pointer dengan Hamburger

cout << *ptr << "\n"; // Mengeluarkan nilai yang baru pointer
yaitu Hamburger
cout << food << "\n"; // Mengeluarkan nilai yang baru variabel
food yaitu Hamburger
}

Buku Ajar Pemrograman Dasar dan Lanjut Alfian Ma’arif


Latihan:
1. Lengkapilah program berikut, buatlah variabel referensi dengan nama
variabel meal yang mereferensi variabel food sehinga akan
mengeluaran nilai/data Pizza:

#include <iostream>
using namespace std;

string food = "Pizza";


string = ;

int main()
{
cout << food << endl; //Hasil yaitu Pizza
cout << *meal << endl; //Hasil yaitu Pizza
}

2. Lengkapilah program berikut, dapatkan alamat memori variabel food:

#include <iostream>
using namespace std;

int main()
{
string food = "Pizza";

cout << << endl; //Hasil yaitu 0x...


}

3. Lengkapilah program berikut, buatlah variabel pointer dengan nama


ptr yang mereferensi variabel string dengan nama food:

#include <iostream>
using namespace std;

string food = "Pizza";


= & ;

int main()
{
cout << food << endl; //Hasil yaitu Pizza
cout << *ptr << endl; //Hasil yaitu Pizza
}

Buku Ajar Pemrograman Dasar dan Lanjut Alfian Ma’arif

Anda mungkin juga menyukai