Anda di halaman 1dari 5

Soal No 1.

Code :

Eksekusi code:

Penjelasan :

Pada program ini akan ditunjukkan bagaimana pengalokasian suatu integer dengan menggunakan
pointer pada suatu program. Pertama kita mendeklarasikan library dan variable-variable yang digunakan dan
tentunya variable pointer juga. Pada program ini kita set *ix dan *iy sebagai variable pointer nya dengan
penambahan tanda bintang sebelum variable. Pada program ini terdapat code ix = &x dan iy = &y, arti dari code
tersebut adalah pointer *ix akan menyimpan alamat memory pada variable x yang telah dideklarasikan, dengan
kata lain pointer *ix akan menuju alamat dan berisi nilai yang dimiliki variable x, begitu juga dengan dengan
pointer *iy diisi dengan alamat dan nilai variable y.

Pada program ini kita set *ix = 6, maka pointer tersebut memiliki alamat memory pada saat x = 6,
kemudian *iy = *ix + z, yang berarti pointer *iy akan diisi dengan nilai yang terdapat pada alamat pointer *ix yaitu
6 dijumlahkan dengan nilai z = 5, sehingga nilai yang terdapat pada alamat memory *iy = 11. Sedangkan untuk
nilai z = x+y, dengan nilai x = 6 dan y = 11, sehingga z =11. Mengapa y = 11 ? mengapa tidak 4? Karena *iy telah
menyimpan alamat memory pada y karna pada awal nya kita telah menset bahwa iy = &y . Pada printf %d
memanggil nilai yang terdapat pada x dan y sesuai dengan alamat memori yang telah disimpan masing-masing
variabel. Demikianlah proses penyimpanan alamat memory pada program ini.
Soal No 2

Code :

Eksekusi Code :

Penjelesan :

Program diatas merupakan sebuah program penerapan pointer pada string. Dengan menggunakan
pointer sebagai mengalokasian suatu karakter yang berupa string. Fungsi pointer pada string adalah untuk
menunjuk pada indeks string tersebut. Dapat diperhatikan pada line 10 bahwa pointer pA menuju char yang
berada pada strA, yang berarti bahwa pA akan menyimpan alamat memori dan berisi nilai yang ada pada strA.
Begitu juga dengan pB yang ditujukan pada strB. Looping yang ada pada code bertujuan untuk mengisi setiap
indeks pada pB dengan character yang terdapat pada strA.

while (*pA !='\0'){


*pB++ = *pA++;
}
*pB = '\0';
Itu berarti selama indeks pada *pA tidak sama dengan nul, maka indeks *pB akan diisi oleh indeks *pA
dengan kata lain character pada strA akan sama dengan character pada strB. Seperti pada hasil eksekusi diatas.
Program ini bertujuan untuk mengisi setiap indeks yang berada pada string menggunakan pointer dan pointer
sebagai menunjuk indeks pada string tersebut.
Soal No 3.
Code :

Eksekusi code :

Penjelasan :
Program diatas merupakan sebuah program dengan fungsi yang menggunakan variable pointer dalam
pemanggilan fungsinya. Dari program kita dapat melihat pada fungsi bubblesort (float *array, int size) dimana
pada fungsi tersebut terdapat variable pointer *array, yang diset pada line 15. Kemudian untuk fungsi swap
(float *x, float *y) variable pointernya diset pada fungsi bubbleSort, yaitu pada line 26, dimana pemanggilan
fungsinya berupa pointer. Sehingga alamat memori pada *x sama dengan alamat memori &array [i], dan
alamat memori *y sama dengan alamat memori pada &array [i+1].
Soal No 4.
Code :

Eksekusi code :

Penjelasan :

Program diatas merupakan sebuah program array of string yang menerapkan pointer untuk
mengidentifikasi karakter apa yang berada pada setiap indeks pada sebuah string. Dengan pendeklarasian
sebuah array of string yang memiliki panjang 11 indeks dan mendeklarasikan pointer *pkata dimana pointer
pkata akan menuju alamat memori yang terdapat pada string. Looping pada code berfungsi untuk mendeteksi
character apa saja yang terdapat pada setiap indeks.
Soal No 5.
Code :

Eksekusi code :

Penjelasan :

Program diatas merupakan sebuah program array dengan menggunakan pointer untuk melihat pada
angka berapa saja yang ada pada setiap indeks pada array. Dan memperlihatkan setiap indeks yang terdapat
pada variable array memiliki alamat memori masing-masing.
Dapat disimpulkan bahwa pointer berfungsi untuk menunjuk ke objek lain. Dimana variable pointer
berperan untuk menyimpan alamat dari suatu objek lain. Sebagai contoh px, merupakan variable pointer dan x
adalah variable yang ditunjuk oleh px. Jikakalau x berada pada alamat memeri awal = 1000, maka px akan berisi
1000 dan pointer px (*px) akan menyimpan nilai yang sama dengan x pada alamat memori awal. Karena alamat
memori antara x dan px telah sama sehingga nilainya juga sama.

Anda mungkin juga menyukai