Anda di halaman 1dari 7

POINTER DAN APLIKASINYA

A. Pengertian Pointer merupakan komponen penting dalam pemrograman C++. Se agai !onto"# dengan menggunakan pointer# pengak$e$an arra% men&adi le i" !epat di andingkan &ika menngunakan nota$i arra% %ang menggunakan tanda '(. Pointer &uga er)ung$i $e agai upa%a untuk menge)i$ien$ikan pele*atan data %ang erukuran e$ar. Pointer $e$unggu"n%a eri$i +alamat dari $uatu data ,. Se agai !onto"# &ika terdapat -aria el ernama $uatuNilai# maka $e ua" pointer dapat diatur agar menun&uk ke loka$i dari -aria el ter$e ut. $etela" pointer menun&uk ke -aria el ter$e ut# i$i -aria el dapat dimanipula$i melalui pointer. .elalui mekani$me $eperti itu# pointer dapat digunakan untuk menun&uk ke $uatu loka$i %ang dialoka$ikan /di entuk0 ketika aplika$i $edang er&alan 1. .endeklara$ikan 2aria el Pointer Se ua" -aria el pointer dideklara$ikan dengan entuk $eperti erikut3 tipe_data*namaVariabel . Conto" 3 int4pNilai5 Pada !onto" di ata$# pNilai adala" pointer %ang menun&uk ke data ertipe int. Tentu $a&a# pada keadaan $eperti itu i$i pNilai elum ditentukan. 6ntuk mem uat i$i pointer agar dalam entuk %ang terde)ini$ikan# kadangkala dilakukan ini$iali$a$i $eperti erikut3 int4pNilai7N6LL5 Pern%ataan $eperti itu men%atakan a"*a nilai pNilai dideklara$ikan $e agai pointer %ang menun&uk ke data ertipe int, tetapi untuk $ementara tidak menun&uk ke data manapun C. Opera$i Da$ar dengan Pointer 6ntuk mem uat pointer agar menun&uk ke $uatu data# pointer perlu dii$i dengan alamat dari data er$angkutan. .ekani$men%a $eperti erikut3 pointer=&variabelData5 Tanda 8 merupakan operator alamat. Dengan kata lain# pern%ataan $eperti di ata$ dapat diartikan $e agai perinta" untuk mengi$ikan alamat dari variabelData ke pointer. Selan&utn%a opera$i lain %ang terkait dengan pointer adala" !ara mengak$e$ $uatu data %ang ditun&uk ole" pointer melalui pointer. Nota$i %ang digunakan adala" $e agai erikut3

*pointer

1erikut ini adala" !onto" aplika$in%a 3

99pointer.!pp :in!lude ;io$tream."<

Int main/0 = int4pNilai int $uatuNilai7>?5

!out ;; +I$i $uatuNilai 3, ;; endl5 !out ;; +I$i $uatuNilai -ia pNilai 3, ;; 4pNilai ;; endl5 4pNilai7@A5 Cout ;; +I$i $uatuNilai $ekarang 3, ;; $uatuNilai ;; endl5

Return B5 C

D. Pointer dan Arra% Pointer dapat digunakan untuk menun&uk ke arra% dan $elan&utn%a pointer dapat dipakai untuk mengak$e$ elemenDelemen arra%. Se agai !onto" terdapat deklara$i arra% $e gaia erikut3 int tglLa"ir'( 7 = E@# ?# ?A C5

dan terdapat pula deklara$i pointer $eperti erikut3 int4 pTgl5

pada keadaan itu# dimungkinkan untuk mem erikan in$truk$i $eperi erikut3 pTgl 7 8tglLa"ir5 atau ptgl 7 tglLa"ir5 atau pTgl 7 8tglLa"ir 'B( pern%ataan di ata$ men%atakan a"*a pointer pTgl dii$i dengan alamat arra% tglLa"ir

1erikut ini adala" !onto" aplika$in%a 3

99pointer.!pp :in!lude ;io$tream."<

int main/0 = int4pNilai int4pTgl5 pTgl 7 tglLa"ir5 )or /int i7F5i;7G5i++0 = !out ;; 4pTgl ;; endl5 pTgl++5 C return B5 C '( 7 =E@#?#?AC5

E. Pointer dan String Pointer dapat di"u ungkan dengan $tring# mengingat $tring di$impan $e agai arra% ertipe karakter. 1erikut ini adala" !onto" aplika$in%a 3

99HitungHuru).!pp :in!lude ;io$tream."<

int main/0 = !"ar kalimat '(7 +Selamat 1ela&ar 2i$ual C++,5 int &umHuru)Kapital 7 B5 int &um"uru)Ke!il 7 B5 pKarakter 7 kalimat5 *"ile/4pKarakter0 = !"ar kar 7 4pKarakter5 i) /kar<7IaI 88 kar;7IJI0 &umHuru)Ke!il++5 i) /kar<7IAI 88 kar7IKI0 &umHuru)Kapital++5 C !out ;; +Lumla" "uru) ke!il3, ;; &umHuru)Ke!il ;; endl5 !out ;; +Lumla" "uru) Kapital3, ;; &umHuru)Kapital ;; endl5 return B5 C

M. Pointer .enun&uk Ke Pointer

Suatu pointer dapat menun&uk ke pointer lain. Se agai !onto" $eperti %ang ada di gam ar erikut3

Pointer pA

pointer pB

-aria el nilaiX

6ntuk mem entuk "u ungan $eperi gam ar diperlukan pendeklara$ian $eperti erikut3 int4 p15 int44 pA5 int nilaiN5 dalam "al ini pA adala" pointer %ang menun&uk ke tipe pointer p1 adala" pointer %ang menun&uk ke tipe int nilaiN adala" -aria el ertipe int agar pointer p1 menun&uk ke -ari el nilaiN# diperlukan pern%ataan3 p1 7 8nilaiN5 $upa%a pointer pA menun&uk ke pointer p1# diperlukan pern%ataan3 pA 7 8p15

1erikut ini adala" !onto" aplika$in%a 3

99rantaiPointer.!pp :in!lude ;io$tream."<

int main/0 = int4p15 int44pA5 int nilaiN 7 ?G5 p1 7 8nilaiN5 pA 7 8p15 !out ;; +I$i nilaiN -ia p13, ;; 4p1 ;; endl5 !out ;; +I$i nilaiN -ia pA 3, ;; 44pA ;; endl5 return B5 C

O. Pengaloka$ian .emori Se!ara Dinami$ Sala" $atu keunggulan pointer adala" memungkinkan untuk menun&uk ke loka$i %ang di!iptakan untuk data ketika aplika$i er&alan atau dikenal dengan i$tila" pengaloka$ikan memori $e!ara dinami$. Pengaloka$ian memori $e!ara dinami$ memungkinkan untuk meng"apu$ memori %ang tidak digunakan lagi /dealoka$i memori0# $e"ingga dapat digunakan untuk mengaloka$i data aru C++ men%ediakan operator new untuk mengaloka$ikan memori dan operator delete untuk meng"apu$ memori $e!ara dinami$

1erikut ini adala" !onto" aplika$in%a3

99aloka$i.!pp :in!lude ;io$tream."< int main/0 = int4pInt5 pInt 7 ne* int5 99aloka$i memori

4pInt 7 AB5 99mem eri nilai Cout ;; +Nilai %ang ditun&uk ole" pInt 5, ;; 4pInt ;; endl5

delete pInt5 99dealoka$i memori return B5 C

Anda mungkin juga menyukai