11. POINTER


POINTER 

Pointer adalah suatu variabel yang berisi alamat memori sebagai nilainya.

Merupakan variabel level rendah yang dapat digunakan untuk menunjuk nilai integer, character, float, double, atau single dan tipe-tipe data lain yang didukung oleh bahasa pemrograman.

Bersifat dinamis dan lebih fleksibel.

Variabel pointer yang tidak menunjuk pada nilai apapun berarti memiliki nilai NULL, disebut sebagai dangling pointer karena nilainya tidak diinisialisasi dan tidak dapat diprediksi.

Variabel pointer berisi alamat dari suatu obyek lain.

Sebagai contoh, px adalah variabel pointer dan x adalah variabel yang ditunjuk oleh px.  Kalau x berada pada alamat memori (alamat awal) 100, maka px akan berisi 100.


FUNGSI POINTER

Meningkatkan kinerja untuk operasi yang dilakukan secara berulang, karena variabel pointer bersifat dinamis (dapat diubah-ubah lokasi penyimpannya dalam memory).

Pada variabel biasa kita tidak perlu tahu alamat memory dari variabel tersebut. Untuk mengakses hanya perlu nama variabel tersebut. Tapi untuk struktur data dinamis (linked list, tree dsb) hal tersebut tidak bisa.

Penggunaan pointer yang tepat dapat mempercepat sebuah proses secara signifikan.

Pemindahan data yang besar dari sebuah variabel.


OPERATOR ALAMAT

Setiap variabel yang dideklarasikan, disimpan dalam sebuah lokasi memori dan pengguna biasanya tidak mengetahui di alamat mana data tersebut disimpan.

Dilambangkan dengan simbol “&”.


OPERATOR REFERENCE

Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjuk oleh variabel pointer


DEREFERENCING POINTER

Adalah mengambil nilai yang ditunjuk oleh sebuah variabel pointer .

Untuk melakukan dereferencing pointer, kita harus menggunakan simbol *. Bila p adalah pointer, maka *p adalah nilai yang ditunjuk oleh p.


OPERASI POINTER

Operasi Penugasan

Operasi Aritmatika

Operasi Logika


OPERASI PENUGASAN

Nilai dari suatu variabel pointer dapat disalin ke variabel pointer yang lain.

Contoh:

                                y = 65;

                                x1 = &y;

                                X2 = x1;


OPERASI ARITMATIKA

Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja.

Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori.

Hanya 4 operator aritmatika dapat digunakan pada pointer, yaitu ++, ==, +, dan -.

Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.


OPERASI LOGIKA

Atau disebut operasi perbandingan.

Pointer dapat dibandingkan dengan menggunakan operator hubungan, seperti !=, ==, <, dan >.

Contoh:

                    {

                                int num[4];

                                int *start, *end;

                                start = num;

                                end = &num[3];

                                while (start != end)

        }    


POINTER DAN ARRAY

Array secara internal akan diterjemahkan dalam bentuk pointer.

Deklarasi variabel:

                                int tgl_lahir[3] = { 01, 09, 64 };

                                int *ptgl;

Kemudian diberi instruksi:

ptgl = &tgl_lahir[0];

    maka ptgl akan berisi alamat dari elemen array tgl_lahir yang berindeks nol.

Instruksi di atas bisa juga ditulis menjadi:

     ptgl = tgl_lahir;

   

Nama array tanpa tanda kurung menyatakan alamat awal dari array.


POINTER DAN STRING

Pointer juga dapat digunakan untuk mendeklarasikan variabel string.

Contoh:

        char *pkota = “SEMARANG”;

     Hampir sama dengan:

        char kota[] = “SEMARANG”;

     Tetapi sebenarnya tidak tepat sama.

     pkota adalah pointer (menyatakan alamat) yang menunjuk

     ke string “SEMARANG”, kota adalah array (array

     menyatakan alamat yang konstan, tak dapat diubah).

 

Terimakasih telah membaca, Semoga bermanfaat ~

 

Komentar

Postingan populer dari blog ini

8.GRAPH (GRAF)

PENGENALAN STRUKTUR DATA