Anda di halaman 1dari 14

MAKALAH POINTER

Disusun untuk memenuhi Tugas Mata Kuliah Sistem Komputasi dan


Pemrograman yang diampu oleh Bapak Fengky Adie Perdana, S.Pd., M.Pd

Disusun oleh :

Muhammad Naufal Ari Ramadhan 1941220063

JURUSAN TEKNIK MESIN


PROGRAM STUDI TEKNIK OTOMOTIF ELEKTRONIK
POLITEKNIK NEGERI MALANG
2021
KATA PENGANTAR

Assalamu’alaikum wr.wb

Puji syukur kehadirat Allah SWT. berkat rahmat dan hidayah-Nya, shalawat
serta salam selalu kita haturkan kepada junjungan Nabi Muhammad SAW, yang
telah menjadi suri tauladan bagi semua orang, sehingga pada kesempatan ini
penyusun dapat menyeleaikan tugas makalah Sistem Komputasi dan Pemrograman
ini dengan baik.
Makalah ini disusun sebagai salah satu syarat untuk memenuhi tugas mata
kuliah Sistem Komputasi dan Pemrograman, serta untuk menambah wawasan
mengenai unsur-unsur pengulangan.
Penyusun menyadari bahwa makalah ini masih banyak kekurangan dan
kesalahan serta masih jauh dari sempurna. Oleh karena itu kritik dan saran yang
bersifat membangun sangat penyusun harapkan.
Penyusun berharap makalah ini dapat bermanfaat dan berguna bagi tim
penyusun lain dan orang lain khususnya bagi mahasiswa pada umumnya.

Wassalamu’alaikum wr.wb

Malang, 24 November 2021

Penyusun
BAB I
PENDAHULUAN
1.1 Latar Belakang
Suatu fasilitas yang tersedia dalam C++ yang tidak ditemukan pada bahasa
pemrogaman lainnya adalah pointer, dengan pemanfaatan pointer programmer
dapat melakukan manipulasi memori secara langsung. Pointer adalah sebuah
objek yang dapat digunakan untuk mengakses objek lainnya.
Sebuah pointer menyediakan akses tidak langsung terhadap objek. Pada
dasarnya manusia telah menggunakan pointer pada dunia nyata setiap saat.
Banyak contoh dalam kehidupan sehari-hari yang kita temui. Misalnya saja
pada saat seorang dosen mengatakan, “Kerjakan Tugas 1 di buku,” telah terjadi
penugasan kepada mahasiswa secara tidak langsung. Contoh lainya adalah
sebuah URL (Uniform Resource Locator), seperti http://www.sebarkan.com
juga merupakan sebuah pointer.URL tersebut memberitahukan lokasi halaman
web tersebut. Jika halaman web pindah, maka URL tidak berlaku lagi dan
menunjuk ke halaman yang sudah tidak ada. Oleh karena itu pengetahuan yang
banyak tentang pointer akan sangat membantu bagi seseorang yang ingin
mempelajari bahasa C/C++.

1.2 Rumusan Masalah


1. Apa pengertian Pointer?
2. Bagaimanakah deklarasi dari sebuah pointer?
3. Operasi apa saja yang terdapat pada pointer?

1.3 Tujuan
1. Mahasiswa memahami pengertian pointer
2. Mahasiswa mengetahui bagaimana deklarasi dari sebuah pointer
3. Mahasiswa mengetahui operasi-operasi apa saja yang terdapat pada pointer.
BAB II
PEMBAHASAN
2.1 Pengertian Pointer
Pointer (penunjuk) adalah sebuah variabel yang memuat (yang nilainya berupa)
alamat memori dari variabel lain. Pointer disini berfungsi menyimpan alamat dari
sebuah variabel dan berfungsi untuk menunjukkan ke suatu alamat memori,
sehingga alamat dari suatu variabel dapat diketahui dengan mudah. Dalam bahasa
sehari-hari pointer adalah petunjuk atau bisa dibilang penentu atau pointer secara
sederhana bisa diartikan sebagai tipe data yang nilainya mengarah pada nilai yang
terdapat pada sebuah area memori (alamat memori).

2.2 Kegunaan Pointer


1. Untuk menyimpan alamat memori dari sebuah variabel
2. Untuk menyimpan alamat dari sebuah fungsi

2.3 Operator pada Pointer


1. Operator Defference (&)
Merupakan operator alamat. Pada saat pendeklarasian variabel, user
tidak diharuskan meneruskan lokasi sesungguhnya pada memori, hal ini
akan dilakukan secara otomatis oleh compiler dan operating system pada
saat run-time
Jika ingin mengetahui dimana suatu variabel akan disimpan, maka dapat
dilakukan dengan memberikan tanda ampersand (&) di depan variabel, yang
berarti “address of”.
Comtohnya:
• Naufal = 50
• Ari = Naufal;
• Rama = &Naufal;
Naufal akan memberikan variabel rama alamat dari variabel Naufal, karena
variabel Naufal diberi awalan karakter ampersand (&), maka yang menjadi
pokok disini adalah alamat dalam memori, bukan isi variabel.
Naufal

50
1775 1776 1777

&
Ari Rama
50 1776

2. Operator Refference (*)


Operator (*) merupakan operator reference dengan menggunakan pointer
ini, kita dapat mengakses nilai yang tersimpan secara langsung dengan
memberika awalan operator asterisk(*), pada identifier pointer yang berarti
“value pointed by”
• Contoh: naufal = *rama
• (Dapat dikatakan bahwa “naufal sama dengan nilai yang ditunjuk
oleh rama”) naufal = 50, karena rama di alamat 1776, dan nnilai
yang berada pada alamat 1776 adalah 50.

2.4 Deklarasi Pointer


a) Program 1 (Pointer variabel)
Mensubtitusikan addres sebuah variabel ke pointer dengan memakai
address operator &
Bentuk penulisannya:
Tipe *nama_pointer;
int x;
int *ptr;
Ptr =&x
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
int andi, bara, * catur;

andi = 80;
bara = andi;
catur = &andi;

cout << "nilai andi = " << andi << endl;


cout << "nilai bara = " << bara << endl;
cout << "nilai catur = " << catur << endl;

_getch();
}
b) Program 2 (Pointer ke variabel)

#include <iostream>
using namespace std;

int main()
{
int* p;
int x = 37;

cout << "Baris 1: x " << x << endl;//Baris 1


p = &x;
cout << "Baris 3: *p = " << *p << ", x = " << x << endl;//Baris 3
*p = 58;
cout << "Baris 5: *p = " << *p << ", x = " << x << endl;//Baris 5
cout << "Baris 6: Alamat dari p = " << &p << endl; //Baris 6
cout << "Baris 7: Nilai dari p = " << p << endl;//Baris 7
cout << "Baris 8: Nilai dari lokasi memori yang ditunjuk oleh *p = "
<< *p << endl;//Baris 8
cout << "Baris 9: Alamat dari x = " << &x << endl;//Baris 9
cout << "Baris 10: Nilai dari x = " << x << endl;//Baris 10
return 0;
}

c) Program 3 (Pointer ke konstanta)


Suatu pointer dapat dideklarasikan secara konstanta (tetap). Untuk
mendeklarasikan pointer secara konstanta dengan memberikan kata const
di depan nama konstanta
Bentuk penulisannya:
• Tipe data_*const nama_konstanta;
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;

int main()
{
const char* matkul = "Sistem Komputasi dan Pemrograman";

cout << "mata kuliah = " << matkul << endl;

_getch();
}

d) Program 4 (Pointer ke array)


Konsep array diantaranya adalah anyak loncatan dari pointer satu ke
pointer yang lainnya. Sebab, secara internal array juga menyatakan sebuah
alamat, yaitu pengenal array sama dengan alamat pada elemen pertama
array.
Contoh:
Char t[4];
Chat *ptr;
ptr =t;
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;

int main()
{
int i;
int nilai[3];
int* ptrnilai;
ptrnilai = nilai;
for (i = 1; i <= 3; i++)
{
cout << "masukan nilai pertama = ";
cin >> nilai[i];
}
cout << endl;
cout << "hasil pengaksesan elemen array lewat";
cout << endl << endl;
for (i = 1; i <= 3; i++)
{
cout << "elemen" << i << ". nilai" << nilai[i];
cout << ", menempati alamat memori = ";
cout << &ptrnilai[i];
cout << endl;
}
_getch();
}

e) Program 5 (Pointer ke string)


Contoh mendeklarasikan pointer pada string;
Char *ptr;
ptr = ”Malang”
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;

int main()
{
char kecamatan_kota_malang[] = "LOWOKWARU";
const char* kecamatan_kabupaten_malang = "KEPANJEN";

cout << "Nama Kecamatan Kota Malang = " << kecamatan_kota_malang <<
endl;
cout << "Nama Kecamatan Kabupaten Malang = " <<
kecamatan_kabupaten_malang << endl;

kecamatan_kabupaten_malang += 3; //menambah nilai penunjuk/pointer


cout << "Nama Kecamatan Kota Malang = " << kecamatan_kota_malang <<
endl;
cout << "Nama Kecamatan Kabupaten Malang = " <<
kecamatan_kabupaten_malang;

_getche();
}
f) Program 6 (Pointer ke pointer)
Dalam C++, sebuah pointer dapat menunjuk ke pointer lain yang telah
menunjuk ke alamat tertentu seperti berantai, kondisi ini dinamakan
multiple indirection atau pointer ke pointer.

POINTER POINTER Variabel

(alamat) (alamat) (nilai)

Pada multiple indirection ini, terdapat pointer yang menunjuk ke pointer


yang sedang menunjuk ke alamat variabel. Untuk mendeklarasikan pointer
ke pointer, digunakan tanda asterisk sebanyak dua kali (**)
Contohnya :
• int**p;

#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
int ayam_geprek;
int* nasi_pecel; //pointer ke variabel
int** ayam_penyet; //pointer pada pointer

ayam_geprek = 10000;

cout << "harga ayam geprek adalah Rp " << ayam_geprek << endl;

//penugasan ke alamat memori

nasi_pecel = &ayam_geprek;
ayam_penyet = &nasi_pecel;

cout << "harga nasi pecel mengakses ayam geprek adalah Rp ";
cout << *nasi_pecel << endl;

cout << "harga ayam penyet mengakses nasi pecel adalah Rp ";
cout << **ayam_penyet << endl;

_getch();
}
BAB III
PENUTUP
3.1 Kesimpulan
1) Pointer adalah sebuah variabel yang berisi alamat lain. Suatu pointer
dimaksudkan untuk menunjukan kesuatu alamat memori sehingga
alamat dari suatu variable dapat diketahui dengan mudah.
2) Dengan menggunakan pointer yang benar, dapat menyusun sebuah
program yang berkemampuan tinggi. Sebaliknya sedikit saja kesalahan
dalam menggunakan pointer akan mengakibatkan kesalahan fatal pada
program tersebut.
3) Pointer adalah sebuah variabel yang berisi alamat lain. Suatu pointer
dimaksudkan untuk menunjukan kesuatu alamat memori sehingga
alamat dari suatu variable dapat diketahui dengan mudah.
4) Dengan menggunakan pointer yang benar, dapat menyusun sebuah
program yang berkemampuan tinggi. Sebaliknya sedikit saja kesalahan
dalam menggunakan pointer akan mengakibatkan kesalahan fatal pada
program tersebut.

3.2 Saran
Penulis menyadari bahwa makalah yang dibuat ini masih banyak
kekurangan yang perlu dikembangkan untuk kedepannya. Oleh karena itu,
penulis mohon maaf apabila masih banyak kekurangan dalam penulisan
makalah ini dan menerima saran maupun kritik dari para pembaca.

Anda mungkin juga menyukai