Pemrograman Berorientasi Obyek (C++)
description
Transcript of Pemrograman Berorientasi Obyek (C++)
![Page 1: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/1.jpg)
Pemrograman Berorientasi Obyek (C++)
Departemen Ilmu Komputer FMIPA IPB 2013
![Page 2: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/2.jpg)
C++ C diambil sebagai landasan dari C++ Mendukung Pemrograman Berorientasi Obyek
(PBO) Bersifat Reusability (kemudahan untuk
digunakan kembali pada program-program lain) Ditulis dengan ektensi .CPP .CPP + .H → dikompile .OBJ Dengan file obyek lain + .LIB → dikaitkan
menjadi satu oleh linker → file executable (.EXE)
![Page 3: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/3.jpg)
Pemrograman Berorientasi Obyek
Data/Atribut
Fungsi Anggota/Method
Fungsi Anggota/Method
![Page 4: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/4.jpg)
Objek dan Kelas Dalam PBO → obyek adalah anggota dari kelas
(class) Contoh:
class : Penyanyi Jazz obyek : Al Jarreau, Salena Jones, Michael Frank
class : Mahasiswaobjek : G64076001, G64076010, G64076030
![Page 5: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/5.jpg)
Karakteristik PBO Tiga karakteristik utama PBO:1. Encapsulation :
pengemasan data dan fungsi dalam wadah bernama obyek. Data memiliki kedudukan yang sama dengan fungsi.
2. Inheritancesifat dalam bahasa berorientasi obyek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain
3. Polymorphismsesuatu yang sama dapat memiliki berbagai bentuk dan perilaku yang berbeda
![Page 6: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/6.jpg)
Kompiler C++ Microsoft Corporation :
Microsoft C/C++ dan Visual C++
Borland International : Turbo C++ dan Borland C++
![Page 7: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/7.jpg)
Tipe dataTipe Data Ukuran Memori Jangkauan Nilai
Char 1 byte -128 hingga +127
Int 2 byte -32768 hingga +32767
Long 4 byte -2.147.438.648 hingga +2.147.438.647
Float 4 byte 3.4x10^-38 hingga 3.4x10^+38
Double 8 byte 1.7x10^-308 hingga 1.7x10^+308
Long double
10 byte 3.4x10^-4932 hingga 1.1x10^4932
![Page 8: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/8.jpg)
#include <iostream>using namespace std;int main(){
char kar; kar = 'A';cout << "Isi Kar = " << kar << "\n";
int bil; bil = 32763;cout << "Isi Bil = " << bil << "\n";
long jum_penduduk; jum_penduduk = 170123456;cout << "Jumlah Penduduk = " << jum_penduduk << "\n";
float flo; flo = 1.23e2;cout << "Isi Flo = " << flo << "\n";
int jumlah = 10;cout << "Isi Jumlah = " << jumlah << "\n";
system("PAUSE");return 0;
}
![Page 9: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/9.jpg)
Class
Departemen Ilmu Komputer FMIPA IPB2013
![Page 10: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/10.jpg)
Struktur dan Kelas Kelas merupakan struktur data dari obyek Struktur (struct) memiliki persamaan dengan kelas (class). Contoh struktur (deklarasi struktur)
struct Buku{
char judul[35];char pengarang[25];int jumlah;
};
Contoh class (deklarasi kelas) Format :class Buku{
char judul[35];char pengarang[25];int jumlah;
}
![Page 11: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/11.jpg)
Mendefinisikan/create suatu variable (struct) atau obyek (class)Buku novel;
Kebanyakan pemrograman C++ menggunakan nama kelas dengan awalan huruf kapital
![Page 12: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/12.jpg)
Contoh Struct
![Page 13: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/13.jpg)
Contoh Class
![Page 14: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/14.jpg)
Access Specifier (Public) public: digunakan agar baris coding yang ada di bawahnya dapat
diakses dari luar kelas
class Buku{
char judul[35];…
}
class Buku
{
public :
char judul[35];
…
}
Public menyebabkan anggota yang ada di bawahnya dikenal di luar kelas Buku
Secara bawaan hanya dikenal oleh kelas buku (identik dengan private)
![Page 15: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/15.jpg)
Contoh Class - Public
![Page 16: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/16.jpg)
Access Specifier (Private) private: digunakan pada kelas untuk memproteksi anggota-
anggota tertentu pada kelas, agar tidak dapat diakses di luar kelas secara langsung
Pada contoh diatas public: → private:
Kata kunci private dapat ditiadakan karena secara default dari kelas adalah private
Private pada kelas dapat diibaratkan dengan suatu klub yang hanya diperuntukkan bagi anggotanya saja.
![Page 17: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/17.jpg)
Contoh Class - Private
![Page 18: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/18.jpg)
OOP Pada pemrograman berorientasi obyek, data dan fungsi harus
dirancang secara bersamaan Misal, terdapat data:
Judul buku Nama pengarang Jumlah buku
pada awal perancangan harus dipikirkan fungsi-fungsi dasar yang digunakan untuk mengakses ketiga data tersebut. Fungsi-fungsi tersebut dapat berupa
Mengisikan data Manampilkan data Manipulasi/Update data
![Page 19: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/19.jpg)
Next !
![Page 20: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/20.jpg)
![Page 21: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/21.jpg)
Mendefinisikan beberapa obyek Buku novel, fiksi; Jika terdapat lebih dari satu obyek dan obyek-obyek tersebut
memiliki kelas yang sama, data anggota pada masing-masing obyek bersifat terpisah
Assignment nilai antar obyek (hanya untuk data anggota yang tidak mengandung pointer)
fiksi = novel;
![Page 22: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/22.jpg)
Deklarasi kelas sama dengan slide 20
![Page 23: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/23.jpg)
Alternatif penulisan fungsi anggota
Cara mendefinisikan fungsi anggota Fungsi anggota didefinisikan di dalam deklarasi kelas Pada kelas hanya terdapat deklarasi fungsi anggota (protototipe),
sedangkan definisi fungsi anggota ditempatkan di luar kelas Pada Cara 2
void Buku :: inisialisasi (char *Judul, char *Pengarang, int Jumlah){
strcpy(judul, Judul); strcpy(pengarang, Pengarang); jumlah=Jumlah;
};
Nama kelas Nama fungsi anggota
Nama anggota data kelas Buku
Return value
![Page 24: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/24.jpg)
main program sama dengan slide 20 atau 22
![Page 25: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/25.jpg)
Konstruktor dan Destruktor
Departemen Ilmu Komputer FMIPA IPB2013
![Page 26: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/26.jpg)
Konstruktor Konstruktor adalah fungsi anggota yang mempunyai nama yang
sama dengan nama kelas dan dijalakan secara otomatis saat suatu obyek diciptakan
Konstruktor tidak memiliki nilai balik
Konstruktor harus diletakkan pada bagian public
Fungsi: Mengalokasikan ruang bagi sebuah obyek Memberikan nilai awal terhadap anggota data suatu obyek Membentuk tugas umum lainnya
![Page 27: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/27.jpg)
Contoh Class - Konstruktor
Next !
![Page 28: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/28.jpg)
Contoh Class - Konstruktor
![Page 29: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/29.jpg)
Destruktor Destruktor adalah fungsi anggota kelas yang akan dijalankan
secara otomatis pada saat suatu obyek akan dihapus (dealokasi)
Nama destruktor sama seperti konstruktor, hanya saja diawali dengan karakter tak hingga/tilde (~)
![Page 30: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/30.jpg)
Contoh Class – Konstruktor Destruktor
![Page 31: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/31.jpg)
Contoh Class – Konstruktor Destruktor
![Page 32: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/32.jpg)
Konstruktor dengan Argumen
![Page 33: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/33.jpg)
Konstruktor, Destruktor dan Pengalokasian Dinamis
![Page 34: Pemrograman Berorientasi Obyek (C++)](https://reader035.fdocument.pub/reader035/viewer/2022081419/56815934550346895dc66e33/html5/thumbnails/34.jpg)
Latihan Lakukan analisis terhadap Sistem Informasi Akademik (SIMAK) yang Anda
ketahui Buatlah class diagram dari SIMAK tersebut Implementasikan class diagram tersebut dengan menggunakan C++ (jika
perlu, berikan/gunakan contoh sederhana untuk memperjelas hasil implementasi Anda)