Pointer

 Assalamualaikum wr wb, pada kali ini saya akan membahas tentang Pointer. Jika kalian membaca postingan sebelumnya, saya memang sudah menggunakan kata Pointer ini tapi pasti sebagian dari kalian akan kebingungan dengan apa yang dimaksud dengan pointer?? :D 



Mungkin pertanyaan kalian yang menggantung itu akan saya coba jelaskan dan paparkan pada postingan kali ini! tentunya sebagai programmer bahasa C kalian perlu memahami Konsep pointer ini agar semakin lancar dalam membuat program!


Pointer

Pointer adalah sebuah variabel yang berisikan alamat memori (bukan nilai). Alamat memori sendiri merupakan larik yang berisikan alamat. Alamat ini dapat diisikan oleh data atau nilai ataupun dibiarkan kosong. Jika kalian masih pusing kalian dapat bayangkan sebuah loker :


Loker ini memiliki banyak laci, jika dianalogikan alamat memori adalah Letak dari laci itu dimana terlepas laci itu kosong atau tidak tapi selalu ada laci yang letaknya tetap disana. Begitulah konsep pointer dan data. Pointer merujuk kepada "letak laci" yang berarti alamat dari suatu variabel atau alamat memori dari suatu variabel sedangkan data adalah "isi" dari laci yang ada pada alamat tersebut. untuk mendeklarasikan pointer kalian dapat menggunakan cara berikut:
tipe_data * nama_variabel_pointer;

Perlu diingat bahwa pointer hanya akan menunjuk alamat yang menampung tipe data yang sama saja. misal ketika kita mendeklarasikan pointer dengan tipe intejer maka alamat memori yang dapat ditampilkan hanya untuk data intejer saja.
berikut contoh program sederhana untuk menampilkan alamat!



Seperti pada program diatas, variabel isi akan dimasukan alamat memorynya ke variabel Alamat. kemudian alamat memori ditampilkan dalam bentuk hexadesimal. 

Lalu bagimana jika kita hanya memiliki alamat dan ingin mengetahui apa isi dari alamat itu? jawabannya adalah Dereference Pointer. Dengan menggunakan fitur ini, kalian dapat mengetahui isi atau data apa yang disimpan pada alamat yang kalian ketahui! Menggunakannya pun cukup mudah dengan cara:

Nama_variabel = * Variabel_pointer.

Berikut contoh program sederhana untuk mengambil nilai atau isi data yang ada pada alamat yang ada pada pointer tersebut:



Variabel "bukti" mengambil nilai dari alamat memori yang disimpan oleh pointer "Alamat". variabel alamat yang awalnya menyimpan alamat memori untuk variabel "ISI" yang bernilai "10".

sederhananya konsep hubungan ini dapat digunakan dengan cara:

Pointer = &Variabel_nilai // untuk mengambil alamat memori pada variabel 

* Pointer = Variabel_nilai // Untuk mengambil nilai atau data pada alamat memori


Bagaimana? sudah cukup mengerti kan fungsi dari pointer sendiri? Pointer merupakan fitur yang cukup powerfull dalam bahasa c dan bisa tergolong andalannya karena kita dapat mengalokasikan alamat memori sebaik mungkin secara dinamis. Ini berarti kita dapat melakukan penyimpanan data pada memori komputer atau pengendali sesuai dengan keinginan kita dan seefisien mungkin.

Pointer pun memiliki hubungan yang cukup dekat dengan array, karena konsepnya yang mendekati array 2 dimensi. Namun pointer mengacu pada hardware itu sendiri dimana alamat memori yang tertera tetap keadaanya dan tidak bisa diubah ukurannya. sedangkan pada array sendiri kita dapat dengan bebas mengatur panjang dan lebar dari array yang hendak kita buat selamat tidak over.

Untuk mengakses nilai pada pointer kalian cukup menggunakan P, P+1, dst. Cukup serupa dengan Array dimana kalian perlu mengaksesnya dengan cara A[0], A[1], dst. Berikut contoh program penampilan nilai bilangan sesuai data pada array.


Berikut tampilan Programmnya:



Bagaimana? serupakan? karena konsepnya yang cukup serupa tentunya. Dengan ini kalian dapat menyimpan array virtual yang alamatnya dapat kalian ketahui!.  Tentunya ini akan dapat membantu kalian membuat program yang lebih efisien!


Mungkin Sekian postingan kali ini, Semoga bermanfaat! Terimakasih telah berkunjung! :D

Jika ada pertanyaan langsung saja ke kolom komentar!



                                                            


Komentar

Postingan populer dari blog ini

Komentar, Variabel, Konstanta, Tipe Data , dan Operator