MODUL VI OBJECT ORIENTED PROGRAMMING (OOP)

dokumen-dokumen yang mirip
Paradigma Pemrograman Berorientasi Objek

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Pertemuan 11 Object Oriented Program

OBJECT ORIENTED PROGRAMMINGS

STRUKTUR DENGAN ARRAY DAN FUNCTION

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

Pewarisan atau Inheritance

PRAKTIKUM I Class dan Obyek

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

Inheritance dan Polimorfisme

Michael Lionardi

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

INHERITANCE. Oleh: Rasim ILKOM-FPMIPA-UPI

Modul Bahasa Pemrograman 1

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom.

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Konsep Pemrograman Berbasis Obyek

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

KONSEP OBJEK ORIENTASI PROGRAM

Inheritance dan Kata Kunci static

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

TUGAS RESUME C++ Dosen pembimbing : Taufiqurrahman. Di susun Oleh : Ahmad Faisal Akbar ( ) Ahmad Tarjianto ( )

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

BAB VI OBYEK DAN KELAS

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Inheritance (Pewarisan) Pengertian dasar inheritance

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance)

Konsep Dasar Pemrograman Dan Pengenalan C++

KELAS DAN OBJEK KELAS

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Modul II Object Oriented Programming

Pemrograman Berorientasi Objek Danu Wira Pangestu

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

Struktur Bahasa C dan C++

Bahasa Pemrograman Sejarah singkat C++ Struktur program C++ Yoannita

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

POLYMORPHISM. Oleh: Rasim Ilkom- FPMIPA Universitas Pendidikan Indonesia

Sebagai contoh misalnya akan dibuat kelas turunan Silinder dari kelas dasar Lingkaran, maka dapat dituliskan :

Kurikulum Qt. { Basic OOP } Chapter 6. Class dan Object

Bahasa Pemrograman 2.

MODUL 1 PENGENALAN ENVIROMENT C++

PENGENALAN BAHASA C DAN C++

MODUL 1 PENGENALAN OOP

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

FENOMENA ALAM DI DALAM DIMENSI PEMBUATAN PROGRAM DENGAN MENGGUNAKAN OBJECT ORIENTED PROGRAMMING

DEVAL GUSRION, S.KOM, M.KOM MATAKULIAH BAHASA PEMOGRAMAN JAVA LANJUTAN III

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

MODUL PRAKTIKUM I PEMOGRAMAN BERORIENTASI OBJEK DENGAN PHP

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

Object Oriented Programming LOGO

Pengenalan Array. Array Satu Dimensi

Konsep Dasar Pemrograman Berorientasi Objek

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

Pemrograman Berbasis Objek Inheritance

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

Mengenal Object Oriented Programming (OOP)

SUMBER BELAJAR PENUNJANG PLPG

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

PEWARISAN D E W I S A R T I K A, M. K O M

PENGENALAN JAVA (2)

Algoritma Alg dan Pemr P ograman emr 1 C++ Class & Object

Notasi Algoritma Separator Special Character. Dasar Pemrograman. Yoannita, S.Kom.

MINGGU V : PBO (PEWARISAN)

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

PEMROGRAMAN BERORIENTASI OBJEK

ENKAPSULASI Data Hiding

JOBSHEET 8 INHERITANCE (PEWARISAN)

Pernyataan FOR Pernyataan WHILE Pernyataan REPEAT. Dewi Sartika,M.Kom

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

CLASS. Bentuk Umum : class nama_class { Data elemen_class ; ... Public : Data elemen_class ; Data elemen_class ; } nama_object; BENTUK

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

subclass class manapun private default protected public package yang sama

Inheritance dan Polimorfisme

BEKERJA DENGAN JAVA CLASS LIBRARY

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

Inheritance. Topik 5/17/2013

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method

Kurikulum Qt. Chapter 4 Function. Fungsi

Modul 2 Object Oriented Programming (OOP) I

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

Keyword this untuk memanggil private String pengarang; private String judul;

7 Inheritance. + berjalan() + berhenti PENDAHULUAN

2 Class dan Object (1)

INTERAKSI ANTAR OBJECT

Transkripsi:

MODUL VI OBJECT ORIENTED PROGRAMMING (OOP) I. TUJUAN 1. Mahasiswa akan dapat membandingkan pemrograman terstruktur dengan pemrograman berorientasi objek dengan membuat program dalam bahasa C++ 2. Mahasiswa akan dapat memahami konsep pemrograman PBO dan mengimplementasikannya kedalam bahasa C++ II. DASAR TEORI 1. Pengenalan OOP Apa itu OOP? Merupakan teknik membuat suatu program berdasarkan objek dan apa yang bisa dilakukan objek tersebut. Object-oriented program terdiri dari objek-objek yang berinteraksi satu sama lain untuk menyelesaikan sebuah tugas. Kenapa menggunakan OOP? Kode-kode di-breakdown agar lebih mudah di-manage. Breakdown berdasarkan objek-objek yang ada pada program tersebut. Dianjurkan diimplementasikan untuk program dengan berbagai ukuran karena lebih mudah untuk men-debug. Pemrograman procedural mengatur program dalam barisan-barisan linier yang bekerja dari atas ke bawah. Kumpulan tahapan yang dijalankan setelah yang lain berjalan. Baik untuk program kecil yang berisi sedikit code. Tidak dianjurkan diimplementasikan pada program berukuran besar, karena susah untk dimanage dan di-debug OOP mempunyai karakteristik sebagai berikut : a. Abstraksi Menemukan hal-hal yang penting pada suatu objek dan mengabaikan hal-hal yang sifatnya insidental. b. Enkapsulasi Pengkapsulan adalah proses pemaketan data objek bersama method-methodnya c. Pewarisan (Inheritance) Proses penciptaan kelas baru (subclass/kelas turunan) dengan mewarisi karakteristik dari kelas yang udah ada (superclass/kelas induk), ditambah karakteristik unik kelas baru itu. d. Reuseability Reuseability adalah kemampuan untuk menggunakan kembali kelas yang sudah ada. e. Polymorphism Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. VI - 1

2. Kelas Suatu kelas (class) merupakan suatu metode logis untuk mengorganisasikan data dan fungsi didalam struktur yang sama. Objek merupakan penerjemahan dari subgroup-subgoup sehingga menjadi unit-unit. Suatu objek dalam bahasa C++ merupakan suatu variabel yang didefinisikan sendiri oleh pemrogram, yang berisi data dan kode program untuk memanipulasi data. Deklarasi Kelas (Class) : class nama_class Data elemen_class private; Data elemen_class private; Public : Data elemen_class public; Data elemen_class public; nama_object; Contoh Deklarasi : class Motor //Nama Class Public : //Tipe anggota data bersifat public, default private char merk[50]; char jenis[35]; //Nama anggota data float harga; int stock; Motor Sport; //Pendefinisian object a. Konstruktor Konstruktor merupakan suatu fungsi dari anggota suatu kelas yang mempunyai nama yang sama dengan kelas tempat fungsi itu berada. Konstruktor ini digunakan untuk mengalokasikan ruang untuk suatu objek dan memberikan nilai awal. b. Destruktor Destruktor merupakan suatu fungsi anggota yang dijalankan secara otomatis ketika suatu objek akan terbebas dari memori karena lingkup keberadaannya telah menyelesaikan tugasnya. Destruktor harus mempunyai nama yang sama dengan kelas dan diawali dengan karakter tilde (~) atau karakter tak terhingga VI - 2

3. Inheritance (Pewarisan) Konsep yang mendasari Inheritance adalah Generalization. Generalization digambarkan sebagai hubungan dari subclass ke superclass, sedangkan Inheritance adalah proses pewarisan data dan behaviour (method) dari superclass ke subclass. Contoh : Hewan adalah generalization dari Singa dan Elang. Sebaliknya, Singa dan Elang adalah inherits dari Hewan. Superclass Subclass Gambar VI.1. Pewarisan Hewan Kendaraan Bermotor adalah generalization dari Mobil, Truk dan Sepeda Motor. Sebaliknya, Mobil, Truk dan Sepeda Motor adalah inherits dari Kendaraan Bermotor. Kendaraan Bermotor #Model #Thn Pembuatan +Bergerak() Superclass Subclass Mobi -penumpang Truk -dayaangkut +memuatbarang() +membongkarmuatan() Sepeda Motor Gambar VI.2. Pewarisan Kendaraan Bermotor Akses pada inheritance ada tiga macam, yaitu : a. Public Mengijinkan kelas dan sub kelas dari package manapun untuk mengaksesnya. b. Private Membatasi akses hanya untuk kelas itu sendiri dan objek yang diinstans darinya. c. Protected Akses hanya diberikan kepada kelas itu sendiri dan sub kelas yang diturunkan darinya. VI - 3

4. Polimorphisme Polimorphisme berasal dari bahasa Yunani yang berarti banyak bentuk. Konsep ini memungkinkan objek-objek yang berbeda memberikan respon terhadap suatu pesan yang sama dan sesuai dengan sifat masing-masing. Dengan kemampuan seperti ini, jenis akses tertentu dapat diterapkan dengan berbagai cara oleh objek-objek yang mempunyai tipe berbeda dan mempunyai banyak bentuk. Fungsi virtual merupakan dasar dari Polimorphisme. Fungsi Virtual / Virtual Function Polimorphisme didalam bahasa C++ bekerja hanya dengan pointer-pointer dan reference dengan hanya mendeklarasikan method sebagai virtual. Aturan fungsi virtual adalah sebagai berikut : Virtual fungsi harus anggota kelas Anggota kelas bukan anggota yang bersifat statis Anggota kelas dapat diakses dengan pointer objek Virtual Function tidak bisa memiliki virtual constructor, akan tetapi bisa memiliki virtual destructor Gambar VI.3. Polimorphisme Bentuk Gambar VI.4. Polimorphisme Print VI - 4

III. GUIDED 1. Pemrograman Terstruktur #include <iostream.h> #include <conio.h> void helloworld(int jmlh_looping)//contoh Prosedur for(int i=0;i<jmlh_looping;i++) cout<<i+1<<". Hello World..."<<endl; int tambah(int bil1,int bil2)//contoh Fungsi return(bil1+bil2); int bil1=5,bil2=2; int jmlh_looping=5; cout<<"-display Hello World-"<<endl; helloworld(jmlh_looping);//pemanggilan Prosedur cout<<endl<<"-pemanggilan Fungsi Tambah-"<<endl; //Pemanggilan Fungsi cout<<"hasil Operasi Tambah : "<<tambah(bil1, bil2); return 0; 2. Pemrograman OOP #include <iostream> #include <conio.h> class DemoObjectOriented public: void helloworld(int jmlh_looping); int tambah(int bil1, int bil2); ; void DemoObjectOriented::helloWorld(int jmlh_looping) for(int i=0;i<jmlh_looping;i++) cout<<i+1<<". Hello World..."<<endl; int DemoObjectOriented::tambah(int bil1, int bil2) return(bil1+bil2); int bil1=5, bil2=2; int jmlh_looping=5; VI - 5

DemoObjectOriented Demo; //Pembentukan Objek cout<<"-display Hello World-"<<endl; Demo.helloWorld(jmlh_looping);//Pemanggilan Prosedur cout<<endl<<"-pemanggilan Fungsi Tambah-"<<endl; //Pemanggilan Fungsi cout<<"hasil Operasi Tambah : "<<Demo.tambah(bil1,bil2); return 0; 3. Inheritance (Pewarisan) #include<iostream.h> #include<conio.h> class Point // Kelas Point sebagai kelas induk public: Point(float = 0.0, float = 0.0); //konstruktor default void cetakpoint(); //akan di-redefinisi di kelas anak ~Point(); //destruktor protected: float x,y; ; Point::Point(float a, float b) cout<< "Konstruktor Point dijalankan "<<endl; x = a; y = b; void Point::cetakPoint() cout<< "Point : "<<'['<<x<<", "<<y<<']'<<endl; Point::~Point() cout<< "Destruktor Point dijalankan"<<endl; // Kelas Circle : Merupakan kelas turunan dari kelas Point class Circle : public Point public: Circle(float r=0.0,float x=0.0,float y = 0.0); //konstruktor void cetakpoint(); //redefinisi fungsi kelas induk ~Circle(); //destruktor private: float radius; ; Circle::Circle(float r,float a,float b): Point(a, b) // memanggil konstruktor kelas induk dan inisialisasi data member warisan cout<< "Konstruktor Circle dijalankan"<<endl; radius = r; VI - 6

void Circle::cetakPoint() Point::cetakPoint(); cout<< "Circle : radiusnya "<<radius<<endl; Circle::~Circle() //destruktor cout<< "Destruktor Circle dijalankan "<<endl; Point p(1.1, 2.2); //Pembentukan Objek Point Circle circle1(6.5, 8.2, 1.9); //Pembentukan Objek Circle circle1.cetakpoint(); //Pemanggilan Method Circle circle2(10, 5, 5); circle2.cetakpoint(); getch(); 4. Polimorphisme #include <iostream.h> #include <conio.h> class Makhluk public : //deklarasi fungsi virtual virtual void keterangan() cout<<"keterangan() pada kelas Makhluk"<<endl; ; class Mamalia:public Makhluk public: void keterangan() cout<<"keterangan() pada kelas Mamalia"<<endl; ; class Sapi:public Mamalia void keterangan() cout<<"keterangan() pada kelas Sapi"<<endl; ; //definisi objek mamalia Mamalia mamalia; //definisi objek sapi Sapi sapi; VI - 7

//definisi pointer ke objek berkelas Makhluk Makhluk *binatang; //menunjuk ke objek mamalia binatang=&mamalia; binatang->keterangan(); cout<<"---------------------"<<endl; //menunjuk ke objek sapi binatang=&sapi; binatang->keterangan(); getch(); IV. UNGUIDED 1. Buatlah program dalam bahasa C++ dimana anda diminta untuk mengimplementasikan kasus operasi terhadap suatu Titik dalam konsep PBO. Buatlah kelas Titik dengan ketentuan sebagai berikut : a. Memiliki atribut x dan y b. Memiliki default konstruktor c. Memiliki method inisialisasititik (int x, int y), untuk mengeset nilai Titik sesuai masukan dari user d. Memilki method tampiltitik(), untuk menampilkan nilai Titik e. Memilki method perkalihanskalar(int skalar), untuk mengalikan nilai Titik dengan suatu nilai skalar sesuai masukan dari user (x dan y dikalikan dengan nilai skalar ) f. Memiliki metod pencerminansumbux(), untuk melalukan pencerminan Titik terhadap sumbu X (nilai y menjadi negatif) g. Memiliki metod pencerminansumbuy(), untuk melalukan pencerminan Titik terhadap sumbu Y (nilai x menjadi negatif) h. Memiliki method int jarak(titik t2), untuk mencari jarak antara 2 buah titik, dengan rumus : jarak = ( ) + ( ) 2. Sebuah perusahaan Asuransi memiliki banyak pegawai antara lain Sales, Satpam dan Manajer dengan spesifikasi sebagai berikut : a. Setiap pegawai memiliki NIP, nama, alamat, dan tahun masuk kerja. b. Data satpam meliputi NIP, nama, alamat, gaji pokok dan jam lembur. c. Bonus diberikan bagi Satpam yang bersedia untuk lembur dengan perhitungan Rp.10.000/jam lembur. d. Data Sales meliputi NIP, nama, alamat, gaji pokok dan jumlah pelanggan yang berhasil direkrut. e. Komisi diberikan dengan perhitungan Rp.50.000 untuk setiap pelanggan yang berhasil direkrut. f. Data Manajer meliputi nama, alamat, gaji pokok,divisi dan tunjangan jabatan g. Tunjangan jabatan bagi Manajer diberikan jika telah bekerja selama 3 tahun sebesar 5% dari gaji pokok dan jika telah bekerja selama lebih dari 5 tahun sebesar 10% dari gaji pokok. VI - 8

Buatlah sebuah Kelas Pegawai yang menjadi induk Kelas Satpam, Kelas Sales dan Kelas Manajer. Lalu implementasikan konsep inheritance untuk menghitung gaji akhir pegawai melalui method HitungGajiAkhir() dan menampilkan informasi data pegawai perusahaan Asuransi tersebut pada tahun 2016. Ketentuan: Program diimplementasikan dalam bahasa C++ Data Satpam, Sales dan Manajer diinputkan melalui konstruktornya. Setelah itu semua data pegawai ditampilkan. Gaji Akhir = GajiPokok + Bonus atau Komisi atau Tunjangan Main Program dalam Bahasa C++ Satpam a; Sales b; ManajerCabang c; a.setsatpam("adi","0042",2000,"jl. Itik 15",300000,5); b.setsales("budi","0185",2006,"jl. Ayam 78",500000,10); c.setmanajercabang("udin","0005",1999,"jl.angsa56","keuangan",1500 000); cout<<"====display DATA KARYAWAN===="<<endl; a.cetaksatpam(); b.cetaksales(); c.cetakmanajercabang(); getch(); 3. Dalam sebuah perusahaan, terdapat banyak employess, diantaranya Salaried Employee, Commission Employee, dan Project Planner. a. Setiap Employee tersebut memiliki fungsi untuk menghitung gaji dan cetak informasi b. Salaried Employee memiliki atribut nama, nip, upah mingguan c. Commission Employee memiliki atribut nama, nip, gaji pokok, komisi dan total penjualan d. Project Planner memiliki atribut nama, nip, gaji pokok, komisi dan total hasil proyek Setiap kelas harus memiliki konstruktor, fungsi untuk menghitung gaji setiap pegawai, dan fungsi untuk menampilkan informasi yang dimiliki setiap jenis employee. Fungsi hitung gajinya adalah : Salaried Employee : gaji = upah mingguan Commission Employee : gaji = gaji pokok + (komisi * total penjualan) Project Planner : gaji = gaji pokok + (komisi * total hasil proyek) - pajak. Pajak dihitung 5 % dari gaji pokok. Buatlah program tersebut dalam bahasa C++ menggunakan konsep polymorphism. Setiap kelas dibuat dalam file yang berbeda VI - 9