Professional Documents
Culture Documents
DASAR PEMROGRAMAN
Tujuan
Setelah menyelesaikan bab ini,
anda diharapkan dapat:
Dasar Pointer
Variabel pointer sering dikatakan sebagai variabel
xxxx
1000
px = &x;
address
1000
px
tipe_data *nama_variabel_pointer;
Contoh:
int *px;
px = &x;
Mengakses isi suatu variabel melalui pointer:
y = *px;
5
Variabel Pointer
*px isi dari alamat memory yang ditunjuk
variabel px.
&x alamat memory dari variabel x.
Contoh #1
#include <stdio.h>
Alamat x
main()
Isi px
{
Isi x
int y, x = 87;
Nilai px
int *px;
Nilai y
px = &x;
y = *px;
printf("Alamat x
= %p\n", &x);
printf("Isi px
= %p\n", px);
printf("Isi x
= %d\n", x);
printf("Nilai yang ditunjuk oleh px
*px);
printf("Nilai y
= %d\n", y);
}
=
=
=
=
=
0012FF78
0012FF78
87
87
87
= %d\n",
Analisa
Pada program di atas, dua pernyataan
px = &x;
y = *px;
sebenarnya dapat digantikan dengan sebuah pernyataan
berupa
y = x;
Seandainya pada program di atas tidak terdapat pernyataan
px = &x;
namun terdapat pernyataan
y = *px;
mengakibatkan komputer tidak dapat dikendalikan (hang).
Contoh #2
#include <stdio.h>
main()
{
Tipe pointer dan obyek yang
int *pu;
ditunjuk harus sejenis
int nu;
int u = 1234;
pu = &u;
nu = *pu;
printf("Alamat dari u = %p\n", &u);
printf("Isi pu
= %p\n", pu);
printf("Isi u
= %d\n", u);
printf("Nilai yang ditunjuk pu = %d\n", *pu);
printf("Nilai nu
= %d\n", nu);
}
= 54.5
= 64.5
10
11
Contoh #4
/* Program : ptr6.c */
#include <stdio.h>
main()
{
static int tgl_lahir[] = {16, 4, 1974};
int i, *ptgl;
ptgl = tgl_lahir;
printf("Nilai yang ditunjuk ptgl = %d\n", *ptgl);
for (i=0; i<3; i++)
printf(" %d\n", tgl_lahir[i]);
}
Keterangan :
tgl_lahir[i] bisa diganti dengan *(ptgl+i)
atau *ptgl++
12
string.
Contoh:
char *pkota = SEMARANG;
Hampir sama dengan:
13
Contoh #5
/* Program : ptr4.c */
#include <stdio.h>
main()
{
// pkota menunjuk konstanta string SEMARANG
char *pkota = SEMARANG;
printf(String yang ditunjuk oleh pkota = );
puts(pkota); // printf(%s\n, pkota)
}
Hampir sama dengan sbb :
char *pkota;
char data [] = SEMARANG;
pkota = data;
printf (%c\n,*pkota);
14
?
?
?
?
?
xxxx
namahari
Gambar Array pointer
15
16
17
18
Analisa Program
Fungsi di atas dimaksudkan agar kalau dipanggil, variabel yang
berkenaan dengan parameter aktual dapat diubah nilainya, masingmasing dinaikkan sebesar 2. Contoh pemanggilan :
naikkan_nilai(&a, &b);
Perhatikan, dalam hal ini variabel a dan b harus ditulis diawali operator
19
20
LATIHAN
1. Buat program untuk menampilkan sebaris string
seperti contoh berikut ;
Selamat Pagi
menggunakan variable pointer (pointer to string),
kemudian tampilkan karakter per karakter.
2. Buat potongan program untuk mencetak
huruf ketiga ( L ) dari kata :
P O L I T E K N I K
dengan menggunakan variabel pointer .
21