LAPORAN PRAKTIKUM RESMI POINTER
Disusun oleh :
Albert Sugihartono 201301018
Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom
JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO 2014
BAB I TEORI DASAR
1.
Pengantar
Pointer adalah variable yang berisi alamat memori sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari variable yang mempunyai nilai tertentu. Bentuk umum dari pernyataan variable pointer dalam C++ adalah : Type *variable-name; Dengan:
Type adalah tipe dasar pointer
Variable name adalah nama variable pointer
* adalah operator memori yang fungsinya untuk mengembalikan nilai variable pada alamatnya yang ditentukan oleh operand.
Untuk mengatur pointer agar dapat menunjuk ke variable lain, yaitu awal pointer harus diisi dengan alamat dari variable yang akan ditunjuk. Dalam hal ini, digunakanlah operator. Operator yang digunakan dalam pointer adalah operator alamat(yang dilambangkan dengan symbol &) adalah operator unary yang mengembalikan alamat dari operandnya. Contoh pada sebuah deklarasi: int y = 5; int *x
maka pernyataan: x = & ;
Pernyataan diatas mengandung arti bahwa alamat dari variable y ditujukan kepada variable pointer x.
2
BAB II PENJELASAN PROGRAM
Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan pemrograman C++ program_pointer.cpp Listing program_praktikum_pointer.cpp /* * program_praktikum_pointer.cpp * * Created on: May 13, 2014 * Author: ALBERT */ #include
using namespace std; int main() { string *berkumis; string kumis; string orang="Gatot_kaca"; string *bertopeng; string topeng; string manusia="Batman"; bertopeng=&manusia; topeng=*bertopeng; berkumis=&orang; kumis=*berkumis; cout<<"Berkumis= "<
Output program_praktikum_pointer.cpp
Hasil output dari program_praktikum_pointer.cpp adalah sebagai be rikut :
3
Penjelasan program_praktikum_pointer.cpp
Berikut penjelasan dari Listing program_praktikum_pointer.cpp : 1.
Program praktikum ini bertujuan untuk memunculkan “Gatot_kaca” jika “Berkumis” dan “Batman” jika “Bertopeng” dengan menggunakan pointer. Pointer digunakan sebagai “wadah sementara” untuk value yang ditampung. Pointer pada program ditandai dengan symbol bintang (*) yaitu *berkumis dan *bertopeng. Ada 3 jenis variabel yang dideklarasikan yaitu variabel pointer sebagai penampung, variabel sebagai sumber data yang ditunjuk dan variabel yang dituju dengan tipe data yang digunakan adalah string. Penggunaan string memungkinkan perlakuan terhadap value yang dimunculkan sesuai dengan apa yang diinputkan, bukan memunculkan simbol.
2.
Ada 2 tahap dalam pemindahan data. Pertama, variable pointer diisi dengan data dari variable yang ditunjuk untuk variabel pointer. Variable ini diassignmentkan dengan ditandai symbol dan (&). Sebagai contoh pada program : bertopeng=&manusia; yang berarti bahwa alamat dari variable manusia ditujukan kepada variable bertopeng. Selanjutnya adalah assignment dari variable pointer yang telah diisi kepada variable yang dituju yang akan dimasukkan ke output stream dimana untuk variable pointer ditandai dengan symbol bintang (*). Sebagai contoh : topeng=*bertopeng.
3.
Untuk memunculkannya dalam output, variable yang dituju dimasukkan ke dalam output stream dengan cout. Dengan begitu, output dapat dimunculkan dimana bila Bertopeng akan memunculkan Batman dan jika Berkumis akan memunculkan Gatot_kaca.
Tugas Praktikum
Pada tugas praktikum ini merupakan sebuah program menampilkan biodata dengan menggunakan pointer dan tipe data abstrak typedef dan struct. /* * program_pointer.cpp
4
* *
Created on: 16 May 2014
*
Author: ALBERT
*/ #include using namespace std;
typedef string kal; typedef int ankka;
struct apa { kal *nama; kal jeneng; kal name;
kal *alamat; kal edres; kal almt;
ankka NIM; ankka *nim; ankka nimu;
kal hobie; kal *HOBBY; kal hobi;
kal ttl; kal *tempattgl; kal born; };
5
int main() { apa a; a.name="Albert_Sugihartono"; a.nama=&a.name; a.jeneng=*a.nama;
a.almt="Brobahan_Timur_86A_Purwokerto"; a.alamat=&a.almt; a.edres=*a.alamat;
a.nimu=201301018; a.nim=&a.nimu; a.NIM=*a.nim;
a.hobie="Membaca,menggambar,dan.lain.lain"; a.HOBBY=&a.hobie; a.hobi=*a.HOBBY;
a.born="Bandung,14-Juni-1995"; a.tempattgl=&a.born; a.ttl=*a.tempattgl;
cout<<"\t\tMY BIODATA\n\n"; cout<<"==================================================\n\n"; cout<<"Nama lengkap
: "<
cout<<"Tempat/tanggal lahir : "<
: "<
cout<<"NIM
: "<
cout<<"Hobi
: "<
return 0; }
6
Output program_pointer.cpp
Penjelasan program_pointer.cpp
Berikut penjelasan dari program_pointer.cpp : 1. Program memunculkan sebuah biodata dengan menggunakan pointer, tipe data abstrak
typedef dan tipe data abstrak struct. Typedef digunakan untuk memberi alias terhadap sebuah variable yang menjadikan variable tersebut sebuah tipe data baru. Dalam program typedef digunakan untuk alias variable kal untuk tipe data string dan alias variable ankka untuk tipe data integer. 2. Tipe data abstrak struct digunakan pada program dengan nama struct apa dengan
membernya yang berisikan variable-variabel yang dibutuhkan program pointer guna memunculkan biodata dengan menggunakan pointer. Cara penggunaan member struct atau cara pengaksesannya dilakukan dengan menggunakan penghubung simbol titik (.). Di dalam program dapat dilihat penggunaan struct dengan mengganti nama struct apa dengan a untuk mempermudah. Kemudian, variable a digunakan sebagai media akses member struct dengan simbol titik sebagai contoh a.nama. 3. Di dalam program, variabel yang ditunjuk untuk pointer diassignmentkan terlebih dahulu
sesuai tujuan variabel tersebut. Misal, variabel name ditujukan untuk nama, maka assignment
value
dilakukan
dengan
menulis
a.name=”Albert_Sugihartono”;
Pendeklarasian variabel tidak dapat dilakukan di dalam struct, karena struct hanya menampung member/anggota yaitu variabel-variabel sehingga apabila terjadi proses assignment akan memunculkan error.
7
4. Ada 3 proses untuk pointer dari setiap variabel b iodata yaitu pertama adalah value variabel
sumber diassignmentkan terlebih dahulu. Kedua, variabel pointer diassignmentkan oleh variabel sumber dimana alamat variabel yang ditunjuk ditujukan kepada variabel pointer ditandai oleh simbol dan (&). Sebagai contoh a.alamat=&a.almt; dimana a.alamat adalah variabel pointer dan alamat dari variabel a.almt ditujukan kepada variabel a.alamat. Yang ketiga adalah variabel pointer sebagai “wadah” diassignmentkan kepada variabel yang akan dimasukkan kedalam output stream dengan variabel pointer ditandai simbol bintang (*). Contoh : a.ttl=*a.tempattgl;. 5. Variabel yang sudah diassignmentkan oleh variabel pointer dapat dimasukkan kedalam
output stream (cout) untuk memunculkan output biodata.
8
BAB III KESIMPULAN
Pointer merupakan variabel yang merupakan sebuah “wadah” sementara untuk value yang akan digunakan. Secara teknis, pointer merupakan variabel yang mana alamat memorinyalah berupa value yang membedakannya dengan variabel berisi value tertentu. Hal ini dapat dilihat saat sebuah variabel pointer dimasukkan kedalam output stream. Jika variabel pointer dioutputkan tanpa tand a pointer maka yang akan terjadi adalah output berupa bahasa mesin dikarenakan value variabel pointer adalah alamat memorinya. Variabel pointer ditandai dengan simbol bintang (*) sedangkan variabel yang ditunjuk untuk pointer ditandai dengan simbol dan (&) dimana simbol ini merupakan operator unary untuk mengembalikan alamat operandnya. Untuk penggunaan tipe data abstrak pada program_pointer.cpp yaitu typedef dan struct. Typedef digunakan untuk memberikan alias terhadap variabel yang mengikutinya atas tipe data yang digunakan sehingg a menjadikan tipe data baru yang bersifat sama dengan tipe data saat pendeklarasian typedef. Variabel struct digunakan untuk meringkas program dimana dideklarasikan didalam program_pointer.cpp dengan struct apa yang memiliki member yaitu variabel-variabel yang digunakan untuk biodata. member diakses dengan terlebih dahulu menukar nama struct apa dengan a sebagai media akses dan menggunakan simbol titik diikuti variabel didalam member. Sebagai contoh a.ttl. Didalam struct, tidak memungkinkan untuk terjadi sebuah assignment atau proses dikarenakan member struct hanyalah untuk menampung variabel yang akan digunakan didalam sebuah struktur data. Maka apabila terdapat assignment atau proses didalam member struct akan memunculkan error pada program.
9
Sumber Referensi
Kristanto, Andi. 2003. Struktur Data Dengan C++ Yogyakarta : Graha Ilmu Ardhana. YM Kusuma. 2013. Struktur Data Dalam Ilustrasi Eclipse Indigo C++ Yogyakarta : CAPS (Center of Academic Publishing Service)
10