Jumat, 07 Maret 2014

Pointer

Pointer adalah variabel yang menyimpan alamat dari variabel lain.

Cara deklarasi : data_type *pointer_name;
contoh : int *ptr;

Pointer ini memiliki kelebihan yang sekaligus juga menjadi kelemahannya yaitu ketika mis int *ptr tadi berubah, maka nilai dari variabel yang dipoint oleh variabel ptr tadi juga akan berubah. Oleh karena pointer itu berbahaya, maka sekarang ini di beberapa bahasa pemograman penggunaan pointer dikurangi.

Dua operator yang sering digunakan pada pointer:

  1. *  (content of)
  2. & (address of)

contoh coding






Pada potongan program disamping, maka output nya adalah 5 dan juga 10, karena *ptr bernilai 5, dan saat *ptr diubah menjadi 10, maka nilai dari variabel angka juga akan berubah.








Pada Bahasa C, terdapat juga pointer to pointer, dimana pointer tersebut akan menujuk / menyimpan alamat dari variabel lain. Untuk mendeklarasikan ponter to pointer, cukup menambahkan * untuk setiap level dari pointer.

contoh :

int angka=20;
int *ptr,**pptr;
ptr=&angka;
pptr=&ptr;

Maka, saat **pptr dicetak, akan menghasilkan nilai 20, sama dengan nilai *ptr dan juga angka. Pointer juga akan sering digunakan saat kita ingin melakukan passing parameter pada fungsi, terlebih disaat kita ingin melakukan/membuat fungsi swap/tukar nilai antara variabel yg satu degan variabel lainnya.
contoh :

void tukar(int *a, int *b)
{
  int c;
  c = *a;
  *a = *b;
  *b = c;

}

Array

Pengertian dari array adalah sekumpulan data elemen yang memiliki tipe data yang sama. Array disimpan di
lokasi memori yang saling bersebelahan, dan direferensikan dengan indeks. Indeks dari array dimulai dari 0 
sampai n-1, dimana n merupakan banyaknya array yang kita pesan.
Pada array, kita harus memesan tempat terlebih dahulu, dan tempat yang sudah kita pesan itu tidak bisa
ditambahkan dan juga dihapus.

Karakteristik dari array:

  1. Homogenous : Semua elemen memiliki tipe data yang sama.
  2. Random access : Setiap elemen dapat diakses secara individual, tidak harus secara sequential.

Macam-macam array :



  1. Array 1 dimensi : cara deklarasi : data_type variabel_name[index]; dimana index berarti banyaknya array.
  2. Array 2 dimensi : array yang memilki2 dimensi cara deklarasi : data_type variabel_name[index1][index2];
  3.                                    contoh : 

  4. Multi dimensional array : array yang memiliki dimensi lebih dari 2. contoh deklarasi : int A[10][20][5]; dari yang kabar yang saya dengar, maksimal dimensi nya adalah 256, dimana banyaknya tergantung compiler.

  5. Pada saat kita ingin menyimpan kalimat juga digunakan array atau string atau lebih tepatnya array of char. 
    contoh deklarasi : char nama[20];
    Sehingga pada string, untuk memiliki data yang banyak maka (beberapa baris string) maka harus digunakan array 2 dimensi.

    Perhatikan perbedaan array dan string:
    Pada char, cara deklarasi char a, sedangkan pada string minimal 1 dimensi, contoh : char a[10];
    Perbedaan 'A' dan "A" yaitu
    Menyimpan Nilai Array
    1.Inisialisasi Array : memasukkan nilai pada array dengan cara inisialisasi di awal tanpa input user. contoh : int angka[3]={1,3,4};
    2.Input nilai :memasukkan nilai pada array dengan cara inputtan oleh user. contoh : int angka[5]; for(int i=0;i<5;i++) scanf("%d", &angka[i]);
    3.Assign nilai : mengambil nilai array. contoh : int angka1[5],angka2[5]; for(int i=0;i<5;i++) angka2[i]=angka1[i];

    NB : bahan yang ditulis berdasarkan apa yang pernah saya pelajari dari dosen dan juga slide-slide powerpoint dari  Binus University .





    Tidak ada komentar:

    Posting Komentar