Pemrograman Berorientasi Obyek
(C++)
Departemen Ilmu Komputer FMIPA IPB
2013
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)
Pemrograman Berorientasi Obyek
Data/Atribut
Fungsi Anggota/Method
Fungsi Anggota/Method
Objek dan Kelas
Dalam PBO → obyek adalah anggota dari kelas
(class)
Contoh:
class : Penyanyi Jazz
obyek : Al Jarreau, Salena Jones, Michael Frank
class : Mahasiswa
objek : G64076001, G64076010, G64076030
Karakteristik PBO
1.
2.
3.
Tiga karakteristik utama PBO:
Encapsulation :
pengemasan data dan fungsi dalam wadah
bernama obyek. Data memiliki kedudukan yang
sama dengan fungsi.
Inheritance
sifat dalam bahasa berorientasi obyek yang
memungkinkan sifat-sifat dari suatu kelas
diturunkan ke kelas lain
Polymorphism
sesuatu yang sama dapat memiliki berbagai
bentuk dan perilaku yang berbeda
Kompiler C++
Microsoft Corporation :
Microsoft C/C++ dan Visual C++
Borland International :
Turbo C++ dan Borland C++
Tipe data
Tipe 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
#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;
}
Class
Departemen Ilmu Komputer FMIPA IPB
2013
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)
class Buku
{
}
char judul[35];
char pengarang[25];
int jumlah;
Format :
Mendefinisikan/create suatu variable (struct) atau obyek (class)
Buku novel;
Kebanyakan pemrograman C++ menggunakan nama kelas
dengan awalan huruf kapital
Contoh Struct
Contoh Class
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];
Secara bawaan hanya dikenal
oleh kelas buku (identik dengan
private)
…
}
Public menyebabkan anggota yang
ada di bawahnya dikenal di luar
kelas Buku
Contoh Class - Public
Access Specifier (Private)
private: digunakan pada kelas untuk memproteksi anggotaanggota 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.
Contoh Class - Private
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
Next !
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;
Deklarasi kelas sama dengan slide 20
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
Nama kelas
Nama fungsi anggota
void Buku :: inisialisasi (char *Judul, char *Pengarang, int Jumlah)
{
strcpy(judul, Judul);
Return value
strcpy(pengarang, Pengarang);
jumlah=Jumlah;
};
Nama anggota data kelas Buku
main program sama dengan slide 20 atau 22
Konstruktor dan Destruktor
Departemen Ilmu Komputer FMIPA IPB
2013
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
Contoh Class - Konstruktor
Next !
Contoh Class - Konstruktor
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 (~)
Contoh Class – Konstruktor Destruktor
Contoh Class – Konstruktor Destruktor
Konstruktor dengan Argumen
Konstruktor, Destruktor dan Pengalokasian Dinamis
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)