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
Kata kunci New dapat digunakan untuk mengalokasikan memori pada
ruang yang masih kosong. Kata kunci ini diikuti oleh tipe data yang akan dialokasikan sehingga
compiler akan mengetahui seberapa besar memori yang akan dialokasikan. Sedangkan delete merupakan kebalikan dari
new. Delete akan membebaskan memori dari variabel yang kita gunakan. Perintah
delete ini sangat penting, karena apabila kita tidak membebaskan memori dari
Di unduh dari : Bukupaket.com
236
Rekayasa Perangkat Lunak
penggunaan maka akan sangat memboroskan pemakaian memori dan pada akhirnya akan membuat sistem berjalan tidak semestinya. Perhatikan contoh
penggunaan new dan delete berikut ini.
Contoh 9.22. Penggunaan new dan delete.
include iostream using namespace std;
int main { int Alamat;
Melakukan alokasi memori Alamat = new int;
Menggunakan memori yang telah dialokasikan Alamat = 100;
coutNilai Alamat : Alamatendl; membebaskan memori
delete Alamat; return 0;
}
9.3.3. Array
Seperti telah dijelaskan pada bab-bab sebelumnya, array dapat digunakan untuk menyimpan banyak data yang tipenya sama pada satu nama variabel.
Pendefinisian array pada C+ + hamper mirip dengan VB atau Java. Hanya sintaks penulisannya yang berbeda. Perhatikan contoh array sederhana berikut
ini.
Contoh 9.23. Array sederhana.
include iostream using namespace std;
int main { deklarasi array A dengan 5 buah elemen bertipe int
int A[5];
coutA[C] Bendl; Memasukkan nilai ke dalam elemen array
for int C=0; C5; C++ { double B = 5;
A[C] = C; B = A[C]B;
coutA[C] Bendl;
Di unduh dari : Bukupaket.com
Rekayasa Perangkat Lunak
237
} return 0;
}
Pada contoh di atas kita mendeklarasikan array dengan nama A dan tipe datanya adalah int. C pada kode di atas adalah variabel
counter. Untuk memasukkan nilai pada array, perhatikan pada baris A[ C] = C. C di sini adalah
indeks dari variabel A. Sama seperti halnya pada VB ataupun Java, nilai default awal dari indeks array adalah 0. Apabila contoh di atas dijalankan, maka output
akan tampak seperti pada Gambar 9.6.
Gambar 9.6. Output hasil eksekusi program array sederhana. Pada contoh 9.23 di atas kita mendeklarasikan array tanpa inisialisasi nilai.
Tapi sebenarnya kita dapat langsung member nilai bersamaan dengan pendeklarasian variabel array. Kemudian kita dapat merubah nilainya ketika
program sedang berjalan atau dibagian lain dari program. Perhatikan contoh 9.24 berikut.
Contoh 9.24. Deklarasi dan inisialisasi array.
include iostream using namespace std;
int main { Deklarasikan dan inisialisasi array
char X[3] = { A, B, C };
Menampilkan nilai awal elemen array coutNilai array awalendl;
coutX[0] = X[0]endl; coutX[1] = X[1]endl;
coutX[2] = X[2]endl;
Mengubah elemen ke-1 dan ke-2 X[0] = G;
X[1] = H;
Di unduh dari : Bukupaket.com
238
Rekayasa Perangkat Lunak
Menampilkan nilai perubahan dari elemen array coutNilai array setelah dirubahendl;
coutX[0] = X[0]endl; coutX[1] = X[1]endl;
coutX[2] = X[2]endl;
return 0; }
Jika kita jalankan kode program di atas, maka hasilnya akan tampak seperti pada Gambar 9.7.
Gambar 9.7. Hasil eksekusi deklarasi dan inisialisasi array. C+ + juga menyediakan fitur untuk membuat array multidimensi.
Deklarasi array multidimensi dapat dilakukan dengan cara seperti pada contoh 9.25.
Contoh 9.25. Deklarasi array multidimensi.
include iostream using namespace std;
int main { Deklarasi dan inisialisasi array multidimensi
int Matrik_A[3][2] = { {1,2}, {3,4}, {5,6} }; int Matrik_B[2][3] = { {1,2,3}, {4,5,6} };
Mendeklarasikan variabel untuk indeks pengulangan int j, k;
Menampilkan nilai yang tersimpan dalam elemen array A coutISI MATRIKS Aendl;
for j=0; j3; j++ { for k=0; k2; k++ {
Di unduh dari : Bukupaket.com
Rekayasa Perangkat Lunak
239
coutMatrik A[j][k] = Matrik_A[j][k]endl;
} coutendl;
}
Menampilkan nilai yang tersimpan dalam elemen array B coutISI MATRIKS Bendl;
for j=0; j2; j++ { for k=0; k3; k++ {
coutMatrik B[j][k] =
Matrik_B[j][k]endl; }
coutendl; }
return 0; }
Pada contoh di atas, ada dua buah array multidimensi yaitu Matrik_A dan Matrik_B. Keduanya merupakan matriks dua dimensi. Matrik_A memiliki 3 baris
dan 2 kolom sedangkan Matrik_B memiliki 2 baris dan 3 kolom. Pengisian nilai elemen array dilakukan pada saat deklarasi. Namun kalian dapat mengisi
dengan menggunakan masukkan dari keyboard melalui perintah cin. Hasil eksekusi dari program di atas akan tampak seperti pada Gambar 9.8.
Gambar 9.8. Hasil eksekusi array multidimensi.
Di unduh dari : Bukupaket.com
240
Rekayasa Perangkat Lunak
9.4. KELAS