POINTER
Oleh :
ALVINA RIZKY
NIM 190532547220
D3 ELKA’19 OFF A
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.
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:
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.
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 :
Contoh program :
Output :
6. Pointer pada String
Pointer pada string dapat anda lihat pada contoh program berikut:
Output :
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
c. Memiliki kemampuan untuk mengirimkan alamat suatu fungsi ke fungsi yang lain.
d. Penanganan terhadap array dan string akan lebih singkat dan efisien.
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;
cin.get();
return 0;
}
Output Program :
Latihan Praktikum 2
Pemrograman C++
int main(){
// variabel
int a = 5;
int &b = a;
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++
void fungsi(int*);
void kuadrat(int*);
int main(){
int a = 5;
cout << "address a " << &a << endl;
cout << " nilai a " << a << endl;
cin.get();
return 0;
}
void fungsi(int*b){
cout << "address b" << &b << endl;
cout << " nilai b" << b << endl; //dereferencing
}
Output Program :
Latihan Praktikum 4
Pemrograman C++
void fungsi(int*);
void kuadrat(int*);
int main(){
int a = 5;
cout << "address a " << &a << endl;
cout << " nilai a " << a << endl;
cin.get();
return 0;
}
void fungsi(int*b){
cout << "address b" << &b << endl;
cout << " nilai b" << b << endl; //dereferencing
}
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++
Source Code :
#include <iostream>
using namespace std;
int main()
{
int w,x,y,z;
cout<<"=========================================================
========"<<endl;
cout<<" PROGRAM PENGUBAH NILAI MENJADI 3 KALI
LIPAT "<<endl;
cout<<"=========================================================
========"<<endl;
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,
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++
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