• Tidak ada hasil yang ditemukan

LAPORAN DAN PRAKTIKUM VIII Pointer

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN DAN PRAKTIKUM VIII Pointer"

Copied!
23
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM VIII

POINTER

Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++ Dibimbing oleh Bpk. Ahmad Musyidun Nidhom

Oleh:

Nanda Riski Septania

140533606173

S1 PTI’14 OFF F

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

(2)

A. Tujuan

Tujuan dari mempelajari Modul 8 “POINTER” ini agar mahasiswa mampu:

1. Mengetahui arti dalam fungsi pinter dadlam pemrograman

2. Memahami penggunaan pointer dalam listing program

3. Mengetahui keunggulan pointer pada suatu program

4. Membuat program sederhana dengan menerapkan konsep pointer.

DASAR TEORI

B. Pengertian Pointer

B.1 Pengertian Pointer:

Pointer(variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. Contoh jika sebuah variabel berisi alamat dari variabel lain variabel pertama dikatakan menunjuk ke variabel kedua.

B.2 Operator

B.2.1 Operator pointer

a. Pointer Operator & (Operator Diference)

1. Operator & bersifat unary (hanya memerlukan satu buah operand saja) 2. Operator & menghasilkan alamat dai operandnya

b. Poinetr Operator * (Operator Reference)

1. Operator * bersifat unary (hanya memerlukan satu buah operand saja) 2. Operator * menghasilkan nilai yang berada pada sebuah alamat Pointer : variabel yang berisi alamat memori.

Keterangan:

a. Type adalah tipe dasar pointer

b. Variable name adalah nama variabel opinter

(3)

B.2.2 Operator aritmatika

Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan operasi pengurangan. Operasi penambahan suatu nilai menunjukkan lokasi data berikutnya (indexs selanjutnya) dalam memori. Begitu juga operasi pengurangan. Contoh:

(4)

Input data melalui pointer:

Anda dapat juga menginputkan suatu data dalam keadaan varibel dengan menggunakan pointernya.

Ingat menginputkan data dengan scanf) membutuhkan alamat dari variabel yang

bersangkutan. Karena ptr_x merupakan alamat dari variabel x maka ptr_x dapat digunakan menjadi scanf((). Jadi pernyataan:

scanf(“%d” ptr_x) sama dengan pernyataan scanf(“%d” &x)

Dimana &x juga menunjukkan alamat dari vairabel x.

Kelebihan menggunakan pointer:

a. Untuk menciptakan data struktur yang kompleks

(5)

c. Memiliki kemampuan untuk mengirimkan alamat suat fungsi ke fungsi yang lain d. Penanganan terhadap array dan string akan lebih singkat dan efisien

e. Memungkinkan untuk berhubungan langsung ke hadware

f. Memungkinkan untuk berhubungan langsung dengan parameter command line. g. Kemampuan bekerja dengan memmori yang telah dialokasikan secara dinamik.

Macam – macam Pointer

1. Pointer Bertipe Void

Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, po¬inter semacam ini dideklarasikan dengan tipe void sehingga sering dikenal dengan istilah Void Pointer. Berikut ini contoh listing program yang menggunakan void pointer.

2. Pointer Aritmetika

Elemen-elemen array biasanya diakses melalui indeksnya, sebenarnya ada cara lain yang lebih efisien, yaitu dengan menggunakan pointer. Pointer semacam ini disebut dengan istilah pointer aritmetika. Konsep dasar dari pointer aritmetika ini adalah melakukan operasi

aritmetika terhadap variabel yang bertipe pointer.

3. Pointer NULL

Pada saat program dijalankan, pointer akan menunjuk ke alamat acak pada memori, sehingga diperlukan inisialisasi agar hal tersebut tidak terjadi. Dalam C++ terdapat sebuah cara untuk membuat pointer tidak menunjuk ke alamat manapun, yaitu dengan mengisikan pointer tersebut dengan nilai NULL. Karena hal inilah maka pointer tersebut sering dinamakan pointer NULL (NULL Pointer).Sebagai contoh kita mempunyai pointer p, dan kita ingin melakukan inisialisasi pada pointer tersebut dengan nilai NULL

Operasi-operasi pada pointer:

1. Operasi penugasan

Suatu variabel pointer seperti halnya variabel yang lain, juga bisa mengalami operasi penugasan. Nilai sari suatu variabel pointer dapat disalin ke variabel pointer yang lain.

2. Operasi Aritmatika

Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.

(6)

Bahaya menggunakan pointer:

1. Bahaya yang mungkin ada dengan pointer sebagai moniker: memory leak, double delete, invalid memory access. Semuanya dapat dihindari dengan ownership analysis yang bagus (pada setiap saat, harus diketahui pihak mana yang bertanggung jawab mendelete sebuah object). Jika hal ini sulit dilakukan, misalnya karena shared ownership, anda dapat menggunakan smart pointer atau garbage collector

2. Bahaya yang mungkin ada dengan pointer sebagai iterator: array out of bound. Salah satu cara yang efektif menghindari hal ini adalah dengan menggunakan standard algorithma

3. Bahaya yang mungkin ada dengan pointer sebagai abstraksi fixed memory : Tidak tahu, tetapi ini bukan mainan sembarang programmer.

LATIHAN PRAKTIKUM I PEMROGRAMAN C++

Nama Program : Program pemanggilan angka 77

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :

(7)

int*pBil; // deklarasi variabel pBil dengan pemanggilan pointer

int bilX = 77; // deklarasi variabel

pBil =&bilX; // menyatakan bahwa pBil akan memanggil nilai bilX dengan pointer operator diference

cout<<"Isi bilX="<<bilX<<endl ; // output program

cout<<"Nilai yang ditunjuk pBil ="<<*pBil<<endl; // output program

*pBil - *pBil +3; // proses pemanggilan nilai pBil

cout<<"Isi bilX sekarang =" <<bilX<<endl; // output program

cout<<"Nilai yang ditunjuk pBil ="<<*pBil<<endl; // output nilai yang ditunjuk pBil

return 0; }

Output Program :

Deskripsi Program :

Program ini menggunakan header file iostream karena syntax yang dipakai adalah cout. Kemudian sebelum program dapat berjalan kita perlu mendeklarsikan variabel terlebih dahulu. int*pBil; termasuk pendelarasian variabel dengan pemanggilan pointer *

atau biasa disebut dengan pointer operator diference. Terdapat pula pendeklarasian variabel

int bilX = 77 yang berarti variabel bilX bernilai 77. pBil =&bilX adalah proses dimana

variabel pBil bernilai sama dengan bilX.

Jalannya program yang sebenarnya dimulai ketika pada saat program di excute muncul kalimat pertama isi bilX=77, dimana angka 77 diperoleh dari pendeklarasian bilX=77. Setelah itu akan muncul kalimat Nilai yang ditunjuk pBil = 77, angka 77 pada kalimat ini diperoleh karena terdapat syntax <<*pBil<<endl; yang berarti terdapat pointer

pada program ini yaitu pointer operator reference yang akan memanggil nilai pBil pada syntax sebelumnya yaitu pBil=&bilXdimana “&” juga termasuk pointer operator diference

(8)

itu program akan menampilkan kalimat Isi bilX sekarang yang akan tetap sama dengan sebelumnya. Rumus *pBil - *pBil +3; tidak akan berpengaruh dikarenakan tidak terdapat = yang menyatakan nilai. Sehingga pada kalimat selanjutnya yaitu: Nilai yang diunjuk pBil pun akan tetap 77.

LATIHAN PRAKTIKUM II PEMROGRAMAN C++

Nama Program :

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :

#include<iostream.h> // hader file

int main () // deklarasi fungsi utama main {

long *p; // pendeklarasian variabel p dengan tipe data long yang juga termasuk pemanggilan pointer

long x; // deklarasi variabel x dengan tipe data long

p=&x; // pemanggilan nilai x yang dilakukan oleh operator diference x=15;//mengisikan 15 ke dalam variabel x\

cout<<"nilai X= "<<x<<endl; // output program yang akan menampilkan nilai x=15

cout<<"nilai *P="<<*p<<endl; // ouput nilai p yang akan tampil dikarenakan nilainya dipanggil oleh operator reference

cout<<"nilai P="<<p<<endl;

(9)

Deskripsi Program :

Program ini diawali dengan header file iostream dimana header file iostream akan menerima syntax cout ataupun cin. Deklarasi variabel pada program ini menggunakan tipe data long dengan dua variabel p dan x, dimana pada pendeklarasian variabel p terdapat pointer operator reference yaitu * yang berfungsi sebagai penghasil nilai pada alamat

operandnya. Kemudian terdapat sebuah proses dimana variabel p=&x yang berarti variabel p nanti akan menampilkan alamat dari operand p. Lalu terdapat pula konstanta x yang bernilai 15.

Jalannya program ini dimulai dengan pendeklarasian variabel hingga program ketika di excute aan tampil kalimat nilai X = 15 pada layar, nilai 15 berasal dari konstanta yang telah dibuat bahwa x=15. Kemudian setelah itu pada layar juga akan tampil kalimat nilai *p =15, nilai 15 berasal dari pemanggilan yang dilakukan oleh pointer operator reference yang akan menghasilkan nilai yang dituju pada alamat pointer. Setelah itu pada layar terdapat tampilan nilai p =0x22ff50 nilai tersebut dikarenakan script tersebut

memanggil alamat nilai p yang terdapat pada komputer. Ini hanya bisa dilakukan oleh pointer operasi diference, yiaitu pemanggil alamat operand yang dituju, sehingga yang tampil adalah alamat &x pada komputer, sebab p=&x. Aturan ini juga berlaku pada tampilan nilai di kalimat selanjutnya.

Untuk nilai X= 25 dikarenakan *p=25 dimana *p=&X. Kemudian untuk tampilan yang kedua nilai 25 diperoleh dengan pemanggilan pointer operasi reference yaitu *p=25. Nilai pada kalimat selanjutnya sama seperti penjelasan diatas, yaitu pemanggilan alamat operand yang dituju.

LATIHAN PRAKTIKUM III HPEMROGRAMAN C++

Nama Program :

Bahasa Pemrogramam : C++

(10)

Script program :

#include <iostream.h> // HEADER FILE

int ubah(int *x); DEKLARASI VARIABEL UBAH DENGAN DEKLARASI VARIABEL X YANG DILENGKAPI DENGAN POINTER OPERAND REFERENCE.

int main() // DEKLARASI FUNGSI MAIN UTAMA {

int a= 12; // DEKLARASI VARIABEL a=12

cout<<"Isi Nilai semula = "<< a <<endl; // OUTPUT PROGRAM BAHWA NILAI A

ubah(&a); // PEMANGGILAN NILAI &a }

int ubah(int *x) // DEKLARASI FUNGSI UBAH DENGAN PONTER *& {

*x = *x+22; // PROSES MEMANGGIL NILAI POINTER

cout<<"Isi Nilai Sekarang ="<<*x; // OUTPUT PROGRAM }

Output Program:

Deskripsi Program:

Program ini diawali dengan header file iostream karena syntaxnya menggunakan cout tidak menggunakan printf maupun scanf. Kemudian terdapat pendeklarasian fungsi, namun bukan fungsi yang utama. Fungsi ini juga terdapat pendeklarasian variabel yang juga terdapat pointer dengan operasi reference. Setelah itu terdapat deklarasi fungsi main yang utama. Terdapat pula pendeklarasian variabel dengan tipe data integer a=12.

(11)

setelah itu akan keluar kalimat isi nilai sekarang yang terdapat nilai 34 nilai ini berasal dari proses x, dimana x=x+22 yang bila di logika – 12+22=34. Deklarasi variabel ubah

sebenarnya tidak begitu berpengaruh pada program ini. Karena ini semua hanya penambahn script yang berasal dari soal.

TUGAS PRAKTIKUM I PEMROGRAMAN C++

Nama Program : Membuat program untuk menjawab pertanyaaan

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :

#include<iostream.h> // header file #include<conio.h> // header file

main() // deklarasi fungsi utama main {

int aziz,defa,*df,dewi; // deklarasi variabel

aziz = 85067; // konstanta bila 85067 adala h nilai x defa = aziz; // konstanta

dewi = defa + 3;// proses perhitungan

cout <<"a. nilai defa : "<<defa<<endl;. // output nili defa cout <<"b. nilai dewi : "<<dewi<<endl<<endl; output nilai dewi df = &aziz; // proses

dewi = *df+3; // proses

cout <<"c. nilai defa : "<<*df<<endl; // output program nilai defa cout <<"d. nilai dewi : "<<dewi<<endl; // output program dewi getch();

}

(12)

Deskripsi Program :

Program ini diawali dengan penulisan header file iostream karena operasinya

menggunakan cout. Selain iostream program ini juga menggunakan header file conio.h yang akan memanggil getch () sehingga pada akhir program akan bersih dari tulisan. Untuk pendeklarasian fungsi utama disii tidak menggunakan tipe data melainkan langsung pada fungsi main. Dlarasi variabel juga tidak dilupakan pada program ini, variabel yang akan dideklarasikan adalah aziz, defa, *df, dewi. Dimana *df adalah sebuah pemanggil yang disebut operator reference yang mempunyai kegunaan menunjuk nilai sebuah alamat yang dituju. Selain variabel program ini juga terdapat konstanta, aziz = 85067 defa = aziz, dewi = defa + 3, termasuk konstanta karena nilaninya pasti.

Urutan jalannya program yang sebenarnya ketika program di excute kali pertama kalimat yang muncul adalah a. Nilai defa=85067, nilai ini berasal dari konstanta defa=aziz, dimana nilai aziz adalah 85067, sehingga nilai defa akan mengikuti 85067.

Untuk kalimat kedua bernilai 85070 dikarenakan nilai yang seharusnya telah ditambah dengan 3.

Untuk kalimat yang ketiga outputna memang sama dengan kalimat yang pertama namun proses pemberian nilainya berbeda. Pada kalimat ini untuk menadapatkan nilai 85067 adalah dengan pemanggilan nilai yang dilakukan oleh pointer operasi reference pada df, dimana df juga terdapat pointer operasi diference yang berguna untuk memanggil alamat pada tujuan. Untuk kalimat terakhir tidak ada bedanya dengan kalimat yang kedua.

TUGAS PRAKTIKUM II PEMROGRAMAN C++

Nama Program : Program untuk membalik kata pada MinGW

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

(13)

cout<<"Masukkan Kata : "; cin.getline(kata, sizeof(kata)-1); int j=0;

for(int a=0;kata[a]!='\0';a++){ j++;

}

word=&kata[j-1];

cout<<"Pembalikan Kata : "; for(int b=j-1;b>=0;b--){

cout<<*word; word--; }

cout<<endl; return 0;

Output Program :

Deskripsi Program :

Program ini diawali dengan dua buah header file yaitu iostream dan conio. Selain itu juga terdapat deklarasi variabel dengan menggunakan tipe data char dengan variabel kata [50] serta *word yang merupakan variabel dengan pointer operator reference.

Jalannya program ini adalah ketika program ini di excute terdapa kalimat masukkan kata yag muncul pada kali pertama. Program meminta user untuk menginput kata sebagai contoh sayamenginput baba, bebe, bubu, bobo, bibi dimana ata ini akan diproses oleh statement for for(int a=0;kata[a]!='\0';a++) kemudian setelah melewati proses itu

diproses kembali oleh statement for yang bawah dengan memanfaatkan pointer operator reference yang akan memanggil nilai atau data dari proses sebelumnya sebelum akan dibalik oleh statement looping sehingga outpt dari program ini adalah ibib,obob,ubub,ebeb,abab.

(14)

Nama Program : Program untuk menghitung spasi dan jumlah kata

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :

//menampilkan tulisan pada layar cout<<"\t Masukkan kata: "; //meminta input nilai pada user cin.getline(kalimat,sizeof(kalimat )-1);

//persamaan fungsi

kata=hitung_kata(kalimat);

//menampilkan tulisan pada layar cout<<"\t Jumlah Kata Pada Kalimat Tersebut Adalah :"<<kata;

2. Deklarasi variabel hitung_kata (char kalimat [255]) 3. Deklarasi variabel char kalimat dengan pointer

4. Deklarasi variabel i dan spasi dengan menggunakan tipe data int 5. Statement perulangan for for(i=0; hitung[i]; i++)

(15)

7. Deklarasi fungsi utama

8. Deklarasi variabel char kalimat [255] 9. Deklarasi variabel kata dengan tipe data int 10. Menampilkan tulisan “Maukkan Kata”

11. Meminta input dari user sekaligus membaca spasi kalimat yang dimasukkan user 12. Proses persamaan fungsi

13. Output program 14. End.

FlowCharts:

Deskripsi Program :

Program ini diawali dengan 3 header file yaitu string, iostream, dan ctype. Di program ini juga terdapat pendeklarasian variabel dengan megguakan dua tipe data, yaitu char dan int.

Jalannya program ini adalah dimulai ketika program di excute akan muncul kalimat masukkan kata yang berakhir meminta inputan kalimat sembarang pada user contoh saya menginput alisa kartika sari.Agar kalimat ini dapat dibaca oleh program harus menggunakan syntax cin.getline(kalimat,sizeof(kalimat)-1); sehingga program tetap bisa

(16)

terdapat pula deklarasi variabel lebih dari satu. Output program ini adalah jumlah kata pada kalimat tersebut adalah 3.

TUGAS RUMAH II

PEMROGRAMAN C++

Nama Program : Program untuk membuat huruf pertama pada string menjadi besar dengan pointer.

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :

#include <iostream.h> // header file #include <string.h> // header file #include <conio.h> // header file

int main() // deklarasi fungsi main utama {

int i,jum; // deklarasi variabel

char string[100]; // deklarasi variabel dengan tipe data char dengan kapasitas 100

cout<<"Masukan sembarang kalimat : "; // tampil pada layar cin.getline(string,100); //membaca spasi

//mengubah huruf awal menjadi huruf kapital if((string[0]>='a')&& (string[0]<='z')) string[0]=(char)string[0]-32;

//mengubah huruf setelah huruf awal menjadi huruf kecil jum=1;

//mengubah huruf setelah spasi menjadi huruf kapital for(i=1;string[i]!='\0';i++)

cout<<"Hasil Akhir : "<<string<<endl; getch();

}

(17)

Algoritma :

1. Start

2. Deklarasi variabel i, jum dengan tipe data int. 3. Deklarasi variabel string [100] dengan tipe data char

4. Tampil pada layar kalimat “Masukkan Sembarang Kalimat:” 5. Membaca spasi

6. Mengubah huruf awl menjadi huruf kapital:

a. Dengan pernyataan kondisi jika string lebih dari sama dengan a dan string kurang dari sama dengan z maka string sama dengan char dari 0-32 (besar huruf)

7. Mengubah huruf setelah huruf awal menjadi huruf kecil: a. Konstanta jum=1

b. Dengan statement looping diawali dengan i=0, i kurang dari (int) strlen (string) dengan i diincrementkan.

c. Lalu dengan pernyataan kondisi jika string jum huruf A dan string jum samapai Z maka string jum sama dengan char string jum dengan huruf kecil 8. Mengubah huruf setelah spasi menjadi huruf kapital:

a. Dimulai dengan satatement looping diawali dengan i=0, i kurang dari (int) strlen (string) dengan i diincrementkan

b. Kemudian dilanjutkan dengan pernyataan kondisi jika string jum huruf A dan string jum samapai Z maka string jum sama dengan char string jum dengan huruf besar.

(18)
(19)

Deskripsi Program:

Program ini diawali dengan header file 3 jenis yang masing-masing punya karakter tersendiri. Header file iostream merupakan pemanggil cout, header file string memanggil syntax string dan conio memanggil getch. Program ini juga mennggunakan deklarasi vatiabel dengan dua tipe ata yaitu, int untuk variabel i dan jum sedangkan char untuk variabel string [100]. Terdapat pula syntax pembaca spasi cin.getline(string,100);

Jalannya program ini ketika di excute akan menampilkan kalimat Masukkan sembarang kalimat: sebagai contoh saya masukkan nanda riski septania, kemudian syntax

cin.getline(string,100); akan membaca spasi yang terdapat pada setiap sela-sela nama

sehingga tetap bisa dibaca oleh syntax selanjutnya. Kemudian masuk kedalam proses selanjutnya yaitu mengubah huruf awal menjadi huruf kapital. Setelah kita mengetik input sembarang kata, selanjutnya akan diproses menggunakan operasi kondisi

if((string[0]>='a')&& (string[0]<='z')) string[0]=(char)string[0]-32; yang

berarti Dengan pernyataan kondisi jika string lebih dari sama dengan a dan string kurang dari sama dengan z maka string sama dengan char dari 0-32 (besar huruf) menandakan huruf awal menjadi besar.

Selanjutnya adalah proses mengubah huruf setelah huruf awal menjadi huruf kecil. Setelah masuk kedalam proses sebelumnya, hasil masuk kedalam proses ini. Tahap ini juga memiliki konstanta dimana jum=1. Kali pertama prosesnya adalah dengan statement looping

for(i=0;i<(int)strlen(string);i++) yang berarti Dengan statement looping diawali

dengan i=0, i kurang dari (int) strlen (string) dengan i diincrementkan. Kemudian diproses lagi menggunakan operasi kondisi if((string[jum]>='A')&& (string[jum]<='Z')) string[jum]=(char)string[jum]+32; jum++; yang berarti kondisi jika string jum huruf

A dan string jum samapai Z maka string jum sama dengan char string jum dengan huruf kecil.

Setelah itu akan memasuki proses mengubah huruf setelah spasi menjadi huruf kapital dengan statement looping for serta operasi kondisi dengan syntax for(i=1;string[i]!='\ 0';i++) if(string[i]==' ') if(string[i+1]>='a' && string[i+1]<='z')

string[i+1]=(char)(string[i+1]-32); yang berarti dimulai dengan satatement looping

diawali dengan i=0, i kurang dari (int) strlen (string) dengan i diincrementkan

Kemudian dilanjutkan dengan pernyataan kondisi jika string jum huruf A dan string jum samapai Z maka string jum sama dengan char string jum dengan huruf besar.

Setelah semua proses dilewati keluarlah pada bagian output program.

(20)

PEMROGRAMAN C++

Nama Program : Program untuk membuat implementasi fungsi pointer main sehingga nilai variabel menjadi dua kali lipat.

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :

#include <iostream.h> // header file #include <conio.h> // header file

void lipatganda (int *x, int *y, int *z); // deklaeasi variabel lipat ganda dengan pointer tiga jenis

int main () // deklarasi fungsi main utama {

int a, b, c; // deklarasi variabel a,b,c

cout<<"inputkan beberapa nilai di bawah ini : "<<endl; // tampil padalayar

cout<<"a = "; cin>>a; // meminta user menginput nilai a cout<<"b = "; cin>>b; // meminta user menginput nilai b cout<<"c = "; cin>>c; // meminta user menginput nilai c

cout<<"=========================================="<<endl; // tamppil pada layar

lipatganda (&a, &b, &c); // pointer operator deference

cout<<"nilai sesudah melewati fungsi : "<<endl; // tampil pada layar

cout<<"a = "<<a<<endl; // output program cout<<"b = "<<b<<endl; // output program cout<<"c = "<<c<<endl; // output program getch();

return 0; }

(21)

2. Deklarasi fungsi lipat ganda 3. Deklarasi variabel a,b,c

4. Tampil kalimat “Inputkan beberapa nilai dibawah ini!” 5. Tampil kalimat a=,b=,c=

6. Meminta user menginput nilai a,b,c

7. Pemanggilan pointer operator deference dengan deklarasi fungsi diatas 8. Tampil kalimat “sesudah melewati fungsi

9. Tampil kata a=,b=,c=

10. Meminta user menginput nilai a,b,c

11. Terdapat alamat void lipat ganda dengan pointer reference setiap alphabet 12. Proses nilai x

13. Proses nilai y 14. Proses nilai z 15. End.

FlowCharts:

(22)

Program ini diawali dengan dua buah header file iostream dan conio. Dimana header file iostream berguna untuk memanggil syntax cout sedangkan header file conio verguna untuk memanggil syntax getch. Kemudian di dalam program ini juga terdapat dua buah fungsi yaitu void lipatganda (int *x, int *y, int *z); dan int main ()

dimana salah satu fungsi berisi pointer. Program ini juga memili pendeklarasian variabel a,b,c.

Jalannya program ini adalah ketika di excute munculah kalimat “Inputkan beberapa nilai dibawah ini:” kemudian muncul huruf a=, b= c= itu menandakan program meminta user untuk menginput nilai a, b, c. Setelah itu terdapat kalimat lipatganda (&a &b &c) pada syntax itu berarti pointer operasi diference dimana operator ini menandakan

(23)

KESIMPULAN

1. Sebelum mengerjakan latihan tugas praktikum, tugas rumah terlebih dahulu harus mengerti tentang algoritma, flowchart dan program yang akan dijalanka termasuk macam-macam tipe data.

2. Pointer(variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain.

3. Operator pada pointer terdapat dua jenis, yaitu:

a. Operator & (Operator Diference) yang berguna untuk menghasilkan alamat dari operandnya.

b. Operator * (Operator Reference) yang berguna untuk mengahasilkan nilai yang berada pada sebuah alamat.

4. Dalam bahasapemrograman c++ perlu menggunakan pointer sebab pointer dapat

meningkatkan kinerja untuk operasi yang dilakukan secara berulang. Dengan syarat, bila mendeklarasikan pointer pada array tidak boleh menggunakan tanda bintang.

5. Macam-macam pointer ada tiga, yaitu: a. Pointer bertipe void

b. Pointer aritmatika c. Pointer null

6. Bahaya pointer yang mungkin ada dengan pointer sebagai moniker: memory leak, double delete, invalid memory access.

DAFTAR RUJUKAN

1. Tim Asisten Dosen. 2013. Modul 8.POINTER. Malang: Universitas Negeri Malang. 2.Google. Online. 2013. Pointer C. http://lecturer.eepis . its.edu/~ira/materi/konsep

Referensi

Dokumen terkait

Jika NEW adalah suatu variabel pointer, maka GETNODE(NEW) akan menyebabkan node yang ditunjuk oleh variabel pointer NEW disisipkan ke dalam linked list..

Kata cadangan VAR digunakan sebagai judul pada bagian deklarasi variable dan diikuti oleh satu atau lebih pengenal yang dipisahkan dengan koma, diikuti dengan titik dua dan tipe

 DLLNC adalah sebuah Linked List yang terdiri dari dua arah pointer, dengan node yang saling terhubung, namun kedua pointernya menunjuk ke NULL.  Setiap node pada

Mendeklarasikan variabel integer dengan nama: pilihan, x Mendeklarasikan variabel String dengan nama: nama Mendeklarasikan variabel Boolean dengan nama: kondisi Mendeklarasikan

Pada layout awalan operator banyak melakukan gerakan yang tidak efektif antara lain memilih baut, meletakkan body atas ke tangan kanan, meletakan body bawah ke tangan kiri,

Deklarasi dua buah variabel dengan nama A dan B dengan tipe data integer Dimasukkan angka pertama pada variabel A.. Nilai variabel B dihitung dengan cara menjumlahkan

Pada contoh diatas, nilai X dapat diakses dengan menggunakan *P1 atau **P2, sedangkan alamat dari variable X dapat diakses dengan menggunakan &amp;X, P, ataupun *P2 (*P2

Tabel.2.4 Input Latihan 4 berisi baris program yang mengandung operator kondisi dimana pada baris ke-6 [System.out.println(&#34;score=&#34;+score)] digunakan untuk mencetak