Nov
02
2015

Review Algorithm & Programming Class PART.5

Hari, tanggal : Kamis, 29 Oktober 2015

Materi             : Pointers and Arrays

Tempat           : Ruang K3A Kampus Syahdan Binus Univ.

DEFINISI POINTER :
Adalah variabel yang menyimpan ALAMAT dari variabel lain.
Syntax :

  <type> *ptr_name;

Dua Operator yang sering digunakan untuk pointer yaitu : ‘*’ (melambangkan konten dari) dan ‘&’ (melambangkan alamat dari).

CONTOH :
inisialisasi suatu integer pointer ke dlm data variabel :

int i, *ptr;

ptr = &i;

Untuk memberikan nilai baru pada variabel yg ditunjuk pointer :

*ptr = 5;   // artinya i=5

KONSEP :

Picture1 Picture2

POINTER TO POINTER :
Adalah variabel yang menyimpan ALAMAT dari pointer lain.
Syntax :

  <type> **ptr_ptr ;

CONTOH :

  int i, *ptr, **ptr_ptr;

  ptr = &i;

  ptr_ptr = &ptr;

Untuk memberikan nilai baru pada i :

  *ptr = 5;               // artinya i=5 ;

  **ptr_ptr = 9;   // artinya i=9; atau  *ptr=9;

________________________________________________________________________________

DEFINISI ARRAY :
Adalah penyimpanan data dalam suatu struktur tertentu untuk diakses dalam suatu kelompok atau secara individu. Beberapa variabel disimpan menggunakan penamaan yang sama, hanya dibedakan pada indeksnya.

Karakteristik :

  • Homogenous : semua elemen harus memiliki tipe data yang sama.
  • Random Access : Setiap elemen dapat diakses secara individual, tidak perlu secara berurutan.

Syntax (One Dimensional Array) :

  type array_value [value_dim];

CONTOH (One Dimensional Array) :

int A[10];

 

ILUSTRASI (array 1D):

Elemen pada array diindeks mulai dari 0 (nol) .

array

 

INISIALISASI ARRAY :
Array dapat diinisialisasi tanpa pendeklarasian nilai ukuran dimensi.

CONTOH :

  int B[ ]={1, 2, -4, 8};

Array B memiliki 4 elemen

array1

CONTOH :

  int B[8]={1, 2, -4, 8};

array2

 

PENGAKSESAN :

Terdapat dua cara mengakses suatu elemen i=2 :

  *(A+2) or A[2]

A sama dengan &A[0] atau suatu pointer konstan pada elemen pertama dari array tertentu.

 

MENETAPKAN/MEMBERIKAN NILAI :

Contoh : A[6] = 15; A[3] = 27;

Pernyataan A[2] = A[3] – A[6], menghasilkan :

assign values_ARRAY

________________________________________________________________________________

POINTER CONSTANT & POINTER VARIABLE

  • Pointer variable adalah pointer yang dapat diberikan nilai baru saat run-time.
  • Pointer constant adalah pointer yang tidak dapat diberikan nilai baru saat run-time.
  • Array adalah Pointer Constant pada elemen pertamanya. Array dapat diisi dengan pointer variable.

CONTOH :

int x=10, y=20;

int B[4];    // B adalah Array – pointer constant

int *ptr;    // ptr adalah pointer variable

ptr = &x;  // ok

ptr = B;    // ok

ptr++;     // ok

B = ptr;   // error

B++;       // error

B = &y;   // error

  • ptr = B; sama saja dengan ptr = &B[0];
  • B adalah suatu pointer constant yang menunjuk pada elemen pertama dalam suatu array.
  • Pointer constant hanya dapat diinisialisasi pada waktu pendefinisian.
    Contoh :
    int Arr1[10];Arr1[10] = {1, 2, 3, 4, 5};  // error

    Arr1 = {1, 2, 3, 4, 5};  // error

    Arr1[10] = 12;  // error max 9

    Arr1[0] = 23;  // ok

    int Arr2[10] = {1, 2, 3, 4, 5}; //ok

________________________________________________________________________________

MENGAKSES ARRAY

Mengakses array menggunakan Pointer :

int arr[10];

  int *ptr_arr;

  ptr_arr = arr; //or ptr_arr = &arr[0];

Untuk mengakses elemen tertentu dapat dilakukan dengan menggunakan :

  ptr_arr[i];

  arr[i];

  *(ptr_arr + i);

  *(arr + i);

  ptr_arr = ptr_arr + i; *ptr_arr;

________________________________________________________________________________

TWO/ THREE/…. DIMENSIONAL ARRAY

C compiler tidak membatasi angka ukuran dimensi yang dapat dibuat. Tapi memori PC kita membatasinya.
INISIALISAI menggunakan RMO (Row Major Order).

TWO DIMENSIONAL ARRAY

  • Syntax 2D Array:

  type name_array[row][col];

  • Contoh :

int a[3][4];

array 2d

 

THREE DIMENSIONAL ARRAY

  • Syntax 3D Array :

  type name_array[row][col][depth];

  • Contoh :

int x[3][2][4] = {{{1,2,3,4}, {5,6,7,8}},

                          {{11,12,13,14}, {15,16,17,18}},

                          {{21,22,23,24}, {25,26,27,28}}

       };  

   void main() {

     int x[4][3][5] = {{{1, 2, 3}, {0, 4, 3, 4}, {1, 2}},

     {{9, 7, 5}, {5, 7, 2}, {9}},       

     {{3, 3, 5}, {2, 8, 9, 9}, {1, 2, 1}},

     {{0}, {1}, {0, 1, 9}}

    };

     printf(“%5d”, x[2][1][3]);

  }

________________________________________________________________________________

ARRAY OF POINTER

  • Suatu array yang berisi dengan pointer / beberapa pointer.
  • Syntax :

  type *array_name [value_dim];

  • Contoh :

  int i;

  int *ptr[4];

  int x=1, y=2,  z=3, w=5;

  ptr[0]=&x, ptr[1]=&y; ptr[2]=&z;  ptr[3]=&w;

  for(i=0;i<4;i++) printf(“%d “,*ptr[i]);

OUTPUT : 1 2 3 5

________________________________________________________________________________
ARRAY OF CHARACTER

  • Array yang berisi dengan karakter /beberapa karakter.
  • Syntax:

  char array_name[value_dim];

  • Contoh :

char name[40];

char ss[20]={‘B’,’I’,’N’,’U’,’S’};  //20 elemen

char ss[ ]= {‘B’,’I’,’N’,’U’,’S’};  // 5 elemen

________________________________________________________________________________

STRING : Adalah suatu array of character yang berakhir dengan null character ( ‘’ atau dlm ASCII = 0).
String adalah tipe data yang tidak diketahui dalam C.
String constant adalah beberapa karakter yg ditulis diantara double quote (“). Contoh : ”Welcome to Binus”
Tipe String constant adalah pointer constant.

Contoh :

  char name[40] = ”Amir”;  //ok

  name = ”Amir”;   // error name is a constant pointer

  Name[40]= “Amir”;  //error

 

String Constant dapat dihubungkan saat waktu compile:

”Hello,” ” world”   sama dengan: ”Hello, world”

Contoh INISIALISAI STRING:

  char s[ ] = ”BiNus”;  sama dengan : char s[ ] = {’B’,’i’,’N’,’u’,’s’,’’};

_____________________________________________

NOTE : CHAR VS STRING

  • Character dalam C ditulis dalam / diantara single quote (‘).
  • Contoh :

char ch=’A’;

  char ch=65;     //Ascii, sama saja dengan char ch=’A’;

char ch=0x41; //Ascii, sama saja dengan char ch=’A’;

  • String ditulis dalam /diantara double quote (“).

char vs string

__________________________________________

STRING MANIPULATION
Dalam Standard Library Function (header file string.h) menyediakan beberapa fungsi untuk memanipulasi string :

  • strlen() : Mengembalikan nilai panjang suatu string; null char diabaikan.
  • strcpy(s1,s2) : Menyalin s2 ke s1.
  • strncpy(s1,s2,n) : Menyalin karakter n pertama pada s2 ke s1.
  • strcat(s1,s2) : Menambahkan string s2 ke bagian akhir string s1.
  • strncat(s1,s2,n) : Menambahkan karakter n pada string s2 ke bagian akhir string s1.
  • strcmp(s1,s2) : Membandingkan nilai pada string s1 dan s2, jika sama kembali ke 0.
    dst.
Written by Nathania Elisha in: Algoritma & Pemrograman |

No Comments »

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress. Kredit, Streaming Audio | Theme by TheBuckmaker.