1 / 19

Pemrograman Dasar

Pemrograman Dasar. Pointers. Memory. Memory merupakan ruang penyimpanan informasi di dalam komputer. Memory dalam komputer dibagi ke dalam satuan-satuan kecil yang disebut Byte. Masing-masing byte pada memory memiliki alamat tersendiri.

ken
Download Presentation

Pemrograman Dasar

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. Pemrograman Dasar Pointers

  2. Memory • Memory merupakan ruang penyimpanan informasi di dalam komputer. Memory dalam komputer dibagi ke dalam satuan-satuan kecil yang disebut Byte. Masing-masing byte pada memory memiliki alamat tersendiri. • Komputer mengakses (baca atau tulis) memory dengan menggunakan alamat tersebut.

  3. Pointer • Pointer seperti variabel, menyimpan suatu nilai. • Hanya saja, nilai yang disimpan di dalam pointer adalah berupa alamat memori.

  4. Operator referensi • Untuk melihat alamat memori suatu variabel, kita dapat menggunakan operator referensi : " & ". • Misalkan pernyataan: abc = &def; • Menugaskan nilai alamat variabel def ke dalam abc.

  5. Alamat memory variabel • void main() { • int abc = 5; • float def = 7.5; • double ghi = 17.777; • cout<<"Isi variabel :"<<endl; • cout<<"abc : "<<abc<<endl; • cout<<"def : "<<def<<endl; • cout<<"ghi : "<<ghi<<endl; • cout<<"\nAlamat variabel :"<<endl; • cout<<"abc : "<<&abc<<endl; • cout<<"def : "<<&def<<endl; • cout<<"ghi : "<<&ghi<<endl; • system("pause"); • }

  6. Deklarasi Pointer • Suatu variabel pointer dideklarasikan sebagai berikut: • tipeData* namaPointer; • tipeData *namaPointer; • Contoh: • int *a; • float *b, *c; // bukan float *b, c;

  7. Deklarasi pointer • Agar pointer menunjuk ke variabel lain, mula-mula harus diisi dengan alamat suatu variabel. Contoh: • int nilai; • int *pNilai; • Pointer pNilai diatur agar menunjuk ke variabel a dengan cara: • pNilai = &nilai;

  8. Operator dereferensi • Untuk mengakses nilai yang berada pada alamat yang ditunjuk oleh pointer, kita menggunakan operator " * ". Contoh: • int nilai = 20; • int *pNilai; • pNilai = &nilai; • cout<< *pNilai <<endl; • Setelah pernyataan pNilai = &nilai, maka variabel nilai dengan *pNilai menjadi sama.

  9. Pointer • Perlu diingat bahwa operator "*" pada pernyataan int *pNilai; tidak sama dengan operator "*" pada cout<<*pNilai<<endl; • Yang pertama adalah deklarasi pointer bernama pNilai. Tanda "*" tersebut hanya menyatakan bahwa pNilai adalah suatu pointer. Sedangkan yang kedua adalah operator dereferensi yang menunjuk ke alamat yang ditunjuk oleh pointer pNilai. • Penggunaan tanda "*" pada saat deklarasi pointer dengan di dalam pernyataan harus dibedakan.

  10. Contoh • int main () • { • int abc, def; • int *tunjuk; • tunjuk = &abc; • *tunjuk = 10; • tunjuk = &def; • *tunjuk = 20; • cout << "nilai abc: " << abc << endl; • cout << "nilai def: " << def << endl; • system("pause"); • return 0; • }

  11. Pointer • Misalkan terdapat potongan kode program seperti berikut: • int andy, fred; • int *ted; • andy = 25; • fred = andy; • ted = &andy; • Maka nilai tiap variabel setelah itu adalah:

  12. Pointer • Jika program sebelumnya dilanjutkan dengan: • int beth; • beth = *ted; • Maka isi masing-masing variabel adalah: • Keterangan tambahan: • beth=ted; // beth sama dengan ted (1776) • beth=*ted; //beth adalah nilai yang ditunjuk oleh ted (25)

  13. Inisialisasi pointer • Suatu pointer dapat langsung diisi nilai saat deklarasi. Caranya: • int angka; • int *pAngka = &angka; • Pernyataan ini ekivalen dengan: • int angka; • int *pAngka; pAngka = &angka; • Dan BERBEDA dengan: • int angka; • int *pAngka; *pAngka = &angka;

  14. Uji pemahaman • Terka output program berikut: • int main () • { • int abc = 5, def = 15; • int *p1, *p2; • p1 = &abc;//p1=alamat abc • p2 = &def;//p2=alamat def • *p1 = 10; //nilai yang ditunjuk p1=10 • *p2 = *p1; //nilai yang ditunjuk p2=nilai yang ditunjuk p1 • p1 = p2; //p1=p2 (nilai pointer disalin) • *p1 = 20; // nilai yang ditunjuk p1=20 • cout << "isi abc " << abc << endl; • cout << "isi def " << def << endl; • system("pause"); • return 0; • }

  15. Pointer dan Array • Pointer dan array mempunyai hubungan yang dekat. Secara internal, array juga menyatakan alamat. Misalkan terdapat suatu array dan suatu pointer: • int angka [5]; int *pArray; • Maka agar pointer pArray menunjuk ke array angka, pernyataan yang valid adalah: • pArray = angka; • Sebaliknya, pernyataan pArray = &angka; menjadi tidak valid karena array angka juga merupakan suatu identifier yang menyatakan alamat.

  16. Pointer dan Array • Meskipun pArray = angka; boleh dilakukan, perintah angka = pArray tidaklah valid. Hal ini karena tidak seperti alamat pada pointer pArray, alamat pada array angka tidak dapat diubah. • Suatu array dapat dipandang sebagai konstanta pointer.

  17. Pointer dan Array • Setelah baris pArray = angka, maka: • Identifier angka[0] sama dengan *pArray. • Identifier angka[1] sama dengan *(pArray+1). • Identifier angka[2] sama dengan *(pArray+2). • Array pointer juga dapat digeser. Misalkan mula-mula pArray menunjuk pada angka[0], maka: • int angka[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;

  18. Contoh array pointer • int main () • { • int angka[5]; • int * p; • p = angka; *p = 10; • p++; *p = 20; • p = &angka[2]; *p = 30; • p = angka + 3; *p = 40; • p = angka; *(p+4) = 50; • for (int n=0; n<5; n++) • cout << angka[n] <<endl; • system("pause"); • return 0; • }

  19. Thank You for your attention • Thanks to: • cplusplus.com • Pemrograman C++ by Abdul Kadir • Yoannita S.Kom & Hermawan S.Kom Sumber slide

More Related