Anda di halaman 1dari 15

LAPORAN

Program Pointer Berbasis C++


“Untuk memenuhi tugas mata kuliah Struktur Data”
Dosen Pengampu : Eva Darnila, S.T , M.T.

Disusun Oleh:

Nurhaini Ginting 210170221

Sarah Nelviandri 210170236

Rahma Jihan Ananta 210170241

Fakhrurrazi 210170219

FAKULTAS TEKNIK
PRODI TEKNIK INFORMATIKA
UNIVERSITAS MALIKUSSALEH
TAHUN AJARAN 2021/2022
Kata Pengantar
Alhamdulillah puji syukur saya panjatkan kepada Allah SWT yang telah memberikan
saya kesehatan, sehingga saya bisa menyelesaikan laporan ini dengan baik. Tak lupa pulak
shalawat dan salam kita curahkan kepada nabi Muhammad SAW, yang menunjukkan kepada
kita jalan yang lurus berupa ajaran agama Islam yang sempurna dan menjadi anugrah serta
rahmat bagi seluruh alam semesta.

Saya berharap dengan dibuat laporan ini dapat menambah pengetahuan tentang
aplikasi C++ serta dapat menambah wawasan kita semua untuk dapat mempelajari tentang
pointer yang ada di aplikasi C++

Demikian yang dapat saya sampaikan, semoga laporan ini bermanfaat dan jangan lupa
ajukan kritik dan saran terhadap laporan ini agar kedepannya bisa saya perbaiki.

Bukit Indah , 08 November 2022


BAB I
PENDAHULUAN

1.1 . Latar Belakang


Setiap kali kita mendeklarasikan variabel, C/C++ akan menyediakan alokasi memori
untuk masing-masing variabel. Ukuran memori yang dialokasikan berbeda-beda tergantung
dari tipe data variabelnya. Misalnya untuk integer 2 bytes, untuk float 4 bytes, dst. Jadi, setiap
variabel yang kita deklarasikan mempunyai 2 atribut yaitu address dan value.
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari
suatu variabel lain. Pointer merupakan variabel level rendah yang dapat digunakan untuk
menunjuk nilai integer, character, float, double, atau single, dan bahkan tipe-tipe data lain
yang didukung oleh bahasa C. Pointer merupakan tipe data yang berisi alamat memori dari
sebuah variabel, untuk lebih mudah memahami ini, Kita akan coba membahas terlebih dahulu
bagaimana bahasa pemrograman lain menyimpan nilai dari sebuah variabel. Ketika kita akan
mendeklarasikan sebuah variabel (misalkan variabel angka’), bahasa pemrograman akan
menyiapkan sebuah tempat di memory komputer. Tempat ini memiliki alamat, yang
berfungsi untuk menandai lokasi variabel tersebut. 

1.2. Rumusan Masalah


 Apa itu Pointer?
 Apa saja operator yang terdapat pada Pointer?
 Apa saja operasi Pointer?
 Bagaimana cara menjalankan Pointer?
 Program dengan contoh kasus yang berbeda

1.3. Tujuan Masalah


 Untuk mengetahui apa itu pointer
 Untuk mengetahui operator yang terdapat pada pointer
 Untuk mengetahui operasi Pointer
 Agar dapat mengetahui cara menjalankan Pointer

BAB II
PEMBAHASAN

2.1. Pengertian Pointer

Pointer merupakan tipe data yang berisi alamat memori dari sebuah variabel, untuk
lebih mudah memahami ini, Kita akan coba membahas terlebih dahulu bagaimana bahasa
pemrograman lain menyimpan nilai dari sebuah variabel. Ketika kita akan mendeklarasikan
sebuah variabel (misalkan variabel angka’), bahasa pemrograman akan menyiapkan sebuah
tempat di memory komputer. Tempat ini memiliki alamat, yang berfungsi untuk menandai
lokasi variabel tersebut.  Setiap variabel yang kita buat pada program akan memiliki alamat
memori. Alamat memori berfungsi untuk menentukan lokasi penyimpanan data pada memori
(RAM). Kadang alamat memori ini disebut reference atau referensi.

Pada gambar ini, kita membuat dua variable yakni score dan hp. Kedua variabel ini
punya alamat memori masing-masing. Variabel score alamat memorinya adalah 01abc,
sedangkan hp alamat memorinya 02ffd. Selama sebuah alamat masih kosong maka alamat itu
yang akan dipilih. Pemilihan alamat memori ini, dilakukan secara acak. Inilah mengapa
memori ini di sebut RAM (Random Access Memory). Intinya, setiap kita membuat variabel
pasti akan punya alamat memori.
Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih
dahulu sebelum digunakan.
Bentuk Umum : tipe_data *nama_pointer;
Contoh : int *nilai;
char *huruf;
Pendeklarasian variabel pointer menggunakan tanda * sebelum nama variabelnya,
sedangkan untuk menampilkan nilai yang ditunjuk oleh suatu variabel pointer, juga
digunakan operator * (tanda asterisk). Jika diinginkan untuk menampilkan alamat tempat
penyimpanan nilai yang ditunjuk oleh suatu variabel pointer, digunakan operator & (tanda
ampersand).

2.2. Operator yang terdapat pada Pointer


 Operator Alamat / Dereference Operator(&)
Setiap variabel yang dideklarasikan, disimpan dalam sebuah lokasi memori dan pengguna
biasanya tidak mengetahui di alamat mana data tersebut disimpan. Dalam C++, untuk
mengetahui alamat tempat penyimpanan data, dapat digunakan tanda ampersand (&) yang
dapat diartikan “alamat”.
Contoh :
Bil1 = &Bil2;
dibaca: isi variabel bil1 sama dengan alamat bil2

 Operator Reference (*)


Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjuk oleh
variabel pointer.
Contoh :
Bil1=*Bil2;
dibaca: bil1 sama dengan nilai yang ditunjuk oleh bil2.

2.3. Operasi yang terdapat pada Pointer


1. Operasi Penugasan
Suatu variable pointer seperti halnya variabel yang lain, juga bisa mengalami
operasi penugasan. Nilai dari suatu variable pointer dapat disalin ke variable pointer
yang lain Operator (&) dalam kaitannya dengan pointer adalah operator yang
mengembalikan alamat memori dari operandnya. Contohnya :
int y = 5; /*deklarasi variabel y*/
int *yPtr; /*deklarasi variabel pointer yPtr*/
yPtr = &y; /*mengisi variabel pointer yPtr dengan alamat dari variabel y*/
Maka representasi dari operasi penugasan di atas adalah

Representasi yang lain, misalnya asumsikan bahwa variabel y berada pada alokasi
memori 600000 dan variabel pointer yPtr berada pada alokasi memori 500000.

2. 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.
Asumsikan kita telah mendeklarasikan sebuah array float v[5], dan anggap elemen
pertamanya berada pada lokasi 3000 di memori. Lalu kita deklarasikan sebuah variabel
pointer *vPtr, ada dua cara untuk mengisi variabel pointer *vPtr dengan alamat dari elemen
pertama array v, yaitu :
float *vPtr = v;
float *vPtr = &v[0];

Jika kita melakukan operasi aritmatika seperti


vPtr += 2;

dalam perhitungan aritmatika biasa, maka vPtr yang semula berisi 3000
menjadi 3000 + 2 = 3002, namun ini tidak berlaku pada pointer. Operasi aritmatika
pada pointer di atas artinya adalah vPtr yang semula menunjuk pada v[0] sekarang
menunjuk ke v[2].
Karena vPtr menunjuk alamat memori dari variabel v yang bertipe float, maka
vPtr sekarang berisi 3008 (3000 + 2 * 4).

2.4. Membuat Pointer


Pointer dibuat dengan menambahkan simbol * (asterik) di depan namanya, kemudian diisi
dengan alamat memori yang akan digunakan sebagai referensi. Kita juga bisa membuat

pointer tanpa harus mengisinya langsung dengan alamat memori .


Contoh :
int *pointer1 = 00001;
Maka *pointer1 akan bisa mengakses data yang ada pada alamat memori 00001. Dengan kata
lain, si *pointer1 akan menggunakan alamat 00001 sebagai referensinya.
Kita juga bisa membuat pointer tanpa harus mengisinya langsung dengan alamat memori.
Contoh :
int *pointer_ku;
// atau bisa juga
int *pointer_ku = NULL;
Maka *pointer_ku akan menggunakan alamat memori 00000, alamat memori ini
khusus untuk menyimpan data null atau data kosong.
Karena kita tidak bisa lihat daftar alamat memori secara langsung, kita akan kesulitan
memberikan referensi alamat memori untuk pointer.
Solusinya:
Kita harus mengambil alamat memori dari variabel yang lain. dengan menggunakan
simbol &.

Pada gambar ini, kita membuat pointer dengan nama *ptr_hp* dengan isi alamat
memori dari variabel hp.Dengan begini Pointer *ptr_hp akan bisa mengakses nilai pada
alamat memori 02ffd yang mana ini adalah alamat memori dari variabel hp.
Jika kita ingin mengubah nilai pada alamat memori tersebut, maka kita bisa gunakan
pointer *ptr_hp seperti ini:
*ptr_hp = 95;
Maka, sekarang alamat memori 02ffd akan berisi 95 begitu juga dengan variabel hp.
2.5. Program dengan contoh kasus pointer
1. Untuk membuat program yang akan menampilkan suatu nilai dalam suatu variabel tertentu
dan menampilkan juga alamat suatu pointer yang isinya sama dengan yang ditunjuk oleh
variabel sebelumnya.
Penyelesaian :
Algoritma yang digunakan untuk memecahkan masalah diatas adalah sebagai berikut :
a. Tentukan variabel yang menampung suatu nilai tertentu, misalkan nilai ini bertipe
integer dan nama variabel nya adalah z. (misalkan int z)
b. Tentukan variabel pointer yang nantinya isinya akan menunjuk pada variabel pada
langkah no.1. (misalkan variabel *p)
c. Tentukan variabel lain yang isinya menunjuk ke variabel pertama dalam langkah no.1.
(misalkan variabel p dan prosesnya adalah p = &z)
d. Masukan suatu nilai yang disimpan pada variabel z
e. Tampilkan nilai tersebut
f. Tampilkan memori yang tepat untuk menyimpan variabel pointer yang sesuai dengan
langkah 2
2. contoh kasus penggunaan pointer dan string
perhatikan masalah berikut ini. Misalkan kita diminta untuk menampilkan teks dengan
pointer. Maka algoritma untuk menjawab permasalahan diatas adalah sebagai berikut :
a. Tentukan variabel pointer yang menampung teks dengan tipenya adalah char
(misalkan *teks)
b. Tentukan kalimat yang akan ditunjuk oleh pointer
c. Tampilkan variabel pointer teks, yang isinya sudah menunjuk ke teks
d. Tampilkan alamat teks tersebut
e. Selesai

3. Program untuk menyimpan bilangan pecahan acak sebanyak 12 bilangan, yang disimpan
dalam suatu array, kemudian mengurutkan bilangan bilangan tersebut dan
menampilkannya sebelum dan sesudah diurutkan menggunakan index array dan pointer.
Lalu jalankan programnya dengan klik built and run, lalu masukkan nilai angka secara
acak , kemudian akan didapatkan hasil pemograman seperti berikut.
4. Program yang menyimpan data karakter ‘X’ pada suatu array berdimensi 12 x 12,
kemudian akan didapatkan hasil pemograman seperti berikut
BAB III
PENUTUP

3.1. Kesimpulan

Suatu pointer adalah suatu variabel yang menyimpan alamat dari suatu variabel yang
ditunjuk oleh pointer yang bersangkutan. Karena data yang ditujuk oleh pointer bervariasi,
maka type dari pointer harus disesuaikan dengan tipe data yang ditunjuk,untuk
memperkirakan ukuran datauang ditunjuk sehingga alokasi memori terjaga dengan baik.

Kegunaan pointer yang utama adalah untuk menyimpan alamat memori dari sebuah
variabel (data type atau object dari class). Selain menyimpan alamat dari variabel, pointer
juga dapat digunakan untuk menyimpan alamat dari sebuah fungsi (function pointer). Pointer
sangat erat kaitannya dengan array , sehingga variable pointer dapat menggantikan fungsi
dari variable array.

Anda mungkin juga menyukai