1 / 18

Pertemuan 21

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

overton
Télécharger la présentation

Pertemuan 21

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pertemuan 21 POINTER Bag.1 Triana Elizabeth, S.Kom Dibuatoleh : Renni Angreni, S.Kom.

  2. MEMORY • Memory merupakanruangpenyimpananinformasididalamkomputer. Memory dalamkomputerdibagikedalamsatuan-satuankecil yang disebut Byte. Masing-masing byte pada memory memilikialamattersendiri. • Komputermengakses (bacaatautulis) memory denganmenggunakanalamattersebut.

  3. POINTER • Pointer sepertivariabel, menyimpansuatunilai. Hanyasajanilai yang disimpandidalam pointer adalahberupaalamatmemori. • Pointer sesungguhnyaberisialamatdarisuatu data, bukan data sebagaimanapadavariabel. • Untukmelihatalamatmemorisuatuvariabel, kitadapatmenggunakan operator referensi, yaitu : “ & “ Misalkanpernyataan : po = &var; Menugaskannilaialamatdarivariabelvarkedalamvariabelpo.

  4. 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(); }

  5. 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;

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

  7. intnilai; int *pNilai; nilai = 35; pNilai = &nilai; cout<<nilai<<endl; cout<<pNilai<<endl; cout<<*pNilai<<endl; • SetelahpernyataanpNilai = &nilai, makavariabelnilaidengan*pNilaimenjadisama. (tidakbisalangsungpenugasanvariabelkevariabel pointer  pNilai = nilai; )

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

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

  10. INISIALISASI POINTER Suatu pointer dapatlangsungdiisinilaisaatpendeklarasian. Caranya : intangka; int *add = &angka; Pernyataaniniekivalendengan : intangka; int *add; add = &angka; Dan BERBEDA dengan : intangka; int *add; *add = &angka;

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

  12. Meskipunpernyataan pArray = angka; bolehdilakukan, tetapiperintah / pernyataan angka = pArray; tidaklah valid. Hal inikarenatidaksepertialamatpada pointer pArray, alamatpada array angkatidakdapatdiubah. • Suatu array dapatdipandangsebagaikonstanta pointer.

  13. 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;

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

  15. 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(); }

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

  17. -- Sekian --

More Related