7
POINTER Latihan 1 – mengakses isi variabel pointer Analisa : Dari source code yang sudah dibuat dapat dianalisa bahwa px = &x merupakan pendeklarasian alamat dari x, sedangkan y = *px merupakan isi dari y diganti isi dari nilai x, sehingga nilai y = 87 yang nilainya sama dengan nilai x sebelumnya. Latihan 2 – Tipe variabel pinter dan tipe data yang ditunjuk harus sejenis Analisa : Dari source code yang telah dibuat dapat dianalisa bahwa pz = &z mendeklarasikan alamat dari z, begitu pula ps = &s

Pointer.docx

Embed Size (px)

Citation preview

Page 1: Pointer.docx

POINTER

Latihan 1 – mengakses isi variabel pointer

Analisa : Dari source code yang sudah dibuat dapat dianalisa bahwa px = &x merupakan pendeklarasian alamat dari x, sedangkan y = *px merupakan isi dari y diganti isi dari nilai x, sehingga nilai y = 87 yang nilainya sama dengan nilai x sebelumnya.

Latihan 2 – Tipe variabel pinter dan tipe data yang ditunjuk harus sejenis

Analisa : Dari source code yang telah dibuat dapat dianalisa bahwa pz = &z mendeklarasikan alamat dari z, begitu pula ps = &s merupakan alamat dari s, ketika *pz dipanggil maka yang keluar adalah nilai atau niala dari z, sehingga ketika terdapat fungsi *pz += *ps maka nilai dari z akan dijumlahkan dengan nilai dari s yang akan disimpan di variable z.

Page 2: Pointer.docx

Latihan 3

Analisa : Dari source code tang telah dibuat dapat di analisa bahwa pada awalnya nilai *char_pointer itu belum ada nilainya, sehingga ketika di isikan nilai maka nilai itu yang akan dimunculkan.

Latihan 4

Analisa : Dapat di analisa bahwa pada awalnya ip meruopakan alamat dari x, dan ketika y=*ip maka nilai y akan digantikan oleh nilai x, dan ketika nilai *ip dirubah maka nilai x akan berubah nilai sesuai yang baru.

Page 3: Pointer.docx

Latihan 5

Analisa : Dari source code yang telah dilakukan dapat dianalisa bahwa nilai d pada awalnya adalah 54.5 dan pd=&d merupakan alamat dari d itu sendiri, sehingga ketika *pd+=10 maka nilai dari d akan ditambah 10 sehingga menjadi 64.5.

Latihan 6

Analisa : Dari source code dapat dianalisa bahwa nilai i1 = 9, ketika itu bernilai i2 adalah nilai i1 yang yang dibagi 2, kare i1=9 maka ketika dibagi 2 hasilnya 4,5 tetapi itu tidak berlaku yang berlaku hanya angka yang ada didepan yaitu 4, kemudian (-2) x 3 = (-6), sehingga hasil dari i2 = 4-6= (-2). Untuk nilai *p1=*p2 yaitu 9.

Page 4: Pointer.docx

Latihan 7

Analisa : Dari source code yang telah dikerjakan dapat di analisa bahwa pada awalnya nilai count=10 dan temp merupakan alamat dari count, sehingga nilai temp = 10, meskipun awalnya nilai sum = 7 tapi ketika pada prosesnya nilai sum adalah perkalian antara nilai temp dan 10 sehingga hasilnya 40, begitu juga nilai temp.

Latihan 8- berikan analisa

Analisa : Dari source code yang telah dibuat dapat dianalisa bahwa pada awalnya nilai q = 7 setelah di kerjakan nilai q merupakan penjumlahan dari nilai *ptr1 dan *ptr2, dan nilai r merupakan 12 + 3 dan nilai *ptr1 dan *ptr2 sama dengan nilai q. Setelah itu untuk nilai q yang kedua merupakan perkalian nilai q awal ddengan 2, sedangkan nilai r = 12 tanpa ada penambahan nilai lain, untuk nilai *ptr1 sama dengan nilai q yang kedua. Dan untuk nilai *ptr2 sama dengan nilai r yang kedua juga.

Page 5: Pointer.docx

TUGAS

Buatlah program untuk menyimpan bilangan pecahan acak sebanyak 12 bilangan, yang disimpan dalam suatu array. Urutkan bilangan-bilangan tersebut dan tampilkan sebelum dan sesudah diurutkan menggunakan index array dan pointer

Analisa : Dari source code yang telah dilakukan dapat dianalisa bahwa fungsi diatas merupakan fungsi yang menggabungakan fungsi array dengan pointer, sehingga kita membuat fungsi array dengan variabelnya menggunakan pointer. Kita juga menggunakn float karena menggunakan bilangna pecahan, seperti biasa kita memasukan nilai dari keyboard kemudian akan dishortir denagn jumlah bilangan yang akan dimasukan diberi batasan yaitu sebanyak 12, dengan pbil merupakan alamat dari variable bil, setelah di beri input dari keyboard maka proses shorting akan dimulai dengan memisalkan indeks ke-0 merupan nilai yang terbesar, setelah itu indeks ke-0 dan ke-1 dibandingkan, apabila nilai indeks ke-1 lebih besar maka posisi indeks ke-0 sebagai nilai terbesar akan digeser oleh indeks ke-1, begitu seterusnya hingga yang dibandingkan habis, maka outputnya akan dimulai dari yang terkecil ke yang terbesar.