PERCOBAAN 9

 

VARIABEL POINTER DAN PENGGUNAANNYA DALAM FUNGSI

TUJUAN

Mampu Mempelajari penggunaan  variable pointer yang dipadukan dengan variabel bertipe integer, array, dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai penunjuk fungsi atau sebagai argument fungsi.

Mampu Mempelajari pointer yang menunjuk pointer lainnya.

 

TEORI DASAR

Suatu  pointer  adalah suatu  variabel yang menyimpan alamat dari suatu variabel yang ditunjuk oleh pointer yang bersangkutan. Karena data yang ditunjuk pointer bervariasi, maka tipe dari pointer harus disesuaikan dengan tipe data yang ditunjuk, untuk memperkirakan ukuran  data yang ditunjuk, sehingga alokasi memori terhaga dengan baik. Pinter berguna untuk mentransfer data yang mempunyai kapasitas besar, melalui suatu fungsi.  Pointer sangat erat kaitannya dengan  array, sehingga  variable pointer dapat menggantikan fungsi dari  variable array.

 

PROGRAM PERCOBAAN

9.4.1

Mengakses isi suatu  variabel melalui  pointer. Untuk membedakan antara pointer dangan isi dari pointer maka dibedakan dengan menggunakan tanda ‘&’ (ampersand) dan ‘ * ‘ (asterisk), tanda’&’ digunakan pada variabel yang bukan pointer, bila suatu variabel bukan pointer maka diawali dengan tanda ‘&’ di depannya kemudian akan didapatkan alamat dari variabel tersebut. Demikian sebaliknya bila variabel pointer diawali dengan tanda ‘ * ‘, makaakan didapatkan nilai isi dari variable yang ditunjuk oleh pointer tersebut, dan bukan didapatkan alamatnya.

Contoh program :

/* Nama File : POINTER1.c */

void main()

{

int y, x = 2002;                /* x & y bertipe int */

int *px;                            /* var pointer menunjuk data tipe int */

 

px = &x;                          /* px diisi alamat dari variabel x */

y = *px;                            /* y diisi nilai yang ditunjuk oleh px */

 

printf(“Alamat x                = %p\n”, &x);

printf(“Isi px                      = %p\n”, &x);

printf(“Isi x                        = %p\n”, &x);

printf(“Nilai *px                 = %d\n”, *px);

printf(“Nilai y                     = %d\n”, y);

 

getch();

}

 

9.5.1

#include<stdio.h>
#include<conio.h>
void main()
{
int a[20],b,i,j,*ip;
char q;
    printf(“Hai !”);
awal:
printf(“\nMasukkan banyak data = “);
scanf(“%d”, &b);
    for(i=1; i<=b; i++)
{
printf(“\ninput data ke(%d) = “, i);
scanf(“%d”, &a[i]);
}
    printf(“\n\nsehingga data (array) = \n\n”);
printf(“{“);
for(i=1; i<=b; i++)
{
printf(” %d “, a[i]);
}
printf(“}”);
    printf(“\n\nsehingga data (pointer) = \n\n”);
ip=&a;
printf(“{“);
for(i=1; i<=b; i++)
{
printf(” %d “, *(ip+i));
}
printf(“}”);
printf(“\n\nmengulang program ? “);
getchar();
scanf(“%c”,&q);
if(q==’y’)
{
goto awal;
}
}

  • Facebook
  • Twitter
  • Google+
  • Pinterest