Anda di halaman 1dari 20

05 | Function dan Pointer

PEMROGRAMAN LANJUT
Function
 Function merupakan: pernyataan yang dikemas sedemikian rupa
yang selanjutnya bisa dipanggil beberapa kali dalam program.
 Tujuan pembuatan function:
 Memudahkan dalam mengembangkan program
 Mengehamat ukuran program
PEMROGRAMAN LANJUT
Macam Function
 Void
 Void digunakan jika tidak memerlukan pengembalian suatu
nilai
 Syntax penulisan function void:

penggunaanFunction.cpp
PEMROGRAMAN LANJUT
Macam Function
 Return
 Retrun digunakan jika ingin mengembalikan suatu nilai. Perlu
diingat, tipa data(1) yang di return harus sama dengan
tipe data(2) ketika membuat function return(3)
tersebut.
 Syntax penulisan fuction return:

1
2

3
PEMROGRAMAN LANJUT
Function dengan Parameter
 Baik function void maupun return, bisa menggunakan
parameter.
 Parameter bisa digunakan untuk input pada function
tersebut.
 Syntax penggunaan parameter pada function:

Perlu diingat, tipe data


harus sama dengan
parameter yang
digunakan

penggunaanFunctionParameter.cpp
PEMROGRAMAN LANJUT
Variable Global dan Lokal
 Setiap mendeklarasikan suatu variable, belum tentu
variable tersebut dikenal oleh setiap function.
 Terdapat dua macam jenis variable yang bisa diakses,
yakni:
 Variable global: variable yang bisa diakses semua
function.
 Variable local: variable yang hanya bisa diakses didalam
suatu function itu saja.
PEMROGRAMAN LANJUT
Penggunaan Variable Global
 Untuk variable global, sebaiknya diletakkan di baris
paling atas sendiri biar mudah dibaca. Selain itu
jangan meletakkannya di dalam function main()
Jika diletakkan di dalam main(),
akan menjadi variable local untuk
function main() saja.
PEMROGRAMAN LANJUT
Penggunaan Variable Local
 Untuk variable local diletakkan di dalam blok function
tersebut. Contoh penggunaanya seperti berikut:

Coba panggil varB di dalam


function main(). Apa yang
terjadi?
PEMROGRAMAN LANJUT
Pointer
 Pointer merupakan?
variable yang menyimpan reference (alamat memory) yang
dapat diakses dengan identifier.
 Pointer hanya ditemukan di C/C++, sehingga bisa
memanipulasi memory secara langsung
 RAM dan ROM, sama atau beda?
 RAM (Random Access Memory), memory bersifat volatile
(isinya hilang jika daya dicabut). Ex: SDRAM, DDRAM, cache
memory
 ROM (Read Only Memory), data masih tetap ada walaupun
daya dicabut. Ex: ROM BIOS
PEMROGRAMAN LANJUT
Structure Top Level Computer
PEMROGRAMAN LANJUT
CPU melakukan pertukaran data
dengan memory menggunakan register
internal : MAR dan MBR

Bagaimana suatu proses dikerjakan


oleh computer? lihat dari top level
view seperti gambar disebelah
Dalam 1 siklus proses, terdapat fetch
dan execute.

1. I/O melakukan initialisasi PC ke


main memory untuk indeks awal

2. I/O -> MAR -> MBR -> IR


(instruction)-> Main memory->Data

3. Data->MBR(menerima data)-> I/O


BR(menyimpan data sementara)-
>ditampilkan di layar
PEMROGRAMAN LANJUT
Address (Dereference) Operator
 Ketika mendeklrasikan variable, ada hal tertentu yang
harus berhubungan dengan lokasi pada memory. Untuk
itu, dengan menggunakan ampersand sign (&)
yang artinya “address of” kita mengetahuinya.

 Contoh:
varA = &varB;

varA akan berisi alamat dari variable varB


PEMROGRAMAN LANJUT
Reference Operator
 Dengan menggunakan pointer, dapat langsung
mengakses nilai dari alamat yang tersimpan pada
variable dengan mengawalinya dengan operator
asterisk (*) yang artinya “value pointed by”

 Contoh:
varA = *varB;

varA akan berisi data dari alamat varB


PEMROGRAMAN LANJUT
Syntax Deklarasi Pointer
 Berikut merupakan cara penulisan pointer di c++

int *NamaVariable

Deklarasi pointer di atas berupa NamaVariable bertipe pointer to


int. Deklarasi pointer di awali dengan tanda * (asterisk) sebelum
nama suatu variable
PEMROGRAMAN LANJUT
Contoh Penggunaan Pointer

varExample mengcopy lokasi memory varContoh

Menampilkan data dari


lokasi memory varExample

Bagaimana hasilnya jika cout << “varExample =” << varExample (tanpa tanda asterisk)?
PEMROGRAMAN LANJUT
Pointer dan Array
 Suatu array dapat diakses menggunakan pointer
 Identifier suatu array equivalen dengan alamat dari
elemen pertama. Pointer equivalen dengan alamat
elemen pertama yang ditunjuk.

 Ex:
int contohArr [5];
int *p
Maka p bisa mencopy nilainya dengan cara
p = contohArr;
PEMROGRAMAN LANJUT
 Misalkan seperti ini:
Char * terry = “hello”

Kita misalkan saja varNama disimpan di memory dengan lokasi


1702 dan seterusnya, maka diklarasi tadi dapat digambarkan
sebagai berikut:
PEMROGRAMAN LANJUT
Contoh Penggunaan Pointer Array

Output:
PEMROGRAMAN LANJUT
Terima Kasih
PEMROGRAMAN LANJUT
Soal (Tugas Individu)
 Terdapat sebuah array dengan nilai sebagai berikut:
18, -11, 1, 4, -1
Lakukan sorting pada array tersebut secara ascending dan
descending. Syarat:
Output : - Letakkan variable dataArray tersebut secara
global
- ascenArray(int dataArray[]) -> tipenya void
dan cout hasil sorting ascending di dalam
main()
- int * descenArray(int dataArray[]) ->tipenya
return. Yang direturn adalah hasil dataArray
sorting descendingnya. Kemudian buat
variable local pointer di dalam main() untuk
copy isi dataArray kemudian tampilkan
hasilnya.

Anda mungkin juga menyukai