Pointer dan Array
Definisi Pointer
Contoh:
int i, *ptr;
ptr = &i;
misal : *ptr = 5; //artinya i=5
Pointer adalah variabel yang menyimpan alamat dari variabel lain.
Dua operator dalam pointer yaitu * (operator reference; content of) dan & (operator alamat; address of).
Contoh:
int i, *ptr;
ptr = &i;
misal : *ptr = 5; //artinya i=5
Pointer to Pointer
Pointer to Pointer adalah variabel yang menyimpan alamat dari suatu pointer.
Contoh:
int i, *ptr, **ptr_ptr;
ptr = &i;
ptr_ptr = &ptr;
misal : *ptr = 5; // artinya i=5 ;
**ptr_ptr = 9; // artinya i=9; atau *ptr=9;
Definisi Array
Array adalah variabel untuk menampung sejumlah data bertipe sama. Array merupakan tipe data terstruktur (data structure).
Ciri-Ciri Array:
- Homogen : semua elemen bertipe data sama.
- Random Access : Setiap elemen dapat dipanggil secara acak, tidak harus berurutan.
Penulisan Array
int A[10];
Dari penulisan array di atas, dapat kita lihat bahwa array terdiri dari 4 komponen:
- tipe data (int, dll.)
- identifier atau nama array (A)
- index operator ([ ])
- nilai dimensi dalam operator (10)
Inisiliasi Array
Array dapat diinisialisasi secara eksplisit tanpa pendeklarasian nilai.
Contoh:
int B[ ]={1, 2, -4, 8};
int B[8]={1, 2, -4, 8};
int B[4] = { 1, 2, -4, 8, 9 }; //error
-> karena nilai dimensinya lebih kecil.
Untuk menampilkan array, penulisannya:
printf(“%d”,A[2]) atau
printf(“%d\n”,*(A+2));
Array Satu Dimensi
C Compiler tidak membatasi nilai dalam dimensi yang kita buat.
Contoh Program:
#include<stdio.h>
int SIZE = 5;
void main() {
int i, j;
int n[SIZE] = {15, 9, 1, 7, 5};
for( i=0 ; i<= SIZE ; i++) {
printf("%5d ", n[i]);
for ( j=1; j<=n[i] ; j++) printf("%c","*");
printf("\n");
}
}
Array Dua Dimensi
Syntax: type name_array[row][col];
Contoh: int a[3][4];
Contoh Program:
/* Printing out array 2-D */
#include <stdio.h>
void main() {
int two_dim[3][5] = {1, 2, 3, 4, 5,
10, 20, 30, 40, 50,
100, 200, 300, 400, 500};
int i, j;
for (i=0; i<3; i++){
for (j=0; j<5; j++) printf("%6d", two_dim[i][j]);
printf("\n");
}
}
//Output:
1 2 3 4 5
10 20 30 40 50
100 200 300 400 500
Array Tiga Dimensi
Syntax: type name_array[row][col][depth];
Contoh Program:
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
Array of Pointer adalah array yang berisi pointer.
Syntax: type *array_name [value_dim];
Contoh Program:
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 of Character adalah array yang berisi karakter.
Syntax: char array_name[value_dim];
Contoh Program:
char name[40];
char ss[20]={‘B’,’I’,’N’,’U’,’S’}; //20 elements
char ss[ ]= {‘B’,’I’,’N’,’U’,’S’}; // 5 elements
String
String adalah array of character yang diakhiri dengan null character ( ‘\0’ atau dalam ASCII = 0).
Contoh Program:
char name[40] = ”Amir”; //benar
name = ”Amir”; // error name is a constant pointer
Name[40]= “Amir”; //error
Perbedaan Character dan String
Character dalam C diawali dan diakhiri dengan satu buah petik, sedangkan string diawali dan diakhiri dengan dua buah petik.
Manipulasi String
Standar Library Function (header file string.h) menyediakan fungsi untuk memanipulasi string:
- strlen() : menghitung panjang string, kecuali null char.
- strcpy(s1,s2) : mengcopy s2 ke s1.
- strncpy(s1,s2,n) : mengcopy karakter n pertama dari s2 ke s1
- strcat(s1,s2) : menambahkan string s2 diakhir string s1.
- strncat(s1,s2,n) : menambahkan n karakter dari string s2 diakhir string s1.
- strcmp(s1,s2) : membandingkan nilai dari string s1 dan s2, jika sama, akan mengembalikan nilai nol (0).
dll.
Sources:
http://www.javatutorialprograms.com/2015/11/learning-concept-of-arrays-in-java.html
https://ajenkmhy93.wordpress.com/alpro-2/array-2-dimensi/




Comments
Post a Comment