Pointer dan Array
Salam programmers!
Setelah kita mengetahui tentang beberapa tipe data yang ada
di dalam Bahasa C dan juga sintaks-sintaks dasarnya, maka sekarang kita akan
mulai sedikit lebih advance lagi dalam memahami Bahasa C.
Terdapat beberapa perbedaan antara Bahasa C dengan Bahasa program
lainnya, salah satunya adalah tipe data string. Pada beberapa Bahasa program
lain seperti Java, mereka memiliki tipe data string yang dapat dipanggil secara
langsung tanpa perlu perantara. Namun, pada Bahasa C sendiri kita tidak ada
tipe data string yang berdiri sendiri melainkan namanya disebut dengan array.
1. ARRAY
Array merupakan sekumpulan huruf atau angka yang dijadikan
atau dianggap menjadi satu data. Sebagai contoh :
Jika kita menggunakan tipe data char seperti berikut,
#include<stdio.h>
int main(){
char
huruf = “Hello”;
printf(“%c”, huruf);
return
0;
}
Maka hasil dari kodingan tersebut akan error. Alasannya
adalah bahwa jika kita menggukan tipe data char, maka compiler hanya akan
membaca dan membolehkan kita menginput 1 karakter saja. Sedangkan, dalam
kodingan tersebut kita memasukkan kata “Hello” yang terdiri lebih dari 1
karakter atau huruf. Nah di saat seperti ini lah kita membutuhkan tipe data
array of character yang di mana tipe data char berubah menjadi tipe data yang
dapat menyimpan kumpulan karakter atau yang disebut dengan tipe data string.
Sintaks dari array of character ini adalah dengan
menambahkan tanda “[ ]”kurung kotak seperti itu lalu memasukkan angka di
dalamnya. Angka tersebut berguna sebagai ruang atau batas dari berapa banyak
karakter yang kita ingin masukkan. Contoh :
#include<stdio.h>
int main(){
char
huruf [6] = “Hello”;
printf(“%s”, huruf);
return
0;
}
Output dari kodingan di atas adalah “Hello”. Dalam kodingan
tersebut, saya memasukkan batas dari array nya adalah 6. Mengapa harus 6? Apa boleh
lebih? Jawabannya ya. Kita dapat memasukkan angka lebih dari itu dengan batas
maksimal yaitu 10^6 seperti data string atau data integer. Dalam array of
character, setiap huruf terhitung mulai dari array 0. Sebagai contoh, kata “Hello”
pada kodingan di atas memiliki jangkauan array dari 0-4. Jadi huruf [0] = H;
huruf [1] = e; huruf [2] = l; huruf [3] = l; huruf [4] = o. Maka jika kita
ingin printf satu huruf saja dari array of character, kita cukup panggil urutan
dari angka tersebut. Contoh jika kita ingin print huruf e maka :
Printf(“%c”, huruf[1]);
Maka yang muncul nanti hanyalah huruf e saja. Karena kita
memanggil dalam bentuk char maka persennya pun ikut berubah menjadi %c kembali.
2. POINTER
Pointer merupakan salah satu tipe variable yang di mana
berfungsi sebagai penunjuk dari suatu variable. Sebagai contoh secara logika,
jika kita ingin memanggil nama orang, lalu kita menunjuk orang lain untuk
memanggil nama orang yang ingin kita panggil. Secara gak langsung ketika orang
yang kita tunjuk itu memanggil nama orang yang ingin kita panggil maka tujuan
kita pun juga sesuai dengan yang kita tunjuk itu. Dalam kodingannya pointer
biasanya di tandai dengan ‘*’ sebelum nama variabelnya. Contoh :
#include<stdio.h>
int main(){
int
huruf = 10;
int*
pointer;
pointer=&huruf;
printf("%d",
pointer);
printf("%d",
*pointer);
printf("%d",
&pointer);
return
0;
}
Maka outputnya menjadi sebagai berikut :
Pada output pertama, ini disebut dengan address dari variable
huruf. Mengapa bisa terjadi? Karena pada awal sebelum kita printf terdapat
kodingan “pointer=&huruf;” ini artinya bahwa pointer memiliki nilai yaitu
address dari variable huruf. Sehingga jika kita print “pointer” maka akan
muncul address dari variable yang ditunjuk.
Pada output dua, terdapat angka 10 yaitu nilai dari variabel
huruf. Artinya adalah bahwa jika kita menggunakan pointer dan ingin printf
nilai variabel yang ditunjuk adalah cukup dengan menambahkan “*” sebelum
variabel pointer kalian.
Pada output ketiga, ini merupakan address dari variabel
pointer itu sendiri karena di saat kita printf kita memanggil dengan symbol “&”
yaitu address of atau alamat dari.
Mungkin itulah sekilas dari materi tentang pointer dan
array. Semoga bermanfaat untuk kita semua.
Salam programmers!

Tidak ada komentar:
Posting Komentar