Nama : Ahmada Haiz Zakiyil Ilahi (1110191054)

Kelas  : 1 D4 Teknik Elektronika B

Percobaan 9

VARIABEL POINTER DAN PENGGUNAANNYA DALAM FUNGSI 

 

Assalamualaikum Wr.Wb.

Haii gaiss, jutaan orang tidak menyadari bahwa setiap minggunya saya membagikan materi-materi yang menarik terkait pemrogamman *WOW. Dan kali ini saya akan membahas yaitu variabel pointers. Apa itu pointer ?? apa hayoo?? kuy kita simak !!

Tujuan

Mempelajari penggunaan pointer yang dipadukan dengan variable bertipe integer, array dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai penunjuk fungsi atau sebagai argument fungsi. Dipelajari juga pointer yang menunjuk pointer lainnya.

 

Teori

pointer adalah  penunjuk suatu variabel yang menyimpan alamat dari suatu variabel yang ditunjuk oleh pointer yang bersagkutan. Karena menunjuk suatu variabel, maka pointer wajib memiliki alamat dari variabel yang ditunjuknya. Kadangkala dalam program yang besar, penghematan memori wajib untuk dilakukan. Dengan mekanisme copy dan paste nilai variabel satu kedalam variabel lain, akan sangat memboroskan memori. Dengan mekanisme pointer, suatu variabel dalam suatu fungsi dapat diakses oleh fungsi yang lain. Pointer sangat erat kaitannya dengan array, sehingga variabel pointer dapat menggantika fungsi dari variabel array.

 

Program Percobaan

1. Mengakses isi suatu variable melalui pointer.

  • Facebook
  • Twitter
  • Google+
  • Pinterest

/* 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”, px);

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

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

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

 

getch();

}

 

2. Mengamati persamaan penggunaan variable index pada array dan variable index pada pointer

  • Facebook
  • Twitter
  • Google+
  • Pinterest

/* Nama File : STRING2.C */

void main()

{

int nilai[10]={86,75,98,66,56,76,80,95,70,60};

int index, *ip;

 

printf(“Mencetak menggunakan array\n”);

printf(“Daftar nilai siswa\n\n”);

for(index=0; index<10; index++)

printf(“%3d”,nilai[index]);

 

puts(“\n”);

printf(“Mencetak menggunakan pointer dan index\n”);

printf(“Daftar nilai siswa\n\n”);

for(index=0; index<10; index++)

printf(“%3d”,*(nilai+index));

 

puts(“\n”);

printf(“Mencetak menggunakan pointer\n”);

printf(“Daftar nilai siswa\n\n”);

ip=&nilai;

for(index=0; index<10; index++)

printf(“%3d”,*ip++);

 

getch();

}

 

3. Pointer yang menunjuk ke pointer lain

  • Facebook
  • Twitter
  • Google+
  • Pinterest

/* Program : POINTER3.C */

void main()

{

int a, *b, **c;

 

a = 1975;

b = &a;

c = &b;

 

printf(“Nilai a = %d atau %d atau %d\n”, a, *b, **c);

printf(“b = %p = alamat a di memori\n”, b);

printf(“c = %p = alamat b di memori\n”, c);

printf(“alamat c di memori = %p\n”, &c);

 

getch();

}

 

4. Fungsi dengan argumen berupa pointer

  • Facebook
  • Twitter
  • Google+
  • Pinterest

/* Nama File : POINTER4.C */

void naikkan_nilai(int *x, int *y);

 

main()

{

int a = 3, b = 7;

 

printf(“SEMULA      : a = %d  b = %d\n”, a, b);

naikkan_nilai(&a, &b);

printf(“SEKARANG : a = %d  b = %d\n”, a, b);

getch();

}

 

void naikkan_nilai(int *x, int *y)

{

*x = *x + 2;

*y = *y + 3;

}

 

5. fungsi mempunyai nilai balik bertipe pointer

  • Facebook
  • Twitter
  • Google+
  • Pinterest

/* Nama File : POINTER5.C */

#include <stdio.h>

 

char *nama_bulan(int n)

{

static char *bulan[] = {

“Kode bulan salah”,

“Januari”,”Februari”,”Maret”,”April”,”Mei”,”Juni”,

“Juli”,”Agustus”,”September”,”Oktober”,”November”,

“Desember”

};

 

return ((n<1||n>12) ? bulan[0] : bulan[n]);

}

 

void main()

{

int bl;

 

printf(“Masukkan kode Bulan [1..12] : “);

scanf(“%d”, &bl);

printf(“Bulan ke-%d adalah %s\n”, bl, nama_bulan(bl));

 

getch();

}

 

6. Penggunaan fungsi *strlwr(str)

  • Facebook
  • Twitter
  • Google+
  • Pinterest

/* Nama File : POINTER6.C */

#include <stdlib.h>

#include<string.h>

 

void main()

{

char str1[80], str2[80], *ptrx;

 

strcpy(str1,”INI ADALAH HURUF BESAR SEMUA!!!”);

strcpy(str2,”ini adalah huruf kecil semua!!!”);

ptrx = NULL;

 

cputs(“Isi str1 = “); puts(str1);

cputs(“Isi str2 = “); puts(str2);

cputs(“Isi ptrx = “); puts(ptrx);

 

ptrx = (char *) calloc(80, sizeof(char));

ptrx = strlwr(str1);

puts(“\nSeletelah ‘str1’ diproses dengan strlwr()\n”);

cputs(“Isi str1 = “); puts(str1);

cputs(“Isi ptrx = “); puts(ptrx);

 

ptrx = strupr(str2);

puts(“\nSeletelah ‘str2’ diproses dengan strupr()\n”);

cputs(“Isi str2 = “); puts(str2);

cputs(“Isi ptrx = “); puts(ptrx);

 

getch();

}

TUGAS

1. Membuat program untuk menyimpan bilangan pecahan acak sebanyak 12 bilangan.

  • Facebook
  • Twitter
  • Google+
  • Pinterest

#include<stdio.h>

main()
{
int a,b[15],c,d;

printf(“\n Angka sebelum diurutkan …\n”);
for(a=1;a<13;a++)
{
printf(” Angka ke %d = “,a);
scanf(“%d”,&b[a]);
}
printf(“\n Angka 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));
}
}

Sekian dari penjelasan yang sampaikan kepada teman-teman, semoga bermanfaat dan makin cinta dengan namanya itu algoritma dan pemogramman.

Wassalamualaikum Wr.Wb