Top Banner
LAPORAN PRAKTIKUM VIII POINTER Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++ Dibimbing oleh Bpk. Wahyu Sakti G.I Oleh: Ananda Putri Syaviri 130533608243 S1 PTI’13 OFF B UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI PENDIDIKAN TEKNIK INFORMATIKA November 2013
21

laporan pointer dalam c++

Jan 24, 2023

Download

Documents

Iska Meylindra
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: laporan pointer dalam c++

LAPORAN PRAKTIKUM VIIIPOINTER

Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++Dibimbing oleh Bpk. Wahyu Sakti G.I

Oleh:

Ananda Putri Syaviri

130533608243

S1 PTI’13 OFF B

UNIVERSITAS NEGERI MALANGFAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTROPRODI PENDIDIKAN TEKNIK INFORMATIKA

November 2013

Page 2: laporan pointer dalam c++

POINTER

A. Tujuan

Setelah mempelajari bab ini diharapkan mahasiswa akan

mampu :

1. Mengenaldanmemahami penggunaan pointer dalam listing

program.

2. Membuat program sederhana dengan menerapkan

konseppointer .

B. Dasar Teori.

Definisi Pointer

Pointer berisi alamat dari suatu data, BUKAN data

seperti pada variabel.

Variabel disimpan dalam memori, dan akan ditempatkan

pada alamat tertentu.

Pointer dalam program digunakan untuk me-nunjuk kesuatu

alamat memori.

Pointer adalah sebuah variabel yang berisi alamat lain.

Suatu pointer dimaksudkan untuk menunjukan kesuatu alamat

memori sehingga alamat dari suatu variable dapat diketahui dengan

mudah.

Keunggulan menggunakan Pointer:

Page 3: laporan pointer dalam c++

1. Penanganan terhadap array dan string akan lebih singkat, dan

efisien.

2. Memungkinkan suatu fungsi untuk menghasilkan lebih dari satu

nilai.

3. Memiliki kemampuan untuk mengirimkan alamat suatu fungsi ke

fungsi yang lain.

4. Kemampuan berkerja dengan memori yang telah dialokasikan

secara dinamik.

5. Memungkinkan untuk berhubungan langsung ke hardware.

6. Untuk menciptakan data structure yang kompleks.

7. Memungkinkan untuk berhubungan langsung dengan parameter

command line.

Dengan menggunakan pointer yang benar, anda dapat

menyusun sebuah program yang berkemampuan tinggi. Sebaliknya

sedikit saja kesalahan dalam menggunakan pointer akan

mengakibatkan kesalahan fatal pada program anda. Karena

pointer dapat langsung menunjukan pada lokasi memori, jika

lokasi yang ditunjuk salah, berarti data yang diambil juga

akan salah, dan sudah tentu program anda akan menjadi salah juga.

Operator deference (&) ampersand sign

Operator ini biasa disebut dengan address of atau

operator alamat. Dengan menggunakan operator deference variable

akan menghasilkan alamat lokasi memori.

Operator reference (*)

Operator ini biasa disebut value pointed by. Dengan

menggunakan operator ini akan dihasilkan nilai yang berada pada

suatu alamat memori

Deklarasi Variabel Pointer

Page 4: laporan pointer dalam c++

Tipe variable sama dengan tipe yang dikenal oleh variable

biasa, misalnya int, float, char dan sebagainya. Nama variabel

pointer juga mengikuti ketentuan nama variable biasa. Yang

membedakan variabel pointer dengan variable biasa dengan

menggunakan tanda asterisk (*) didepan nama varibel pada waktu

deklarasi.

Contoh :

Int *ptr_x;

Ptr merupakan variabel pointer, karena pada deklarasi

digunakan tanda (*) didepan nama variabelnya. Pengertian dalam

deklarasi variabel pointer memiliki perbedaan dengan variable

biasa, jika dalam deklarasi variable biasa:

Float x;

Dalamdeklarasi pointer:

Float *ptr_x;

Artinya variabel pointer ptr_x akan menunjukkan pada

variable yang bertipe float. Jadi disini bukan ptr_x-nya yang

bertipe float, melainkan variabel lain yang ditunjuk yang bertipe

float. Contoh: dalam pendeklarasian yang salah :

float y;

Int *ptr_y;

Benar :

Float y;

Float *ptr_y;

Dan untuk mendeklarasikan sebuah variable y yang

bertipe integer dengan variabel

pointernya adalah:

Int y;

Page 5: laporan pointer dalam c++

Int *yy; dapat disederhanakan

Int y,*yy;

Input data Melalui Pointer

Anda dapat juga mengimputkan suatu data ke dalam variable dengan

dengan menggunakan

pointernya, sebagai contoh tinjaulah program dibawah ini:

Int x;

Int *ptr_x;

Ptr_x=&x;

Printf(”inputkannilai x : ”);

Scanf(”%d”,ptr_x);

Ingat! Menginputkan data dengan scanf() membutuhkan

alamat dari variabel yang

bersangkutan. Karena ptr_x merupakan alamat dari variabel x,

maka ptr_x dapat digunakan

dalam scanf(). Jadi pernyataan:

Scanf (”%d”,ptr_x);

Sama dengan:

Scanf (”%d”,&x);

Dimana &x juga menunjukkan alamat dari variabel x.

Memberikan suatu nilai pada suatu variable lewat pointer

Page 6: laporan pointer dalam c++

Nilai suatu variabel dapat juga diberikan lewat pointernya,

nilai yang diberikan ini dapat

berbentuk kostanta ataupun ekspresi aritmatika.

Pointer danfungsi

Pengiriman data dari sebuah fungsi ke fungsi lain dapat juga

dilakukan dengan bantuan

pointer, bila pointer digunakan, maka data yang dikirim harus

berupa alamat variabel, bukan

lagi nama variabel.

Page 7: laporan pointer dalam c++
Page 8: laporan pointer dalam c++

Latihan Praktikum 1

Pemrograman C++

Nama Program :Program menggunakan suatu pointer dari

fungsi

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Page 9: laporan pointer dalam c++

Script program :#include <stdio.h>

char*nama_bulan(int n);

main()

{

int bl;

printf("Bulan(1..2*)");

scanf("%d",&bl);

printf("%s\n",nama_bulan(bl));

}

char*nama_bulan(int n)

{

static char*bulan[]={

"Kode Bulan Salah",

"Januari","Februari","Maret","Appril","Mei","Juni","Juli","A

gustus",

"September","Oktober","Nopember","Desember"};

return((n<1||n>12)?bulan[0]:bulan[n]);

}

Output Program:

Algoritma:

1. Mulai.

2. Masukkan bilangan bulan (1...2).

Page 10: laporan pointer dalam c++

3. Cetak hasil.scanf("%d",&bl);

printf("%s\n",nama_bulan(bl));

4. Jika inputan bilangan selain 1-12, maka “Kode Bulan Salah”.

5. Cetak hasil.return((n<1||n>12)?bulan[0]:bulan[n]);

6. Selesai.

Deskripsi:

Program diatas menggunakan file header stdio karena

menggunakan printf dan scanf. Menggunakan fungsi main.

Menggunakan tipe data string, static char, char dan int.

Menggunakan operator ||, <. Menggunakan fungsi return((n<1||

n>12)?bulan[0]:bulan[n]); , yang artinya jika n bernilai 1-12

maka bernilai benar hasilnya

“"Januari" /"Februari"/"Maret"/"Appril"/"Mei"/"Juni" /"Juli"/"Agu

stus"/"September"/"Oktober"/"Nopember"/"Desember"}; , jika lebih

dari 12 atau kurang dari 1 maka bernilai salah dan hasilnya “Kode

bulan salah”.

LatihanPraktikum2

Pemrograman C++

Nama Program :Program menghitung banyak

karakter

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Page 11: laporan pointer dalam c++

Script program ://PROGRAM MENGHITUNG BANYAK KARAKTER

#include <stdio.h>

int misteri3(const char *);

main () {

char string[80];

printf("Ketikkan sebuah string : ");

scanf("%s",&string);

printf("%d\n", misteri3(string));

return 0;

}

int misteri3(const char *s)

{

int x=0;

for(;*s!='\0';s++)

++x;

return x;

}

Output Program :

Algoritma:

1. Mulai.

2. Ketikkan sebuah string.scanf("%s",&string);

printf("%d\n", misteri3(string));

return 0;

Page 12: laporan pointer dalam c++

3. Cetak hasil.int x=0;

for(;*s!='\0';s++)

++x;

return x;

4. Selesai.

Deskripsi:

Program diatas menggunakan file header stdio karena

menggunakan printf dan scanf. Menggunakan array satu dimensi.

Menggunakan tipe data integer, string. Menggunakan fungsi main.

Menggunakan fungsi return 0 dan return x.

LatihanPraktikum3

Pemrograman C++

Nama Program :Program untuk menjawab

pertanyaan

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :#include <iostream.h>

#include <conio.h>

int main()

{

int aziz, defa, dewi;

int *aziz1, *defa1, *dewi1;

aziz=57082;

defa=aziz;

dewi=defa+1;

Page 13: laporan pointer dalam c++

aziz1=&aziz;

defa1=&defa;

dewi1=&dewi;

*aziz1=aziz;

*defa1=defa;

*dewi1=dewi;

cout<<"\t === ANANDA PUTRI SYAVIRI === \n\n";

cout<<"\t === 130533608243 === \n\n";

cout<<"\t === PTI'13 OFF B === \n\n";

cout<<"\t ===---------------**--------------=== \n\n";

cout<<"================================================\n";

cout<<" aziz=57082\n";

cout<<" defa=aziz\n";

cout<<" dewi=defa+1\n";

cout<<"================================================\n";

cout<<" a. Berapa nilai defa?\n";

cout<<" Nilai defa = "<<*defa1<<endl;

cout<<endl;

cout<<" b. Berapa nilai dewi?\n";

cout<<" Nilai dewi = "<<*dewi1<<endl;

cout<<endl;

aziz=57082;

defa1=&aziz;

dewi=*defa1+1;

cout<<"================================================\n";

cout<<" aziz=57082\n";

cout<<" defa=&aziz\n";

cout<<" dewi=*defa+1\n";

cout<<"================================================\n";

cout<<" c. Berapa nilai defa?\n";

cout<<" Nilai defa = "<<*defa1<<endl;

cout<<endl;

cout<<" d. Berapa nilai dewi?\n";

Page 14: laporan pointer dalam c++

cout<<" Nilai dewi = "<<*dewi1<<endl;

cout<<endl;

}

Output Program :

Algoritma:

1. Mulai.

2. Membaca integer main aziz, defa, dewi.

3. Membaca integer aziz1, defa1, dewi1.

4. Membaca hasil dari nama-nama yang ingin diproses.

5. Proses:aziz=57082;

defa=aziz;

dewi=defa+1;

aziz1=&aziz;

defa1=&defa;

dewi1=&dewi;

*aziz1=aziz;

*defa1=defa;

*dewi1=dewi;

6. Membaca :cout<<" aziz=57082\n";

cout<<" defa=aziz\n";

Page 15: laporan pointer dalam c++

cout<<" dewi=defa+1\n";

7. Membaca nilai defa :cout<<" a. Berapa nilai defa?\n";

cout<<" Nilai defa = "<<*defa1<<endl;

8. Membaca nilai dewi :cout<<" b. Berapa nilai dewi?\n";

cout<<" Nilai dewi = "<<*dewi1<<endl;

9. Menghasilkan nilai defa dan dewiaziz=57082;

defa1=&aziz;

dewi=*defa1+1;

10. Membaca nilai defa1cout<<" c. Berapa nilai defa?\n";

cout<<" Nilai defa = "<<*defa1<<endl;

11. Membaca nilai dewi1cout<<" d. Berapa nilai dewi?\n";

cout<<" Nilai dewi = "<<*dewi1<<endl;

12. Selesai.

Deskripsi:

Program diatas menggunakan file header iostream karena

menggunakan cout dan cin, menggunakan file header conio sebagai

header standar. Menggunakan tipe data integer. Menggunakan fungsi

main. Menggunakan pointer dimana berfungsi untuk mengalokasikan

(mengetahui) alamat suatu memori dalam bahasa C++.

TugasPraktikum 1

Pemrograman C++

Page 16: laporan pointer dalam c++

Nama Program :Program menampilkan kalimat terbaik dari suatu kalimat yang di inputkan

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :#include <iostream.h>

#include <conio.h>

#include <stdio.h>

int main()

{

char kata[100];

char *balik;

int i,jumlah;

jumlah=0;

balik=kata;

char x;

do

{

cout<<"\t === ANANDA PUTRI SYAVIRI === \n\n";

cout<<"\t === 130533608243 === \n\n";

cout<<"\t === PTI'13 OFF B === \n\n";

cout<<"\t ===---------------**--------------=== \n\n";

cout<<"\t ===---------------**--------------=== \n\n";

cout <<"\t Masukkan kata : ";

gets(kata);

for(i=0;kata[i]!='\0';i++)

{jumlah ++;}

cout<<"\n\t ===---------------**--------------=== \n\n";

cout << "\t Setelah Pembalikan Kata :";

for(i=jumlah -1;i>=0;i--)

Page 17: laporan pointer dalam c++

{cout << *(balik + i);}

cout<<"\n\n\t ===---------------**--------------=== \n\n";

cout<<"\n\t Tekan y untuk mengulang = ";

cin>>x;

} while ((x=='y') || (x=='Y'));

getch();

}

Output Program:

Algoritma:

1. Mulai.

2. Membacafungsi main.

3. Membacatipe data integer dan char.

4. Membaca array satudimensi.

5. Membaca pointers char balik.6. Jumlah = 0

balik=kata

for(i=0;kata[i]!='\0';i++)

{jumlah ++;}

7. Masukkan kata.

8. Cetak hasil pembalikkan kata.for(i=jumlah -1;i>=0;i--)

{cout << *(balik + i);}

9. Jika ingin mengulang , maka “Tekan y untuk mengulang”. cout<<"\n\t Tekan y untuk mengulang = ";

Page 18: laporan pointer dalam c++

cin>>x;

} while ((x=='y') || (x=='Y'));

getch();

}

10. Cetak hasil.

11. Kembali ke menu awal jika ‘y’, program berakhir jika

‘n’.

12. Selesai.

Deskripsi:

Program diatas menggunakan file header iostream karena

menggunakan cout dan cin, menggunakan conio karena menggunakan

getch, menggunakan stdio sebagai header standar dan menggunakan

fungsi gets(kata). Menggunakan tipe data integer dan char.

Menggunakan pointer char balik. Menggunakan array satu dimensi.

Menggunakan perulangan do while dan for. Menggunakan fungsi getch

dan gets(kata).

Tugas Praktikum 2

Pemrograman C++

Nama Program :Program3 Variabel.

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Script program :#include <iostream.h>

#include <conio.h>

intpengali(int*);

int main()

Page 19: laporan pointer dalam c++

{

inta,b,c;

char x;

do

{

cout<<"\t === ANANDA PUTRI SYAVIRI === \n\n";

cout<<"\t === 130533608243 === \n\n";

cout<<"\t === PTI'13 OFF B === \n\n";

cout<<"\t ===---------------**--------------=== \n\n";

cout<<"\n\t Masukkannilai a = ";

cin>>a;

cout<<"\n\t Masukkannilai b = ";

cin>>b;

cout<<"\n\t Masukkannilai c = ";

cin>>c;

cout<<"\t ===---------------**--------------=== \n\n";

pengali(&a);

pengali(&b);

pengali(&c);

cout<<"\t Nilai a sesudahdieksekusi = "<<a<<endl;

cout<<"\n\t Nilai b sesudahdieksekusi = "<<b<<endl;

cout<<"\n\t Nilai c sesudahdieksekusi = "<<c<<endl;

cout<<"\n\t ===---------------**--------------=== \n\n";

cout<<"\n\t Tekan y untukmengulang = ";

cin>>x;

}

while ((x=='y') || (x=='Y'));

getch();

}

intpengali(int *x)

{

*x=*x*2;

}

Page 20: laporan pointer dalam c++

Output Program:

Algoritma:

1. Mulai.

2. Membaca file header.

3. Membaca fungsi main, fungsi pengali(int*).

4. Membaca tipe data integer a,b,c dan char x.

5. Masukkan nilai a.

6. Masukkan nilai b.

7. Masukkan nilai c

8. Cetak hasil pengali.pengali(&a);

pengali(&b);

pengali(&c);

9. Jika ingin mengulang, maka “Tekan y untuk mengulang”.cout<<"\n\t Tekan y untuk mengulang = ";

cin>>x;

}

while ((x=='y') || (x=='Y'));

getch();

}

10. Cetak hasil.

Page 21: laporan pointer dalam c++

11. Kembali ke menu awal jika ‘y’, program berakhir jika

‘n’.

12. Selesai.

Deskripsi:

Program diatas menggunaka file header iostream karena

menggunakan cout dan cin, conio karena menggunakan getch.

Menggunaka fungsi main dan pengali(int*). Menggunakan tipe data

integer dan char. Menggunakan perulangan do- while. Menggunakan

fungsi getch.

KESIMPULAN

1. Pointer adalah sebuah variabel yang berisi alamat lain.

Suatu pointer dimaksudkan untuk menunjukan kesuatu alamat

memori sehingga alamat dari suatu variable dapat diketahui

dengan mudah.

2. Dengan menggunakan pointer yang benar, dapat menyusun

sebuah program yang berkemampuan tinggi. Sebaliknya

sedikit saja kesalahan dalam menggunakan pointer akan

mengakibatkan kesalahan fatal pada program tersebut.

3. Menggunakan operator deference variable akan menghasilkan

alamat lokasi memori.

4. Menggunakan operator reference akan dihasilkan nilai yang

berada pada suatu alamat memori.

DAFTAR RUJUKAN

Tim Asisten Dosen. 2013. Modul 8.POINTER. Malang: Universitas

Negeri M alang.

Kadir, Abdul. 2003. Pemrograman C++. Yogyakarta: Penerbit ANDI.