Pemrograman Berorientasi Objek menggunakan

advertisement
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)
Download