Pada kesempatan kali ini saya akan membahas tentang Variable Pointer dan Penggunaannya dalam Fungsi pada Bahasa C. Dengan ini kita bisa mempelajari penggunaan Variable pointer yang dipadukan dengan variable bertipe integer, array dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai petunjuk fungsi atau sebagai argumen fungsi. dipelajari juga pointer yang menunjuk pointer lainnya.

Jika kita mempunyai sebuah variabel yang bertipe long (misal X), maka kita dapat memerintahkan pointer P diatas untuk menunjuk ke alamat yang ditempati oleh variabel X. Untuk melakukan hal tersebut, kita perlu menuliskan kode seperti berikut:

// Mendeklarasikan variabel X dengan tipe long

long X;

// Mendeklarasikan pointer P

long P;

// Memerintahkan P untuk menunjuk alamat dari variabel X

P = &X;

Apabila kita analisis potongan kode diatas, sebenarnya konsepnya sangat sederhana. Kita tahu bahwa P adalah pointer (berisi alamat) dan &X juga berisi alamat (alamat variabel X), maka kita dapat menyimpan alamat dari variabel X tersebut ke dalam pointer P. Kita tidak diizinkan untuk memasukkan sebuah nilai (bukan alamat) ke dalam pointer P, seperti yang ditunjukkan oleh kode berikut:

// Salah, karena X berupa nilai (bukan berupa alamat)

P = X;

apabila kita memang ingin mengisikan nilai kedalam alamat yang disimpan oleh pointer P, maka seharusnya kita menggunakan tanda asterisk (*) di depan nama pointer tersebut, yaitu dengan mengubah kode diatas menjadi seperti dibawah ini:

// Benar, karena *P merupakan nilai yang berada pada pointer P

*P = X;

Sebagai catatan bahwa *P ini disebut dengan deference pointer.

Selanjutnya kita akan mencoba untuk mengerjakan tugas agar lebih memahami materi tentang Variable Pointer dan Penggunaannya dalam Fungsi.

  1. Mengurutkan suatu angka dan di tampilkan dalam indeks array dan indeks pointer 

selanjutnya algoritmanya seperti berikut:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
static int a,b[16],c,d;
char e[16],*f;
menu:
printf(“\n Angka sebelum di urutkan \n”);
for(a=1;a<13;a++)
{
printf(“angka ke %d=”,a);
scanf(“%d”,&b[a]);
}
printf(“\n Angkka setelah diurutkan \n”);
for (a=1;a<13;a++)
{
for(d=a+1;d<13;d++)
{
if(*(b+a)>*(b+d))
{
c=*(b+d);
*(b+d)=*(b+a);
*(b+a)=c;
}}
printf(“Angka ke %d= %d\n”,a,*(b+a));
}
printf(“\n Ketik ‘exit’ untuk keluar \n”);
gets(e);
printf(” “);
gets(e);
f=strlwr(e);
if(strcmp(f,”exit”)==0);
else{ system (“cls”);
goto menu;
}
}

Lalu Build & run dan masukan katalognya

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

2. Membuat program yang menyimpan data karakter huruf ‘X’ pada matriks 12 x 12

selanjutnya masukkan kode seperti berikut:

#include <stdio.h>
#include<string.h>
main()
{
int a[12][12] =  {{1,0,0,0,0,0,0,0,0,0,0,1}, {0,1,0,0,0,0,0,0,0,0,1,0},{0,0,1,0,0,0,0,0,0,1,0,0},{0,0,0,1,0,0,0,0,1,0,0,0},{0,0,0,0,1,0,0,1,0,0,0,0},{0,0,0,0,0,1,1,0,0,0,0,0},{0,0,0,0,0,1,1,0,0,0,0,0},{0,0,0,0,1,0,0,1,0,0,0,0},{0,0,0,1,0,0,0,0,1,0,0,0},{0,0,1,0,0,0,0,0,0,1,0,0},{0,1,0,0,0,0,0,0,0,0,1,0},{1,0,0,0,0,0,0,0,0,0,0,1}};

int i,j,*p_a;

p_a=a;
for(i = 0 ; i<=11; i++)
{
for(j=0;j<=12;j++)
printf(“%3d”, *(p_a+i+j));
printf(“\n”);
}}

Lalu Build & run dan hasilnya sebagai berikut

  • Facebook
  • Twitter
  • Google+
  • Pinterest