POINTER Bag.2 Pertemuan 22 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom
MEMORI DINAMIS Pada saat menggunakan array, kita sering terbatasi oleh jumlah elemen yang tidak dapat diubah. Dengan menggunakan pointer, masalah tersebut dapat diatasi. C++ menyediakan perintah new, new[], delete, dan delete[] untuk mengatur pemakaian memori. Perintah new mengalokasikan memori, sedangkan perintah delete membebaskan memori. Perintah new dan delete digunakan untuk variabel biasa, sedangkan perintah new[] dan delete[] digunakan untuk array.
#include using namespace std; void main () { int jumlah, i, total=0; int *pAngka; cout >jumlah; pAngka = new int[jumlah]; for (i=0; i<jumlah; i++) { cout<<"Input angka ke-"<<i+1<<" : "; cin>>pAngka[i]; } cout<<"Angka yang Anda masukkan : "<<endl; for (i=0; i<jumlah; i++) { cout<<pAngka[i]<<", "; total+=pAngka[i]; } cout<<"\nTotalnya : "<<total<<endl; _getch(); }
POINTER & FUNGSI Suatu fungsi dapat menerima argumen berupa referensi. Cara 1 : tipeData namaFungsi (tipeData &argumen) {argumen = sesuatu; return sesuatu2; } dipanggil dengan : namaFungsi(variabel); Cara 2 : tipeData namaFungsi (tipeData *argumen) {*argumen = sesuatu; return sesuatu2; } dipanggil dengan : namaFungsi(&pointer);
Contoh Fungsi dengan Referensi #include using namespace std; void ubahNilai(int &angka) { angka = 95; } void main() { int nilai = 80; cout<<"Nilai mula-mula : "<<nilai<<endl; ubahNilai(nilai); cout<<"Nilai sekarang : "<<nilai; _getch(); }
Contoh Fungsi dengan Pointer #include using namespace std; void ubahNilai(int *angka) { *angka = 95; } void main() { int nilai = 80; cout<<"Nilai mula-mula : "<<nilai<<endl; ubahNilai(&nilai); cout<<"Nilai sekarang : "<<nilai; _getch(); }
Contoh Cara 1 #include using namespace std; string KAPITAL(string str) { for (int i=0; i<str.length(); i++) { str[i] = toupper(str[i]); } return str; } void main () { string nama = “Triana Elizabeth"; nama = KAPITAL(nama); cout<<nama<<endl; _getch(); }
Contoh Cara 2 #include using namespace std; void KAPITAL(string &str) { for (int i=0; i<str.length(); i++) { str[i] = toupper(str[i]); } void main () { string nama = “Triana Elizabeth"; KAPITAL(nama); cout<<nama<<endl; _getch(); }
Contoh Cara 3 #include using namespace std; void KAPITAL(string *str) { for (int i=0; i<(*str).length(); i++) { (*str)[i] = toupper((*str)[i]); } void main () { string nama = “Triana Elizabeth"; KAPITAL(&nama); cout<<nama<<endl; _getch(); }
Contoh Cara 4 #include using namespace std; string KAPITAL(string &str) { for (int i=0; i<str.length(); i++) { str[i] = toupper(str[i]); } return str; } void main () { string nama = “Triana Elizabeth"; KAPITAL(nama); cout<<nama<<endl; _getch(); }
Contoh Cara 5 #include using namespace std; void KAPITAL(string *str) { for (int i=0; i length(); i++) { (*str)[i] = toupper((*str)[i]); } void main () { string nama = “Triana Elizabeth"; KAPITAL(&nama); cout<<nama<<endl; _getch(); }
LATIHAN 1.Buatlah sebuah program C++ yang berisi sebuah fungsi untuk mengubah seluruh huruf dalam sebuah string menjadi sama dalam bentuk huruf kecil. Untuk fungsi gunakan pointer.