Langsung ke konten utama

Pointer Di C++


Pendeklarasiann sebuah variabel dalam sebuah program yang hendak di ciptakan tentu bukanlah sesuatu yang aneh lagi, namun apa pernah anda berfikir apa yang terjadi pada variabel tersebut? Di manakah dia berada ketika program sedang tidak membutuhkannya? Setiap variabel yang di ciptakan dalam sebuah program nantinya akan tersimpan di dalam memori, jadi bisa di bilang setiap variabel memiliki lokasinya tersendiri di dalam memori!


Setiap lokasi sudah pasti memiliki sebuah alamat, begitu juga lokasi dari variabel yang anda deklarasikan! Biasanya alamat itu berupa bilangan hexadesimal misalnya 0x22ff69, Apa Anda tahu berapa ukuran variabel yang bertipe int? ya, benar 4 bytes maka sebagai contoh ia akan menempati alamat 0x000001 pada lokasi 0x000001, 0x000002, 0x000003 dan 0x000004 di memory. Apabila setelah variabel tersebut anda mendeklarasikan sebuat variabel bertipe "shotr int" dengan ukuran 2 bytes dimanakah alamat dan lokasi variabel itu? Tentu saja variabel itu beralamat di  0x000005 dan berlokasi di 0x0000005 dan 0x0000006. Untuk lebih jelasnya bisa Anda lihat pada gambar di bawah ini!



Barusan saya telah menjelaskan mengenai alamat dan lokasi suatu variabel, lalu bagaimana kita bisa mengetahui alamat suatu variabel yang telah kita deklaraasikan! Jawabannya sangatllah sederhana kita bisa menggunakan operator dereference(&) yang terdapat pada C++. Operator ini akan menyimpan alamat dari sebuah variabel! Mari kita lihat contoh program berikut yang menggunakan operator dereference(&).


#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
     int a = 10;
   
     cout << "Nilai dari variabel a      : " <<  a << endl;
     cout << "Alamat dari variabel a  : " << &a << endl;

     system("Pause");
     return 0;
}

Setelah anda ketik ulang atau copas kode di atas coba compile dan jalankan maka hasilnya akan nampak seperti gambar di bawah ini!














Terlihat pada contoh program di atas saya hanya perlu menambahkan operatot direference(&) di belakang variabel yang ingin saya ketahui alamatnya, sehingga program nantinya akan menampilkan alamat dari variebl tersebut! Bukan nilainya! Tunggu dulu, sampai sejauh ini tidak tidak ada penjelasan mengenai pointer! Ya, memang menurut saya untuk memahami apa yang di maksud dengan pointer maka sebaiknya Anda juga harus memiliki pengetahuan yang cupuk mengenai pengalamatan variabel dalam memori. Kini kita lanjutkan pembahasan mengenai Pointer! Pointer bisa di bilang sebagai variabel istimewa! Kenapa saya katakan seperti itu? Karena variabel jenis ini khusus di gunakan untuk menyimpan alamat dari variabel lainnya.

Anda bisa bayangkan bahwa variabel biasa itu seperti sebuah kotak kosong yang bisa di isi dengan sesuatu (Asal tidak melebihi kapasitasnya), sedangkan Pointer bisa di ibaratkan seperti selembar kertas yang di gunakan untuk menyimpan/mencatat sebuah alamat! Karena pointer merupakan sebuah variabel maka ia juga memiliki jumlah space memory. Keduanya sama-sama memiliki kemampuan untuk menampung, namun apa yang tampung adalah dua hal yang berebda. Untuk mendeklarasikan sebuah variabel agar menjadi Pointer maka kita akan menggunakan Operator Reference(*), cara penulisannya mirip dengan operator Dereference(&) hampir mirip maksud saya! Seperti biasa, untuk menambah pemahaman mengenai Pointer bisa di lihat pada contoh program berikut!

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
   int x = 24;
   int *y;
   y = &x;

  cout << "Nilai variabel x   : " << x << endl;
  cout << "Alamat si x         : " << &x << endl;
  cout << "Nilai Variabel y  : " << y << endl;

  system("pause");
  return 0;
}


Hasil










Bisa di lihat pada potongan kode di atas di mana saya mendeklarasikan variabel y sebagai Pointer, yaitu dengan menambahkan operator Reference(*). Kini variabel y akan mampu menyimpan alamat dari variabel x, ingat variabel yang tidak di deklarasikan sebagai Pointer maka variabel itu tidak bisa di gunakan untuk menyimpan sebuah alamat. Sebagian dari Anda mungkin bertanya-tanya untuk apa sebenarnya kegunaan Pointer ini? Toh ia hanya bisa di gunakan untuk menyimpan alamat!


Maaf, namun sayangnya penjelasan mengenai kegunaan Pointer tidak bisa di jelaskan pada artikel kali ini, mungkin akan saya jelaskan pada artiketl ke 3 yang merupakan lanjutan dari artikel ini. Kenapa di artikel ke 3? Karena pada artikel selanjutnya yaitu artikel ke 2 akan di bahas mengenai error yang biasa saya temui saat mempelajari materi Pointer ini.







Komentar

Postingan populer dari blog ini

Menghapus Transaksi Pada Accurate

          Anda dan Saya adalah manusia biasa, jika Anda adalah orang yang normal tentu Anda pernah melakukan kesalahan, misal kesalahan penginputan transaksi-transaksi pada Sistem Accounting macam Accurate, jika tidak! maka status Anda sebagai seorang manusia haruslah di pertanyakanan! Namun, tentu saja Pak Bos/Ibu Bos tidak akan perduli dengan alasan apapun yang Anda gunakan untuk menjelaskan penyebab atas kesalahan tersebut, yang penting "Laporan tahun ini menunjukan bahwa perusahaan memperoleh Laba".

Melihat History Akun Pada Accurate

          History Account merupakan kemampuan Software Accounting Accurate yang dapat di gunakan untuk melihat Riwayat suatu Akun berdasarkan transaksi yang telah di input. Misal pada akun penjualan, jika anda menginputkan beberapa transaksi penjualan dengan tanggal yang berbeda. Maka dengan Bantuan History, anda dapat melihat jelas semua transaksi yang berkaitan atau berefek perubahan pada akun penjualan tersebut.

Rigidbody Pada Unity 3D

     Rigidbody adalah sebuah fitur pada Unity 3D yang mampu memberikan efek gravitasi pada suata objek.    Sebagai contoh sebuah bola yang di letakan pada kordinat Y yang lebih tinggi dari objek Terain, maka dengan rigibody ini bola akan jatuh menimpa train.