ALGORITMA DAN
PEMROGRAMAN 2
MATERI
•
Teks/string
•
Pointer
•
File
•
Struktur
•
Kelas/Class
•
Konstruktor dan
Destruktor
•
Kelas dan Obyek
•
Overloading Operator
•
Inheritance (Pewarisan)
•
Polimorfisme
•
Template Fungsi dan
Kelas
•
Sort
KELAS DAN OBYEK
Pertemuan 09
Class & Obyek
•
Class
adalah suatu cara untuk
membuat tipe data yang baru
•
Mengapa butuh tipe data baru, agar
aplikasinya source code lebih
mudah dibaca
Class & Obyek
•
Variabel adalah tempat untuk data
•
Class dengan obyek
duluan class
nya
•
Instance adalah kata lain dari obyek
Class & Obyek
Static adalah variabel miliknya si class atau
static variebel miliknya class
nilai akan
berubah kesemua instance
Didalam class kita dapat :
1.
Constructor
selalu instance
2.
Method
bisa static atau instance
3.
Variabel/property
bisa static atau instance
4.Buat class didalam class biasa disebut Inner
Class & Obyek
•
Constructor
selalu instance
•
Constructor dan method ada
overloading
argumen atau
parameter nya berbeda (yang berbeda
bisa jumlah, tipe data, urutan), tetapi
namanya bisa sama
Class & Obyek
•
Macam-macam method
–
method();
–
method(Int x, Int y);
–
method(String x, String y)
Class & Object
•
Didalam class bisa mennggunakan
banyak konstruktor
•
Contoh :
•
Mahasiswa m1 = new Mahasiswa();
Obyek
•
Terdiri dari 2, yaitu :
1. Obyek Lokal
2. Obyek Global
1. Obyek Lokal
•
Merupakan suatu obyek yang
didefinisikan di luar fungsi
•
Konstruktor dijalankan saat obyek
bersangkutan di ciptakan
•
Destruktor dijalankan dengan
sendirinya saat fungsi yang
mendefinisikannya berakhir
Obyek Lokal
Contoh Soal 01:
Menampilkan konstruktor dan destruktor
pada variabel R,S,T
Program
contoh 01
Algoritma...?????
Pseudocode...??????
Aturan :
1. tuliskan kelompok Anda
a. Siapa yang menulis di kertas
b. Siapa yang nulis di komputer
c. Siapa yang presentasi
Obyek Lokal …….. Contoh 1 (rizki firmanda, ringga candra,putri,rizki candra
PSEUDOCODE :
Algoritma Obyek Lokal
KAMUS/DEKLARASI VARIABEL KONSTRUKTOR *Jurusan=char ALGORITMA/DESKRIPSI KONSTRUKTOR Jurusan= Jurusan Print (Jurusan) KAMUS/DEKLARASI VARIABEL DESTRUKTOR -ALGORITMA/DESKRIPSI DESTRUKTOR Jurusan= Jurusan Print (Jurusan) ALGORITMA/DESKRIPSI DESTRUKTOR Jurusan= Jurusan Print (Jurusan)
KAMUS/DEKLARASI VARIABEL
jurusan[20] = char
ALGORITMA/DESKRIPSI
Private : class INFORMATIKA
{Jurusan [20]}
Public : class INFORMATIKA
{INFORMATIKA (*Jurusan),
~INFORMATIKA}
INFORMATIKA R (“”R”)
INFORMATIKA S (“S”)
INFORMATIKA T (“T”)
Contoh : 1 – Algoritma (obyek lokal) (SISYLIA .P , MUSI.H , REZKY.R , WAHYU.H
1. mendefinisikan class ( class INFORMATIKA { jurusan 120} ) dengan penentu akses secara private
2. mendefinisikan class ( class INFORMATIKA { INFORMATIKA (*jurusan ), ~INFORMATIKA () } )dengan penentu akses secara public
3. membuat konstruktor INFORMATIKA (*jurusan) dengan penentu akses secara public
4. pengaksesan konstruktor INFORMATIKA ( jurusan = jurusan ) 5. mencetak konstruktor INFORMATIKA (jurusan)
6. membuat destruktor ~INFORMATIKA () dengan penentu akses secara public 7. pengaksesan destruktor ~IINFORMATIKA() (jurusan=jurusan)
8. Mencetak ( jurusan )
9. Definisi objek ( INFORMATIKA R ( “ R “ )) dengan format objek secara global 10. mencetak , menjalankan perintah fungsi main ()
11. definisi objek ( INFORMATIKA S ( “ S “ ) ) dengan format objek secara local 12. definisi objek ( INFORMATIKA T ( “ T “ ) ) dengan format objek secara local 13. mencetak, mengakhiri perintah fungsi main ( )
2. Obyek Global
•
Merupakan suatu obyek yang didefinisikan
secara global
•
Konstruktor dijalankan saat awal eksekusi
program, yaitu sebelum fungsi main() di proses
•
Destruktor dijalankan saat fungsi main()
berakhir
•
Apabila ada exit() destruktor obyek global akan
dijalankan terlebih dahulu, tetapi destruktor
Obyek Global
Contoh Soal 02:
Menampilkan konstruktor dan destruktor
pada variabel R,S,T dengan menambahkan
perintah exit()
Program
contoh 02
Algoritma...?????
Pseudocode...??????
Contoh 2 (mufi, yunus, rara, ines)
PSEUDOCODE : KAMUS/DEKLARASI VARIABEL KONSTRUKTOr *Jurusan = char ALGORITMA/DESKRIPSI KONSTRUKTOR jurusan=jurusan print(jurusan) KAMUS/DEKLARASI DESTRUKTOR -ALGORITMA/DESKRIPSI DESTRUKTOR jurusan=jurusan Print(jurusan) KAMUS/DEKLARASI VARIABEL jurusan [20] = char ALGORITMA/DESKRIPSI private: class INFORMATIKA{jurusan[20]} public: class INFORMATIKA{INFORMATIKA(*jurusan),( ~INFORMATIKA ( ))} INFORMATIKA R (“R”) INFORMATIKA S (“S”) INFORMATIKA T (“T”) exit(1)Contoh : 2 – Algoritma (Vivi, nurfa, yadi)
1. Deklarasi class (class INFORMATIKA{jurusan[20]}) dengan penentu akses private 2. Deklarasi class (class INFORMATIKA{~INFORMATIKA(*jurusan)}) dengan penentu
akses public
3. Membuat konstruktor INFORMATIKA (*jurusan) dengan penentu akses public 4. Pengaksesan konstruktor INFORMATIKA (*jurusan)= jurusan
5. Mecetak konstruktor INFORMATIKA (jurusan)
6. Membuat desstruktor ~INFORMATIKA () dengan penentu akses public 7. Pengakssan destruktor destruktor ~INFORMATIKA() = jurusan
8. Mencetak destruktor ~INFORMATIKA() 9. Definisi objek global INFORMATIKA R (“R”) 10. Definisi objek lokal INFORMATIKA S (“S”) 11. Definisi objek lokal INFORMATIKA T (“T”) 12. Mengakhiri program exit(1)
Menyimpan kelas dan fungsi anggota
pada file tersendiri
•
Apabila class digunakan untuk sejumlah
program, maka class harus
–
dideklarasikan pada file tersendiri
•
Didefinisikan fungsi-fungsi anggotanya
•
File header bisa kita buat sendiri
•
Caranya dengan memisahkan
pendefinisian kelas kedalam suatu file
tersendiri yaitu file .H
Menyimpan kelas dan fungsi anggota
pada file tersendiri
•
Definisi fungsi anggota juga dimasukkan
kedalam file .H ini
•
File .H ini kemudian disimpan di folder
BC31\Include atau disimpan pada tempat lain
•
Penulisan file header:
- #include “matkul.h”
jika file disimpan di folder
Include
- #include “d:\matkul.h”
jika file disimpan
ditempat lain, misal di drive d:
Class dan Obyek
Contoh Soal 03:
Buat header untuk deklarasi kelas majalah
Buat file untuk mendefinisikan fungsi-fungsi
anggota dari class majalah
Menampilkan majalah dengan
menggunakan class yang di deklarasikan
pada file header majalah.h
Program
contoh 03
Program
contoh 03
Algoritma...?????
Pseudocode...??????
Obyek Sebagai Parameter
•
Ada 3 kemungkinan melewatkan obyek
sebagai parameter:
1. Melewatkan obyek berdasarkan nilai
(passing parameter by value)
2. Melewatkan obyek sebagai referensi
(passing parameter by reference)
1. Melewatkan Obyek Berdasarkan Nilai
•
Definisi fungsi
void lihat_matkul(
Matkul matakuliah
)
{
matakuliah.lihat_data();
}
•
Pemanggilan
Matkul jur_it;
lihat_matkul(jur_it);
2. Melewatkan Obyek Sebagai Referensi
•
Definisi fungsi
void lihat_matkul(
Matkul &matakuliah
)
{
matakuliah.lihat_data();
}
•
Pemanggilan
Matkul jur_ti;
lihat_matkul(jur_ti);
3. Melewatkan Obyek Sebagai Pointer
•
Definisi fungsi (cara 1)
void lihat_matkul(Matkul *matakuliah)
{
(*matakuliah).lihat_data();
}
•
Definisi fungsi (cara 2)
void lihat_matkul(Matkul *matakuliah)
{
matakuliah->lihat_data();
}
•
Pemanggilan
Matkul jur_ts;
lihat_matkul(&jur_ts)
Array Obyek
•
Suatu array juga bisa mempunyai elemen berupa obyek
•
Sintaks:
NamaKelas NamaObyek[jumlah_data];
Contoh:
Matkul data_matakuliah[10];
•
Inisialisasi:
Matkul data_matakuliah[2] =
{
{Matkul(“PBO”, 3, ‘A’)}, //Matkul : nama konstruktor
{Matkul(“Prak PBO”, 2, ‘B’)}
Nilai Balik Berupa Obyek
•
Sebuah fungsi dapat menggunakan obyek sebagai
tipe nilai balik
•
Sintaks:
TipeNilaiBalik NamaFungsi(TipeData
NamaVariabel)
Contoh:
Matkul IsiData(char *nama_mk, int sks_mk, char
nilai_mk);
Pointer ke Fungsi Anggota
•
Fungsi anggota dapat diakses melalui pointer
•
Sintaks:
TipeNilaiBalik (NamaKelas::*NamaPointer) (Parameter, …);
•
TipeNilaiBalik dan Parameter dari pointer tergantung pada tipe
nilai balik dan parameter dari fungsi yang akan diakses
•
Contoh:
Class Contoh { public: void FContoh1() {cout << “tes”;} int FContoh2(int x, int y){return(x+y);} };