Pemrograman Berbasis Objek
Object Oriented Programming in C++ (4 th Ed) (Robert Lafore, SAMS)
Computer hanya mengerti instruksi dalam bahasa mesin Manusia dalam memberikan instruksi ke Computer lebih mudah menggunakan Bahasa Natural (Human Language) atau High Level Language Problem Layer Instruction mempengaruhi tingkatan akses computer memenuhi setiap instruksi
Agar Computer mengerti Instruksi maka dibutuhkan Translator (Compiler/Interpreter) Compiler akan melakukan proses penerjemahan dari Source Code menjadi Object Code dan Target Code Binary Code Byte Code
Pembuatan Aplikasi menggunakan paradigma Object Oriented seiring dengan perkembangan paradigma Object Oriented Analysis and Design (Unified Modelling Language) Dahulu (era 60/70-an) pemrograman menggunakan paradigma Top-Down atau Structure Programming (Pemrograman Terstruktur) seiring dengan paradigma Analisa Sistem Informasi menggunakan pendekatan (Data Flow Diagram, System Flow dsb)
1967 – Martin Richard mengembangan Bahasa Pemrograman BCPL 1970 – Ken Thomson (Bell Lab) mengembangkan Bahasa B dari Bahasa BCPL utk meng-create Unix 1972 – Dennis Ritchie (Bell Lab) mengembangkan Bahasa C dari Bahasa B utk di implementasikan pada Komputer DEC PDP-11 C Hardware independent (Portable programs), Fleksibel (Machine Accessible Program), Universal 1989 – Standarisasi C oleh ANSI & ISO (ANSI/ISO 9899:1990)
1980 – Bjarne Stroustrup (Bell Lab) mengembangkan Bahasa C++ dari Bahasa C 1983 – C++ dipublikasikan oleh Bell Lab C++ C With Classes (Kemampuan Object Oriented Programming) OOP membangun software dengan cepat, tepat & ekonomis (produktif), mempermudah programmer menulis & memodifikasi program Objects Reuseable & Extenable
C++ merupakan turunan dari bahasa C. C++ merupakan superset dari Bahasa C
Abstraction Process (Object+ Class) Light lt = new Light(); lt.on();
Object adalah penyusun dasar (basic building block) dari OOP Object diambil dari real world pada bidang aplikasinya (application domain) Object dalam mail order system: companies, customer, order, product & departments Object dalam library system: members, books, loans, reservation & cancellations Object dalam O-O system dapat berupa benda (customers, products, members, book ), konsep(order, loan, reservation, cancellation ) atau organisasi (companies, departments ) Object dalam implementasi komputer: GUI windows, files, atau linked list
Light lt = new Light(); lt.on(); Real world objects mempunyai data properties / attributes. Dalam mail orders system, object customer punya nama, No_telpon, alamat utk tujuan invoicing. Real world object juga mempunyai karakteristik function behavior. Dalam mail order system customer dapat mengubah No_telpon dan alamatnya.
Light lt = new Light(); lt.on(); Real world objects mempunyai data properties / attributes. Dalam mail orders system, object customer punya nama, No_telpon, alamat utk tujuan invoicing. Real world object juga mempunyai karakteristik function behavior. Dalam mail order system customer dapat mengubah No_telpon dan alamatnya.
Light lt = new Light(); lt.on(); Object pemaketan data dan metode untuk manipulasi data Class Template atau factory untuk membuat objek Attribute bagian dari class atau object berupa Properties/Data item Behaviour Service / Operation / Method / Procedure / Function defined as part of a class or object as implementation
Light lt = new Light(); lt.on(); Message Request sent to an object to execute its method Encapsulation Packaging data and operation into an object/class Data hiding Making the internal details of an object invisible to other object Inheritance Mechanism for defining a new class in terms of an existing class Polymorphism The ability to hide different implementation behind the common interface
Light lt = new Light(); lt.on(); UML – Model object-oriented systems and aid design ▪ Flexible ▪ Extendable ▪ Independent of many OOAD processes ▪ One standard set of notations 2001: Object Management Group (OMG) Released UML version 1.4 Complex, feature-rich graphical language ▪ Activity Diagram, Class Diagram, Collaboration Diagram, Componen diagram, Deployment diagram, Object Diagram, Package Diagram, Sequence Diagram, State Diagram, State Diagram, Use Case Diagram
Light lt = new Light(); lt.on(); Class Diagram Association Multiplicity Generalization Agregation Composite
Ada banyak IDE/Compilers untuk bahasa C++ Old Compilers -- Turbo C++ dari Borland New Compilers 1. Microsoft Visual C++ 2. Borland C++ Builder 3. New & Free Code::Blocks ( Light lt = new Light(); lt.on();
Download code::blocks dari website Download file : codeblocks-13.12mingw-setup Jalankan file setup, ikuti proses setup Light lt = new Light(); lt.on();
Compile (CTRL+F9), Run (Ctrl+F10) Light lt = new Light(); lt.on();
//Contoh C++ Programming #include int main() { int bushels; float dollars, rate; cout << "How many dollars did you get? $"; cin >> dollars; cout << "For how many bushels? "; cin >> bushels; rate = dollars / bushels; cout.precision(2); cout << "You have received $" << rate << " for each bushel.\n"; return 0; } Light lt = new Light(); lt.on(); Preprocessor Directive Function Prototype Function main() Argument & Return Function
Light lt = new Light(); lt.on(); Main Program gunakan main ( ) contoh int main () { return ; }
Light lt = new Light(); lt.on(); Preprocessor Directive gunakan #include namaheaderfile contoh #include #include Comment in Source Code gunakan //comment-text
Light lt = new Light(); lt.on(); Urutan Arithmetic Operator ( ), *, /, %, +, - Y = 2 * 5 * * = 10 * * = * = = = 72 Relational Operator , = Equality Operator ==, !=
Light lt = new Light(); lt.on(); Aturan penamaan Variable Diawali huruf atau garis bawah, bukan angka Case Sensitive Bukan keyword Deklarasi Konstanta Macro Based Constant ▪ #define pi 3.14 ▪ #define kuadrat(x) (x*x) Named Constant (Formal) ▪ Const float pi = 3.14
Aturan penamaan Variable Diawali huruf atau garis bawah, bukan angka Case Sensitive Bukan keyword Deklarasi Konstanta Macro Based Constant ▪ #define pi 3.14 ▪ #define kuadrat(x) (x*x) Named Constant (Formal) ▪ Const float pi = 3.14
Light lt = new Light(); lt.on(); Escape sequences can be used as separate characters or embedded in string constants. Escape SequencesCharacter \aBunyi Bell \bBackspace \fForm Feed \nBaris Baru \rReturn \tTab
// ex1.cpp: A First Glance // from Hands-on C++ #include main() { cout << "Frankly, my dear...\n"; cout << "C++ is a better C.\n"; return 0; } Light lt = new Light(); lt.on();
Thankyou