^___^

TuHan Memberi apa yang aku BUTUHKAN bukan yang aku INGINKAN . . .

Rabu, 08 Desember 2010

Pointer

Pointer adalah variable yang berisikan alamat memori sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai tertentu. Dengan kata lain pointer berisi alamat dari variabel yang mempunyai nilai tertentu. Pointer sebenarnya sangat terkait dengan "Abstract C Machine", yaitu model mesin abstrak dimana program C bekerja. Abstract C Machine adalah mesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory yang terbagi kedalam 3 bagian : automatic memory, static memory dan free memory. Addressable memory adalah memory yang konten-nya dapat diambil jika diketahui alamatnya. Lebih jauh lagi, terdapat asumsi bahwa konten memori dapat di ambil dengan waktu konstan, tidak peduli berapa nilai alamat. Hal ini disebut dengan Random Access Memory.
Operator Pointer, ada beberapa operator yang biasa digunakan dalam pointer. Operator – operator itu adalah: operator alamat (yang dilambangkan dengan symbol & ) adalah operator unary yang mengembalikan alamat dari operannya.
Pointer aritmetika, hanya ada 4 operator aritmetik yang dapat digunakan pada pointer yaitu ++,--, +, dan -. Dalam hal ini asumsi untuk tipe data integer adalah 32 bit.
Pointer perbandingan, pointer dapat dibandingkan dengan menggunakan operator hubungan, seperti !=, ==,< , dan >
Konstanta String dan Pointer, konstanta string terlihat dalam program teks dan disimpan dalam table string serta setiap entry dalam table string, pointer string dibangkitkan.Contoh program pointer string adalah sebagai berikut :
//Program:pointer5.cpp
#include<iostream.h>
Int main()
{
char *s;
s = “Pointer mudah digunakan.\n”;
cout << s;
return 0;
}

Array Pointer, Pointer dapat di array seperti tipe data yang lain dalam C++ integer. Sebagai contoh, untuk menyatakan sebuah array pi dari pointer sebanyak 10 buah data yang bertipe 10 integer, dapat dituliskan sebagai berikut :
Int *pil[10];
Untuk menentukan alamat dari variable integer disebut var ke elemen ketiga dari pointer array, dapat dituliskan sebagai berikut :
Int var;
Pi[2] =&var
Pernyantaan berikut memberi nilai var :
*pi[2]

Pointer dalam pointer, C++ memperbolehkan penggunaan pointer dalam pointer yang masing – masing bisa berisi data yang sama atau berbeda. Dalam kondisi pointer biasa atau pointer tunggal, diagramnya adalah sebagai berikut :
    
         Pointer                                      Variabel 
                addrass                       ------->                        value

                           

Untuk Pointer dalam Pointer, diagramnya adalah sebagai berikut :
       Pointer                         Pointer                        Variabel
        address      -------->       address         -------->         value

 
Adapun bentuk umum dari pernyataan variabel pointer dalam C++ adalah :
Type*variable name;
Dengan:
Type adalah tipe dasar pointer.
Variable name adalah nama variabel pointer
* adalah operator memori yang fungsinya untuk mengembalikan nilai variabel pada alamatnya yang ditentukan oleh operand.
Atau dideklarasikan sebagai berikut :
Tipe data * nama pointer;
Tipe data pointer mendefinisikan tipe dari obyek yang ditunjuk oleh pointer. Secara teknis, tipe apapun dari pointer dapat menunjukkan lokasi (dimanapun) dalam memori. Bahkan operasi pointer dapat dilaksanakan relatif terhadap tipe dasar apapun yang ditunjuk. Contoh, ketika kita mendeklarasikan pointer dengan tipe int*, kompiler akan menganggap alamat yang ditunjuk menyimpan nilai integer walaupun sebenarnya bukan    ( sebuah pointer int* selalu menganggap bahwa ia menunjuk ke sebuah obyek bertipe integer, tidak peduli isi sebenarnya). Oleh karena itu sebelum mendeklarasikan sebuah pointer, pastikan terlebih dahulu tipe obyek yang akan ditunjuk.
Keuntungan-keuntungan menggunakan pointer. Bermacam-macam keuntungan menggunakan pointer antara lain:
  • Pointer menyediakan direct access (akses langsung) ke setiap individu bytes di dalam memori. Menyebabkan data di dalam memori diakses lebih cepat dibanding variabel yang biasa. Pointer mempercepat jalannya eksekusi program.
  • Pointer menyediakan direct access (akses langsung) ke perangkat output, seperti contoh monitor. Pointer mempercepat program yang menggunakan grafik secara intensif
  •       Pointer menyediakan program untuk mengalokasikan memori secara dinamik, hanya kalau dibutuhkan, dengan bantuan operator 'new'. Dan juga menyediakan program untuk mengosongkan memori kalau sudah tidak lagi dibutuhkan. dapat dilakukan dengan menggunakan operator 'delete'.        

Aplikasi Pointer
     Beberapa contoh aplikasi yang menggunakan poiter antara lain sebagai berikut :


CONTOH PROGRAM POINTER :

//Program :pointer6. cpp
#include <iostream.h>
int main()
{
Int numbers[5];
Int *p;
p = numbers; *p = 10;
p++; *p =20;
p = &numbers[2];  *p = 30;
p = numbers + 3;  *p = 40;
p = numbers;  *(p+4) = 50;
for  (int n=0; n<5; n++)
          cout << numbers[n] << “, “;
return 0;
}
Output nya adalah 10,20,30,40,50

Tidak ada komentar:

Posting Komentar