MODUL 8 (Pointer)
MODUL 8 (Pointer)
S1 PTI TE UM
MODUL 8
POINTER
A. Tujuan
Tujuan dari mempelajari Modul 8 Pointer ini, agar mahasiswa mampu :
1. Mengetahui arti dan fungsi pointer dalam pemrograman.
2. Memahami penggunaan pointer dalam listing program.
3. Mengetahui keunggulan pointer pada suatu program.
4. Membuat program sederhana dengan menerapkan konsep pointer.
B. Pengertian POINTER
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori
dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya
variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat dari
variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua.
Operator Pointer ada dua, yaitu :
a.
b.
2.
2.
Bentuk Umum:
Keterangan :
Type adalah tipe dasar pointer
S1 PTI TE UM
#include <iostream.h>
// cetak p dan *p
int main()
{
int v = 7, *p;
p = &v;
cout << " Nilai v = " << v << " dan *p = " << *p
cout << " Alamatnya = " << p << endl;
}
Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai
integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan
pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data
berikutnya (index selanjutnya) dalam memori. Begitu juga operasi pengurangan.
Contoh 8.1 :
#include <stdio.h>
#include <conio.h>
int main()
{ int nilai[3], *penunjuk;
system("cls");
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
printf("Nilai %i ada di alamat memori %p\n", *penunjuk, penunjuk);
printf("Nilai %i ada di alamat memori %p\n", *(penunjuk+1), penunjuk+1);
printf("Nilai %i ada di alamat memori %p\n", *(penunjuk+2), penunjuk+2);
getch();
}
S1 PTI TE UM
Operator Logika
Contoh 8.2 :
#include <stdio.h>
#include <conio.h>
int main()
{ int a = 100, b = 200, *pa, *pb;
system("cls");
pa = &a;
pb = &b;
if(pa < pb)
printf("pointer a menunjuk ke memori lebih rendah dari pointer b\n");
if(pa == pb)
printf("pointer a menunjuk ke memori yang sama dengan pointer b\n");
if(pa > pb)
printf("pointer a menunjuk ke memori lebih tinggi dari pointer b\n");
getch();
}
Ingat! Menginputkan data dengan scanf() membutuhkan alamat dari variabel yang
bersangkutan. Karena ptr_x merupakan alamat dari variabel x, maka ptr_x
dapat digunakan dalam scanf(). Jadi pernyataan:
scanf("%d",ptr_x);
Sama dengan:
scanf("%d",&x);
S1 PTI TE UM
yang lain.
4. Penanganan terhadap array dan string akan lebih singkat dan efisien.
5. Memungkinkan untuk berhubungan langsung ke hardware.
6. Memungkinkan untuk berhubungan langsung dengan parameter
command line.
7. Kemampuan
secara dinamik.
Latihan 1
Buatlah script-nya dan jalankan !
Latihan 2
Buatlah script-nya dan identifikasi kesalahan kemudian jalankan seperti output-an
dibawah ini !
S1 PTI TE UM
Latihan 3
Buatlah program seperti dibawah ini dengan menggunakan fungsi ubah:
S1 PTI TE UM
Tugas Praktikum 1
Buatlah program untuk menjawab pertanyaan di bawah ini dengan menggunakan
fungsi pointer :
aziz = 85067
defa = aziz
dewi = defa+3
a. berapa nilai defa?
b. berapa nilai dewi?
aziz = 85067
defa = &aziz
dewi = *defa+3
c. berapa nilai defa?
d. berapa nilai dewi?
Tugas Praktikum 2
Buatlah sebuah program kalimat terbalik dari kalimat yang telah kita inputkan
dengan menggunakan pointer!
S1 PTI TE UM
Tugas Rumah
1). Buatlah sebuah function untuk menghitung jumlah kata dari string yang diberikan dengan
fasilitas pointer.
2).Buatlah function untuk membuat setiap huruf pertama dari string yang diberikan menjadi
huruf besar dengan fasilitas pointer.
3). Buatlah implementasi program pointer fungsi main melewatkan tiga variable a,b,c ke fungsi
yang tanpa nilai balikan, dengan output nilai variable sesudahnya dua kali lipat dari nilai
sebelumnya.