Tuesday, October 23, 2018

Pointer and Array

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.

No comments:

Post a Comment