Dalam ilmu komputer dan pemrograman, referensi (bahasa Inggris: reference) adalah objek atau tipe data abstrak yang bertindak sebagai alias, label, atau penanda bagi data atau objek lain yang tersimpan di dalam memori komputer. Referensi memungkinkan sebuah program untuk mengakses dan memanipulasi data yang sama dari berbagai bagian kode yang berbeda tanpa harus menyalin seluruh data tersebut secara fisik.[1]

Berbeda dengan penunjuk (pointer) tradisional, referensi dirancang dengan tingkat abstraksi yang lebih tinggi dan aman. Pada kebanyakan bahasa pemrograman modern, nilai numerik dari alamat memori asli yang diacu oleh sebuah referensi disembunyikan sepenuhnya dari pemrogram untuk mencegah manipulasi ilegal.

Perbedaan dengan penunjuk

sunting

Meskipun referensi dan penunjuk sama-sama digunakan untuk merujuk ke data lain di memori, keduanya memiliki perbedaan karakteristik yang mendasar dalam implementasinya:

Karakteristik Penunjuk (Pointer) Referensi (Reference)
Akses Alamat Memori Mengonversi dan mengekspos alamat memori fisik secara langsung sebagai angka mentah. Menyembunyikan alamat memori fisik di balik lapisan abstraksi pengaman.
Aritmetika Mendukung aritmetika penunjuk (seperti menambah atau mengurangi alamat indeks). Tidak mendukung operasi aritmetika sama sekali.
Sintaksis Penggunaan Memerlukan operator khusus untuk melakukan dereferensi (seperti operator bintang * pada bahasa C). Bersifat implisit; program otomatis melakukan dereferensi saat nama variabel digunakan.
Nilai Kosong (Null) Dapat bernilai kosong (seperti NULL atau nullptr) dan tidak menunjuk ke mana pun. Umumnya tidak boleh kosong dan harus langsung terikat pada objek yang valid saat dideklarasikan.

Implementasi pada bahasa pemrograman

sunting

C++

sunting

Dalam C++, referensi dideklarasikan menggunakan operator ampersan (&). Setelah diinisialisasi, referensi tersebut terikat secara permanen pada variabel targetnya dan tidak dapat dialihkan ke variabel lain.

#include <iostream>

int main() {
    int asli = 10;
    int &ref = asli; // 'ref' kini menjadi alias dari 'asli'

    ref = 20; // Mengubah nilai 'ref' otomatis mengubah nilai 'asli'

    std::cout << asli; // Output: 20
    return 0;
}

Java, C#, dan Python

sunting

Bahasa-bahasa pemrograman tingkat tinggi seperti Java, C#, dan Python sepenuhnya menghilangkan fitur penunjuk manual dan menggantinya dengan konsep referensi objek secara bawaan.

Ketika seorang pemrogram menulis perintah Objek objekBaru = new Objek() di Java, variabel objekBaru sebenarnya adalah sebuah referensi yang menyimpan lokasi objek tersebut di memori heap. Pemindahan atau penugasan variabel referensi (seperti objekA = objekB) tidak menyalin isi objeknya, melainkan membuat kedua variabel tersebut merujuk pada objek tunggal yang sama. Manajemen daur hidup memori referensi ini diatur sepenuhnya secara otomatis oleh sistem pengumpul sampah (garbage collector).

Keuntungan

sunting
  • Keamanan Memori (Memory Safety): Mencegah terjadinya kerusakan memori akibat kesalahan hitung alamat atau manipulasi data acak.
  • Optimalisasi Performa: Memungkinkan pengiriman data berukuran besar ke dalam fungsi tanpa memicu beban komputasi penyalinan data (mekanisme pemanggilan berdasarkan rujukan atau pass-by-reference).
  • Sintaksis yang Bersih: Membantu pemrogram menulis kode yang lebih ringkas karena tidak perlu menyisipkan banyak operator dereferensi manual.

Lihat pula

sunting

Referensi

sunting
  1. ^ Black, Paul E. "reference". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.

📚 Artikel Terkait di Wikipedia

Rust (bahasa pemrograman)

urges memory safety". The Stack Overflow Blog (dalam bahasa Inggris). Diakses tanggal 2025-01-26. "Press Release: Future Software Should Be Memory Safe"

AArch64

architecture: Enhancing memory safety". community.arm.com (dalam bahasa Inggris). Diakses tanggal 27 July 2021. "Adopting the Arm Memory Tagging Extension in

Daftar gempa bumi tahun 2026

S. Geological Survey. "Sabah quake strongest to hit Malaysia in recent memory". Borneo Bulletin. 24 February 2026. Diakses tanggal 26 February 2026. ANSS

IOS 15

2022-03-16. Diakses tanggal 2022-03-14. "Towards the next generation of XNU memory safety: kalloc_type". Apple Security Blog. Apple. Diarsipkan dari versi aslinya

Kentang

Black '47 and Beyond: The Great Irish Famine in History, Economy, and Memory. (1999). 272 pp. Ó Gráda, Cormac, Richard Paping, and Eric Vanhaute, eds

Metilenadioksimetamfetamina

coagulation], renal failure, hypotension, serotonin syndrome, chronic mood/memory disturbances ... human data have shown that long-term exposure to MDMA is

Metilfenidat

"Prescription Stimulants' Effects on Healthy Inhibitory Control, Working Memory, and Episodic Memory: A Meta-analysis". Journal of Cognitive Neuroscience (dalam bahasa

Hiperaktivitas

Aspects of cognitive control in which DA plays a role include working memory, the ability to hold information 'on line' in order to guide actions, suppression