algoritma dan pemrograman 2 - reezeki2011 · • template fungsi dan kelas • sort • search....

37
ALGORITMA DAN PEMROGRAMAN 2 3 SKS By : Sri Rezeki Candra Nursari

Upload: hakien

Post on 03-Apr-2019

245 views

Category:

Documents


2 download

TRANSCRIPT

ALGORITMA DAN PEMROGRAMAN 2

3 SKS By : Sri Rezeki Candra Nursari

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

KELAS DAN OBYEK

Pertemuan 09

3 SKS

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

Obyek• Terdiri dari 2, yaitu :

1. Obyek Lokal2. 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

Programcontoh 01

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()

Programcontoh 02

Algoritma.........?????Pseudocode.......??????

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

Programcontoh 03

Programcontoh 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)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