Disusun Oleh:
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.
BAB II
PEMBAHASAN
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).
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];
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).
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.