Rekayasa Perangkat Lunak
233
adalah variabel yang digunakan untuk menyimpan nilai yang digunakan sebagai parameter pada fungsi Kuadrat ketika dipanggil.
Contoh 9.19. Fungsi dengan parameter input dan output.
include iostream using namespace std;
Membuat fungsi dengan parameter input int Kuadratint X, int hasil {
hasil = X X; return hasil;
}
int main { int Bil, HASIL;
coutMasukkan sebuah bilangan bulat : ; cinBil;
Menampilkan nilai setelah diproses di dalam fungsi coutKuadrat dari bilanga Bil adalah :
KuadratBil, HASIL;
return 0; }
Contoh 9.19 merupakan pengembangan dari Contoh 9.18. Pada fungsi Kuadrat kita tambahkan parameter output yaitu hasil. Parameter keluaran,
harus dilewatkan berdasarkan alamat memorinya yaitu hasil, sehingga harus menggunakan pointer lihat tanda sebelum variabel hasil. Demikian juga cara
pemanggilan fungsinya, parameter input dan outputnya harus disebutkan. Parameter output yang menyimpan hasil perhitungan harus kita beri awalan .
9.3. POI NTER DAN ARRAY
Bahasa C+ + membolehkan kita untuk memanipulasi memori dengan cara penggunaan
pointer. Hal ini merupakan fitur yang tidak disediakan oleh bahasa pemrograman yang lain. Apabila digunakan secara benar maka akan sangat
menguntungkan, tetapi bila salah dalam penggunaan bisa berakibat pada kerusakan
crash atau hang pada sistem operasi.
9.3.1. Konsep dan Pengertian Pointer
Pointer adalah variabel. Namun berbeda dengan variabel normal, pointer menyimpan alamat pada memori, bukan nilai yang kita masukkan. Perhatikan
contoh berikut. Contoh 9.20. Mendeklarasikan pointer.
include iostream using namespace std;
Di unduh dari : Bukupaket.com
234
Rekayasa Perangkat Lunak
int main { long Alamat;
long X;
Alamat = X; X = 5;
Mengisikan nilai 5 ke dalam variabel X coutNilai X : Xendl;
coutNilai Alamat : Alamatendl; coutNilai Alamat : Alamatendl;
coutNilai X
: Xendl; Alamat = 20;
Mengisikan nilai 20 ke dalam Alamat coutNilai X : Xendl;
coutNilai Alamat : Alamatendl; coutNilai Alamat : Alamatendl;
coutNilai X
: Xendl; return 0;
}
Pada contoh di atas, kita deklarasikan variabel alamat sebagai pointer
dengan menambahkan tanda di depan nama variabel. Jika kita tidak menggunakan tanda berarti variabel tersebut akan berfungsi seperti variabel
normal. Variabel X kita deklarasikan sebagai variabel normal dengan tipe data long. Perhatikan pada baris Alamat = X. Baris ini menyatakan bahwa variabel
Alamat bukan pointer akan diisi dengan nilai dari alamat dari X. Tanda di depan nama variabel berarti kita menginginkan nilai alamat memorinya yang kita
gunakan dan bukan nilainya. Apabila kita eksekusi programnya maka tampilannya akan tampak seperti pada Gambar 9.4.
Gambar 9.4. Hasil eksekusi deklarasi pointer. Perhatikan nilai-nilai output pada Gambar 9.4. Nilai seperti 0x22ff88
adalah angka hexadesimal dari alamat variabel. Kalau kalian amati, ketika kita
Di unduh dari : Bukupaket.com
Rekayasa Perangkat Lunak
235
memasukkan nilai 5 pada variabel X maka variabel Alamat akan berisi juga nilai 5. Demikian juga ketika kita memasukkan nilai 20 pada variabel Alamat , nilai X
juga berubah menjadi 20. Hal ini karena variabel Alamat dan X menempati alamat memori yang sama.
Setiap kali kita mendeklarasikan sebuah pointer, maka otomatis pointer
akan menunjuk alamat acak pada memori. Oleh karena itu kita harus mengeset variabel
pointer tersebut agar tidak menunjuk alamat tertentu dengan cara memberi nilai NULL. Perhatikan contoh kode berikut dan hasil eksekusinya
Gambar 9.5. Contoh 9.21. Mendeklarasikan pointer dengan NULL.
include iostream using namespace std;
int main { long Alamat;
long Alamat1;
Alamat = NULL; coutAlamat memori yang ditunjuk dengan NULL :
Alamatendl; coutAlamat memori yang ditunjuk tanpa NULL :
Alamat1endl; return 0;
}
Gambar 9.5. Hasil eksekusi pointer NULL.
9.3.2. Penggunaan New dan Delete pada Pointer