1 Pertemuan 12 Template Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek (Project)
Advertisements

-PERTEMUAN 5,6 – LARIK (ARRAY)
Fungsi Friend Dalam bahasa C++ kita dapat membuat suatu fungsi yang berada di luar kelas (class) dan dapat meng-ak-ses bagian private suatu kelas. Fungsi.
STRUKTUR DATA (5) Pointer dan Function
Algoritma dan Pemrograman Modular Programming (Bagian 1)
Template.
Kompetensi : -Mahasiswa mampu menggunakan rutin yang ada dalam bahasa C++ menggunakan STL - Memahami “list” & aplikasinya #8 17 MEI 2013 (Kompetensi.
Java array.
Overriding, Overloading, Polymorphism
ARRAY Dr. Lily Wulandari.
Overriding, Overloading, Polymorphism
Pemrograman Berbasis Obyek Oleh Tita Karlita
Review-Dasar Pemrograman Komputer
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.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Array of class. Array Class. Pointer of class. Dynamic Memory Management.
STRUKTUR DATA Pointer dan Function
Algoritma dan Struktur Data
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.
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.
Fungsi Fungsi (Sub Program) :
1 Pertemuan 5 STREAM INPUT/OUPUT Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
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.
Struktur Data List Linear : Linked List (Single Linkedlist)
1 Pertemuan 17 Polymorphism Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
1 Pertemuan 9 Inheritance Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
1 Pertemuan 2 Function & Pointer Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Teknik Pemrog. Terstruktur 2
PEMROGRAMAN SISTEM PERNYATAAN DASAR FUNGSI Pertemuan VI
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.
Algoritma & Pemrograman 1
Fungsi, Array dan String
Pertemuan 6 PEWARISAN AND POLYMORPHISM
1 Pertemuan 18 Template Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Pertemuan 8 Stack dengan Array
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 8 Array & Pointer of Class 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.
// Contoh program c++ dengan fungsi template
1 Pertemuan 10 Pemrograman Berorientasi Objek Matakuliah: >/ > Tahun: > Versi: >
JAVA ARRAY.
Pertemuan 10 Inheritance Lanjutan
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Polymorphism Pertemuan 23-24
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
Constructor dan Destructor Pertemuan 17
Inheritance Pertemuan 21
Operator overloading.
Class dan Objek Lanjutan Pertemuan 18
Pertemuan 4 Modularitas
Pertemuan 9 Pemrograman Berbasikan Objek
Sumber : repository.binus.ac.id/content/T0454/T ppt
Pemrograman Berorientsi Objek Pertemuan 15
PBO Lanjutan Membuat Kelas.
POLYMORPHISM.
Generic Data Type Pertemuan 25
Matakuliah : M0074/PROGRAMMING II Tahun : 2005 Versi : 1/0
Materi 9 Pembahasan CLASS Dalam C++
Pemrograman Berorientasi Objek
Teknik Pemrog. Terstruktur 2
Transcript presentasi:

1 Pertemuan 12 Template Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0

2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menghasilkan Program C++ dengan menggunakan Template

3 Outline Materi Definisi Template & STL Function template Class template

4 Definisi Template & STL Template atau "generic" / “tipe data ber- paramete" membuat function / class yang berhubungan. Untuk operasi fungsi yang sama namun beda tipe argumen Berbeda dengan overloading yg menulis kembali code Template digunakan jika kita menulis banyak code yang identik.

5 Definisi Template & STL Pengembangan baru dlm C++ adalah adopsi Standard Template Library (STL). Kebanyakan compiler vendors menawarkan STL sbg bagian dari compiler mereka. STL adalah library berbasis template berisi class-calss seperti vectors, lists, queues, dan stacks. STL juga berisi algoritma umum seperti sorting dan searching. Tujuan STL adalah memberikan alternatif utk “reinventing the wheel” utk kebutuhan umum. STL di-test dan di-debug, dengan kinerja tinggi. Hal penting adalah STL mempunyai kemampuan reusable; jika kita sudah mengerti cara pakai sebuah STL container, kita dpt menggunakannnya di berbagai aplikasi program kitatanpa hrs membuat baru.

6 Function Template Misal: function max(x,y) me-return bilangan terbesar dari 2 arguments x dan y. X dan y dapat ber- type apa saja tergantung bilangannya. Karena C++ merupakan jenis bahasa pemrograman yang ketat dalam hal tipe data, maka diperlukan deklarasi tipe parameter x dan y saat compile time. Jika tanpa menggunakan template, harus dibuat banyak versi overloaded fungsi max() (sebanyak data type yg di support), begitu juga code untuk tiap versi-nya.

7 Function Template Dengan menggunakan template, dapat di definisikan sebuah bentuk fungsi yg berhubungan dg overloaded functions dg membiarkan tipe data parameter: Tipe data diwakili oleh template argument. template T max(T x, T y) { return (x > y) ? x : y; };

8 Function Template Pada saat template dijalankan, compiler men-generate function yg sesuai dg tipe data fungsi pemanggil-nya (calling fuction): Semua tipe data (tidak hanya class) dapat dipakai. Compiler akan menangani calling operator >( ) yang sesuai, sehingga kita dapat menggunakan fungsi max dengan tipe argument apapun. int i; Myclass a, b; int j = max(i,0); // tipe argument: integers Myclass m = max(a,b); // tipe arguments: Myclass

9 Class Templates Disebut juga generic class atau class generator Untuk men-definisikan model class. Generic container classes –Kita dpt memiliki tipe data integer atau lainnya, dg basic operations yg sama (insert, delete, index, etc.) –Hanya dengan men-definisikan struktur class dengan generic operation, dan system akan men-generate definisi class on the fly.

10 Program – Class Templates #1 template class List { T *v; int size; public: List(int); T& operator[](int i) {return v[i];} }; // definisi dengan syntax khusus: template List ::List(int n) { v = new T[n]; size = n; } Void main() { List x(10); List y(20); x[3] = 7; y[3] = m; } Int value Object Of Myclass

11 Program – Class Templates #2 #include template class MyTemp { T1 t1; T2 t2; public: MyTemp(T1 tt1, T2 tt2) { t1 = tt1; t2 = tt2; } void display() { cout << t1 << ' ' << t2 << '\n'; } }; Void main() { int a = 123; double b = ; MyTemp mt(a, b); mt.display(); }

12 Kasus Array dengan Template Bug pada program ini adalah akses ke elemen array out of range (walaupun posisi memory yg terisi kemungkinan tepat di sebelahnya) void main() { int array[10]; for (int i = 0; i <= 10; i++) array[i] = 123; }

13 Kasus Array dengan Template  Template dapat digunakan untuk menambah batas array. #include Template class Array { T elemen[b]; public: T& operator[] (int sub) { assert(sub >=0 && sub < b); return elemen[sub]; } }; assert () adl sebuah function dg return True/False utk meng-evaluate sebuah ekspresi

14 Latihan – Program dg Template void main() { const int aCount = 5; const int bCount = 7; const int cCount = 6; int a [aCount] = { 1, 2, 3, 4, 5 }; double b[bCount] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 }; char c[cCount] = "HELLO"; cout << "Array a contains:" << endl; printArray( a, aCount ); cout << "Array b contains:" << endl; printArray( b, bCount ); cout << "Array c contains:" << endl; printArray( c, cCount ); } Buatlah deklarasi class template “Array”. Constructor meng- create array dgn new seperti pada main function disamping Output: Array a contains: Array b contains: Array c contains: H E L L O

15 Tugas 12 Tugas 12A: Mahasiswa membuat ringkasan dari artikel tentang Template dalam C++ Tugas 12B: Mahasiswa mencari Output Program dengan Template Tugas 12C: Mahasiswa membuat program dengan function template & class templete