Anda di halaman 1dari 33

LAPORAN PRAKTIKUM 7

POINTER

Disusun untuk Memenuhi Matakuliah Dasar Pemrograman Komputer


Dibimbing oleh Bapak Wahyu Sakti Gunawan Irianto

Oleh :
ALVINA RIZKY
NIM 190532547220
D3 ELKA’19 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI D3 TEKNIK ELEKTRONIKA
April 2020
POINTER

I. TUJUAN
Setelah mempelajari bab ini diharapkan mahasiswa akan 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.

II. DASAR TEORI

1. Pengertian Pointer

Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu
lokasi memori tertentu. Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat
memori. Lokasi memori tersebut bisa diwakili sebuah variabel atau juga berupa alamat
memori secara langsung.

2. Operator Pointer

Ada dua operator yang digunakan pada tipe data pointer yaitu:

a. Operator Deference (&)

Operator ini biasanya disebut dengan address of atau operator alamat. Dengan
menggunakan operator deference (&) ini, suatu variabel akan menghasilkan alamat
memori.

Contoh:

Pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan
nilai x.

3. Menedeklarasikan Variabel Pointer

 tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel
bukan pointer.
 nama_variabel adalah nama variabel pointer.

Contoh 1:
Output :

Contoh :

Output :
4. Pointer pada Pointer

Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat pula menunjuk ke
pointer lainnya. Dalam pendeklarasiannya, kita tambahkan pointer reference (*) pada
variabel yang akan ditunjuk.

Contoh :

Contoh Program :
5. Pointer pada Array

Pada Array/Larik, pointer hanya perlu menunjukan alamat elemen pertama saja
karena alamat array dalam memori sudah disusun secara berurutan.

Contoh :

Pernyataan pa=a artinya pointer pa menyimpan alamat array a, yang alamatnya


diwakili alamat elemen pertama, yaitu a[0]. Kita juga bisa mengganti perintah pa=a
dengan pa=&a[0]. Untuk pembacaan semua elemen array dengan pointer, bisa
menggunakan perulangan seperti pada penggalan program berikut.

Contoh program :
Output :
6. Pointer pada String

Pointer pada string dapat anda lihat pada contoh program berikut:

Output :

7. Pointer dan Fungsi

Pointer juga dapat digunakan sebagai argumen maupun keluaran bagi fungsi.
Pointer sebagai argumen maka nilai argumen dapat diubah di dalam fungsi. Suatu
fungsi dapat dibuat agar keluarannya berupa pointer. Dalam hal tersebut terkadang
difungsikan juga array di dalam fungsi tersebut.
8. Keuntungan 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 suatu fungsi ke fungsi yang lain.
d. Penanganan terhadap array dan string akan lebih singkat dan efisien.

e. Memungkinkan untuk berhubungan langsung ke hardware.

f. Memungkinkan untuk berhubungan langsung dengan parameter command line.


g. Kemampuan bekerja dengan memori yang telah dialokasikan secara dinamik.
Latihan Praktikum I
Pemrograman C++

Nama Program :
Bahasa Pemrogramam : C++
Compiler : Dev C++
Source Code :
#include<iostream>
using namespace std;

int main(){

int a = 5;

//pointer
int *aPtr = nullptr;
aPtr = &a;

//int a mempunyai nilai dan address (alamat)

cout << " nilai dari a : " << a << endl;


cout << "alamat dari a : " << aPtr << endl;

// dereferencing, mengambil data dari sebuah pointer


a = 10;
cout << " mengambil nilai dari pointer aPtr : " << *aPtr <<
endl;

cin.get();
return 0;
}

Output Program :
Latihan Praktikum 2
Pemrograman C++

Nama Program : Fungsi menggunakan Pointer dan Referensi


Bahasa Pemrogramam : C++
Compiler : Dev C++
Source Code :
#include<iostream>
using namespace std;

int main(){

// variabel
int a = 5;

cout << "address dari a" << &a << endl;


cout << " nilai a " << a << endl << endl;

int &b = a;

cout << " nilai dari b " << b << endl;


cout << "address dari b" << &b << endl << endl;

b = 10;
cout << " nilai dari a " << a << endl;
cout << " nilai dari b " << b << endl;

a = 20;
cout << " nilai dari a " << a << endl;
cout << " nilai dari b " << b << endl;

cin.get();
return 0;
}

Output Program :
Latihan Praktikum 3
Pemrograman C++

Nama Program : Fungsi dengan Pointer


Bahasa Pemrogramam : C++
Compiler : Dev C++
Source Code :
#include<iostream>
using namespace std;

void fungsi(int*);
void kuadrat(int*);

int main(){
int a = 5;
cout << "address a " << &a << endl;
cout << " nilai a " << a << endl;

//fungsi(&a); // fungsi dengan input pointer


kuadrat(&a);

cout << " nilai a " << a << endl;

cin.get();
return 0;
}

void fungsi(int*b){
cout << "address b" << &b << endl;
cout << " nilai b" << b << endl; //dereferencing
}

void kuadrat(int *valPtr){


*valPtr = (*valPtr) * (*valPtr);
}

Output Program :
Latihan Praktikum 4
Pemrograman C++

Nama Program : Fungsi dengan Reference


Bahasa Pemrogramam : C++
Compiler : Dev C++
Source Code :
#include<iostream>
using namespace std;

void fungsi(int*);
void kuadrat(int*);

int main(){
int a = 5;
cout << "address a " << &a << endl;
cout << " nilai a " << a << endl;

//fungsi(&a); // fungsi dengan input pointer


kuadrat(&a);

cout << " nilai a " << a << endl;

cin.get();
return 0;
}

void fungsi(int*b){
cout << "address b" << &b << endl;
cout << " nilai b" << b << endl; //dereferencing
}

void kuadrat(int *valPtr){


*valPtr = (*valPtr) * (*valPtr);
}

Output Program :
Tugas Rumah 1
Pemrograman C++

Nama Program : Mengubah Huruf Kapital pada awal Kata atau Kalimat
Bahasa Pemrogramam : C++
Compiler : Dev C++
Algoritma :
1. Mulai
2. Deklarasi variable
3. Memasukkan kalimat
4. Proses mengubah huruf awal menjadi huruf kapita
5. Hasil merupakan output program
6. Selesai

Flowchart :
Source Code :
#include <iostream>
#include <string.h>
using namespace std;

int main()
{
cout <<
"===============================================================
=" << endl;
cout << " PROGRAM PENGUBAH HURUF PADA KALIMAT
MENJADI KAPITAL " << endl;
cout <<
"===============================================================
=" << endl;

void *x;
char phrase[100], capital, result;
int sum;
cout << "Input kata : ";
cin.getline(phrase,sizeof(phrase));
x=&phrase[0];
capital=toupper(*(char*)x);
cout << endl;
cout << "Hasil : "<< capital;
sum=strlen(phrase)-1;
for(int a=1;a<=sum;a++)
{
x=&phrase[a];
result=*(char*)x;
if (phrase [a-1]==' ')
{
result=toupper(*(char*)x);
}
cout << result;
}
}

Output Program :
Penjelasan Program :
Pada program di atas menggunakan header file #include <iostream>. yang
berfungsi untuk mencetak suatu kata melalui cin dan cout. using namespace
std;digunakan untuk mendeklarasikan kepada compiler bahwa program menggunakan
semua fungsi yang terdapat dalam namespace std; yang bertujuan agar tidak terjadi eror
pada program. Tipe data int berfungsi untuk menyatakan bilangan bulat dan char
berfungsi untuk menyatakan karakter tunggal.
Pendeklarasian void *x (jenis pointer), char phrase[100] (untuk input
kata yang memiliki batas tidak boleh lebih dari 100 karakter), capital, result,
dan int sum. cin.getline berfungsi u n t u k membaca spasi pada karakter data
yang kita inputkan.
Memasukkan kalimat kemudian proses mengubah huruf pada kalimat menjadi
huruf kapital. Hasil yaitu output pada program.
Tugas Rumah 2
Pemrograman C++

Nama Program : Mengubah Nilai Menjadi 3 kali lipat


Bahasa Pemrogramam : C++
Compiler : Dev C++
Algoritma :
1. Mulai
2. Deklarasi variable
3. Masukkan nilai
4. Proses penghitungan
5. Nilai keluaran menjadi 3 kali lipat
6. Hasil merupakan output program
7. Selesai
Flowchart :

Source Code :
#include <iostream>
using namespace std;

void result(int *w1, int *x1, int *y1, int *z1)


{
int a,b,c,d;
a=*w1*3;
b=*x1*3;
c=*y1*3;
d=*z1*3;
cout<<" Nilai Keluaran : "<<endl;
cout<<" Nilai w = "<<a<<endl;
cout<<" Nilai x = "<<b<<endl;
cout<<" Nilai y = "<<c<<endl;
cout<<" Nilai z = "<<d<<endl;
}

int main()
{
int w,x,y,z;

cout<<"=========================================================
========"<<endl;
cout<<" PROGRAM PENGUBAH NILAI MENJADI 3 KALI
LIPAT "<<endl;

cout<<"=========================================================
========"<<endl;

cout<<" Masukkan Nilai w : ";


cin>>w;
cout<<" Masukkan Nilai x : ";
cin>>x;
cout<<" Masukkan Nilai y : ";
cin>>y;
cout<<" Masukkan Nilai z : ";
cin>>z;
result(&w,&x,&y,&z);
}
Output Program :

Penjelasan Program :
Pada program di atas menggunakan header file #include <iostream>. yang
berfungsi untuk mencetak suatu kata melalui cin dan cout. using namespace
std;digunakan untuk mendeklarasikan kepada compiler bahwa program menggunakan
semua fungsi yang terdapat dalam namespace std; yang bertujuan agar tidak terjadi eror
pada program. Tipe data int berfungsi untuk menyatakan bilangan bulat dan char
berfungsi untuk menyatakan karakter tunggal.
Mengidentifikasi fungsi yang akan dipanggil di fungsi utama yaitu void
result yang memiliki parameter(int *w1, int *x1, int *y1,

int*z1).Selanjutnya pendeklarasian int a,b,c,d dan diproses dengan


a=*w1*3, b=*x1*3, b=*x1*3, c=*y1*3 dan d=*z1*3 yang berarti dalam fungsi
ini sudah dilaksanakan proses perkalian 3, maka pada saat fungsi ini dipanggil
maka angka yang keluar sudah diproses. Pendeklarasian int w,x,y,z sebagai
variabel dari angka yang akan kita input. Selanjutnya akan ada proses keluaran
Masukkan Nilai w :, Masukkan Nilai x :, Masukkan Nilai y : dan
Masukkan Nilai z :. Selanjutnya dipanggil oleh fungsi result(&w,&x,&y,&z)
agar hasil keluaran angka nya sudah dikali lipat menjadi 3. Hasilnya merupakan
output dari program.
Tugas Rumah 3
Pemrograman C++

Nama Program : Menghitung Jumlah Kata


Bahasa Pemrogramam : C++
Compiler : Dev C++
Algoritma :
1. Mulai
2. Deklarasi variable
3. Memasukkan kata atau kalimat
4. Proses perhitungan kata atau kalimat
5. Hasil merupakan output program
6. Selesai
Flowchart :
Source Code :
#include <iostream>
#include <string.h>
using namespace std;
int main()
{

cout<<"=========================================================
="<<endl;
cout<<" PROGRAM PENGHITUNG JUMLAH KATA
"<<endl;

cout<<"=========================================================
="<<endl;

void *x;
char phrase[100];
int sum,result;
cout<<"Input kata atau kalimat : ";
cin.getline(phrase,sizeof(phrase));
cout<<endl;
sum=strlen(phrase)-1;
result=1;
x=&result;
for(int a=1;a<=sum;a++)
{
if(phrase[a-1]==' ')
{
result++;
}
}
cout<<"Jumlah kata sebanyak : "<<*(int*)x<<endl;
}
Output Program :

Penjelasan Program :
Pada program di atas menggunakan header file #include <iostream>. yang
berfungsi untuk mencetak suatu kata melalui cin dan cout. using namespace
std;digunakan untuk mendeklarasikan kepada compiler bahwa program menggunakan
semua fungsi yang terdapat dalam namespace std; yang bertujuan agar tidak terjadi eror
pada program. Tipe data int berfungsi untuk menyatakan bilangan bulat dan char
berfungsi untuk menyatakan karakter tunggal.
Pendeklarasian void *x (jenis pointer), char phrase[100] (untuk input
kata yang memiliki batas tidak boleh lebih dari 100 karakter). Selanjutnya diproses
keluaran Input kata atau kalimat : untuk memasukkan kata yang akan
dihitung. Kemudian format inputan yang kita gunakan ini adalah cin.getline
dimana berfungsi membaca spasi pada karakter data yang kita inputkan. Menghitung
jumlah karakter dengan yang ada pada char phrase[100]. Dinyatakan bahwa
result=1 ini berarti variabel result langsung bernilai 1 dari awal. Kemudian
pendeklarasian x=&result yang berarti variabel result dialamatkan sama dengan
variabel x. Pada program ini looping yang digunakan adalah looping for statement
yakni for(int a=1;a<=sum;a++), dimana jika memenuhi syarat yang ada
didalam for tersebut maka akan masuk pada statement if yang ada di dalam looping
for tersebut yakni if(phrase[a-1]==' '), result++ berarti jika sebelum sebuah
kata terdapat spasi maka variabel result bertambah 1 nilainya, jadi jika ada 1 buah
spasi sudah terhitung 2 kalimat karena result=1.
Memasukkan kata atau kalimat kemudian memproses dari masukan kata atau
kalimat tersebut, kemudian hasil yaitu jumlah berapa banyak kata . hasil merupakan
output dari program.
Tugas Rumah 4
Pemrograman C++

Nama Program : Menampilkan Nama Bulan


Bahasa Pemrogramam : C++
Compiler : Dev C++
Algoritma :
` 1. Mulai
2. Deklarasi variable string
3. Proses
4. keluaran menampilkan nama bulan
5. Hasil Merupakan output program

Flowchart :
Source Code :
#include <iostream>
using namespace std;

int main()
{

cout<<"=========================================================
="<<endl;
cout<<" PROGRAM PENAMPIL NAMA BULAN
"<<endl;

cout<<"=========================================================
="<<endl;

string

month[]={"Januari","Februari","Maret","April","Mei","Juni","Juli
","Agustus","September","Oktober","November","Desember"};
string *pmonth;
pmonth=month;
for(int a=0;a<=11;a++)
{
cout<<"Bulan ke-"<<a+1<<" adalah
"<<*(pmonth+a)<<endl;
}
}

Output Program :
Penjelasan Program :
Pada program di atas menggunakan header file #include <iostream>. yang
berfungsi untuk mencetak suatu kata melalui cin dan cout. using namespace
std;digunakan untuk mendeklarasikan kepada compiler bahwa program menggunakan
semua fungsi yang terdapat dalam namespace std; yang bertujuan agar tidak terjadi eror
pada program. Tipe data int berfungsi untuk menyatakan bilangan bulat dan char
berfungsi untuk menyatakan karakter tunggal.
Mendeklarasikan string yang berisi nama-nama bulan dan string
*pmonth. Maksud dari pmonth=month adalah nilai string variabel month

menjadi nilai variabel pmonth. Program ini menggunakan looping for statement
yakni for(int a=0;a<=11;a++) dimana jika memenuhi syarat maka akan
masuk cout<<"Bulan ke-"<<a+1<<" adalah "<<*(pmonth+a)<<endl;
untuk memunculkan keluaran angka dan nama bulannya. Hasilnya merupakan output
dari program.
KESIMPULAN

1. Pointer (variable petunjuk) yaitu suatu variable yang berisi alamat memeori dari
suatu variable lain.
2. Pada praktikum mosul 7 yaitu pointer, kami dapat mengetahui arti dan apa saja
fungsi pointer dalam pemrograman.
3. Kami dapat mengetahui penggunaan pointer pada listing program.
4. Mengetahui apa saja keunggulan pointer dalam listing program.
5. Melakukan latihan dengan menerapkan fungsi pointer sesuai dengan yang di
perintahkan.
6. Dapat membuat program sederhana dengan menerapkan konsep pointer.
7. Tetap teliti dalam membuat program agar tidak terjadi eror pada program.
DAFTAR RUJUKAN
1. Tim Asisten Dosen. Modul 7.POINTER. Malang: Universitas Negeri Malang.
2. https://bundet.com/pub/detail/pengertian-pointer-dalam-c-1539272230

Anda mungkin juga menyukai