algoritma dan pemrograman 2

advertisement
ALGORITMA DAN
PEMROGRAMAN 2
3 SKS
By : Sri Rezeki Candra Nursari
MATERI
Teks/string
Pointer
Struktur
Kelas
Konstruktor dan
Destruktor
• Kelas dan Obyek
• Overloading Operator
•
•
•
•
•
• Inheritance (Pewarisan)
• Polimorfisme
• Template Fungsi dan
Kelas
• File
• Sort
• Search
POINTER
Pertemuan 02
3 SKS
Alamat dan Pointer
• Pointer berisi alamat bukan data, sedang variabel
berisi data
• Suatu pointer dalam program dimaksudkan untuk
menunjuk ke suatu alamat memori
• Alamat suatu variabel dapat diketahui dengan
menambahkan operator alamat berupa simbol ‘&’
didepan nama variabel
• Notasi 0x pada alamat variabel menyatakan notasi
heksadesimal
Program
contoh 01
Algoritma.........?????
Pseudocode.......??????
Mendefinisikan Pointer
• Pointer adalah variabel yang nilainya merupakan
address dari variabel yang lain
• Penggunaan pointer akan menjadi fatal apabila suatu
pointer tidak mempunyai arah yang terdefinisi
• Apabila mendefinisikan suatu variabel menjadi
pointer, maka variabel tersebut mengandung address
tempat variabel tersebut akan dialokasikan, tetapi
bukan nilai address itu sendiri
– Contoh :
• Y  sebuah variabel dengan type integer dan Y menunjuk ke PX.
– PX = *X
– Y = *PX
Mendefinisikan Pointer
• Syntaks :
tipe_data *nama_variabel;
• tipe_data seperti pada tipe data variabel biasa
nama_variabel adalah nama dari variabel pointer
• Contoh :
– int *pint;
– char *pchar1, *pchar2;
– float *pfl;
Perbedaan Pointer vs Referensi
• Referensi :
– merupakan alias dari suatu variabel
– Referensi yang digunakan sebagai argumen berguna untuk
mengubah nilai argumen dalam fungsi, tetapi dengan
menambahkan operator & didepan nama argumen
• Pointer :
– merupakan alamat dari suatu variabel
– merupakan mekanisme yang biasa digunakan pada bahasa C
untuk mengubah nilai dari dalam fungsi
– Pointer yang digunakan sebagai argumen berguna untuk
mengubah nilai argumen dalam fungsi
Mengisi dan Mengakses Variabel
Pointer
• Variabel pointer harus diisi dengan alamat dari
variabel yang ditunjuk supaya dapat menunjuk ke
variabel tersebut
• Contoh:
int vint = 63;
int *pint;
pint = &vint;  pint diisi dengan alamat dari vint
• Nilai vint dapat diakses melalui pint dengan
menggunakan operator *
cout << pint;  memunculkan alamat vint
cout << *pint;  memunculkan nilai vint yaitu 63
*pint = 66;  merubah nilai vint menjadi 66
Program
contoh 02
Algoritma.........?????
Pseudocode.......??????
Pointer void
• Merupakan Pointer yang tak bertipe
• Dengan meletakkan kata kunci void pada
bagian penentu tipe pointer
• Contoh
–Void *x
–Merupakan pernyataan untuk
mendefinisikan x sebagai variabel pointer
void
Program
contoh 03
Algoritma.........?????
Pseudocode.......??????
Array Pointer
• Dapat digunakan untuk menyimpan
sejumlah pointer
• Contoh
–char *namahari[7]
• Mendefinisikan array nama hari yang berisi
7 buah elemen berupa pointer
• Pointer ini menunjuk ke data yang bertipe
char
Program
contoh 04
Algoritma.........?????
Pseudocode.......??????
Pointer
• Pointer terbagi menjadi “
1. Pointer dan variabel statis
a. Pointer menunjuk variabel data
b. Pointer menunjuk pointer
2. Pointer dan variabel dinamis
a. Pointer menunjuk variabel data dinamis
tunggal
b. Pointer menunjuk struktur
1.a. Pointer menunjuk variabel data
• Program ini menyiapkan variabel dalam
memory
– Nama
:n
– Type data
: integer
– Kemudian mengisi variabel n dengan nilai integer 44
– Pointer pn, menyimpan alamat variabel n
Program
contoh 05
Algoritma.........?????
Pseudocode.......??????
Program
contoh 06
Algoritma.........?????
Pseudocode.......??????
1.b. Pointer menunjuk pointer
• Program ini menyiapkan variabel dalam
memory
– Nama
:n
– Type data
: integer
– Kemudian mengisi variabel n dengan nilai integer 44
– Pointer pn, menyimpan alamat variabel n
Program contoh 07
Output
Algoritma.........?????
Pseudocode.......??????
2.a. Pointer menunjuk variabel data dinamis tunggal
• Program ini menyiapkan variabel dalam
memory
– Pointer pn, menunjuk suatu tempat (area) dimana area
tersebut tidak diberi nama
– Atau Pointer pn, mengisi variabel dengan nilai integer 44
• Dikatakan dinamis karena dapat disiapkan/disisip dan
dapat dihapus pada saat program sedang dijalankan
• Program yang dapat membentuk sebuah area tanpa
nama seukuran (sizeof), dimana alamat area dicatat
dalam pointer pn
Program
contoh 08
Algoritma.........?????
Pseudocode.......??????
2.b. Pointer menunjuk struktur
• Yang bersifat dinamis, bukan saja sebuah variabel tunggal,
tapi dapat juga merupakan suatu structure variabel
• Pointer P dan pointer Q, disiapkan untuk menunjuk
(mencatat alamat/address) structure variabel yanng biasa
disebut node.
• Dalam struktur terdiri dari 2 variabel, yaitu NilaiUTS dan
NilaiUAS
• Untuk menunjuk sebuah elemen, pointer menggunakan
tanda panah. Tanda panah ini dibuat dengan dua karakter
yaitu tanda kurang (-) dan tanda lebih besar (>)
Program
contoh 09
Algoritma.........?????
Pseudocode.......??????
Tugas Teori Pertemuan 02
1. Apa yang Anda ketahui tentang pointer
2. Jelaskan fungsi simbol & pada C++
penggunaan pointer
3. Jelaskan fungsi simbol * pada C++
penggunaan pointer
4. Apa yang Anda ketahui tentang NULL Pointer
Download