penjelasan pointer
Pointer adalah sebuah
variabel yang isi datanya adalah alamat memori atau variabel lain. Sehingga
pointer dapat juga disebut sebagai variabel alamat (address variable).
Penjelasan di atas terlalu ribet ya????? hehehe. nah disini saya akan memperumakan "pointer" dalam kehidupan sehari-hari, pointer itu ibaratnya pak pos yang tugasnya mengantarkan surat dan pak pos itu tidak wajib tau apa isi dari surat yang di antarkannya itu. tugas pak pos hanya mengantarkan surat itu kepada rujuannya yang sudah tercantum alamat di amplop surat tersebut. nah itulah sedikit penjelsan tentang pointer.
Cara kerja pointer itu seperti pak pos yang disuruh untuk mengantarkan surat ke alamat tujuan. :)
deklarasi pointer
Untuk mendeklarasikan sebuah pointer, perintah dasarnya
adalah :
Typedata *namavariabel;
Untuk lebih jelasnya
adalah :
int *pint;
float *pfloat;
Tmhs *pmhs;
Pada contoh ke-1 kita
mendeklarasikan sebuah pointer bernama pint yang menunjuk ke suatu alamat di
memori yang menampung sebuah data bertipe integer. Contoh ke-2 mendeklarasikan
sebuah variabel pointer bernama pfloat yang menunjuk ke suatu alamat yang
menampung sebuah data bertipe float, begitu juga dengan contoh ke-3 yang
mendeklarasikan suatu variabel bernama pmhs yang menunjuk ke suatu data yang
bertipe Tmhs.
pengisian data ke vaariabel pointer
Pengisian data ke variabel pointer bisa berarti pengisian
alamat memori ke variabel tersebut atau pengisian data yang ditunjuk oleh
pointer.
Untuk lebih jelasnya,
perhatikan program dibawah ini :
01: #include <stdio.h>
02: #include <conio.h>
03: #include <string.h>
04:
05: main()
06: {
07:
char c,*pc;
08:
int i,*pi;
09:
float f,*pf;
10:
clrscr();
11:
c='A';i=7;f=6.25;
12:
printf("c : alamat=0x%p, isi=%c\n", &c, c);
13:
printf("x : alamat=0x%p, isi=%d\n", &i, i);
14:
printf("y : alamat=0x%p, isi=%5.2f\n", &f, f);
15:
pc=&c;
16:
pi=&i;
17:
pf=&f;
18:
printf("pc: alamat=0x%p, isi=%c\n", pc, *pc);
19:
printf("pi: alamat=0x%p, isi=%d\n", pi, *pi);
20:
printf("pf: alamat=0x%p, isi=%5.2f\n", pf, *pf);
21:
*pc='B';
22:
*pi=125;
23:
*pf=512.56;
24:
printf("c : isi=%c\n", c);
25:
printf("x : isi=%d\n", i);
26:
printf("y : isi=%5.2f\n", f);
27:
getch();
28:
return 0;
29: }
|
Jika dieksekusi, maka akan menghasilkan sebuah tampilan
sebagai berikut :
c
: alamat=0xFFF5, isi=A
x
: alamat=0xFFF2, isi=7
y
: alamat=0xFFEE, isi= 6.25
pc:
alamat=0xFFF5, isi=A
pi:
alamat=0xFFF2, isi=7
pf:
alamat=0xFFEE, isi= 6.25
c
: isi=B
x
: isi=125
y
: isi=512.56
Keterangan Program :














contoh aplikasi pointer
Salah satu penggunaan pointer adalah untuk membuat suatu
array yang dinamis (banyaknya data yang bisa ditampung sesuai keperluan).
Sebagaimana kita
ketahui jika kita membuat suatu program yang dapat menampung data nilai
sebanyak 5 buah maka kita akan membuat suatu variabel array yang bertipe int
dengan perintah int data[5]. Dengan
cara begitu maka program hanya akan berjalan dengan baik jika data yang
diinputkan banyaknya di kurang atau sama dengan 5 buah. Apa yang terjadi ketika
data yang akan diinputkan ternyata 10 buah, maka langkah yang dilakukan adalah
harus mengubah programnya dan mengganti int
data[5] menjadi int data[10].
Cara lain untuk
membuat program tersebut adalah dengan menggunakan suatu variabel array yang
dinamis dimana pemesanan tempat yang diperlukan untuk menyimpan data tidak
dideklarasikan dalam program tapi dilakukan secara runtime (ketika program
berjalan).
01: #include <stdio.h>
02: #include <conio.h>
03: #include <stdlib.h>
04: main()
05: {
06: int *data;
07: int i,banyakdata;
08: printf("Banyak
data yang akan diinputkan : ");scanf("%i",&banyakdata);
09: data=(int
*)malloc(sizeof(int)*banyakdata);
10:
for(i=0;i<banyakdata;i++)
11: {
12:
printf("Pemasukan data ke-%i
:",i+1);scanf("%i",(data+i));
13: }
14: printf("Data
yang telah diinputkan adalah : \n");
15:
for(i=0;i<banyakdata;i++)
16: printf("Data
ke-%i : %i\n",i+1,*(data+i));
17: getch();
18: return 0;
19: }
|
Tampilan yang
dihasilkan oleh program diatas adalah sebagai berikut :
Banyak data yang akan diinputkan : 5
Pemasukan data ke-1 :12
Pemasukan data ke-2 :3
Pemasukan data ke-3 :4
Pemasukan data ke-4 :5
Pemasukan data ke-5 :67
Data yang telah diinputkan adalah :
Data ke-1 : 12
Data ke-2 : 3
Data ke-3 : 4
Data ke-4 : 5
Data ke-5 : 67
Keterangan program :







emh.. ternyata cukup rumit ya pointer itu. hehehe
BalasHapusapabila kk ksulitan, ini sya jga punya artikel tentang Pointer dalam bahasa C lengkap dengan contoh program dan penjelasan, semoga dpt saling melengkapi
HapusPointer dalam Bahasa C (Lengkap dengan contoh dan penjelasan)
Kumpulan Materi Bahasa C Berseta Contoh Program dan Penjelasan
wah keren banget sis :D
Hapusiya memang begitu. tapi pointer di C sampai sekarang belum ada yang menandingi kecepatannya.
BalasHapusgimana penggunaan pointer, array dan struct dlm 1 program? misalkan struct mahasiswa yg berisi array nim & nama, yg inisialisasinya dengan pointer *p? makasih
BalasHapusyang dimaksud agan gimana?
Hapusjadi gini misalkan ada struct. dan di dalamnya terdapat 2 buah nilai nim dan nama. nah penggunaan pointer disini tidak penting dikarenakan struct sudah bisa menangani sifat yang di miliki pointer, yaitu sebagai penunjuk.
object_struct.nim[index] .....
mungkin bisa membantu :) terimakasih
poiter bikin pusing .. apa lagi klo udah sama fungsi ..
BalasHapusribet
BalasHapusterima kasih gan... sangat membantu saya untuk memahami materi struktur data...
BalasHapuspointer sangat di butuhkan untuk memahami mater2 yang lain seperti linked list dan seterusnya... terima kasih gan...
visit back : http://backshare.us
makasih gan , kebetulan lg tugas struktur data :)
BalasHapusVisit me
http://www.gimana-caranya.com/
Komentar ini telah dihapus oleh pengarang.
BalasHapusokewow.com
BalasHapusartiel ini di posting tanggal berapa gan fast respont
BalasHapusartiel ini di posting tanggal berapa gan fast respont
BalasHapussorry gan. gak aktif blog
Hapusitu sudah ada tanggalnya gan 06 April 2012
mantab banget gan
BalasHapussolder uap