1. Pointer
Apa itu Pointers? Pointers adalah sebuah variabel yang menyimpan alamat dari variabel yang lain.
Syntax Pointer:
<type>
*ptr_name;
Minimal digunakan dua operator dalam Pointer : *(Pointer) dan &(Alamat)
Contoh:
Inisialisasi sebuah integer dalam bentuk data variabel:
int i, *ptr;
ptr = &i;
Untuk menentukan nilai baru untuk variabel yang ditunjuk Pointer:
*ptr
= 5; /* means i=5 */
Konsep Pointer :
- Pointer to Pointer. "Pointer to Pointer" merupakan sebuah variabel yang menyimpan alamat sebuah pointer yang lain.
- Syntax:
<type>
**ptr_ptr
;
Contoh :
int
i, *ptr, **ptr_ptr;
ptr
= &i;
ptr_ptr
= &ptr;
Untuk menentukan nilai baru untuk i:
*ptr
= 5; // means i=5 ;
**ptr_ptr = 9; // means i=9; or *ptr=9;
Pointer to Pointer
2. Array
- Array adalah sekumpulan data yang disimpan di dalam struktur tertentu untuk diakses sebagai sebuah grup atau individual. Sebagian variabel disimpan dengan nama yang sama dengan cara membedakan index mereka.
- Karakteristik array ialah
- Homogenus
Semua element mempunyai tipe data yang sama.
- Random Access
Setiap element dapat digunakan secara individual, tidak harus dalam urutan.
- Syntax:
type
array_value
[value_dim];
Example:
int
A[10];
Definisi tersebut mengandung 4 komponent:
- Tipe spesific
- Identifier (Nama Array)
- Operator Index([])
- Nilai Dimensi di dalam operator [ ]
Contoh Array 1 Dimensi:
- Element sebuah Array dimulai dari 0.
- Array dapat diinisialisasikan dengan jelas tanpa nilai dimensi.
Contoh :
int
B[ ]={1, 2, -4, 8};
Array B has 4 elements
int
B[8]={1, 2, -4, 8};
Accesing Array
Ada 2 cara untuk mengakses sebuah element i=2;
*(A+2) or A[2]
A sebanding dengan &A[0] atau pointer kepada element pertama dari sebuah array
Untuk menunjukkan A[2] di layar:
printf(“%d”,A[2]) or
printf(“%d\n”,*(A+2));
Assigning Values
Menentukan nilai sebuah element
Contoh :A[6] = 15; A[3] = 27;
• Pernyataan A[2] = A[3] - A[6], hasilnya:
Pointer Constant dan Pointer Variabel
- Pointer Constant adalah pointer yang dapat ditugaskan dengan nilai yang baru pada saat dijalankan.
- Pointer Variabel adalah pointer yang tidak dapat ditugaskan dengan nilai yang baru pada saat dijalankan.
Mengakses array dengan pointer :
int arr[10];
int *ptr_arr;
ptr_arr = arr; //or ptr_arr = &arr[0];
Untuk mengakses element tertentu dapat menggunakan :
ptr_arr[i];
arr[i];
*(ptr_arr + i);
*(arr + i);
ptr_arr = ptr_arr + i; *ptr_arr;
One Dimensional Array
C compiler tidak membataskan jumlah dimensi yang dapat dibuat. Memori PC kita yang membatasi.
Two Dimensional Array
•Syntax
2D Array:
type name_array[row][col];
•Contoh:
Inisialisasi
dengan rmo (row major order)
Contoh :
:•int
b[2][2] = {1, 2, 3, 4 };
•int
b[2][2] = { { 1, 2 }, { 3, 4 } };
•
•int
b[2][2] = { { 1 }, { 3, 4 } };
•
•int
x[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
•int
x[3][4] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
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
•Sebuah array dengan satu atau lebih 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]);
String
String adalah sebuah kumpulan karakter yang diakhiri dengan null karakter('\0' atau di ASCII=0)
String konstant atau String Literal adalah sejumlah karakter diantara double quote.
- Contoh : "Welcome to Binus"
"Hello" "World"
sama dengan
"Hello, World"
String sebagai tipe data tidak dikenal di C
Manipulasi String
•Di Standard Library Function (header file string.h) menyediakan fungsi untuk memanipulasi string
–strlen()
Menginput panjang string kecuali null
char
–strcpy(s1,s2)
Mengcopy string2 ke string1
–strncpy(s1,s2,n)
Mengcopy n kata dari string 2 ke string 1
–strcat(s1,s2)
Menambah string2 diakhir string1
–strncat(s1,s2,n)
Menambah n kata dari string2 diakhir string1
–strcmp(s1,s2)
Membandingkan nilai string1 dan string2, jika sama balik ke 0
–etc.













