Dokumen tersebut membahas konsep pointer dalam bahasa pemrograman C/C++. Pointer berperan untuk merujuk pada nilai yang disimpan di memory utama beserta alamatnya. Contoh kasus penggunaan pointer untuk menampilkan nilai dan alamat variabel serta array pun diberikan.
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Pointer Array C
1. Konsep Pointer
Ir. Sihar, MT.
T. Informatika – Fak.Teknologi Informasi
Bandung - 2012
FTI301-Algoritma dan Pemrograman-I (4 sks)
2. Daftar Pustaka
1) Hu, T.C. Combinatorial Algorithms. Addison-Wesley, Reading,
MA, 1982.
2) Manber, U. Introduction to Algorithms: A Creative Approach.
Addision-Wesley, Reading, MA, 1989.
3) Sedgewick, R. ALGORITHMS. Addison-Wesley. 1983.
4) Simamora, S.N.M.P. “Diktat Algoritma dan Pemrograman-I.”
Prodi. Teknik Informatika, Fak. Teknik. UTAMA. 2012.
5) Simamora, S.N.M.P. “Diktat SK-201 Algoritma dan Struktur
Data”. Dept. Sistem Komputer, Fak. Teknik. ITHB. 2002.
6) Simamora, S.N.M.P. “Diktat TIK-1102 Algoritma dan
Pemrograman-I”. Jurusan Ilmu Komputer, F-MIPA. UNAI.
Bandung. 2005.
7) Skiena, S. S. The Algorithm Design Manual. Springer Verlag,
New York, 1998.
3. Terapan pointer cukup
memudahkan ditunjukkan
pada bahasa
pemrograman C/C++
Pointer berperan untuk merujuk
pada nilai yang tertampung
pada main-memory beserta
dengan alamat
pengalokasiannya.
Misalkan: variabel zK berisikan nilai DEC(23), dan akan dicari alokasinya pada main-memory.
Algoritma dan pemrograman C++ Tampilan jalannya program
Salah satu translator C/C++ yang dapat
digunakan: Turbo C++ v3.0
Download: http://www.4shared.com/zip/g_mqzvWa/TC3.html
Nilai DEC(23) dialamatkan: 0x103cfff4 (untuk saat itu;
mengingat main-memory khusus RAM bersifat
volatile (temporary)
4. Untuk algoritma dan
pemrograman C++ berikut,
pengalamatan tidak permanen:
Kemungkinan-1 dialamatkan: Kemungkinan-2 dialamatkan:
Ingat, main-memory yang selalu digunakan saat aplikasi program berjalan dalam sistem
komputer/komputer adalah jenis RAM (Random Access Memory), bukan jenis ROM (Read-
Only Memory) oleh sebab ROM bersifat non-volatile. Dengan demikian nilai DEC(25)
dialokasi pada RAM dengan alamat (pada saat ini): 0x103cfff4 atau 0x1017fff4
5. Kasus: Apabila sebuah variabel h1 menampung nilai DEC(-15), gunakanlah teknik pointer
untuk menampilkan alokasi alamat h1 beserta nilai yang ditampungnya tsb.
Solusi: Algoritma dan pemrograman C++ Tampilan jalannya program
Penjelasan: Nilai h1 ditampungkan pada alamat (pada saat ini): 0x1040fff4; dan bila
diperhatikan kebetulan source-code apoin2.cpp hasil edit-an dari source-code apoin1.cpp
sehingga pengalamatan selanjutnya di 0x1040fff4 (sebelumnya di 0x103cfff4). Padahal
nilai yang ditampungkan sama. Lalu bagaimana jika variabel yang digunakan sama yakni:
zK. Berikut hasilnya:
Tampilan jalannya program
Dengan demikian dapat disimpulkan, program yang sama (source-code) akan
ditampungkan pada alamat sebelumnya, yakni: 0x1040fff4.
6. 33 ......
Ilustrasi dalam ruang dan pengalamatan main-memory:
value ⇒
address ⇒ 201h ......
int zL=33, *k;
k=&zL;
*k
k
karena: int zL=33, *k dan
k=&zL;
maka k=201h dan *k=33
Variabel k terdeklarasi sebagai variabel yang
berperan sebagai pointer, sehingga saat
dideklarasikan: k=&zL, maka k akan merujuk
pada alamat dimana zL ditampung
7. Pembuktiannya terlihat pada algoritma dan pemrograman C++ berikut ini:
Tampilan jalannya program
Demikian juga terlihat apabila *x diganti menjadi *y; pointer diaplikasi dengan dua jenis:
merujuk pada nilai (*...) dan merujuk pada pengalamatan (&...). Misalkan: *z dan &z.
Tampilan jalannya program
Algoritma dan pemrograman C++
8. Kasus: Jika diketahui a berisikan nilai DEC(25), dan x berperan sebagai variabel pointer
terhadap a. Apabila y berisikan nilai x ditambah 1, tuliskan algoritma dan
pemrograman C++ untuk menampilkan *x, y, dan alamat DEC(25) ditampungkan.
Solusi: Algoritma dan pemrograman C++ Tampilan jalannya program
Penjelasan: Nilai DEC(25) ditampungkan pada a dengan alamat 0x101cfff4. Oleh sebab isi
variabel y merupakan nilai yang dirujuk x ditambah 1, dan nilai yang dirujuk tak lain
merupakan isi a maka 25+1=26; nilai DEC(26) ditampungkan ke y dan ditampilkan dengan
instruksi: cout << .....
9. Kasus: Apabila variabel nilai adalah jenis array dengan menampung tiga bilangan bulat,
yakni: -1, 8, dan 0. Dengan menggunakan teknik pointer, tuliskan algoritma dan
pemrograman C++ untuk menampilkan isi nilai, beserta alamat masing-masing
ketiga bilangan tsb ditampungkan.
Solusi: Algoritma dan pemrograman C++
Tampilan jalannya program
10. Kasus: Jika diketahui A adalah array yang berisikan {3,-3,3,5}. Dengan menggunakan teknik
pointer, tuliskan algoritma dan pemrograman C++ untuk menampilkan isi A.
Solusi: Algoritma dan pemrograman C++ Tampilan jalannya program
Penjelasan: sebuah array, zK, misalkan berisikan: {-1,0,4,2,-1}, maka dapat dituliskan 2
cara yaitu:
Cara-1: zK[0] = -1;
zK[1] = 0;
zK[2] = 4;
zK[3] = 2;
zK[4] = -1;
Cara-2: zK[5] ={-1, 0, 4, 2, -1};
11. Kasus:
Solusi: Algoritma dan pemrograman C++ Tampilan jalannya program
Jika diketahui A adalah array yang berisikan {3,-3,3,5}. Dengan menggunakan teknik
pointer, tuliskan algoritma dan pemrograman C++ untuk menampilkan alamat
alokasi dari setiap nilai yang ditampung A.
Penjelasan: variabel i dalam status counter mulai dari i=0 s.d 3, dimana dikontrol oleh
struktur kendali for(...) dalam statement: i=i+1. Dengan demikian isi nilai yang
ditampung x akan mengalami perulangan terhadap indeks A untuk memberikan informasi
alamat dari masing-masing isi A.
12. Kasus:
Solusi: Algoritma dan pemrograman C++ Tampilan jalannya program
Jika diketahui A adalah array yang berisikan {3,-3,3,5}. Dengan menggunakan teknik
pointer, tuliskan algoritma dan pemrograman C++ untuk menampilkan alamat
increment 1 jika alokasi default diambil dari nilai indeks ke-1 (math-based) yang
ditampung A.
Penjelasan: Indeks dalam array dimulai dari 0, sehingga untuk membedakan dengan
pencacah yang dikenal awam, maka diistilahkan dengan math-based. Statement x=&A[0]
adalah alamat default yang ditampung di awal, dan selanjutnya dengan ekspresi: x+i akan
melakukan increment 1 terhadap alamat default pada ekspresi: &A[0] yang ditampung ke
x; dimana x berperan sebagai variabel dengan fungsi pointer.