Pointer and Array
a.
Pointer
Pointer adalah variabel yang menyimpan
alamat dari variabel lain.
Syntax :
<type>
*ptr_name;
Ada 2 operator yang biasa digunakan
didalam pointer yaitu “*” sebagai konten dari dan “&” sebagai alamat dari.
Contoh :
int i, *ptr;
i
= 10;
ptr
= &i;
maka nilai dari variabel pointer tersebut
adalah 10. Untuk memberikan nilai baru untuk variabel i, maka:
*ptr=5;
// ini berarti i =5
b.
Pointer to Pointer
Pointer to pointer adalah variabel yang
menyimpan alamat dari pointer lain.
Syntax:
<type>**ptr_ptr;
Contoh :
int i, *ptr,
**ptr_ptr;
i = 10;
ptr = &i;
ptr_ptr =
&ptr;
maka nilai dari ptr dan ptr_ptr adalah 10.
Untuk memberikan nilai baru untuk variabel i, maka:
*ptr
= 5; //
artinya i=5
**ptr_ptr
= 9; //
artinya i=9, atau *ptr=9
ARRAY
Array digunakan
untuk menyimpan nilai dengan menggunakan variabel yang sama tetapi menggunakan
index yang berbeda. Karakteristik dari array yaitu :
1.
Homogenus
: artinya semua elemen memiliki tipe data yang sama
2.
Aksesnya
Random : artinya setiap elemen dapat dipanggil secara individual, tidak secara
berurutan.
a.
Array 1 dimensi
Syntax :
type array_value [value_dim];
dalam array terdapat 4
komponen yaitu :
-
Data
type
-
Nama
dari array / identifier
-
Operator
Index ([ ])
-
Nilai
index didalam operatornya [ ]
Elemen dari sebuah array, indexnya selalu dimulai dari 0. Array dapat di
inisialisaikan secara langsung, contohnya :
int B[ ]={1, 2, 3, -4};
maka B[0]=1, B[1]=2, B[2]=3, B[3]=-4.
Jika misalnya:
int
B[6]= {1, 2, 3, -4};
maka B[0]=1, B[1]=2, B[2]=3, B[3]=-4, B[4]=0, B[5]=0,
B[6]=0.
Ada beberapa kesalahan-kesalahan yang sering
terjadi saat melakukan inisialisasi array yang dapat menyebabkan error
misalnya:
a.
int
B[6]= {1, 2, 3, -4, 5, -2, 9, 10};
Ini merupakan
suatu kesalahan ketika melakukan inisialisasi pada array karena index yang
dimiliki array hanya 6 dan yang ditampung sebanyak 8.
b.
int
B[6];
B[6]= {1, 2, 3, -4,
5, -2};
Cara mengakses array :
Misalkan elemen i =3,
maka
*(A+3) atau A[3]
Untuk
memprint A[3] dimonitor yaitu :
printf(“%d”,A[3]);
atau printf(“%d”,*(A+3));
b.
Array 2
dimensi
Syntax dari array 2 dimensi :
type name_array[row][col];
Contoh dari array 2 dimensi:
1.
int
a[3][4];
2.
int
b[3][4] = { {1,2,3,4} , {5,6,7,8} };
c.
Array 3 dimensi
Syntax dari array 3 dimensi:
type name_array[row][col][dept];
Contoh dari array 3 dimensi :
1.
int a[3][4][5];
2.
int b[3][2][4]={ {{1,2,3,4} , {5,6,7,8}} ,{{9,10,11,12}
, {13,14,15,16}} , {{17,18,19,20} , {21,22,23,23}} };
d.
Array of Pointer
Syntax dari array of pointer:
type *array_name [value_dim];
Contoh :
int i;
int *ptr[4];
int x=1, y=2, z=3, a=5;
ptr[0]=&x; ptr[1]=&y; ptr[2]=&xz ptr[3]=&a;
for(i=0; i<4; i++){
printf(“%d”,*ptr[i]);
}
Maka outputnya = 1 2 3 5
e.
Array of Character
Array of charater adalah array
yang isinya berupa karakter
Syntax dari array of
character:
char array_name [value_dim];
Contoh:
char nama
[40];
char huruf[ ]={‘A’, ’B’, ’C’, ’D’};
f.
String
String adalah array of
character yang diakhiri dengan null character atau “\0”
Contoh :
char nama[40] = “Wakeso”;
char s[ ]= “BINUS”;
char s[ ]= {‘O’, ‘L’, ‘A’,
‘H’, ‘\0’};
Standard Library dari sting
yaitu <string.h> yang isi dari library ini dapat berupa :
-
strlen() => untuk menghitung panjang string sampai
ketemu “\n”
-
strcpy(s1,s2) => untuk mengcopy s2 ke s1
-
stncpy(s1,s2,n) => untuk mengcopy s2 ke s1 sebanyak n
character
-
strcat(s1,s2) => untuk menambah s2 diakhir dari s1
-
strncat(s1,s2,n) => untuk menambah s2 diakhir dari s1 sebanyak
n character
-
strcmp(s1,s2) => membandingkan nilai dari string s1 dan s1,
jika sama maka hasilnya sama dengan 0.
-
strstr(s1,s2) => untuk mengcek apakah s2 terdapat di s1 atau
tidak
-
dan
sebagainya.
<type>**ptr_ptr;
No comments:
Post a Comment