Anda di halaman 1dari 7

MODUL PRAKTIKUM DASAR PEMROGRAMAN KOMPUTER

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.

Operator & (Operator Diference)


1.

Operator & bersifat unary (hanya memerlukan satu operand saja).

2.

Operator & menghasilkan alamat dari operandnya.

Operator * (Operator Reference)


1.

Operator * bersifat unary (hanya memerlukan satu operand saja).

2.

Operator * menghasilkan nilai yang berada pada sebuah alamat.

Pointer : variabel yang berisi alamat memori

Bentuk Umum:

Type *variable name;

Keterangan :
Type adalah tipe dasar pointer

MODUL PRAKTIKUM DASAR PEMROGRAMAN KOMPUTER

S1 PTI TE UM

Variable name adalah nama variabel pointer


* adalah operator memori untuk mengembalikan nilai variabel pada

alamatnya yang ditentukan oleh operand.


Contoh 8.0 :

#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();
}

MODUL PRAKTIKUM DASAR PEMROGRAMAN KOMPUTER

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();
}

Input data Melalui Pointer


Anda dapat juga mengimputkan suatu data kedalam variabel dengan
menggunankan pointernya, sebagai contoh tinjaulah program dibawah ini :
int x;
int *ptr_x;
ptr_x=&x;
printf("Inputkan nilai x : ");
scanf("%d",ptr_x);

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:

Dimana &x juga menunjukkan alamat dari variabel x.

scanf("%d",&x);

MODUL PRAKTIKUM DASAR PEMROGRAMAN KOMPUTER

S1 PTI TE UM

Keunggulan menggunakan Pointer:


1. Untuk menciptakan data struktur yang kompleks.
2. Memungkinkan suatu fungsi untuk menghasilkan lebih dari satu nilai.
3. Memiliki kemampuan untuk mengirimkan alamat suatu fungsi ke fungsi

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

berkerja dengan memori yang telah dialokasikan

secara dinamik.

Latihan 1
Buatlah script-nya dan jalankan !

Latihan 2
Buatlah script-nya dan identifikasi kesalahan kemudian jalankan seperti output-an
dibawah ini !

MODUL PRAKTIKUM DASAR PEMROGRAMAN KOMPUTER

S1 PTI TE UM

Latihan 3
Buatlah program seperti dibawah ini dengan menggunakan fungsi ubah:

Lanjutkan script dibawah ini sehingga seperti tampilan atas !

MODUL PRAKTIKUM DASAR PEMROGRAMAN KOMPUTER

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!

MODUL PRAKTIKUM DASAR PEMROGRAMAN KOMPUTER

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.

Anda mungkin juga menyukai