Anda di halaman 1dari 27

POINTER

Merupakan sebuah variabel yang berisi alamat dari variabel lain.


Suatu pointer dimaksudkan untuk menunjukan ke suatu alamat
memori sehingga alamat dari suatu variabel dapat diketahui dengan
mudah.

Terdapat dua macam operator pointer yang disediakan oleh


Borland C++:
1. Operator dereference ( & )
2. Operator reference ( * )

Didalam mendeklarasikan suatu variabel harus pada lokasi


yang pasti didalam penggantian memori.Pada umumnya kita
tidak dapat menentukan dimana variabel akan ditempatkan
Terkadang secara otomatis dilakukan oleh kompiler dan sistem
operasi yang sedang aktif,
Sebagai contoh ILHAM ditempatkan pada memori dengan alamat
0x0012ff88 dan dideklarasikan sebagai berikut :

ILHAM = 75;
AMIR = ILHAM; // AMIR sama dengan ILHAM (75)
RAKA = &ILHAM; // RAKA sama dengan Address Of ILHAM (0x0012ff88)

Dengan menggunakan operator anda dapat mengakses


secara langsung nilai yamg terdapat didalam variabel yang
berpointer, hal ini dapat dilakukan dengan menambahkan
identifier asterisk ( * )
Agar dapat menterjemahkan nilai sebenarnya dari suatu
variabel. Operator ini biasa disebut dengan value pointed
by.
Dengan menggunakan operator reference ( * ) ini,
menghasilkan nilai yang berada pada suatu alamat memori

Sebagai contoh ILHAM ditempatkan pada memori dengan alamat 0x0012ff88 dan
dideklarasikan sebagai berikut :
ILHAM = 75;
RAKA = &ILHAM; // RAKA sama dengan Address Of ILHAM
(0x0012ff88)
RAFLI = *RAKA; // RAFLI sama dengan value pointed by
RAKA(75)

Suatu pointer dapat dideklarasikan secara konstanta atau


secara tetap tidak dapat diubah. Untuk mendeklarasikan
pointer secara konstanta dengan memberikan kata const
didepan nama konstanta.
Bentuk penulisan :

//----------------------------------//
//Pendeklarasian Pointer Konstanta //
//----------------------------------//
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{
char *const nama = "Borland C++";
clrscr();
cout<<"Nama Program = "<<nama<<endl;
nama = "Visual C++";
cout<<"Nama Program = "<<nama<<endl;

getch();
}

Karena keakhlian dari pointer untuk menunjuk secara langsung


kesuatu nilai, memeriksa satu persatu data yang memiliki pointer
pada saat variabel tersebut pertama kali dideklarasikan.

Bentuk penulisan :

tipe_data *nama_variabel;

//-------------------------------//
//Penggunaan Pointer Dereference //
//-------------------------------//
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
int ilham, amir, *raka;
clrscr();
ilham = 75;
amir = ilham;
raka = &ilham;
cout<<"Nilai ILHAM = "<<ilham<<endl;
cout<<"Nilai AMIR = "<<amir<<endl;
cout<<"Nilai RAKA
getch();
}

= "<<raka<<endl;

Pointer Pada Pointer


Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat
pula menunjuk ke pointer lainnya. Didalam pendeklarasianya, hanya
menambahkan pointer reference ( * ) pada variabel yang akan
ditunjuk.
Sebagai contoh :
char ilham;
char *raka; //pointer ke variabel
char **amir; //pointer pada pointer
ilham = '75';
raka = &ilham;
amir = &raka;

Pointer Pada Pointer


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
int ilham;
int *raka; //pointer ke variabel
int **amir; //pointer pada pointer
clrscr();
ilham = 75;
cout<<"Nilai ILHAM = "<<ilham<<endl;
//-> Penugasan Ke Alamat Memori
raka = &ilham;
amir = &raka;
cout<<"Nilai RAKA Hasil Mengakses ILHAM = ";
cout<<*raka<<endl;
cout<<"Nilai AMIR Hasil Mengakses ILHAM = ";
cout<<**amir<<endl;
getch();

Pengertian Linked List


Linked list merupakan suatu variabel yang bertipe pointer yang
membentuk suatu untaian yang saling berhubungan. Tiap untaian
tersebut diletakkan pada memory. Tempat yang disediakan pada
suatu area memori tertentu untuk menyimpan data dikenal dengan
sebutan Node/Simpul.
Linked list juga disebut dengan seranai beranai merupakan suatu
variabel pointer yang simpulnya bertipe Struct.

KONSEP POINTER DAN LINKED LIST


Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya,
maka disediakan satu fasilitas yang memungkinan untuk menggunakan
suatu perubah yang disebut dengan perubah dinamis (Dinamic variable)
Perubah Dinamis (Dinamic variable)
Suatu perubah yang akan dialokasikan hanya pada saat
diperlukan, yaitu setelah program dieksekusi.
Perbedaan Perubah Statis & Dinamis
Pada perubah statis, isi Memory pada lokasi tertentu (nilai perubah)
adalah data sesungguhnya yang akan diolah. Pada perubah dinamis,
nilai
perubah
adalah alamat lokasi lain yang menyimpan data
sesungguhnya. Dengan demikian data yang sesungguhnya dapat
dimasukkan secara langsung. Dalam hal cara pemasukkan data dapat
diilustrasikan
seperti dibawah ini.

1.
2.
3.
4.
5.

Linked list selalu memiliki pointer petunjuk yang selalu menunjuk pada awal
dari list yang disebut Head.
Linked list juga selalu memiliki pointer petunjuk menunjuk pada akhir dari list
yang disebut Tail, kecuali untuk jenis circular.
Setiap simpul yang terbentuk selalu memiliki nilai NIL, kecuali jika simpul
tersebut sudah ditunjuk oleh simpul yang lainnya (Linked list belum
terhubung).
Posisi simpul terakhir pada linked list selalu bernilai NIL karena ia tidak
menunjuk pada simpul yang lainnya, kecuali bentuk circular.
Operasi yang dapat dilakukan pada Linked List diantaranya adalah :
a. Menambah Simpul (di Depan, Belakang dan Tengah).
b. Menghapus Simpul (di Depan, Belakang dan Tengah).
c. Membaca isi linked list (Membaca maju dan mundur).

Ada tiga jenis operasi pada linked list, yaitu :


1. Menambah Simpul /Node
Menambah simpul pada linked list ada yaitu menambah di depan, dan belakang

2. Menghapus Simpul
Operasi menghapus simpul yaitu menghapus simpul di depan dan
belakang. Untuk menghapus sebuah simpul diperlukan satu buah
tambahan variabel pointer yaitu variabel bantu yang berguna untuk
menunjukkan simpul manakah yang akan dihapus.

Anda mungkin juga menyukai