0% menganggap dokumen ini bermanfaat (0 suara)
57 tayangan16 halaman

Panduan Lengkap tentang Pointer C

Modul ini membahas tentang pointer, yaitu variabel yang menyimpan alamat memori variabel lain. Pointer digunakan untuk mengakses nilai variabel yang alamatnya ditunjuk oleh pointer tersebut. Modul ini juga menjelaskan operator pointer, contoh penggunaan pointer, dan operasi-operasi yang dapat dilakukan pada pointer seperti penugasan, aritmatika, dan logika.

Diunggah oleh

Faisal Saddad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
57 tayangan16 halaman

Panduan Lengkap tentang Pointer C

Modul ini membahas tentang pointer, yaitu variabel yang menyimpan alamat memori variabel lain. Pointer digunakan untuk mengakses nilai variabel yang alamatnya ditunjuk oleh pointer tersebut. Modul ini juga menjelaskan operator pointer, contoh penggunaan pointer, dan operasi-operasi yang dapat dilakukan pada pointer seperti penugasan, aritmatika, dan logika.

Diunggah oleh

Faisal Saddad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd

MODUL X

POINTER
Definisi Pointer
Pointer (variabel penunjuk) adalah suatu variabel yang
berisi alamat memori dari suatu variabel lain.
Suatu pointer bukan berisi dengan suatu nilai data
seperti halnya suatu variabel biasa, variabel pointer berisi
suatu alamat. Alamat ini merupakan lokasi dari obyek lain
(biasanya variabel lain) di dalam memori.

Operator Pointer ada dua, yaitu :


1. Operator &
Operator & bersifat unary (hanya memerlukan satu operand saja)
Operator & menghasilkan alamat dari operandnya.
2. Operator *
Operator * bersifat unary (hanya memerlukan satu operand saja).
Operator * menghasilkan nilai yang berada pada sebuah alamat.
Contoh#1 Penggunaan Pointer

#include<stdio.h>
#include<conio.h>
main()
{
int angka=10;
int *p;
p=&angkat;
clrscr();
printf(”Nilai Varibel Angka, yaitu : %i\n",*p);
printf(”Varibel Angka berada pada alamat, yaitu : %x\
n”,&angka);
getch();
}
Keterangan Program
Deklarasi awal integer angka diberi nilai 10.
Deklarasi pointer p (*p)
p=&angka; artinya kita mengassign atau menunjuk alamat
dari variabel angka. Dalam bahasa C,  simbol &
mempunyai arti address of.

Untuk mencetak isi dari *p yang mana sudah menunjuk ke


alamat variabel angka, maka kita dapat melakukan printf
*p;

Hasil dari printf *p adalah 10. Karena, diatas sudah


menunjuk alamat dari variabel angka.
Contoh#2 Penggunaan Pointer

#include<stdio.h>
#include<conio.h>
main(){
char *Alamat_X,X,Y,Z;
X='M';
Alamat_X=&X;
Y=X;
Z=*Alamat_X;
clrscr();
printf("Nilai variabel X adalah %c\n",X);
printf("Nilai variabel Y adalah %c\n",Y);
printf("Nilai variabel Z adalah %c\n",Z);
printf("Nilai variabel X berada pada alamat %x\n",Alamat_X);
getch();
}
Deklarasi Pointer
Bentuk umum deklarasi pointer adalah:
tipe *nama_variabel_pointer;

Deklarasi variabel pointer seperti halnya deklarasi variabel


lainnya, hanya ditambahkan tanda * pada nama variabel.
Contoh: int *b

Untuk mendapatkan alamat memori pointer (address of)


maka perintah yang digunakan adalah menambahkan tanda
& didepan variabel. Contoh: &b

Untuk mendapatkan isi atau nilai dari variabel pointer


maka variabel yang digunakan cukup nama variabelnya
saja. Contoh: b
Untuk mendapatkan isi atau nilai dari alamat yang terdapat pada isi
pointer maka perintah yang digunakan adalah menambahkan tanda *
didepan variabel. Contoh: *b

Analogi Pointer dan Address dalam bentuk tabel bisa digambarkan


seperti ini :

Variabel i j
Value 2 7
Address ffd3 ffd2

Address diatas hanya contoh saja, pada dasarnya, nilai dari address
pasti akan selalu berbeda-beda setiap runtime dan setiap komputer
karena itu merupakan hasil generate dari memory masing-masing.
Untuk mengetahui address dari variabel kita dapat melakukan output
dengan simbol dan (&) seperti : printf(“%x”, &angka); format
specifier %x untuk menampilkannya dalam bilangan heksadesimal.
Input Data Terformat

Fungsi yang digunakan adalah scanf( ).


Operasi Pointer

1. Operasi Pengerjaan (Penugasan)


Suatu variable pointer seperti halnya variable yang lain,
juga dapat mengalami operasi pengerjaan. Nilai dari suatu
variabel pointer dapat dipindahkan/disalin ke variabel
pointer yang lainnya.
Contoh Operasi Pengerjaan Pada Pointer

#include<stdio.h>
#include<conio.h>

main(){
float nilai, *X1,*X2;
nilai = 23.99;
X1=&nilai;
X2=X1;
clrscr();

printf("nilai variabel nilai ada di alamat memori %x\n",X1);


printf("nilai variabel nilai ada di alamat memori %p\n",X2);
getchar();
}
Operasi Pointer
2. Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika
dengan nilai integer saja. Operasi yang biasa dilakukan adalah
operasi penambahan dan pengurangan. Operasi penambahan
pointer dengan suatu nilai integer merupakan suatu peningkatan
nilai pointer yang menunjukkan lokasi nilai data berikutnya (index
selanjutnya) dalam memori. Begitu juga operasi pengurangan.

Misalnya, variabel pointer X menunjukkan alamat memori 1000,


maka operasi X+1 akan menunjukkan alamat 1000+sizeof(X)
Jika X merupakan variabel pointer bertipe int, maka operasi X+1
akan menunjukkan alamat 1002.
Jika X bertipe float, maka operasi X+1 akan menunjukkan alamat
1004.
Operasi Pointer

Hubungan operasi X+1, X+2, dan seterusnya dengan lokasi


memori untuk tipe variabel pointer int dan float, tampak
sebagai berikut.
Contoh Operasi Aritmatika Pointer
#include<stdio.h>
#include<conio.h>
main(){
int nilai[3],*point;
nilai[0] = 23;
nilai[1] = 99;
nilai[2] = 27;
point = &nilai[0];
printf("nilai %d ada di alamat memori %p\n",*point,point);
printf("nilai %d ada di alamat memori %p\n",*(point+1),point+1);
printf("nilai %d ada di alamat memori %p\n",*(point+2),point+2);
getchar();
}
Ket : Nilai adalah array bilangan integer 1 dimensi, ada 3 elemen :
Nilai(0), Nilai(1) dan nilai(2)
Operasi Pointer
3. Operasi Logika
Suatu variabel pointer juga dapat dikenai operasi logika.
Contoh Operasi Logika pada Pointer

#include “stdio.h”
#include “conio.h”
main(){
int a = 100, b = 200, *pa, *pb;
clrscr();
pa = &a;
pb = &b;
if(*pa < *pb)
printf(“1. pa menunjuk ke memori lebih rendah dari pb\n”);
if(*pa == *pb)
printf(“2. pa menunjuk ke memori yang sama dengan pb\n”);
if(*pa > *pb)
printf(“3. pa menunjuk ke memori lebih tinggi dari pb\n”);
getch();
}
Contoh Pointer String

#include “stdio.h”
#include “conio.h”
char *nama1 = “SPIDERMAN”;
char *nama2 = “GATOTKACA”;
main(){
char namax;
clrscr();
printf(“SEMULA : \n”);
printf(“Saya suka >> %s\n”, nama1);
printf(“Tapi saya juga suka >> %s\n”, nama2);
/* Penukaran string yang ditunjuk oleh pointer nama1 dan nama2 */
printf(“\nSEKARANG : \n”);
printf(“Saya suka >> %s\n”, nama2);
printf(“Dan saya juga masih suka >> %s\n”, nama1);
getch();
}
Contoh Pointer Array

#include <stdio.h>
#include <conio.h>
main()
{ static int tgl_lahir[] = { 13,9,1982 };
int *ptgl;
ptgl = tgl_lahir; /* ptgl berisi alamat array */
clrscr();
printf("Diakses dengan pointer ");
printf("Tanggal = %i\n", *ptgl);
printf("Bulan = %i\n", *(ptgl + 1));
printf("Tahun = %i\n", *(ptgl + 2));
printf("\nDiakses dengan array biasa\n");
printf("Tanggal = %i\n", tgl_lahir[0]);
printf("Bulan = %i\n", tgl_lahir[1]);
printf("Tahun = %i\n", tgl_lahir[2]);
getch();
}

Anda mungkin juga menyukai