BAB II
POINTER
PENYUSUN :
Zakaria Annas
(123090182)
Plug : 6
Asisten Dosen : Henry Tri P.
Co.Asisten : Agus Gunawan
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” YOGYAKARTA
2010
DASAR TEORI
pointer yaitu built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Pointer bahu-membahu sangat terkait dengan "Abstract C Machine", yaitu model mesin abnormal dimana agenda C bekerja. Abstract C Machine yaitu mesin abnormal dimana mesin tersebut mempunyai prosesor untuk menginterpretasikan stream of instruction, dan addressable memory yang terbagi kedalam 3 bab : automatic memory, static memory dan free memory. Addressable memory yaitu memory yang konten-nya sanggup diambil kalau diketahui alamatnya. Lebih jauh lagi, terdapat perkiraan bahwa konten memori sanggup di ambil dengan waktu konstan, tidak peduli berapa nilai alamat.Hal ini disebut dengan random cces memori
Jika variabel merupakan isi memori, dan untuk mengakses isi memori tersebut dibutuhkan address, kemudian bagaimana cara kita mengetahui alamat dari suatu variabel ? Jawabannya yaitu : untuk kebanyakan kasus kita sama sekali tidak perlu tahu alamat dari sebuah variabel. Untuk mengakses sebuah variabel kita hanya perlu nama dari variabel tersebut. Tugas kompiler lah yang mentranslasikan nama ke alamat mesin yang dibutuhkan
Akan tetapi terdapat beberapa kasus dimana kita tidak mungkin memberi nama pada sebuah entitas di agenda kita. Hal ini terjadi terutama ketika kita memakai data struktur dinamis menyerupai linked list, resizeable array, tree dan lain sebagainya. Hal ini alasannya yaitu kita tidak mungkin memberi nama terhadap entitas yang mungkin ada atau tidak ada. Struktur menyerupai linked list hampir tidak mungkin dibentuk tanpa pointer tanpa harus mendefinisikan list
Akan tetapi terdapat beberapa kasus dimana kita tidak mungkin memberi nama pada sebuah entitas di agenda kita. Hal ini terjadi terutama ketika kita memakai data struktur dinamis menyerupai linked list, resizeable array, tree dan lain sebagainya. Hal ini alasannya yaitu kita tidak mungkin memberi nama terhadap entitas yang mungkin ada atau tidak ada. Struktur menyerupai linked list hampir tidak mungkin dibentuk tanpa pointer tanpa harus mendefinisikan list
Inilah awal mula penggunaan pointer sebagai moniker. Istilah moniker di sini berarti sesuatu yang menunjuk atau mengacu kepada entitas lain. Istilah moniker ini bukanlah istilah standard dan lazim , tetapi sesuatu yang aku pilih impromptu untuk membedakan dengan pointer atau reference yang sudah mempunyai arti tersendiri.
Penggunaan lain pointer sebagai moniker yaitu untuk mengatasi kelemahan bahasa C awal : Dahulu fungsi - fungsi di C hanya mengerti pass by value. Pointer dipakai untuk mengemulasi pass by reference alasannya yaitu pointer berisi alamat ke objek lain, sehingga fungsi tersebut sanggup mengubah objek tersebut dengan memanipulasi pointer.
Penggunaan lain pointer sebagai moniker yaitu untuk mengatasi kelemahan bahasa C awal : Dahulu fungsi - fungsi di C hanya mengerti pass by value. Pointer dipakai untuk mengemulasi pass by reference alasannya yaitu pointer berisi alamat ke objek lain, sehingga fungsi tersebut sanggup mengubah objek tersebut dengan memanipulasi pointer.
PEMBAHASAN
#include <iostream> using namespace std; using std::endl; int main() { int x,y; int *px; x=87; px=&x; y=*px; cout << "Alamat x = " << &x << endl; cout << "Isi px = " << px << endl; cout << "Isi x = " << x << endl; cout << "Nilai yang ditunjuk oleh px = " << *px << endl; cout << "Nilai y = " << y << endl; } |
Output :
Penjelasan :
Program pointer dengan variable x ,y dan *px dengan type integer. Int *px merupakan pointer yang menandakan objek. Alamat berisi alamat dari &x
Isi px berisi alamat dari px
Isi x berisi nilai dari x
Nilai yg ditunjuk oleh px berisi nilai dari *px yang berasal dari nilai x
Nilai y berisi nilai dari *px
#include <iostream> #include <malloc.h> using namespace std; using std::endl; int main() { int *p, *q, *r; int n=10; p=(int *)malloc(sizeof(int)); q=(int *)malloc(sizeof(int)); p=&n; *q=120; r=p; cout << "Isi isu pointer \n"; cout << "*p = " << *p << endl; cout << "*q = " << *q << endl; cout << "*r = " << *r << endl; cout << "\nalamat register pointer : \n"; cout << "p = " << p << endl; cout << "q = " << q << endl; cout << "r = " << r << endl; n=*q; p=q; cout << "\nkondisi final isi isu pointer :\n"; cout << "n = " << n << endl; cout << "*p = " << *p << endl; cout << "*q = " << *q << endl; cout << "*r = " << *r << endl; } |
Output :
Penjelasan :
Program pointer dengan variable
*p, *q, *r dan variable n yang
bernilai 10. Malloc berfungsi
untuk mendeklarasikan sebuah
pointer kosong pada memori.
#include <iostream> using std::cout; int main() { int a = 100, b = 200, *pa,*pb; pa = &a; pb = &b; if (pa < pb) cout << "pa menunjuk ke memori lebih rendah dari pb\n"; if (pa == pb) cout << "pa menunjuk ke memori yang sama dengan dari pb\n"; if (pa > pb) cout << "pa menunjuk ke memori lebih tinggi dari pb\n"; } |
Output :
Penjelasan :
Program pointer dengan variable a bernilai 100, b bernilai 200, *pa, *pb.
Pa = &a -> menuju ke alamat a
Pb = &b -> menuju ke alamat b
Dengan system perulangan untuk mencari memori yang besar, sama besar, atau kecil
#include <iostream> using namespace std; int main () { int nilai [3], *penunjuk; nilai [0] = 125; nilai [1] = 345; nilai [2] = 750; penunjuk = &nilai [0]; cout << "Nilai " << *penunjuk << "ada di alamat memori "<< penunjuk << endl; cout << "Nilai " << *(penunjuk+1) << "ada di alamat memori "<< penunjuk+1 << endl; cout << "Nilai " << *(penunjuk+2) << "ada di alamat memori "<< penunjuk+2 << endl; } |
Output :
Penjelasan :
Program pointer dengan array yang mempunyai variable nilai [3] dan *penunjuk. Masing-masing nilai mempunyai nilai sendiri.
Penunjuk = &nilai [0] -> menuju ke alamat masing-masing nilai
*penunjuk = &nilai [0] -> menuju isi dari nilai
Penunjuk+1 -> menuju alamat nilai 1 dari alamat nilai o tambah 1
*penunjuk+1 -> menuju isi nilai 1 dari isi nilai nilai 0 tyambah 1
KESIMPULAN
Pointer banyak dilibatkan dalam pemrograman c++ misal untuk melewatkan string suatu fungsi ke fungsi yang lain. Pointer cara untuk mengubah nilai suatu variable yang dilewatkan ke dalam suatu fungsi. Penerapan pointer yang paling umum untuk membuat variable dinamis yang memungkinkan memori bebas selama sanksi program. Variable sanggup disebut juga sebagai variable yang menandakan obyek lain alasannya yaitu variable pointer atau pointer yaitu variable yangh berisi alamat dari suatu objek lain
0 Response to "Pemrograman C++ Variable Pointer Lengkap"
Posting Komentar