Anda di halaman 1dari 19

LAPORAN PRAKTIKUM VIII

POINTER
Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++
Dibimbing oleh Bapak Wahyu Sakti Gunawan Irianto

Oleh:
Anidia Wulan Sari
150533601651
S1 PTI15 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
November 2015

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. Operator & (Operator Diference)
1. Operator & bersifat unary (hanya memerlukan satu operand saja).
2. Operator & menghasilkan alamat dari operandnya.
b. 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

Variable name adalah nama variabel pointer


* adalah operator memori untuk mengembalikan nilai variabel pada
alamatnya yang ditentukan oleh operand.

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.

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);
scanf("%d",&x);

Sama dengan:

Dimana &x juga menunjukkan alamat dari variabel x.

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.

Nama Program
Bahasa Pemrogramam
Compiler
Script program

Latihan Praktikum I
Pemrograman C++
: Menambahkan Isi Bilangan dengan Pointer
: C++
: MinGW Developer Studio
:

#include <iostream>
using namespace std;
int main () {
int *pBil;
int bilX = 77;
pBil = &bilX;
cout << "Isi bilX = " << bilX << endl;
cout << "Nilai yang ditunjuk pBil = "<< *pBil << endl;
*pBil = *pBil + 3;
cout << "Isi bilX sekarang = " << bilX <<endl;
cout << "Nilai yang ditunjuk pBil = " << *pBil << endl;
}

return 0;

Output Program

Penjelasan Program

Latihan Praktikum II
Pemrograman C++
Nama Program
Bahasa Pemrogramam
Compiler
Script program

: Memanggil Nilai dengan Pointer


: C++
: MinGW Developer Studio
:

#include <iostream.h>
int main ()
{
long *p;
long x;

p = &x;
x = 15; //mengisikan 15 ke dalam variabel x
cout<<"nilai
cout<<"nilai
cout<<"nilai
cout<<"nilai

X = "<<x<<endl;
*p = "<<*p<<endl;
P = "<<p<<endl;
&X = "<<&x<<endl;

*p = 25; //mengisikan 25 ke variabel *p


cout<<"nilai
cout<<"nilai
cout<<"nilai
cout<<"nilai
}

X = "<<x<<endl;
*P = "<<*p<<endl;
P = "<<p<<endl;
&X = "<<&x<<endl;

return 0;

Output Program

Penjelasan Program

Latihan Praktikum III


Pemrograman C++
Nama Program

: Penambahan Bilangan Menggunakan Pointer

Bahasa Pemrogramam
Compiler
Script program

: C++
: MinGW Developer Studio
:

#include <iostream.h>
using namespace std;
void ubah (int *x);
int main() {
int a = 12;

cout << "Isi nilai semula = " << a << endl;


ubah (&a);
}
void ubah (int *x)
{
*x = 34;
cout << "Isi nilai sekarang = " << *x << endl;
}

Output Program

Penjelasan Program

Latiahan Praktikum V ( MODUL 7)


Pemrograman C++
Nama Program
Bahasa Pemrogramam
Compiler
Script program

: Fungsi Call by Reference & Call by Value


: C++
: MinGW Developer Studio
:

#include <iostream.h>
int Rtukar(int *, int *);
int Vtukar(int, int);
int main()
{
int a, b;
a = 99;
b = 11;

cout<<"Nilai sebelum pemanggilan fungsi : "<<endl;


cout<<"Nilai a = " <<a<< ". Nilai b = " <<b<<endl<<endl;
Rtukar (&a, &b);
cout<<"Nilai setelah pemanggilan fungsi Rtukar :"<<endl;
cout<<"Nilai a = " << a << ". Nilai b = " << b <<endl << endl;
a = 99;
b = 11;
cout<<" Nilai sebelum pemanggilan fungsi : " <<endl;
cout<<"Nilai a = "<<a<<". Nilai b = "<<b<<endl<<endl;
Vtukar(a,b);
cout<<"Nilai setelah pemanggilan fungsi Vtukar :"<<endl;
cout<<"Nilai a = " <<a<<". Nilai b = " <<b<<endl<<endl;
return 0;
}
int Rtukar(int *px, int *py)
{
int temp;
temp = *px;
*px = *py;
*py = temp;
cout<<" Nilai pada fungsi dengan Call By Reference :"<<endl;
cout<<"Nilai px = " <<*px<<". Nilai py = "<<*py<<endl<<endl;
}
int Vtukar(int px, int py)
{
int temp;
temp = px;
px = py;
py = temp;
cout<<"Nilai pada fungsi dengan Call by Value : "<<endl;
cout<<"Nilai px = " << px <<". Nilai py = "<<py<<endl<<endl;
}

Output Program

Penjelasan Program

Program diatas merupakan program yang digunakan untuk membuat fungsi Rtukar
dan Vtukar. Program ini dimulai dengan mendeklarasikan a=99, b=11 kemudian program
mencetak nilai a dan b sebelum memanggil fungsi yang lain (fungsi buatan). Kemudian
pemanggilan fungsi lain dilakukan yaitu pemanggilan fungsi Rtukar (&a, &b) maka akan
terlihat nilai a dan b saling tertukar. Setelah itu program mengembalikan nilai a dan b ke nilai
awalnya yaitu a=99 dan b=11. Kemudian saat memanggil fungsi Vtukar (a, b) terlihat nilai a
dan b saling terbalik tetapi setelah fungsi Vtukar selesai dijalankan, nilai a dan b berubah ke
nilai awalnya.
Fungsi Rtukar ini terdapat syntax membalik nilai antara kedua nilai pada parameter.
Pembalikan kedua nilai ini bersifat permanen karena langsung menunjuk ke alamat memori
variabelnya sehingga terlihat setelah fungsi Rtukar ini selesai dijalankan nilai a dan b tetap
tertukar dari nilai awalnya.
Fungsi Vtukar terdapat syntax untuk membalik nilai antara kedua nilai parameter.
Pembalikan nilai ini bersifat sementara karena proses penukaran nilai kedua variabel ini
hanya menukar nilainya saja tanpa menunjuk alamat memori sehingga setelah fungsi Vtukar
ini selesai dijalankan, nilai a dan b kembali ke nilai awal.

Tugas Praktikum I
Pemrograman C++
Nama Program

: Pernyataan Menggunakan Pointer

Bahasa Pemrogramam
Compiler
Script program

: C++
: MinGW Developer Studio
:

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
main ()
{
int Aziz, Defa, Dewi, *def;
Aziz = 57082;
Defa = Aziz;
Dewi = 3+Defa;
cout<<"___________________\n\n";
cout<<"
Diketahui\n";
cout<<"___________________\n";
cout<<"Aziz= 57082\n";
cout<<"Defa= Aziz\n";
cout<<"Dewi= Defa+3\n\n\n";
cout<<"___________________\n\n";
cout<<"
Ditanya\n";
cout<<"___________________\n";
cout<<"Berapa nilai Defa? \n";
cout<<"Berapa nilai Dewi? \n\n\n";
cout<<"___________________\n\n";
cout<<"
Jawab\n";
cout<<"___________________\n";
cout<<"Nilai Defa : "<<Defa<<endl;
cout<<"Nilai Dewi : "<<Dewi<<endl<<endl;
def=&Aziz;
Dewi=3+*def;
cout<<"Nilai
cout<<"Nilai
cout<<"Nilai
cout<<"Nilai
getch();
}

Output Program

Defa
Dewi
Defa
Dewi

:
:
:
:

"<<*def<<endl;
"<<Dewi<<endl<<endl;
"<<*def<<endl;
"<<Dewi<<endl<<endl;

Penjelasan Program

Tugas Praktikum II
Pemrograman C++
Nama Program
Bahasa Pemrogramam
Compiler
Script program

:
: C++
: MinGW Developer Studio
:

#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main()
{

char x[255];
char *p=&x[0];

printf("Masukkan sebuah kalimat: ");


gets(x);
do
{

p++;
}
while(*p!='\0');

printf("\nHasil dari pembalikan : ");


while(p != &x[0])
{
putchar(*--p);
}
getch();
}

Output Program

Penjelasan Program

Tugas Rumah I
Pemrograman C++
Nama Program

: Menghitung Kata dengan Pointer

Bahasa Pemrogramam
Compiler
Script program

: C++
: MinGW Developer Studio
:

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int ubah(const char *s){
int x=0;
for( ; *s != '\0'; s++)
++x;
return x;
}
int main() {
char string[80];
cout <<"Ketik sebuah karakter: "; cin >>string;
cout <<"Jumlah sebuah karakter:";
cout <<" "<< ubah(string);
getch();
}

Output Program

Penjelasan Program

Tugas Rumah II
Pemrograman C++
Nama Program

: Mengubah Huruf Pertama Menjadi Kapital

Bahasa Pemrogramam
Compiler
Script program
Output Program
:

: C++
: MinGW Developer Studio
:

Tugas Rumah III


Pemrograman C++
Nama Program

: Program Pengganda angka

Bahasa Pemrogramam
Compiler
Script program

: C++
: MinGW Developer Studio
:

#include <iostream.h>
#include <conio.h>
void l(float *, float *, float *);
main()
{
float a,b,c;
cout<<"Masukkan nilai a: ";
cin>>a;
cout<<"Masukkan nilai b: ";
cin>>b;
cout<<"Masukkan nilai c: ";
cin>>c;
l(&a,&b,&c);
getch();
}
void l(float *p_a, float *p_b, float *p_c)
{
float A,B,C;
A=2**p_a;
B=2**p_b;
C=2**p_c;
cout<<"\n\nNilai yang sudah digandakan: \n\n\n";
cout<<"Nilai a: "<<A<<endl;
cout<<"Nilai b: "<<B<<endl;
cout<<"Nilai c: "<<C<<endl;

Output Program

Penjelasan Program

KESIMPULAN

DAFTAR RUJUKAN
1. Tim Asisten Dosen. 2015. Modul 8.POINTER. Malang: Universitas Negeri Malang.
2. Kadir, Abdul. 2003. Pemrograman C++. Yogyakarta: Penerbit ANDI.

Anda mungkin juga menyukai