Skip to content

POINTER, PENGENALAN STRUKTUR DATA

November 3, 2010

Pointer merupakan salah satu jenis data terstruktur. Dengan menggunakan pointer, suatu variabel dapat diciptakan atau dihapus selama pengeksekusian program, variabel dinamis adalah suatu variabel yang akan dialokasikan pada saat diperlukan saja, yaitu saat program dieksekusi. Dengan menggunakan variabel dinamis ini, dimungknkan untuk membuat struktur data dinamis seperti link list,queue,stack dan tree.

Pada struktur data dinamis, terdapat variabel yang disebut variabel pointer (secara singkat disebut pointer), yaitu variabel yang menunjuk alamat memory pada variabel dinamis.secara umum dapat dikatakan bahwa variabel pointer merupakan suatu variabel yang menyimpan alamat dari suatu objek. Karena itu sebenarnya variabel pointer bukan berisi data, melainkan berisi alamat dari suatu data. Secara singkat pointer artinya menunjuk ke sutu lokasi data. Pointer harus dideklarasikan dan diberi nama serta dikaitkan dengan suatu tipe. Tipe ini disebut tipe dasar atau tipe domain dari pointer tersebut, dimana tipe ini menentukan tipe dari variabel dinamis yang akan ditunjuk oleh pointer yang bersangkutan. Untuk ilustrasi, pointer akan digambarkan sebagai anak panah dan lokasi memory sebagai segi empat.

Dalam variabel dinamis, nilai data yang ditunjuk oleh suatu pointer biasa disebut dengan simpul/node. Simpul biasanya berupa suatu record (dapat juga tipe data yang lain kecuali yang menyangkut file).

CONTOH PROGRAM :

#include <iostream.h>

class node{

public:

int data;

node *berikut;

};

void main(){

node *baru;

baru = new node;

baru->data=5;

baru->berikut=NULL;

cout<<“isu data node baru : “<<baru->data<<endl;

node *lain;

lain=new node;

lain->data=6;

lain->berikut=NULL;

cout<<“isi data node lain : “<<lain->data<<endl;

node *tambah;

tambah=new node;

tambah->data=7;

tambah->berikut=NULL;

cout<<“isi data node tambah : “<<tambah->data<<endl;

baru->berikut=lain;

cout<<“isi data node lain dicetak dari node baru : “<<baru->berikut->data<<endl;

lain->berikut=tambah;

cout<<“isi data node tambah dicetak dari node lain : “<<lain->berikut->data<<endl;

node *kepala=baru;

cout<<“mencetak node pertama dari pointer kepala : “<<kepala->data<<endl;

cout<<“mencetak node kedua dari pointer kepala : “<<kepala->berikut->data<<endl;

cout<<“mencetak node ketiga dari pointer kepala : “<<kepala->berikut->berikut->data<<endl;

cout<<“menggunakan perulangan untuk mencetak setip data pada rantai\n”;

node *jalan=kepala;

int i=1;

while(jalan!=NULL){

cout<<“data ke”<<i<<“>”<<jalan->data<<endl;

i++;

jalan=jalan->berikut;

}

cout<<“mencetak node pertama dari pointer kepala :”<<kepala->data<<endl;

cout<<“mencetak node kedua dari pointer kepala :”<<kepala->berikut->data<<endl;

cout<<“mencetak node ketiga dari pointer kepala : “<<kepala->berikut->berikut->data<<endl;

}

From → Latihan

Tinggalkan sebuah Komentar

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: