Kamis, 21 Maret 2019

Pointer Dalam Algoritma Pemrograman C++

| |

Pointer

TI Politala Algoritma Pemrograman 2B

A. Pengertian Pointer

  Pointer adalah variabel yang menunjuk pada variabel lainnya. Pointer dapat menyimpan alamat    memori yang ditunjuk. Pada pointer kita dapat menunjuk menunjuk suatu memori, mengubah nilai dan menyalin nilai memori tersebut secara tidak langsung (perantara melalui variabel pointer).

B. Fungsi Pointer

     Adapun fungsi dari pointer sendiri  yaitu :
  1. Menyimpan alamat memori dari sebuah variabel (tipe data atau objek dari kelas).
  2. Menyimpan alamat dari sebuah fungsi (function pointer).
  3. Mengirim "Paramerer yang berupa variabel" ke dalam fungsi, artinya nilai variabel bisa diubah di dalam fungsi.
  4. Untuk membuat variabel dinamis.

C. Macam-Macam Operator Pada Pointer

     Dalam pointer terdapat dua macam operator yang dapat kita gunakan, yaitu :
1.    Operator Deference  (&)
Address-of Operator(&) adalah operator yang digunakan untuk mendapatkan atau melihat alamat memori yang dimiliki oleh variabel tersebut. Cara menggunakannya adalah dengan meletakkan tanda '&' pada depan identitas saat pemanggilan variabel. Lokasi variabel akan ditentukan otomatis oleh kompiler dan operating system pada saat run-time.
2.    Operator Reference (*)
Dereference Operator(*) adalah operator yang digunakan untuk mengakses nilai yang tersimpan secara langsung dengan memberikan awalan arterisk '*' pada identifier pointer. Sama dengan simbol Address-of Operator, peletakkan simbolnya diletakkan diawal variabel.

Contoh Program :

#include <iostream>
using namespace std;

int main()
 {
     int var = 20; 
     int *ip;

     ip = &var; 
     *ip = 30; 

     cout<<" Value of var variable             : "<<var<<endl;
     cout<<" Address stored in ip variable : "<<ip<<endl;
     cout<<" Value of *ip variable              : "<<*ip<<endl;
     return 0;
 }

Hasil Running :

D. Mendeklarasi Variabel Pointer

     Pointer dapat dinyatakan dalam C++ menggunakan penulisan seperti berikut :
                                      tipe_data*nama_pointer;
     Keterangan :
Ø  tipe_data dapat berupa sembarang tipe seperti halnya pada pendefenisian variabel bukan pointer.
Ø  nama_variabel adalah nama variabel pointer.
    Ada dua cara yang dapat dilakukan dilakukan untuk alokasi space di memori di pointer, yaitu:
1.      Menempati space variabel lain yang sudah punya space
   Variabel lain tersebut dapat  berupa variabel biasa (bukan pointer) atau pointer yang tentunya sudah punya alokasi space di memori.
Penulisannya:
                                      var_pointer=&var_biasa;
2.      Dialokasikan tersendiri di memori (memori dinamis).
   Pointer tidak menempati space variabel lain, tetapi dialokasikan space tersendiri di memori dengan instruksi new.
Penulisannya:
                                      var_pointer=new tipe_data-pointer;

E. Pointer Pada Array

     Hubungan antara pointer dan array pada C sangatlah erat. Sebab sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer. Konsep array diantaranya adalah banyak loncatan dari pointer satu ke pointer lain karena secara internal array juga menyatakan alamat, yaitu pengenal array sama dengan alamat pada elemen pertama, pada array. Misalnya dideklarasikan sebagai berikut:
int A[5]= {0, 3, 5, 4,7}: dan int *pntArray;
Contoh program : 

#include <iostream>
using namespace std;
int main()
 {
     int bil[10] = {1,2,3,4,5,6,7,8};  
     int *p;
     p = bil;
     cout<<"Alamat 'angka' adalah : "<<bil<<endl;
     cout<<"Alamat 'p' adalah     : "<<p<<endl;
     cout<<"Indeks bil ke 4       : "<<bil[4]<<endl;
     cout<<"Indeks p ke 4         : "<<*(p+4)<<endl;  // sama dengan bil[4]
     return 0;
 }

Running :

F. Pointer Sebagai Parameter Suatu Fungsi

    Seperti halnya dengan array, pointer dapat digunakan sebagai parameter suatu fungsi. Karena sifat pointer yang hanya sebagai penunjuk, maka setiap perubahan yang terjadi pada parameter, sebenarnya terjadi pada variabel yang ditunjuk bukan pada variabel pointer. Penerapan pointer sebagai parameter yaitu jika diinginkan agar nilai suatu variabel internal dapat diubaholeh fungsi yang dipanggil. Sebagai contoh dapat dilihat pada fungsi yang dipanggil. Sebagai contoh dapat dilihat pada fungsi berikut :

void tambah (int *angka)
{
*angka = *angka +30;
}

Fungsi diatas dimaksudkan agar kalau dipanggil variabel yang bersangkutan dengan parameter aktual dapat diubah nilainya menjadi dinaikkan sebesar 30.
Contoh program :

#include <iostream>
using namespace std;
void penambahan(int &x)
{
     x = x+1500;
 }
void pengurangan(int *y)
 {
    y = y-2;
 }
int main()
{
     int bil1 = 10;
     int bil2 = 5;
     int *p;

     p = &bil2;
     penambahan(bil1);
     pengurangan(p);
     cout<<bil1<<endl;
     cout<<bil2<<endl;
     return 0;
 }

Running :

F. Pointer To Pointer

   Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat pula menunjuk ke pointer lainnya. Didalam pendeklarasianya, hanya menambahkan pointer reference ( * ) pada variabel yang akan ditunjuk.
Contoh program :
#include <iostream>
using namespace std;

int main()
 {
     int bil1 = 10;
     int *p;
     int **ptp;
     int ***ptp2;

     p = &bil1;
     ptp = &p;
     ptp2 = &ptp;
     cout<<"Alamat 'bil' adalah   : "<<bil1<<endl;
     cout<<"Alamat 'p' adalah     : "<<p<<endl<<endl;
     return 0;
 }
Running :


DAFTAR PUSTAKA

https://ajikamaludin.blogspot.com/2017/05/belajar-c-struktur-data-pointer-dan.html
https://www.belajarcpp.com/tutorial/cpp/pointer/
https://zoneblog123.blogspot.com/2017/11/pengertian-lengkap-pointer-dan-macam.html
http://catatanflo.blogspot.com/2017/04/cara-deklarasi-pointer-pada-array-c.html

0 komentar:

Posting Komentar

animasi  bergerak gif

Popular Posts

Blogger templates

Blogroll

About

Diberdayakan oleh Blogger.

Cari Blog Ini

Postingan lain

Translate

Blogger templates

Pages

Pages

Popular Posts

 

Designed by: Compartidísimo
Images by: DeliciousScraps©