PRAKTIKUM ALGORITMA & PEMROGRAMAN PERTEMUAN KESEMBILAN

Assalamu’alaikum para pembaca, pada pertemuan ke-9 ini kita akan mengamati dan mempelajari penggunaan pointer  dalam pemrogarman bahasa C

Teori

Setiap variabel yang kita buat pada program akan memiliki alamat memori.

Alamat memori berfungsi untuk menentukan lokasi penyimpanan data pada memori (RAM).

Alamat memori biasnya direpresentasikan dalam bilangan heksa desimal.

Variabel dan alamat memori
  • Facebook
  • Twitter
  • Google+
  • Pinterest

Contoh:

Coba perhatikan program berikut!

#include <stdio.h>

void main () {

   int  a;
   char b[10];

   printf("Alamat memori variabel a: %x\n", &a);
   printf("Alamat memori variabel b: %x\n", &b);

}

Pada program tersebut, kita menggunakan simbol & untuk mengambil alamat memori dari variabel a dan b.

Hasil outputnya:

Output program alamat memori
  • Facebook
  • Twitter
  • Google+
  • Pinterest

Lalu apa hubungannya alamat memori dengan pointer?

Mari kita bahas…

Apa itu Pointer?

Pointer adalah sebuah variabel berisi alamat memori dari variabel yang lain.

Pointer pada pemrograman C
  • Facebook
  • Twitter
  • Google+
  • Pinterest

Pointer seperti variabel pada umumnya, ia harus dideklarasikan atau dibuat dulu sebelum dapat digunakan.

Cara membuat pointer:

int *nama_pointer;
double *nama_pointer;
float *nama_pointer;
char *nama_pointer;

Pointer selalu diawali dengan tanda bintang (*) di depannya. Simbol ini akan menandakan, kalau ini adalah sebuah pointer.

Tipe data yang digunakan pada pointer tergantung dari tipe data variabel yang akan menjadi referensinya.

Contoh:

float a = 4.12;
float *pa = &a;

Pointer *pa akan menyimpan alamat memori dari variabel a. Pointer *pa juga akan bisa mengakses dan mengubah nilai dari variabel a.

Cara Menggunakan Pointer

Ada beberapa langkah yang harus dilakukan saat menggunakan pointer:

  1. Membuat Pointer;
  2. Mengisinya dengan alamat memori;
  3. Mengakses nilai dari pointer.

Mari kita coba lihat contohnya:

#include <stdio.h>

void main () {

   int  x = 20;   /* membuat variabel x */
   int  *px;        /* membuat pointer untuk variabel x */

   px = &x;  /* mengisi alamat memori variabel x ke dalam pointer px */

   printf("Alamat memori variabel x: %x\n", &x  );

   /* alamat memori yang disimpan pointer */
   printf("Alamat memori di pointer px: %x\n", px );

   /* mengambil nilai x menggunakan pointer */
   printf("Nilai pada *px: %d\n", *px );

}

Hasilnya:

Contoh Pointer pada pemrograman C
  • Facebook
  • Twitter
  • Google+
  • Pinterest

Lihatlah perpedaanya saat kita menggunakan pa dan *papa akan berisi alamat memori sedangkan *pa akan berisi nilai dari variabel yang alamat memorinya tersimpan pada pointer pa.

Melalui pointer, kita juga bisa mengubah nilai dari variabel x.

Tidak percaya?

Mari kita coba…

#include <stdio.h>

void main () {

   int  x = 20;   /* membuat variabel x */
   int  *px;        /* membuat pointer untuk variabel x */

   px = &x;  /* mengisi alamat memori variabel x ke dalam pointer px */

   printf("Alamat memori variabel x: %x\n", &x  );

   /* alamat memori yang disimpan pointer */
   printf("Alamat memori di pointer px: %x\n", px );

   /* mengambil nilai x menggunakan pointer */
   printf("Nilai pada *px: %d\n", *px );

   /* mencetak isi variabel x sebelum diubah*/
   printf("Nilai x sebelum: %d\n", x );

   /* mengubah isi nilai variabel x melalui pointer */
   *px = 48;

   /* mencetak isi variabel x sesudah diubah */
   printf("Nilai x sesudah: %d\n", x );

}

Hasilnya:

Contoh Pointer untuk mengubah nilai
  • Facebook
  • Twitter
  • Google+
  • Pinterest

Mengapa bisa begitu?

Karena pointer *px memiliki alamat memori dari variabel x jadi dia bisa melakukan apa saja dengannya.

 

 

TUGAS 1

Buatlah program untuk menyimpan bilangan pecahan acak sebanyak 12 bilangan, yang disimpan dalam suatu array. Urutkan bilangan bilangan tersebut dan tampilakn sebelum dan sesudah diurutkan menggunakan index array dan pointer.

  • Facebook
  • Twitter
  • Google+
  • Pinterest

TUGAS 2

Buatlah program yang menyimpan data karakter ‘X’ pada suatu array berdimensi 12 x 12, kemudian tampilkan menggunakan index pointer.

  • Facebook
  • Twitter
  • Google+
  • Pinterest