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 :
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) .
INISIALISASI ARRAY :
Array dapat diinisialisasi tanpa pendeklarasian nilai ukuran dimensi.
CONTOH :
int B[ ]={1, 2, -4, 8};
Array B memiliki 4 elemen
CONTOH :
int B[8]={1, 2, -4, 8};
![]()
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 :
________________________________________________________________________________
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}; // errorArr1 = {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];
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 (“).
__________________________________________
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.
No Comments »
RSS feed for comments on this post. TrackBack URL






