slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Pertemuan 21 PowerPoint Presentation
Download Presentation
Pertemuan 21

Loading in 2 Seconds...

play fullscreen
1 / 18

Pertemuan 21 - PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on

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

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

PowerPoint Slideshow about 'Pertemuan 21' - overton


An Image/Link below is provided (as is) to download presentation

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
slide1

Pertemuan 21

POINTER

Bag.1

Triana Elizabeth, S.Kom

Dibuatoleh : Renni Angreni, S.Kom.

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

Misalkanpernyataan : po = &var;

Menugaskannilaialamatdarivariabelvarkedalamvariabelpo.

contoh
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
DEKLARASI POINTER
  • Suatuvariabel pointer dideklarasikansebagaiberikut :

tipeData* namaVariabel; atau

tipeData *namaVariabel;

  • Tipe data dapatberupasembarangtipe data sepertihalnyapadapendefinisianvariabel, dannamavariabeladalahnamavariabel pointer.
  • Contoh :

int *a;

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

int* nilai;

slide6

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.
slide7

intnilai;

int *pNilai;

nilai = 35;

pNilai = &nilai;

cout<<nilai<<endl;

cout<<pNilai<<endl;

cout<<*pNilai<<endl;

  • SetelahpernyataanpNilai = &nilai, makavariabelnilaidengan*pNilaimenjadisama.

(tidakbisalangsungpenugasanvariabelkevariabel pointer  pNilai = nilai; )

slide8

Perludiingatbahwa operator “ * “ padapernyataanint *pNilai;tidaksamadengan operator “ * “ padapernyataancout<<*pNilai<<endl;

  • Yang pertamaadalahdeklarasivariabel pointer bernamapNilai. Tanda “ * “ tersebuthanyamenyatakanbahwapNilaiadalahsuatu pointer.
  • Sedangkan yang keduatanda “ * “ adalah operator dereferensi yang menunjukkenilaidarivariabel yang alamatnyatersimpanoleh pointer pNilai.
  • Penggunaantanda “ * “ padasaatdeklarasi pointer dengandidalampernyataanharusdibedakan.
slide9

#include <iostream>

#include <conio.h>

using namespace std;

void main()

{

intangka = 2011;

intbilangan;

int *add;

inttes;

bilangan = angka;

add = &angka;

tes = *add;

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

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

cout<<"Pointer add = "<<add<<endl;

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

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

_getch();

}

inisialisasi pointer
INISIALISASI POINTER

Suatu pointer dapatlangsungdiisinilaisaatpendeklarasian. Caranya :

intangka;

int *add = &angka;

Pernyataaniniekivalendengan :

intangka;

int *add; add = &angka;

Dan BERBEDA dengan :

intangka;

int *add; *add = &angka;

pointer array
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.

slide13

Meskipunpernyataan

pArray = angka;

bolehdilakukan, tetapiperintah / pernyataan

angka = pArray; tidaklah valid.

Hal inikarenatidaksepertialamatpada pointer pArray, alamatpada array angkatidakdapatdiubah.

  • Suatu array dapatdipandangsebagaikonstanta pointer.
slide14

SetelahbarispArray = angka;maka :

Identifier angka[0] samadengan*pArray

Identifier angka[1] samadengan*(pArray+1)

Identifier angka[2] samadengan*(pArray+2)

  • Array pointer jugadapatdigeser. Misalkanmula-mulapArraymenunjukpadaangka[0], 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;

slide15

#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
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();

}

slide17

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.