SlideShare une entreprise Scribd logo
1  sur  17
POINTER




Free Powerpoint Templates
                            Page 1
POINTER

• Pointer (variabel penunjuk) adalah suatu
  variabel yang berisi alamat memori dari
  suatu variabel lain. Alamat ini merupakan
  lokasi dari obyek lain (biasanya variabel
  lain) di dalam memori.
• Contoh: jika variabel A berisi alamat dari
  variabel B, maka variabel A dikatakan
  menunjuk ke variabel B.

               Free Powerpoint Templates
                                           Page 2
Free Powerpoint Templates
                            Page 3
Operator pointer ada 2 :
 1. Operator &
    Operator & menghasilkan alamat dari operandnya
    atau alamat memori yg ditempati oleh variabel
 2. Operator *
    Operator * menghasilkan nilai yang berada pada
    sebuah alamat.


     Perbedaan pointer dengan variable biasa
                              Pointer            Variabel biasa
Deklarasi variabel            int *a;            int b;
Mengetahui alamat memori      a                  &b
Mengetahui datanya            *a                 b
                           Free Powerpoint Templates
                                                                  Page 4
Deklarasi pointer

  Seperti halnya variabel yang lain, variabel
  pointer juga harus dideklarasikan terlebih
  dahulu sebelum digunakan. Bentuk Umum :
• Tipe_data *nama_pointer;

• Contoh : int *nilai;
         char *huruf;

                Free Powerpoint Templates
                                            Page 5
Ada dua cara yang dapat dilakukan untuk
alokasi space di memori bagi pointer, yaitu:
1. Menempati space variable lain yang
   sudah
   punya space.
      Variabel lain tersebut dapat berupa
   variabel      biasa (bukan pointer) atau
   pointer yang tentunya sudah punya
   alokasi space di memori.
   Syntaxnya :
   var_pointer = &var_biasa;

                 Free Powerpoint Templates
                                               Page 6
Contoh 1 :
#include <iostream>
using namespace std;
main() {
 int x,*y;
 char *judul="PENGGUNAAN POINTER";
 y=&x;
 x=5;
 cout<<judul<<endl;
 cout<<"Nilai x = "<<x;
 cout<<"nAlamat memori x = "<<&x;
 cout<<"nnNilai y = "<<*y;
 cout<<"nAlamat memori y = "<<y;
 system("pause");}
                   Free Powerpoint Templates
                                               Page 7
Keterangan :
  Karena *y menempati alokasi memori yang
  sama dengan x, akibatnya data yang
  tersimpan di dalamnyapun akan sama. Jika
  ada instruksi yang menginisialisasi x, otomatis
  juga akan menginisialisasi *y.




                 Free Powerpoint Templates
                                             Page 8
Contoh 2 :

#include <iostream>
using namespace std;

main() {
  int x,*y;
  y=&x;
  x=5;
  *y=10;
  cout<<"Nilai x = "<<x;
  cout<<"nAlamat memori x = "<<&x;
  cout<<"nnNilai y = "<<*y;
  cout<<"nAlamat memori y = "<<y;
  system("pause");
}               Free Powerpoint Templates
                                            Page 9
Coba tebak outputnya:
#include <iostream>
using namespace std;

main (){
  int n1,n2;
  int *p;
  p=&n1;
  *p=10;
  p=&n2;
  *p=20;
  cout<<"Nilai n1 = "<<n1;
  cout<<"nNilai n2 = "<<n2;
  cout<<"nNilai p = "<<*p;
 system("pause");}Powerpoint Templates
               Free
                                         Page 10
2. Dialokasikan tersendiri di memori (Memori dinamis).
  Pointer tidak menempati space variabel lain, tetapi
  dialokasikan space tersendiri di memori dengan instruksi
  new.
  Syntaxnya:
  var_pointer = new tipe_data-pointernya;


  Contoh :
  int *a;
  float *x;
  a=new int;
  x=new float;

                      Free Powerpoint Templates
                                                   Page 11
Contoh :

#include <iostream>
using namespace std;


main()
 {
   int x,*y;
   y=new int;
   x=5;
   *y=10;
   cout<<"Nilai x = "<<x;
   cout<<"nAlamat memori x = "<<&x;
   cout<<"nnNilai y = "<<*y;
   cout<<"nAlamat memori y = "<<y;
   system("pause");
                    Free Powerpoint Templates
   }                                            Page 12
Keterangan :
x dan y mempunyai alokasi memori yang berbeda, sehingga
data yang tersimpan di dalamnyapun akan berbeda pula.
 Membebaskan memori dari variabel dinamis

 Dengan alokasi memori dinamis ini kita dapat menghemat
 alokasi memori dengan cara membebaskan memori dari
 variabel dinamis, jika memang variabel tersebut tidak
 digunakan lagi.
 Syntaxnya:
 delete var_pointer;



                    Free Powerpoint Templates
                                                Page 13
Contoh :

 #include <iostream>
 using namespace std;
 main() {
   int x,*y;   y=new int;
   x=5;        *y=10;
   cout<<"Nilai x = "<<x;
   cout<<"nAlamat memori x = "<<&x;
   cout<<"nnNilai y = "<<*y;
   cout<<"nAlamat memori y = "<<y;
   delete y;
   cout<<"nnSetelah di delete";
   cout<<"nNilai y = "<<*y;
   cout<<"nAlamat memori y = "<<y;
   system("pause");}
                Free Powerpoint Templates
                                          Page 14
Keterangan :

Setelah dikenai instruksi delete y; maka nilai yang tersimpan
dalam *y akan hilang. Itulah sebabnya *y dikatakan sebagai
variable dinamis, sedangkan x merupakan variable statis,
sehingga tidak bisa dibebaskan dari memori.

 Fungsi dengan parameter pointer
 Parameter keluaran yaitu parameter yang berfungsi untuk
 menampung nilai yang dihasilkan dari proses di dalam fungsi.
 Parameter keluaran ini digunakan dalam fungsi tipe void
 (tanpa return value),dengan kata lain parameter tersebut
 digunakan sebagai nilai keluaran dari sebuah fungsi.
 Dengan demikian parameter keluaran ini harus dilewatkan
 berdasarkar alamat atau referensinya, yaitu menggunakan
                       Free Powerpoint Templates
                                                      Page 15
 pointer atau reference.
Contoh :

#include <iostream>
using namespace std;

void luas(int *ls, int p, int l)
{ *ls = p*l; }
main(){
    int pj,lb,ls;
    cout<<"Panjang = ";cin>>pj;
    cout<<"Lebar   = ";cin>>lb;
    luas(&ls,pj,lb);
    cout<<"nLuasnya = "<<ls;
    system("pause");}
              Free Powerpoint Templates
                                          Page 16
Contoh :
#include <iostream>
using namespace std;
void luas(int *ls,int *kel, int p, int l)
{
      *ls = p*l;
      *kel = 2*(p+l);
}
main()
{
      int pj,lb,ls,kl;
      cout<<"Panjang = ";cin>>pj;
      cout<<"Lebar    = ";cin>>lb;
      luas(&ls,&kl,pj,lb);
      cout<<"nLuasnya         = "<<ls;
      cout<<"nKelilingnya = "<<kl<<endl;
     system("pause");
}                  Free Powerpoint Templates
                                             Page 17

Contenu connexe

Tendances (20)

11
1111
11
 
Pert.2 konsep dan defenisi data
Pert.2  konsep dan defenisi dataPert.2  konsep dan defenisi data
Pert.2 konsep dan defenisi data
 
2 Array
2 Array2 Array
2 Array
 
Modul pd
Modul pdModul pd
Modul pd
 
Struktur data
Struktur dataStruktur data
Struktur data
 
4 Adt
4 Adt4 Adt
4 Adt
 
Pert.5 linked list
Pert.5 linked listPert.5 linked list
Pert.5 linked list
 
Tipe data pada java
Tipe data pada javaTipe data pada java
Tipe data pada java
 
Latihan java depandi
Latihan java depandiLatihan java depandi
Latihan java depandi
 
Tipe data abstract
Tipe data abstractTipe data abstract
Tipe data abstract
 
Interaksi antar objek
Interaksi antar objekInteraksi antar objek
Interaksi antar objek
 
Tistrukdat1
Tistrukdat1Tistrukdat1
Tistrukdat1
 
Pertemuan V
Pertemuan VPertemuan V
Pertemuan V
 
Procedur
ProcedurProcedur
Procedur
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
 
Java2
Java2Java2
Java2
 
Latihan
LatihanLatihan
Latihan
 
Tugas modul fungsi
Tugas modul fungsiTugas modul fungsi
Tugas modul fungsi
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
 
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
 

Similaire à Pointer dan Fungsi Pointer

Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11Menny SN
 
Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++Ilan Surf ﺕ
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait SinglyKelinci Coklat
 
MATERI POINTER TKJ K13
MATERI POINTER TKJ K13MATERI POINTER TKJ K13
MATERI POINTER TKJ K13Ali Must Can
 
Bab 2 identifier dan tipe data
Bab 2 identifier dan tipe dataBab 2 identifier dan tipe data
Bab 2 identifier dan tipe dataAffandi Arrizandy
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Debby Ummul
 
Pemrograman Web - Statement Javascript
Pemrograman Web - Statement JavascriptPemrograman Web - Statement Javascript
Pemrograman Web - Statement JavascriptKuliahKita
 
Function
FunctionFunction
Functionwindi1
 
JavaScript Standard Library.pdf
JavaScript Standard Library.pdfJavaScript Standard Library.pdf
JavaScript Standard Library.pdfPutri Sari
 

Similaire à Pointer dan Fungsi Pointer (20)

Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11Algoritma&Pemrograman C++ Pertemuan 11
Algoritma&Pemrograman C++ Pertemuan 11
 
Structure and pointer
Structure and pointerStructure and pointer
Structure and pointer
 
Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
 
Topik 12 Pointer
Topik 12 PointerTopik 12 Pointer
Topik 12 Pointer
 
Tipe data dan variabel
Tipe data dan variabelTipe data dan variabel
Tipe data dan variabel
 
MATERI POINTER TKJ K13
MATERI POINTER TKJ K13MATERI POINTER TKJ K13
MATERI POINTER TKJ K13
 
Bab 2 identifier dan tipe data
Bab 2 identifier dan tipe dataBab 2 identifier dan tipe data
Bab 2 identifier dan tipe data
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
Praktikum
PraktikumPraktikum
Praktikum
 
Modul 2 strukdat
Modul 2 strukdatModul 2 strukdat
Modul 2 strukdat
 
Modul 2 strukdat
Modul 2 strukdatModul 2 strukdat
Modul 2 strukdat
 
P1 2-tipe data
P1 2-tipe dataP1 2-tipe data
P1 2-tipe data
 
Pemrograman Web - Statement Javascript
Pemrograman Web - Statement JavascriptPemrograman Web - Statement Javascript
Pemrograman Web - Statement Javascript
 
Pertemuan II Function
Pertemuan II FunctionPertemuan II Function
Pertemuan II Function
 
Function
FunctionFunction
Function
 
Function
FunctionFunction
Function
 
Pertemuan 10 Pointer dan Macro
Pertemuan 10 Pointer dan MacroPertemuan 10 Pointer dan Macro
Pertemuan 10 Pointer dan Macro
 
JavaScript Standard Library.pdf
JavaScript Standard Library.pdfJavaScript Standard Library.pdf
JavaScript Standard Library.pdf
 
8 algoprog-pointer
8  algoprog-pointer8  algoprog-pointer
8 algoprog-pointer
 

Pointer dan Fungsi Pointer

  • 2. POINTER • Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. • Contoh: jika variabel A berisi alamat dari variabel B, maka variabel A dikatakan menunjuk ke variabel B. Free Powerpoint Templates Page 2
  • 4. Operator pointer ada 2 : 1. Operator & Operator & menghasilkan alamat dari operandnya atau alamat memori yg ditempati oleh variabel 2. Operator * Operator * menghasilkan nilai yang berada pada sebuah alamat. Perbedaan pointer dengan variable biasa Pointer Variabel biasa Deklarasi variabel int *a; int b; Mengetahui alamat memori a &b Mengetahui datanya *a b Free Powerpoint Templates Page 4
  • 5. Deklarasi pointer Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan. Bentuk Umum : • Tipe_data *nama_pointer; • Contoh : int *nilai; char *huruf; Free Powerpoint Templates Page 5
  • 6. Ada dua cara yang dapat dilakukan untuk alokasi space di memori bagi pointer, yaitu: 1. Menempati space variable lain yang sudah punya space. Variabel lain tersebut dapat berupa variabel biasa (bukan pointer) atau pointer yang tentunya sudah punya alokasi space di memori. Syntaxnya : var_pointer = &var_biasa; Free Powerpoint Templates Page 6
  • 7. Contoh 1 : #include <iostream> using namespace std; main() { int x,*y; char *judul="PENGGUNAAN POINTER"; y=&x; x=5; cout<<judul<<endl; cout<<"Nilai x = "<<x; cout<<"nAlamat memori x = "<<&x; cout<<"nnNilai y = "<<*y; cout<<"nAlamat memori y = "<<y; system("pause");} Free Powerpoint Templates Page 7
  • 8. Keterangan : Karena *y menempati alokasi memori yang sama dengan x, akibatnya data yang tersimpan di dalamnyapun akan sama. Jika ada instruksi yang menginisialisasi x, otomatis juga akan menginisialisasi *y. Free Powerpoint Templates Page 8
  • 9. Contoh 2 : #include <iostream> using namespace std; main() { int x,*y; y=&x; x=5; *y=10; cout<<"Nilai x = "<<x; cout<<"nAlamat memori x = "<<&x; cout<<"nnNilai y = "<<*y; cout<<"nAlamat memori y = "<<y; system("pause"); } Free Powerpoint Templates Page 9
  • 10. Coba tebak outputnya: #include <iostream> using namespace std; main (){ int n1,n2; int *p; p=&n1; *p=10; p=&n2; *p=20; cout<<"Nilai n1 = "<<n1; cout<<"nNilai n2 = "<<n2; cout<<"nNilai p = "<<*p; system("pause");}Powerpoint Templates Free Page 10
  • 11. 2. Dialokasikan tersendiri di memori (Memori dinamis). Pointer tidak menempati space variabel lain, tetapi dialokasikan space tersendiri di memori dengan instruksi new. Syntaxnya: var_pointer = new tipe_data-pointernya; Contoh : int *a; float *x; a=new int; x=new float; Free Powerpoint Templates Page 11
  • 12. Contoh : #include <iostream> using namespace std; main() { int x,*y; y=new int; x=5; *y=10; cout<<"Nilai x = "<<x; cout<<"nAlamat memori x = "<<&x; cout<<"nnNilai y = "<<*y; cout<<"nAlamat memori y = "<<y; system("pause"); Free Powerpoint Templates } Page 12
  • 13. Keterangan : x dan y mempunyai alokasi memori yang berbeda, sehingga data yang tersimpan di dalamnyapun akan berbeda pula. Membebaskan memori dari variabel dinamis Dengan alokasi memori dinamis ini kita dapat menghemat alokasi memori dengan cara membebaskan memori dari variabel dinamis, jika memang variabel tersebut tidak digunakan lagi. Syntaxnya: delete var_pointer; Free Powerpoint Templates Page 13
  • 14. Contoh : #include <iostream> using namespace std; main() { int x,*y; y=new int; x=5; *y=10; cout<<"Nilai x = "<<x; cout<<"nAlamat memori x = "<<&x; cout<<"nnNilai y = "<<*y; cout<<"nAlamat memori y = "<<y; delete y; cout<<"nnSetelah di delete"; cout<<"nNilai y = "<<*y; cout<<"nAlamat memori y = "<<y; system("pause");} Free Powerpoint Templates Page 14
  • 15. Keterangan : Setelah dikenai instruksi delete y; maka nilai yang tersimpan dalam *y akan hilang. Itulah sebabnya *y dikatakan sebagai variable dinamis, sedangkan x merupakan variable statis, sehingga tidak bisa dibebaskan dari memori. Fungsi dengan parameter pointer Parameter keluaran yaitu parameter yang berfungsi untuk menampung nilai yang dihasilkan dari proses di dalam fungsi. Parameter keluaran ini digunakan dalam fungsi tipe void (tanpa return value),dengan kata lain parameter tersebut digunakan sebagai nilai keluaran dari sebuah fungsi. Dengan demikian parameter keluaran ini harus dilewatkan berdasarkar alamat atau referensinya, yaitu menggunakan Free Powerpoint Templates Page 15 pointer atau reference.
  • 16. Contoh : #include <iostream> using namespace std; void luas(int *ls, int p, int l) { *ls = p*l; } main(){ int pj,lb,ls; cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; luas(&ls,pj,lb); cout<<"nLuasnya = "<<ls; system("pause");} Free Powerpoint Templates Page 16
  • 17. Contoh : #include <iostream> using namespace std; void luas(int *ls,int *kel, int p, int l) { *ls = p*l; *kel = 2*(p+l); } main() { int pj,lb,ls,kl; cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; luas(&ls,&kl,pj,lb); cout<<"nLuasnya = "<<ls; cout<<"nKelilingnya = "<<kl<<endl; system("pause"); } Free Powerpoint Templates Page 17