Pointer

10
POINTER POINTER Oleh Achmad Solichin Assisten Labkom FTI Universitas Budi Luhur

description

Presentasi Algoritma dan Pemrograman dengan Bahasa C (Pointer). Dibuat oleh Achmad Solichin (http://achmatim.net)

Transcript of Pointer

Page 1: Pointer

POINTERPOINTEROleh Achmad Solichin

Assisten Labkom FTI Universitas Budi Luhur

Page 2: Pointer

POINTER ADALAHPOINTER ADALAHsuatu variabel yang berisi suatu variabel yang berisi alamat memori dari suatu alamat memori dari suatu variabel lain. Alamat ini variabel lain. Alamat ini merupakan lokasi dari merupakan lokasi dari obyek lain (biasanya obyek lain (biasanya

variabel lain) di dalam variabel lain) di dalam memori memori

Page 3: Pointer

OPERATOR dalam Pointer :OPERATOR dalam Pointer :

• Operator *– Operator UNARY yang

menghasilkan nilai variabel dari suatu variabel alamat

• Operator &– Operator UNARY yang

menghasilkan alamat dari suatu variabel

Page 4: Pointer

DEKLARASI POINTERDEKLARASI POINTER

• type *nama_pointer;

• Contoh :– int *px;– char *pstring;– float *pecah;– int *dodol;

Page 5: Pointer

POINTERPOINTER

Page 6: Pointer

POINTERPOINTER

Jalan Ciledug Raya No 95 Jakarta

RUMAHALAMAT

VARIABELBIASA

VARIABELPOINTER

A *pA

Page 7: Pointer

POINTERPOINTER

int a;int *pa;a = 10;pa = &a

a

pa

10

FFF4

Page 8: Pointer

#include “stdio.h”#include “stdio.h”#include “conio.h”#include “conio.h”void main()void main(){ int x, y;{ int x, y; /* x dan y bertipe int *//* x dan y bertipe int */int *px;int *px; /* px pointer yang menunjuk /* px pointer yang menunjuk objek */objek */clrscr();clrscr();x = 87;x = 87;px = &x;px = &x; /* px berisi alamat dari x *//* px berisi alamat dari x */y = *px;y = *px; /* y berisi nilai yang ditunjuk px *//* y berisi nilai yang ditunjuk px */printf(“Alamat x = %p\n”, &x);printf(“Alamat x = %p\n”, &x);printf(“Isi px = %p\n”, px);printf(“Isi px = %p\n”, px);printf(“Isi x = %i\n”, x);printf(“Isi x = %i\n”, x);printf(“Nilai yang ditunjuk oleh px = %i\n”, *px);printf(“Nilai yang ditunjuk oleh px = %i\n”, *px);printf(“Nilai y = %i\n”, y);printf(“Nilai y = %i\n”, y);getch();getch();}}

Page 9: Pointer

#include “stdio.h”#include “stdio.h”#include “conio.h”#include “conio.h”void main()void main(){ float *x1, *x2, y;{ float *x1, *x2, y;clrscr();clrscr();y = 13.45;y = 13.45;x1 = &y;x1 = &y; /* Alamat dari y disalin ke variabel /* Alamat dari y disalin ke variabel x1 */x1 */x2 = x1;x2 = x1; /* Isi variabel x1 disalin ke /* Isi variabel x1 disalin ke variabel x2 */variabel x2 */printf(“Nilai variabel y = %.2f ada di alamat %p\n”, printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x1);y, x1);printf(“Nilai variabel y = %.2f ada di alamat %p\n”, printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x2);y, x2);getch();getch();}}

Page 10: Pointer

#include “stdio.h”#include “stdio.h”#include “conio.h”#include “conio.h”void main()void main(){ int nilai[3], *penunjuk;{ int nilai[3], *penunjuk;clrscr();clrscr();nilai[0] = 125;nilai[0] = 125;nilai[1] = 345;nilai[1] = 345;nilai[2] = 750;nilai[2] = 750;penunjuk = &nilai[0];penunjuk = &nilai[0];printf(“Nilai %i ada di alamat memori %p\n”, printf(“Nilai %i ada di alamat memori %p\n”, *penunjuk, penunjuk);*penunjuk, penunjuk);printf(“Nilai %i ada di alamat memori %p\n”, printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+1), penunjuk+1);*(penunjuk+1), penunjuk+1);printf(“Nilai %i ada di alamat memori %p\n”, printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+2), penunjuk+2);*(penunjuk+2), penunjuk+2);getch();getch();}}