Lompat ke konten Lompat ke sidebar Lompat ke footer

Pengenalan Pointer Bahasa C Serta Penjelasannya

Pointer merupakan variabel yang menyimpan alamat ruang memori dari suatu variabel atau menyimpan sebuah lokasi memori dari variabel lainnya.

Pengenalan Pointer Bahasa C dan Penjelasannya
Pengenalan Pointer Bahasa C

Sebelum memahami lebih dalam materi tentang Pengenalan Pointer Bahasa C Serta Penjelasannya, terlebih dahulu pelajari materi tentang: Fungsi Waktu Bahasa C Beserta Penjelasannya [klik], Fungsi TOLOWER pada Bahasa C [klik], dan Fungsi Pangkat pada Bahasa C [klik].

Sintak:
  • datatype *var_name; //Deklarsi umum pointer.
  • int *ptr; // pointer "ptr" yang menampung nilai alamat dari variabel integer atau menampung alamat memori dari nilai yang dapat diakses sebagai nilai integer sepanjang penggunaan variabel "ptr".

Penggunaan Pointer
Untuk menggunakan pointer pada bahasa C, maka harus dipahami penggunaan dua jenis operator berikut:
  • Operator '&': Untuk mengakses alamat ari sebuah variabel ke sebuah pointer, maka digunakan operator unary dan operator '&' (ampersand) yang akan mengembalikan nilai alamat dari suatu variabel.
  • Operator '*': Satu lagi contoh operator unary adalah '*' (Asterisk) yang digunakan untuk dua hal lain.
    • Untuk mendeklarasikan sebuah variabel pointer: ketika sebuah pointer dideklarasikan pada bahasa C, maka harus digunakan operator * sebelum nama pointer tersebut dideklarasikan.
    • Untuk mengakses nilai yang disimpan pada alamat suatu variabel: digunakan operator unary '*' yang akan mengembalikan nilai dari lokasi variabel pada alamat tertentu dari nilai operand, atau disebut juga sebagai proses dereferensi.

Contoh: &x akan mengembalikan nilai alamat dari variabel x.

// Nilai output dari program

// dapat berbeda-beda ketika

// dijalankan. Program akan

// mencetak alamat dari sebuah

// variabel dan sebuah

// variabel juga dapat

// menandai alamat berbdai

// pada progran yang berbeda

// pula ketika program

// tersebut dijalankan.

#include <stdio.h>


int main()

{

int x;


// Mencetak alamat dari

// variabel x.

printf("%p", &x);


return 0;

}



Contoh:

// Program Bahasa C untuk

// mendemonstrasikan proses

// deklarasi dari variabel

// pointer.

#include <stdio.h>


int main()

{


int x = 10;


// 1) Karena terdapat operator

// '*' pada bagian deklarasi,

// maka ptr menjadi sebuah

// variabel pointer atau

// sebuah variabel yang dapat

// digunakan untuk menyimpan

// alamat memori dari variabel

// lainnya.


// 2) Karena terdapat tipe

// data int sebelum operator

// '*', maka ptr adalah

// pointer ke variabel dengan

// tipe data integer.

int *ptr;


// Operator '&' diletakkan

// sebelum variabel 'x' yang

// digunakan untuk mendapatkan

// nilai alamt dari variabel x

// yang ditandai ke ptr.

ptr = &x;


return 0;

}


Ekspresi Pointer dan Aritmatika Pointer
Sebuah kumpulan terbatas dari operasi aritmatika dapat dilakukan dengan menggunakan pointer pada bahasa C, yakni sebagai berikut:
  • Proses inkrementasi pointer dengan menggunakan operator '++'.
  • Proses dekrementasi pointer dengan menggunakan operator '--'.
  • Penambahan nilai integer dari sebuah pointer menggunakan operator '+' atau operator '+='.
  • Pengurangan nilai integer dari sebuah pointer menggunakan operator '–' atau '-='.

Aritmatika pointer merupakan sesuatu yang tidak akan memiliki makna apapun, melainkan jika digunakan pada variabel tipe array.

Catatan: Pointer merupakan variabel yang mengandung nilai alamat dari variabel lainnya. Menambangkan dua nilai lokasi variabel ke pointer bukan merupakan sesuatu yang sifatnya logis, karena tidak diketahui nilai alamat mana yang harus ditunjuk oleh pointer. Namun demikian, jika dilakukan pengurangan dua alamat dari variabel yang ditunjuk pointer, maka hal tersebut memungkinkan untuk dilakukan proses penghitungan offset antara dua alamat yang dikurangi tersebut.

Contoh:

// Program Bahasa C untuk

// mengilustrasikan aritmatika

// pointer.

#include <bits/stdc++.h>


// Driver program

int main()

{


// Deklarasi Array

int v[3] = {10, 100, 200};


// Deklarasi variabel pointer

int *ptr;


// Menandai alamat dari v[0]

// ke ptr

ptr = v;


for (int i = 0; i < 3; i++)

{

printf("Value of *ptr = %d\n", *ptr);


printf("Value of ptr = %p\n\n", ptr);


// Inkrementasi pointer ptr

// dengan nilai 1

ptr++;


}


}

Output:
Value of *ptr = 10
Value of ptr = 0x7ffcae30c710

Value of *ptr = 100
Value of ptr = 0x7ffcae30c714
Value of *ptr = 200
Value of ptr = 0x7ffcae30c718


Nama Array Sebagai Pointer
Nama pada array juga bertindak sebagai suatu konstanta pointer, dimana nilai dari konstanta pointer adalah alamat dari elemen pertama pada array.

Jika pointer ptr dikirim ke sebuah fungsi sebagai sebuah argumen, maka array val dapat dilakukan akses dengan cara yang sama pula seperti pada pointer ptr.

Pointer dan Array Multidimensi
Jika notasi pointer digunakan untuk array numerik dua dimensi, maka bentuk deklarasinya adalah berikut:

int nums[2][3] = { {16, 18, 20}, {25, 26, 27} };

Secara umum, nums[i][j] adalah sama dengan *(*(nums+i)+j).

Maka aritmatika pointer-nya adalah sebagai berikut:
  • Notasi pointer *(*nums) adalah notasi dari array nums[0][0] dengan nilai array adalah 16.
  • Notasi pointer *(*nums + 1) adalah notasi dari array nums[0][1] dengan nilai array adalah 18.
  • Notasi pointer *(*nums + 2) adalah notasi dari array nums[0][2] dengan nilai array adalah 20.
  • Notasi pointer *(*(nums + 1)) adalah notasi dari array nums[1][0] dengan nilai array adalah 25.
  • Notasi pointer *(*(nums + 1) + 1) adalah notasi dari array nums[1][1] dengan nilai array 26.
  • Notasi pointer *(*(nums + 1) + 2) adalah notasi dari array nums[1][2] dengan nilai array 27.

Artikel ini didedikasikan kepada: Muhammad Muhlisin, Nadia Yuliana, Novita Arum Sari, Rena Kumala Sari, dan Riatul Khoeriyah.

6 komentar untuk "Pengenalan Pointer Bahasa C Serta Penjelasannya"

  1. Kenapa pointer digunakan pada bahasa C?

    BalasHapus
    Balasan
    1. Pointer pada bahasa C digunakan untuk mengakses alamat memori dari suatu variabel yang disimpan program.

      Hapus
    2. Pointer bahasa C digunakan untuk mengakses suatu nilai yang tidak bisa langsung diakses karena suatu batasan tertentu seperti variabel static, dan karena hal tersebut maka digunakan pointer.

      Hapus
    3. Pointer itu adalah penunjuk nilai alamat dari suatu variabel.

      Hapus
  2. Kenapa pointer yang saya buat mengalami error?

    BalasHapus
    Balasan
    1. Error hanya bisa terjadi dalam dua kondisi, pertama kode program yang digunakan salah, atau typoo, dan yang kedua adalah nilai input yang dimasukkan salah.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -