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

ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Apr 03, 2019

Download

Documents

hakien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

ALGORITMA DAN PEMROGRAMAN 2

3 SKS By : Sri Rezeki Candra Nursari

Page 2: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 3: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

KELAS DAN OBYEK

Pertemuan 09

3 SKS

Page 4: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 5: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Class & Obyek• Variabel adalah tempat untuk data• Class dengan obyek duluan class

nya• Instance adalah kata lain dari obyek

atau instance miliknya obyek

Page 6: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 7: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 8: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Class & Obyek• Macam-macam method

– method();– method(Int x, Int y);– method(String x, String y)– method(Integer y, String x )

Page 9: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Class & Object

• Didalam class bisa mennggunakan banyak konstruktor

• Contoh :• Mahasiswa m1 = new Mahasiswa();

Constructor

Page 10: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Obyek• Terdiri dari 2, yaitu :

1. Obyek Lokal2. Obyek Global

Page 11: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 12: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Obyek Lokal

Contoh Soal 01:Menampilkan konstruktor dan destruktor pada variabel R,S,T

Page 13: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Programcontoh 01

Page 14: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 15: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 16: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 17: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 18: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Obyek Global

Contoh Soal 02:Menampilkan konstruktor dan destruktor pada variabel R,S,T dengan menambahkan perintah exit()

Page 19: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Programcontoh 02

Page 20: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 21: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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)

Page 22: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 23: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 24: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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:

Page 25: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 26: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Programcontoh 03

Page 27: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

Programcontoh 03

Page 28: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 29: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 30: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

1. Melewatkan Obyek Berdasarkan Nilai

• Definisi fungsivoid lihat_matkul(Matkul matakuliah){matakuliah.lihat_data();

}• Pemanggilan

Matkul jur_it;lihat_matkul(jur_it);

Page 31: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

2. Melewatkan Obyek Sebagai Referensi

• Definisi fungsivoid lihat_matkul(Matkul &matakuliah){matakuliah.lihat_data();

}• Pemanggilan

Matkul jur_ti;lihat_matkul(jur_ti);

Page 32: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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)

Page 33: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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’)}

};

Page 34: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 35: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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);}};

Page 36: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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

Page 37: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · • Template Fungsi dan Kelas • Sort • Search. KELAS DAN OBYEK Pertemuan 09 3 SKS. Class & Obyek • Class adalah suatu cara untuk

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