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.
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:
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 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:
- Membuat Pointer;
- Mengisinya dengan alamat memori;
- 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:
Lihatlah perpedaanya saat kita menggunakan pa
dan *pa
. pa
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:
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.
TUGAS 2
Buatlah program yang menyimpan data karakter ‘X’ pada suatu array berdimensi 12 x 12, kemudian tampilkan menggunakan index pointer.
Recent Comments