Sebelum membuat linked list dalam bahasa C atau C++, anda harus memahami konsep pointer. Apakah itu pointer? Pointer adalah suatu variabel yang berisi alamat memory dari variabel lain. Konsep pointer secara sempurna didukung oleh bahasa pemrograman C/C++.
Perhatikan gambar di atas, ketika ketika berbicara variabel maka ada 3 hal yang perlu anda pahami:
- Nama variabel : Pada contoh di atas, beridentitas x yang bertipe integer (lihat baris ke-5 kode program). Tipe integer memerlukan ruangan di memory sebesar 4 byte. Variable x ini diibaratkan sebagai sebuah rumah dengan ukuran tipe tertentu
- Data : Variabel x diisi data bernilai 50. Data diibaratkan penghuni rumah.
- Alamat : Posisi data pada memory RAM di komputer anda yang pada gambar di atas beralamat di 8012, diibaratkan rumah, pasti sebuah rumah mempunyai identitas seperti alamat, lengkap, kode post berserta kota-nya.
- baris ke-5, x dideklarasikan bertipe integer, sekaligus diisi nilainya 50
- baris ke-6, untuk mencetak x, ketikan x.
- baris ke-7, untuk mengetahui lokasi alamat x di memory, ketikan &x (tanda & sebelum variabel)
- baris ke-9, y dideklarasikan bertipe pointer yang menyimpan alamat memory dari variabel bertipe integer.
- baris ke-9, y = &x adalah perintah untuk menyimpan lokasi alamat memory x di variable pointer y.
- baris ke-9, *y = 200. Data pada alamat memory yang ditunjuk pointer y, nilainya diganti 200. Makin bingung kan? Maksudnya y tadikan menunjuk alamat memory variabel x. Nah variable x itu nilainya bisa diganti dengan menggunakan mengisi *y dengan nilai yg dikehendaki. Inilah hal unik, spesial sekaligus membingungkan dalam pemrograman pointer sehingga banyak bahasa pemrograman lainnya menghilangkan fitur ini.
- baris ke-13, saat nilai x dicetak ulang, dan nilai berubah = 200,. Hal ini karena data pada var x bisa juga diganti langsung tidak menggunakan var x, tetapi menggunakan var pointer *y.
- baris ke-14, nilai y = alamat x. (perhatikan hasil running 0 x 22FF8C)
- baris ke-15, sedangkan y sendiri juga mempunyai alamat. (perhatikan hasil running pada gambar paling bawah).
Tidak ada komentar:
Posting Komentar