Pertemuan 21

1 / 18

# Pertemuan 21 - PowerPoint PPT Presentation

Pertemuan 21. POINTER Bag.1. Triana Elizabeth, S.Kom. Dibuat oleh : Renni Angreni, S.Kom. MEMORY.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Pertemuan 21' - overton

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Pertemuan 21

POINTER

Bag.1

Triana Elizabeth, S.Kom

Dibuatoleh : Renni Angreni, S.Kom.

MEMORY
• Memory merupakanruangpenyimpananinformasididalamkomputer. Memory dalamkomputerdibagikedalamsatuan-satuankecil yang disebut Byte. Masing-masing byte pada memory memilikialamattersendiri.
• Komputermengakses (bacaatautulis) memory denganmenggunakanalamattersebut.
POINTER
• Pointer sepertivariabel, menyimpansuatunilai. Hanyasajanilai yang disimpandidalam pointer adalahberupaalamatmemori.
• Pointer sesungguhnyaberisialamatdarisuatu data, bukan data sebagaimanapadavariabel.
• Untukmelihatalamatmemorisuatuvariabel, kitadapatmenggunakan operator referensi, yaitu : “ & “

Misalkanpernyataan : po = &var;

Contoh

#include <iostream>

#include <conio.h>

#include <string>

using namespace std;

void main()

{

intangka = 34500;

float bilangan = 98.21;

string kabar = "Hello World!";

cout<<"Isidarivariabel"<<endl;

cout<<"Variabelangka = "<<angka<<endl;

cout<<"Variabel bilangan = "<<bilangan<<endl;

cout<<"Variabelkabar = "<<kabar<<endl<<endl;

cout<<"Alamatdarivariabel"<<endl;

cout<<"Alamatvariabelangka = "<<&angka<<endl;

cout<<"Alamat variabel bilangan = "<<&bilangan<<endl;

cout<<"Alamatvariabelkabar = "<<&kabar<<endl;

_getch();

}

DEKLARASI POINTER
• Suatuvariabel pointer dideklarasikansebagaiberikut :

tipeData* namaVariabel; atau

tipeData *namaVariabel;

• Contoh :

int *a;

float *b, *c;// bukanfloat *b, c;

int* nilai;

Agar pointer menunjukkevariabel lain, mula-mulaharusdiisidenganalamat dari variabel yang hendak ditunjuk.

• Contoh :

intnilai; //deklarasivariabelbiasa

int *pNilai;//deklarasi variabel pointer

• Pointer pNilaidiatur agar menunjukkevariabelnilai dengan cara :

pNilai = &nilai;

• Untuk mengakses nilai yang berada pada alamat yang ditunjuk oleh pointer (jadi variabel pointer = variabel), kita menggunakan operator " * “ pada variabel pointer.

intnilai;

int *pNilai;

nilai = 35;

pNilai = &nilai;

cout<<nilai<<endl;

cout<<pNilai<<endl;

cout<<*pNilai<<endl;

(tidakbisalangsungpenugasanvariabelkevariabel pointer  pNilai = nilai; )

• Sedangkan yang keduatanda “ * “ adalah operator dereferensi yang menunjukkenilaidarivariabel yang alamatnyatersimpanoleh pointer pNilai.
• Penggunaantanda “ * “ padasaatdeklarasi pointer dengandidalampernyataanharusdibedakan.

#include <iostream>

#include <conio.h>

using namespace std;

void main()

{

intangka = 2011;

intbilangan;

inttes;

bilangan = angka;

cout<<"Variabelangka = "<<angka<<endl;

cout<<"Variabel bilangan = "<<bilangan<<endl;

cout<<"Variabel tes = "<<tes<<endl;

cout<<"Alamatvariabel tes = "<<&tes;

_getch();

}

INISIALISASI POINTER

Suatu pointer dapatlangsungdiisinilaisaatpendeklarasian. Caranya :

intangka;

Pernyataaniniekivalendengan :

intangka;

Dan BERBEDA dengan :

intangka;

POINTER & ARRAY
• Pointer dan array mempunyaihubungan yang dekat. Secara internal, array jugamenyatakanalamat. Misalkanterdapatsuatu array dansuatu pointer :

intangka[5]; int *pArray;

• Maka agar pointer pArraymenunjukke array angka, pernyataan yang valid adalah :

pArray = angka;

• Sebaliknya, pernyataan

pArray = &angka;

menjaditidak valid karenanama array sebenarnyasudahmenyatakanalamat. Olehkarenaitutanda & tidakdiperlukanlagi.

Meskipunpernyataan

pArray = angka;

bolehdilakukan, tetapiperintah / pernyataan

angka = pArray; tidaklah valid.

• Suatu array dapatdipandangsebagaikonstanta pointer.

SetelahbarispArray = angka;maka :

intangka[5] = {1,2,3,4,5};

int *pArray = angka;

cout<<*pArray<<endl; pArray++;

cout<<*pArray<<endl; pArray+=2;

cout<<*pArray<<endl; pArray=&angka[2];

cout<<*pArray<<endl;

#include <iostream>

#include <conio.h>

using namespace std;

void main()

{

intangka[5] = {1,2,3,4,5};

int *pArray = angka;

pArray = angka;

cout<<angka<<endl;

cout<<pArray<<endl;

cout<<*pArray<<endl; pArray++;

cout<<*pArray<<endl; pArray+=2;

cout<<*pArray<<endl; pArray=&angka[2];

cout<<*pArray<<endl;

_getch();

}

LATIHAN
• Terka output daripotongan program berikut :

void main ()

{

intabc = 5, def = 15;

int *p1, *p2;

p1 = &abc;

p2 = &def;

*p1 = 10;

*p2 = *p1;

p1 = p2;

*p1 = 20;

cout<<"isi abc : "<<abc<<endl;

cout<<"isi def : "<<def;

_getch();

}

Buatlahsebuah program C++ untukmenampilkanalamatdan yang ditunjukdarivariabel-variabeldibawahini :

intharga = 35000;

double diskon = 3.50;

float desimal = 24.57897;

• Buatlahsebuah program C++ untukmenampilkanseluruhelemendari array :

intbilangan[10] = {10,20,30,40,50,60,70,80,90,100};

denganmenggunakan pointer.