• Save
Pointer
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Pointer

on

  • 579 views

 

Statistics

Views

Total Views
579
Views on SlideShare
455
Embed Views
124

Actions

Likes
2
Downloads
0
Comments
0

2 Embeds 124

http://windi-anggraini.blogspot.com 123
http://windi-anggraini.blogspot.de 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Pointer Presentation Transcript

  • 1. 1POINTER Pointer merupakan satu nilai yang menunjuk alamat(address) pada lokasi suatu memori komputer. Lokasi memoritersebut mungkin di wakili oleh sebuah variabel yang mempunyainama, atau mungkin juga lokasi bebas dalam memori Pointer merupakan alamat dari suatu data, bukan data seperti padavariabel yang telah di kenalSyntax :tipe_data *Nama_Pointer; tipe_data *Nama_Pointer = &Variabel;Atautipe_data *Nama_variabel
  • 2. Operator Pointer Operator pada pointer terdiri dari 2 yaitu:1. Operator &Operator & bersifat unary (hanya memerlukan satu operand saja)Operator & menghasilkan alamat dari operandnya2. Operator *Operator * bersifat unary (hanya memerlukan satu operand saja)Operator * menghasilkan nilai yang berada pada sebuah alamatContoh :int A=9;int *ptr A;ptrA = &A;ataufloat B=9.99;float *ptrB = &B;2
  • 3. 3dimana: ptrA merupakan pointer to integer (berisi alamat dari variabel A). ptrB merupakan pointer to float (berisi alamat dari variabel B). *ptrA berisi memori yang ditunjuk oleh ptrA (berisi nilaibilangan integer = 9). *ptrB berisi memori yang ditunjuk oleh ptrB (berisi nilaibilangan pecahan = 9.99).Contoh Program C++ :#include <iostream.h>#include <conio.h>void main(){ int alif = 5;float ba =7.5;double ta = 17.777;clrscr();
  • 4. cout << “Isi variabel : “ << endl;cout << “alif =“ <<alif<<endl;cout << “ba =“ <<ba<<endl;cout << “ta =“ <<ta<<endl;cout << “n Alamat variabel : “ << endl;cout << “alif =“ <<&alif<<endl;cout << “ba =“ <<&ba<<endl;cout << “ta =“ <<&ta<<endl;}Contoh 2:#include <iostream.h>#include <conio.h>void main(){ int vint = 55;int * pint;clrscr();pint = &vint;cout<<“alamat vint =“<<&vint<<endl;cout<<“pint = “<<pint<<endl;}4
  • 5. Mengakses Nilai Yang Di Tunjuk Pointer#include <iostream.h>#include <conio.h>void main(){ int vint = 55;int * pint;clrscr();pint = &vint;cout<<“Nilai yang di tunjuk oleh pint =“<<*pint<<endl;}5
  • 6.  Pointer Voidpada contoh diatas telah diberikan beberapa variabel pointer yang menunjuk ke tipedata tertentu. Namun dimungkinkan untuk membuat pointer yang tidak bertipe. Caranyadengan meletakkan kata kunci void pada bagian penentu tipe pointer. contoh : void *ptr;merupakan pernyataan untuk mendefinisikan ptr sebagai variabel pointer void yangdapat menunjukkan ke sembarang tipe data.Contoh :#include <iostream.h>#include <conio.h>void main(){ clrscr();void *ptr; // pointer tak bertipeint vint = 50;float vfl = 51.5;ptr = &vint;cout<<“Nilai yang di tunjuk oleh ptr =“<<*(int*)ptr<<endl; //ptr adl pointer void mkharus //menyebutkan tipe data yg diakses melalui type castptr = &vfl;cout<<“Nilai yang di tunjuk oleh ptr =“<<*(float*)ptr<<endl;}6
  • 7. 7Pointer – Array : Mempunyai hubungan yang dekat dimana secara internal array jugamenyatakan alamat. Digunakan untuk melakukan akses elemenarray.Syntax :tipe_data *Nama_Pointer = Nama_Array;Contoh didefinisikan :int tgl_lahir[10] = {24,6,1965};danint *ptgl;agar ptgl menunjuk ke array mk diperlukan pernyataanptgl = tgl_lahir;Perhatikan pernyataan diatas dimana tidak ada tanda & di depantgl_lahir, padahal beberapa contoh di depan menggunakan formatPtr = & variabel
  • 8. 8Contoh Program C++ :#include <iostream.h>#include <conio.h>void main(){ clrscr();int tgl_lahir[ ] = {24, 6, 1965};int *ptgl;ptgl = tgl_lahir;for (int I = 0; i<3; i++)cout<<*(ptgl+i)<<endl; // c++ mengetahui bahwa tgl_lahir+(ukuran tipe elemen tgl_lahir)+1}Contoh Program C++ :#include <iostream.h>#include <conio.h>void main(){ clrscr();int tgl_lahir[ ] = {24, 6, 1965};int *ptgl;ptgl = tgl_lahir; // ptgl menunjuk ke elemen pertama dari arrayfor (int I = 0; i<3; i++){ cout<<“ptgl =“<<ptgl<<endl;cout<<“*ptgl =“<<*ptgl<<endl;ptgl++; // menunjuk ke elemen berikutnya}}
  • 9. 9Pointer – string:Contoh :#include <iostream.h>#include <conio.h>void main(){ clrscr();char *ptokoh = “ gatotkaca”;cout<< ptokoh<<endl;}Pada contoh diatas akan menyebabkan c++: Mangalokasikan ptokoh sebagai variabel pointer yang menunjuk ke data bertipe chardan menempatkan konstanta string “ gatotkaca” ke suatu lokasi di memori komputer Kemudian ptokoh akan menunjuk ke lokasi string “gatotkaca”Pernyataan diatas menyerupai pernyataan:Char tokoh[ ] = “ gatotkaca”Perbedaannya : Ptokoh adalah pointer yang dengan mudah dapat diatur agar menunjuk ke data string Tokoh adalah array yang menyatakan alamat yang konsatan tidak dapat di ubah.Yang dapat diubah adalah elemen arraynya
  • 10. 10#include <iostream.h>#include <conio.h>void main(){ clrscr();char tokoh[ ] = “ gatotkaca”;char *ptokoh = “ gatotkaca”;cout<< “tokoh = “<<tokoh<<endl;cout<< “ptokoh =“<<ptokoh<<endl;// tokoh ++; //tidak diperkenankanPtokoh++; //diperkenankanCout<<“ptokoh=“<<ptokoh<<endl;}
  • 11. Pointer dan Fungsi Pointer biasa di gunakan di dalam argumen fungsi apabila nilai argumendimaksudkan untuk di ubah di dalam fungsiPointer sebagai Argument Fungsi#include <iostream.h>#include <conio.h>Void ubah_nilai(int&x);Void main(){clrscr();int pinokio = 80;cout<<“nilai mula-mula untuk pinokio :”<<pinokio<<endl;ubah_nilai(pinokio);cout<<“nilai untuk pinokio sekarang :”<<pinokio<<endl;}Void ubah_nilai(int&x){ x=95;}11
  • 12.  Pointer sebagai keluaran FungsiSuatu fungsi dapat dibuat agar keluarannya berupa pointer.Misal :#include <iostream.h>#include <conio.h>Char *nama_bulan(int n); // protipevoid main(){ int bln;clrscr();cout<<“Bulan(1..12):”;cin>>bln;cout<<nama_bulan(bln)<<endl;}Char *nama_bulan(int n){12
  • 13. static char *bulan [ ] ={“kode bulan salah”,“Januari”,“Februari”,“Maret”,“April”,“Mei”,“Juni”,“Juli”,“Agustus”,“September”,“Oktober”,“November”,“Desember”};return((n<1||n>12)?bulan[0] : bulan[n]);}13
  • 14.  Pada definisi fungsi diatas,Char *nama_bulan(int n)Menyatakan bahwa nilai balik fungsi nama_bulan() berupa pointer yangmenunjuk ke data bertipe char (string).Di bagian akhir fungsi, pernyataan :return((n<1||n>12)?bulan[0] : bulan[n]);Menyatakan nilai balik fungsi berupa pointer menunjuk ke : String “kode bulan salah”(bulan[0]), jika argumen fungsi bernilai kurang dari1 atau lebih besar daripada 12 Bulan[n], kalau n bernilai antara 1 sampai dengan 1214