LAPORAN DAN PRAKTIKUM VIII Pointer

LAPORAN PRAKTIKUM VIII
POINTER
Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++
Dibimbing oleh Bpk. Ahmad Musyidun Nidhom

Oleh:
Nanda Riski Septania
140533606173
S1 PTI’14 OFF F

UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI PENDIDIKAN TEKNIK INFORMATIKA
OKTOBER 2014

A. Tujuan
Tujuan dari mempelajari Modul 8 “POINTER” ini agar mahasiswa mampu:
1. Mengetahui arti dalam fungsi pinter dadlam pemrograman
2. Memahami penggunaan pointer dalam listing program
3. Mengetahui keunggulan pointer pada suatu program

4. Membuat program sederhana dengan menerapkan konsep pointer.
DASAR TEORI
B. Pengertian Pointer
B.1 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.
B.2 Operator
B.2.1 Operator pointer
a.

b.

Pointer Operator & (Operator Diference)
1.

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

2.


Operator & menghasilkan alamat dai operandnya

Poinetr Operator * (Operator Reference)
1.

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

2.

Operator * menghasilkan nilai yang berada pada sebuah alamat

Pointer : variabel yang berisi alamat memori.

Keterangan:
a. Type adalah tipe dasar pointer
b. Variable name adalah nama variabel opinter
c. * adalah operator untuk mengembalikan nilai variabel pada alamatnya ditentukan oleh
operand. Contoh 8.0:


B.2.2 Operator aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer
saja. Operasi yang biasa dilakukan adalah operasi penambahan dan operasi pengurangan.
Operasi penambahan suatu nilai menunjukkan lokasi data berikutnya (indexs selanjutnya)
dalam memori. Begitu juga operasi pengurangan. Contoh:

Opeartor logika:

Input data melalui pointer:
Anda dapat juga menginputkan suatu data dalam
keadaan varibel dengan menggunakan pointernya.
Ingat menginputkan data dengan scanf) membutuhkan alamat dari variabel yang
bersangkutan. Karena ptr_x merupakan alamat dari variabel x maka ptr_x dapat digunakan
menjadi scanf((). Jadi pernyataan:
scanf(“%d” ptr_x)

sama dengan pernyataan

scanf(“%d” &x)


Dimana &x juga menunjukkan alamat dari vairabel x.
Kelebihan menggunakan pointer:
a. Untuk menciptakan data struktur yang kompleks
b. Memungkinkan suatu fungsi untuk menghasilkan lebih dari satu nilai

c. Memiliki kemampuan untuk mengirimkan alamat suat fungsi ke fungsi yang lain
d. Penanganan terhadap array dan string akan lebih singkat dan efisien
e. Memungkinkan untuk berhubungan langsung ke hadware
f. Memungkinkan untuk berhubungan langsung dengan parameter command line.
g. Kemampuan bekerja dengan memmori yang telah dialokasikan secara dinamik.
Macam – macam Pointer
1. Pointer Bertipe Void
Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, po¬inter semacam ini
dideklarasikan dengan tipe void sehingga sering dikenal dengan istilah Void Pointer. Berikut
ini contoh listing program yang menggunakan void pointer.
2. Pointer Aritmetika
Elemen-elemen array biasanya diakses melalui indeksnya, sebenarnya ada cara lain yang
lebih efisien, yaitu dengan menggunakan pointer. Pointer semacam ini disebut dengan istilah
pointer aritmetika. Konsep dasar dari pointer aritmetika ini adalah melakukan operasi
aritmetika terhadap variabel yang bertipe pointer.

3. Pointer NULL
Pada saat program dijalankan, pointer akan menunjuk ke alamat acak pada memori, sehingga
diperlukan inisialisasi agar hal tersebut tidak terjadi. Dalam C++ terdapat sebuah cara untuk
membuat pointer tidak menunjuk ke alamat manapun, yaitu dengan mengisikan pointer
tersebut dengan nilai NULL. Karena hal inilah maka pointer tersebut sering dinamakan
pointer NULL (NULL Pointer).Sebagai contoh kita mempunyai pointer p, dan kita ingin
melakukan inisialisasi pada pointer tersebut dengan nilai NULL
Operasi-operasi pada pointer:
1.

Operasi penugasan
Suatu variabel pointer seperti halnya variabel yang lain, juga bisa mengalami operasi
penugasan. Nilai sari suatu variabel pointer dapat disalin ke variabel pointer yang lain.

2.

Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer
saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.


3.

Operasi Logika

Bahaya menggunakan pointer:
1. Bahaya yang mungkin ada dengan pointer sebagai moniker: memory leak, double
delete, invalid memory access. Semuanya dapat dihindari dengan ownership analysis
yang bagus (pada setiap saat, harus diketahui pihak mana yang bertanggung jawab
mendelete sebuah object). Jika hal ini sulit dilakukan, misalnya karena shared
ownership, anda dapat menggunakan smart pointer atau garbage collector
2. Bahaya yang mungkin ada dengan pointer sebagai iterator: array out of bound. Salah
satu cara yang efektif menghindari hal ini adalah dengan menggunakan standard
algorithma
3. Bahaya yang mungkin ada dengan pointer sebagai abstraksi fixed memory : Tidak
tahu, tetapi ini bukan mainan sembarang programmer.

LATIHAN PRAKTIKUM I
PEMROGRAMAN C++
Nama Program


: Program pemanggilan angka 77

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

:

#include // header file
int main ()// deklarasi fungsi utama
{

pemanggilan pointer


int*pBil; // deklarasi variabel pBil dengan
int bilX = 77; // deklarasi variabel

pBil =&bilX; // menyatakan bahwa pBil akan
memanggil nilai bilX dengan pointer operator diference
cout