View
246
Download
2
Category
Preview:
Citation preview
MATERI
• Teks/string• Pointer• File• Struktur• Kelas/Class• Konstruktor dan
Destruktor• Kelas dan Obyek
• Overloading Operator• Inheritance (Pewarisan)• Polimorfisme • Template Fungsi dan
Kelas• Sort• Search
Class & Obyek• Class adalah suatu cara untuk
membuat tipe data yang baru• Mengapa butuh tipe data baru, agar
aplikasinya source code lebih mudah dibaca
• Dari tipe data akan dibuat variabel
Class & Obyek• Variabel adalah tempat untuk data• Class dengan obyek duluan class
nya• Instance adalah kata lain dari obyek
atau instance miliknya 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 instance2. Method bisa static atau instance3. Variabel/property bisa static atau instance4. Buat class didalam class biasa disebut Inner
Class
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)– method(Integer y, String x )
Class & Object
• Didalam class bisa mennggunakan banyak konstruktor
• Contoh :• Mahasiswa m1 = new Mahasiswa();
Constructor
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
Algoritma.........?????Pseudocode.......??????
Aturan :1. tuliskan kelompok Andaa. Siapa yang menulis di kertas
b. Siapa yang nulis di komputerc. Siapa yang presentasi
d. Siap yang nulis dipapan tulis
Obyek Lokal …….. Contoh 1 (rizki firmanda, ringga candra,putri,rizki candra
PSEUDOCODE :Algoritma Obyek Lokal
KAMUS/DEKLARASI VARIABELKONSTRUKTOR
*Jurusan=char
ALGORITMA/DESKRIPSI KONSTRUKTORJurusan= JurusanPrint (Jurusan)
KAMUS/DEKLARASI VARIABELDESTRUKTOR
-
ALGORITMA/DESKRIPSI DESTRUKTORJurusan= JurusanPrint (Jurusan)
ALGORITMA/DESKRIPSIDESTRUKTORJurusan= JurusanPrint (Jurusan)
KAMUS/DEKLARASI VARIABELjurusan[20] = char
ALGORITMA/DESKRIPSIPrivate : 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 public7. pengaksesan destruktor ~IINFORMATIKA() (jurusan=jurusan) 8. Mencetak ( jurusan )9. Definisi objek ( INFORMATIKA R ( “ R “ )) dengan format objek secara global10. mencetak , menjalankan perintah fungsi main ()11. definisi objek ( INFORMATIKA S ( “ S “ ) ) dengan format objek secara local12. definisi objek ( INFORMATIKA T ( “ T “ ) ) dengan format objek secara local13. mencetak, mengakhiri perintah fungsi main ( )14. selesai
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 lokal tidak akan dieksekusi
Obyek Global
Contoh Soal 02:Menampilkan konstruktor dan destruktor pada variabel R,S,T dengan menambahkan perintah exit()
Contoh 2 (mufi, yunus, rara, ines)
PSEUDOCODE :
KAMUS/DEKLARASI VARIABELKONSTRUKTOr
*Jurusan = char
ALGORITMA/DESKRIPSI KONSTRUKTORjurusan=jurusanprint(jurusan)
KAMUS/DEKLARASI DESTRUKTOR-
ALGORITMA/DESKRIPSIDESTRUKTORjurusan=jurusanPrint(jurusan)
KAMUS/DEKLARASI VARIABELjurusan [20] = char
ALGORITMA/DESKRIPSIprivate: 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 private2. Deklarasi class (class INFORMATIKA{~INFORMATIKA(*jurusan)}) dengan penentu
akses public3. Membuat konstruktor INFORMATIKA (*jurusan) dengan penentu akses public4. Pengaksesan konstruktor INFORMATIKA (*jurusan)= jurusan5. Mecetak konstruktor INFORMATIKA (jurusan)6. Membuat desstruktor ~INFORMATIKA () dengan penentu akses public7. Pengakssan destruktor destruktor ~INFORMATIKA() = jurusan8. 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)13. Selesai
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 majalahBuat file untuk mendefinisikan fungsi-fungsi anggota dari class majalahMenampilkan majalah dengan menggunakan class yang di deklarasikan pada file header majalah.h
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)3. Melewatkan obyek sebagai pointer
1. Melewatkan Obyek Berdasarkan Nilai
• Definisi fungsivoid lihat_matkul(Matkul matakuliah){matakuliah.lihat_data();
}• Pemanggilan
Matkul jur_it;lihat_matkul(jur_it);
2. Melewatkan Obyek Sebagai Referensi
• Definisi fungsivoid 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();
}
• PemanggilanMatkul 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);}};
Pointer ke Fungsi Anggota
• Pointer ke fungsi dengan nilai balik void dan tidak mempunyai parameter:- Deklarasi:
void (Contoh::*ptr_contoh1) ();- Mengakses fungsi FContoh1 dengan pointer:
ptr_contoh1 = &Contoh::FContoh1;- Menjalankan fungsi yang ditunjuk oleh pointer:
(x.*ptr_contoh1)();x adalah nama obyek
Pointer ke Fungsi Anggota• Pointer ke fungsi dengan nilai balik int dan dua
parameter bertipe int:- Deklarasi:
int (Contoh::*ptr_contoh2) (int, int);- Mengakses fungsi FContoh2 dengan pointer:
ptr_contoh2 = &Contoh::FContoh2;- Menjalankan fungsi yang ditunjuk oleh pointer:
(x.*ptr_contoh2)(2,3);x adalah nama obyek
Recommended