1 Pertemuan 2 Function & Pointer Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.

Slides:



Advertisements
Presentasi serupa
Lingkup Variabel Kelas Penyimpanan Rekursi
Advertisements

STRUKTUR DATA (5) Pointer dan Function
Algoritma dan Pemrograman Modular Programming (Bagian 1)
Modul 11 – Hendi Hermawan - 1
Pemrograman Terstruktur
Function: Lanjutan Pertemuan ke 9..
Subprogram Minggu V – VI
Method.
Function.
FUNCTION / FUNGSI.
Review-Dasar Pemrograman Komputer
Person 12: Korinus gefilem Muh.eka.paputungan :Dosen: Ir. Hassanudin sirait,MT Person 12: Korinus gefilem Muh.eka.paputungan :Dosen: Ir. Hassanudin sirait,MT.
OPERATOR OVERLOADING The ability to provide the operators with a special meaning for a data type but its original meaning is not lost. Example: Operator.
STRUKTUR DATA (5) Pointer dan Function
Pointer Memory Dinamic.
FUNGSI Teknik Informatika Universitas Muhammadiyah Malang 2011 Pemrogramman Terstruktur.
STRUKTUR DATA Pointer dan Function
Fungsi Fungsi.
1 Pertemuan 14 Operator Overloading Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Operator Overloading Pertemuan 20 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
1 Pertemuan 4 ELEMEN DASAR C++ Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Function User Function.
Class and Object Introduction Specifying a Class Defining Member Function A C++ Program with Class Nesting of Member Functions Private Member Functions.
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
1 Pertemuan 6 Encapsulation Lanjutan Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Teknik Pemrograman Terstruktur Linked lis & Inheritance 1/12 Pointer (Lanjutan…) Pemrograman Berorientasi Objek.
Fungsi Fungsi (Sub Program) :
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Pointer. Reference. Function Passing Parameter by Value, by Reference, by Pointer.
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
Teknik Pemrog. Terstuktur 2
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Mendemonstrasikan penggunaan fungsi serta pengiriman parameter 2.
1 Pertemuan 05 Procedure dan Parameter Matakuliah: T0063/Pemrograman Visual Tahun: 2005 Versi: 1/0.
Fungsi, Array dan String
Fungsi dan Prosedur.
METHODS Matakuliah: T0974 / Algoritma dan Metode Object Oriented Programming I Tahun: 2008 Versi: 1/0.
FUNGSI.
1 Pertemuan 18 Template Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
1 Pertemuan 5 Encapsulation Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Pertemuan 10 Constructor dan Destructor
1 Pertemuan 7 Review 1 – 6 Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
1 Pertemuan 12 Template Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Template 1. Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat merancang sebuah program dengan menggunakan template 2.
1 Pertemuan 1 Pengenalan Pemrograman Terstruktur C Matakuliah: H0112 – Pemrograman Bahasa Tingkat Tinggi Tahun: 2005/2006 Versi: xxx/2.
OPERATOR DAN FUNGSI MATEMATIK. Operator  Assignment operator Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh tanda.
Pemrograman Berbasis Objek Johannes Simatupang, MKom, Cobit5 NIDN : Pertemuan-4 Versi
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
FUNGSI.
PROCEDURE & FUNCTION.
Prosedur dan fungsi By Serdiwansyah N. A..
5. Fungsi S. Indriani L, M.T 5. Fungsi.
METHODS Mr. Yasri Object Oriented Program.
Algoritme dan Pemrograman
Pertemuan 4 Abstract Data Type
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
Constructor dan Destructor Pertemuan 17
Pertemuan 9 Pemrograman Berbasikan Objek
Sumber : repository.binus.ac.id/content/T0454/T ppt
Pemrograman Berorientsi Objek Pertemuan 15
Remainder Senin depan mulai UTS Praktikum
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
As’ad Djamalilleil Function (Fungsi) As’ad Djamalilleil
Algoritme dan Pemrograman
Method (Metode).
Algoritma dan Pemrograman I Teknik Informatika UNIKOM
IT234 ALGORITMA DAN STRUKTUR DATA
Generic Data Type Pertemuan 25
Matakuliah : M0074/PROGRAMMING II Tahun : 2005 Versi : 1/0
Teknik Pemrog. Terstuktur 2
Transcript presentasi:

1 Pertemuan 2 Function & Pointer Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0

2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : menjelaskan prinsip kerja function menjelaskan prinsip kerja pointer

3 Outline Materi Function Definitions Function Prototypes Recursion vs. Iteration Inline Functions Default Arguments Function Overloading Pointer Operator

4 Pendahuluan Functions membagi program ke dlm komponen program (modularisasi program) agar mudah di di-manage Modules: functions dan classes Programs dapat mengunakan modul baru dan “prepackaged” modules –Modul baru: programmer-defined functions, classes –Prepackaged: dari standard library (mis. Library Math) Functions dipanggil oleh function call –Berupa function name dan argument Analogy: Boss ke anak buah –Boss (calling function or caller) minta anak buahnya (called function) untuk melakukan task dan melaporkan (return) hasilnya.

5 Mendefinisikan Function Format function definition return-value-type function-name ( parameter-list ) { declarations and statements } –Return-value-type Data type hasil return ( void if nothing to returned) –Parameter list Deklarasi variable lokal yg dipisahkan oleh koma yg dikirim ke function Untuk mendapatkan informasi dari luar function If no arguments, use void or leave blank

6 Contoh Fungsi int square( int y ) { return y * y; } keyword return –Returns data, dan control ke function’s caller If no data to return, use return; atau void pada return value type

7 Function Prototypes Memberitahukan compiler tentang tipe argument dan return type function int square( int ); Detail definisi fungsi ditulis nanti Function prototype berisi –Function name –Parameters –Return type ( void if return nothing)

8 Function Prototypes Function Prototype harus sama dengan function definition –Function prototype double maximum( double, double, double ); –Function Definition double maximum( double x, double y, double z ) { … } Function signature –Adalah nama dan parameter function double maximum( double, double, double ); Function signature

9 Argument Coercion –Arguments dapat memaksa type tertentu Converting int (4) to double (4.0) cout << sqrt(4) –Aturan konversi Argument secara otomatis di-convert Mengubah double menjadi int dapat memotong data 3.4 menjadi 3 Mixed type menjadi highest type (promotion) Int * double  double

10 Header files Header files berisi –Function prototypes –Definisi data types dan constant Header files berakhiran.h –Programmer-defined header files #include “myheader.h” –Library header files #include

11 Recursion Recursive functions –Functions that call themselves –Hanya dapat menyelesaikan base case Jika tidak base case –Pecahkan problem ke dalam smaller problems –Buat function baru yg bekerja di smaller problem (recursive call/recursive step) Slowly converges towards base case Function makes call to itself inside the return statement

12 Contoh Rekursi: Faktorial n! = n * ( n – 1 ) * ( n – 2 ) * … * 1 –Recursive relationship  n! = n * ( n – 1 )! 5! = 5 * 4! 4! = 4 * 3!… –Base case  1! = 0! = 1 unsigned long factorial( unsigned long number ) { if ( number <= 1 ) // base case return 1; else return number * factorial( number - 1 ); }

13 Contoh Rekursi: Deret Fibonacci Deret Fibonacci fib(n) = fib(n-1) + fib(n-2) 0, 1, 1, 2, 3, 5, 8... C++ code for Fibonacci function long fibonacci( long n ) { if ( n == 0 || n == 1 ) // base case return n; else return fibonacci( n - 1 ) + fibonacci( n – 2 ); }

14 Recursion vs. Iteration Repetition –Iteration: explicit loop –Recursion: repeated function calls Termination –Iteration: loop condition fails –Recursion: base case recognized Both can have infinite loops

15 Inline Functions Inline functions –Keyword inline before function –Asks the compiler to copy code into program instead of making function call Reduce function-call overhead Compiler can ignore inline –Good for small and often-used functions Example inline double cube( const double s ) { return s * s * s; } –const tells compiler that function does not modify s

16 Call by value vs Call by reference Call by value –Copy of data passed to function –Changes to copy do not change original –Prevent unwanted side effects Call by reference –Function can directly access data –Changes affect original

17 Reference parameter –Alias for argument in function call Passes parameter by reference –Use & after data type in prototype void myFunction( int &data ) Read “ data is a reference to an int ” –Function call format the same However, original can now be changed

18 Default Arguments Function call with omitted parameters –If not enough parameters, rightmost go to their defaults –Default values Can be constants, global variables, or function calls Set defaults in function prototype int myFunction( int x = 1, int y = 2, int z = 3 ); –myFunction(3) x = 3, y and z get defaults (rightmost) –myFunction(3, 5) x = 3, y = 5 and z gets default

19 Function Overloading Function overloading –Functions with same name and different parameters –Should perform similar tasks I.e., function to square int s and function to square float s int square( int x) {return x * x;} float square(float x) { return x * x; } Overloaded functions dibedakan oleh signature –Based on name and parameter types (order matters) –Name mangling Encodes function identifier with parameters –Type-safe linkage Ensures proper overloaded function called

20 DEKLARASI POINTER Variabel Pointer –Contain memory addresses as values –Normally, variable contains specific value (direct reference) –Pointers contain address of variable that has specific value (indirect reference) Indirection –Referencing value through pointer Pointer declarations –* indicates variable is pointer int *myPtr; declares pointer to int, pointer of type int * –Multiple pointers require multiple asterisks int *myPtr1, *myPtr2; –Can declare pointers to any data type Pointer initialization –Initialized to 0, NULL, or address 0 or NULL points to nothing

21 POINTER OPERATORS & (address operator) –Returns memory address of its operand –Example int y = 5; int *yPtr; yPtr = &y; // yPtr gets address of y –yPtr “points to” y yPtr y 5 yptr y 5 address of y is value of yptr

22 POINTER OPERATORS * (indirection/dereferencing operator) –Returns synonym for object its pointer operand points to –*yPtr returns y (because yPtr points to y ). –dereferenced pointer is lvalue *yptr = 9; // assigns 9 to y * and & are inverses of each other

23 Tugas 2 Tugas 2A: Mahasiswa diminta membuat contoh program dengan menggunakan passing argumen by value & by reference Tugas 2B: Mahasiswa membuat function overloading dengan 4 function prototype yang berbeda Tugas 2C: Mahasiswa membuat analisis dari satu contoh program pointer