Kelas dan Objek

26
Kelas dan Objek Kelas dan Objek Erizal, S.Si, M.Kom Erizal, S.Si, M.Kom Universitas Respati Universitas Respati Yogyakarta Yogyakarta [email protected] [email protected] http:// http:// erizal.wordpress.com erizal.wordpress.com

description

Kelas dan Objek. Erizal , S.Si , M.Kom Universitas Respati Yogyakarta [email protected] http://erizal.wordpress.com. PBO. - PowerPoint PPT Presentation

Transcript of Kelas dan Objek

Page 1: Kelas dan Objek

Kelas dan ObjekKelas dan Objek

Erizal, S.Si, M.KomErizal, S.Si, M.Kom

Universitas Respati Universitas Respati YogyakartaYogyakarta

[email protected]@yahoo.com

http://erizal.wordpress.comhttp://erizal.wordpress.com

Page 2: Kelas dan Objek

PBOPBO Pemrograman Berorientasi Objek Pemrograman Berorientasi Objek

sebenarnya bukanlah bahasa sebenarnya bukanlah bahasa pemrograman baru, tetapi jalan baru pemrograman baru, tetapi jalan baru untuk berpikir dan merancang aplikasi untuk berpikir dan merancang aplikasi yang dapat membantu memecahkan yang dapat membantu memecahkan persoalan mengenai pengembangan persoalan mengenai pengembangan perangkat lunak.perangkat lunak.

Pemrograman berorientasi objek disusun Pemrograman berorientasi objek disusun dan dipahami oleh ilmuwan yang dan dipahami oleh ilmuwan yang memandang dunia sebagai populasi objek memandang dunia sebagai populasi objek yang berinteraksi dengan yang lain.yang berinteraksi dengan yang lain.

Page 3: Kelas dan Objek

ReviewReview Pemrograman Berorientasi Objek (PBO) adalah Pemrograman Berorientasi Objek (PBO) adalah

metode pemrograman yang meniru cara kita metode pemrograman yang meniru cara kita memperlakukan sesuatu(benda). memperlakukan sesuatu(benda).

Ada tiga karakteristik bahasa Pemrograman Ada tiga karakteristik bahasa Pemrograman Berorientasi Objek :Berorientasi Objek : Pengkapsulan (Encapsulation) Pengkapsulan (Encapsulation) : :

mengkombinasikan suatu struktur dengan fungsi mengkombinasikan suatu struktur dengan fungsi yang memanipulasinya untuk membentuk tipe data yang memanipulasinya untuk membentuk tipe data baru yaitu kelas (baru yaitu kelas (classclass).).

Pewarisan (Inheritance) Pewarisan (Inheritance) : mendefinisikan suatu : mendefinisikan suatu kelas dan kemudian menggunakannya untuk kelas dan kemudian menggunakannya untuk membangun hirarki kelas turunan, yang mana membangun hirarki kelas turunan, yang mana masing-masing turunan mewarisi semua akses kode masing-masing turunan mewarisi semua akses kode maupun data kelas dasarnya.maupun data kelas dasarnya.

Page 4: Kelas dan Objek

ReviewReview Polimorphisme (Polymorphism)Polimorphisme (Polymorphism) : :

memberikan satu aksi untuk satu nama memberikan satu aksi untuk satu nama yang dipakai bersama pada satu hirarki yang dipakai bersama pada satu hirarki kelas, yang mana masing-masing kelas kelas, yang mana masing-masing kelas hirarki menerapkan cara yang sesuai hirarki menerapkan cara yang sesuai dengan dirinya.dengan dirinya.

Page 5: Kelas dan Objek

ReviewReviewPencetak kukis Pencetak kukis kelas kelas

Dapat digunakan berkali-kali Dapat digunakan berkali-kali untuk mencetak kukis. untuk mencetak kukis.

Kukis Kukis objek objekSebuah kelas dapat Sebuah kelas dapat

menghasilkan banyak menghasilkan banyak objekobjek Dari 1 cetakan dapat dibuat Dari 1 cetakan dapat dibuat

banyak kukis dengan banyak kukis dengan berbagai macam hiasan, berbagai macam hiasan, namun kukis-kukis tersebut namun kukis-kukis tersebut tetap memiliki bentuk yang tetap memiliki bentuk yang sama.sama.

Page 6: Kelas dan Objek

ReviewReviewKelas menyatakan konsep (Kelas menyatakan konsep (blueprintblueprint))

Kelas mendefinisikan karakteristik (Kelas mendefinisikan karakteristik (atributatribut) ) dan aksi (dan aksi (methodmethod) yang dimiliki objek.) yang dimiliki objek.

Objek adalah perwujudan dari konsep Objek adalah perwujudan dari konsep kelas (kelas (instance of classinstance of class)) Setiap objek memiliki kelas yang Setiap objek memiliki kelas yang

mendefinisikan data dan aksi yang dimiliki mendefinisikan data dan aksi yang dimiliki oleh objek tersebut.oleh objek tersebut.

Page 7: Kelas dan Objek

Apakah Class?Apakah Class? Definisi class : merupakan template Definisi class : merupakan template

untuk membuat obyek.untuk membuat obyek. Definisi class : merupakan prototipe / Definisi class : merupakan prototipe /

blue prints yang mendefinisikan blue prints yang mendefinisikan variabel – variabel dan method – variabel – variabel dan method – method secara umum..method secara umum..

Obyek merupakan hasil instansiasi dari Obyek merupakan hasil instansiasi dari suatu kelas.suatu kelas.

Proses pembentukan obyek dari suatu Proses pembentukan obyek dari suatu class disebut dengan class disebut dengan instantiationinstantiation..

Obyek disebut juga Obyek disebut juga instancesinstances..

Page 8: Kelas dan Objek

Kelas dan Tipe DataKelas dan Tipe Data Data atau informasi yang dimiliki Data atau informasi yang dimiliki

oleh objek bisa berupa data yang oleh objek bisa berupa data yang memiliki tipe data dasar (memiliki tipe data dasar (primitifprimitif) ) atau tipe data bentukan.atau tipe data bentukan.

Tipe data bentukan di berorientasi Tipe data bentukan di berorientasi objek dikenal sebagai tipe data objek objek dikenal sebagai tipe data objek atau kelas.atau kelas.

Kelas merupakan satu-satunya jenis Kelas merupakan satu-satunya jenis tipe data yang dapat dibuat tipe data yang dapat dibuat /didefinisikan sendiri oleh /didefinisikan sendiri oleh programmer. programmer.

Page 9: Kelas dan Objek

Tipe Data KelasTipe Data Kelas Tipe data kelas didefinisikan dengan Tipe data kelas didefinisikan dengan

kata kunci (keyword) class, yang kata kunci (keyword) class, yang merupakan generalisasi dari merupakan generalisasi dari pernyataan pernyataan structstruct. .

Pernyataan struct secara umum Pernyataan struct secara umum digantikan dengan pernyataan class. digantikan dengan pernyataan class. Jika objek kotak dideklarasikan Jika objek kotak dideklarasikan dalam bentuk kelas, maka dalam bentuk kelas, maka deklarasinya mirip dengan struktur.deklarasinya mirip dengan struktur.

Page 10: Kelas dan Objek

Contoh Deklarasi KelasContoh Deklarasi Kelas

class tkotakclass tkotak{{

double panjang;double panjang;double lebar;double lebar;

Public :Public :void SetUkuran(double pj, double lb);void SetUkuran(double pj, double lb);double Keliling();double Keliling();double Luas();double Luas();

};};tkotak kotak;tkotak kotak;

Page 11: Kelas dan Objek

DeklarasiDeklarasi Dalam deklarasi kelas tersebut, muncul kata Dalam deklarasi kelas tersebut, muncul kata

public. Data atau fungsi yang dideklarasikan public. Data atau fungsi yang dideklarasikan di bawah kata kunci di bawah kata kunci public public mempunyai sifat mempunyai sifat dapat diakses dari luar kelas secara langsung. dapat diakses dari luar kelas secara langsung. Dalam deklarasi tersebut, variabel Dalam deklarasi tersebut, variabel panjang panjang dan dan lebarlebar tidak bersifat tidak bersifat publicpublic, sehingga tidak , sehingga tidak dapat diakses secara langsung dari luar kelas.dapat diakses secara langsung dari luar kelas.

Perintah-perintah di bawah ini tidak dapat Perintah-perintah di bawah ini tidak dapat dijalankan :dijalankan :

kotak.panjang = 10;kotak.panjang = 10;

kotak.lebar = 7;kotak.lebar = 7;

cout<<”Panjang : ”<<kotak.panjang<<endl;cout<<”Panjang : ”<<kotak.panjang<<endl;

cout<<”Lebar : “<<kotak.lebar<<endl;cout<<”Lebar : “<<kotak.lebar<<endl;

Page 12: Kelas dan Objek

ContoContoh h PrograProgramm

//program class//program class#include<iostream.h>#include<iostream.h>#include<conio.h>#include<conio.h>class tkotakclass tkotak{{

double panjang;double panjang;double lebar;double lebar;public:public:void SetUkuran(double pj, double lb);void SetUkuran(double pj, double lb);double Keliling();double Keliling();double Luas();double Luas();double GetPanjang();double GetPanjang();double GetLebar();double GetLebar();

};};int main()int main(){{

tkotak kotak;tkotak kotak;kotak.SetUkuran(10,7);kotak.SetUkuran(10,7);cout<<"Panjang : "<<kotak.GetPanjang()<<endl;cout<<"Panjang : "<<kotak.GetPanjang()<<endl;cout<<"Lebar : "<<kotak.GetLebar()<<endl;cout<<"Lebar : "<<kotak.GetLebar()<<endl;cout<<"Keliling : "<<kotak.Keliling()<<endl;cout<<"Keliling : "<<kotak.Keliling()<<endl;cout<<"Luas : "<<kotak.Luas()<<endl;cout<<"Luas : "<<kotak.Luas()<<endl;getch();getch();return 0;return 0;

}}

Page 13: Kelas dan Objek

Contoh ProgramContoh Programvoid tkotak::SetUkuran(double pj, double lb)void tkotak::SetUkuran(double pj, double lb){{

panjang = pj;panjang = pj;lebar = lb;lebar = lb;

}}double tkotak::Keliling()double tkotak::Keliling(){{

return 2*(panjang+lebar);return 2*(panjang+lebar);}}double tkotak::Luas()double tkotak::Luas(){{

return panjang*lebar;return panjang*lebar;}}double tkotak::GetPanjang()double tkotak::GetPanjang(){{

return panjang;return panjang;}}double tkotak::GetLebar()double tkotak::GetLebar(){{

return lebar;return lebar;}}

Page 14: Kelas dan Objek

OutputOutput Tampilan Output :Tampilan Output :

Panjang Panjang : 10: 10 LebarLebar : 7: 7 Keliling Keliling : 34: 34 Luas Luas : 70: 70

Page 15: Kelas dan Objek

Definisi KelasDefinisi Kelas Dapat dilihat dari contoh program, Dapat dilihat dari contoh program,

bentuk pendefinisian kelas adalah bentuk pendefinisian kelas adalah sebagai berikut :sebagai berikut :

Tipe Nama_Kelas::NamaFungsi()Tipe Nama_Kelas::NamaFungsi()

{{

IsiFungsiIsiFungsi

}}

Untuk mendefinisikan variabel kelas, Untuk mendefinisikan variabel kelas, digunakan deklarasi :digunakan deklarasi :

Nama_Kelas Nama_Variabel;Nama_Kelas Nama_Variabel;

Contoh :Contoh :Tkotak kotak;Tkotak kotak;

Page 16: Kelas dan Objek

Pengkapsulan(EncapsulaPengkapsulan(Encapsulation)tion)

Pengkapsulan adalah : mengkombinasikan suatu Pengkapsulan adalah : mengkombinasikan suatu struktur dengan fungsi yang memanipulasinya struktur dengan fungsi yang memanipulasinya untuk membentuk tipe data baru yaitu untuk membentuk tipe data baru yaitu kelas(class).kelas(class).

Kelas akan menutup rapat baik data maupun Kelas akan menutup rapat baik data maupun kode.kode.

Akses item di dalam kelas dikendalikan. Akses item di dalam kelas dikendalikan. Pengendalian ini tidak hanya berupa data tetapi Pengendalian ini tidak hanya berupa data tetapi juga kode. juga kode.

Saat kelas akan digunakan, kelas harus sudah Saat kelas akan digunakan, kelas harus sudah dideklarasikan. Pemakai kelas harus mengetahui dideklarasikan. Pemakai kelas harus mengetahui deskripsi kelas, tetapi bukan implementasinya. deskripsi kelas, tetapi bukan implementasinya.

Bagi pemakai, detail internal kelas tidak penting. Bagi pemakai, detail internal kelas tidak penting. Konsep ini disebut penyembunyian informasi Konsep ini disebut penyembunyian informasi ((information hidinginformation hiding).).

Page 17: Kelas dan Objek

User InterfaceUser Interface Fungsi yang dapat digunakan dan data Fungsi yang dapat digunakan dan data

yang dapat diakses disebut antarmuka yang dapat diakses disebut antarmuka pemakai (pemakai (user interfaceuser interface). ).

Antarmuka pemakai menceritakan Antarmuka pemakai menceritakan bagaimana kelas berperilaku, bukan bagaimana kelas berperilaku, bukan bagaimana kelas dibuat.bagaimana kelas dibuat.

Kita tidak perlu mengetahui implementasi Kita tidak perlu mengetahui implementasi kelas.kelas.

Sekali kelas dibuat, kita bisa memakainya Sekali kelas dibuat, kita bisa memakainya berulang-ulang.berulang-ulang.

Bagi pandangan pemakai, kelas adalah Bagi pandangan pemakai, kelas adalah kotak (kotak (black boxblack box) hitam dengan perilaku ) hitam dengan perilaku tertentu.tertentu.

Page 18: Kelas dan Objek

Kendali Akses terhadap Kendali Akses terhadap KelasKelas

Tugas kelas adalah untuk Tugas kelas adalah untuk menyembunyikan informasi yang menyembunyikan informasi yang tidak diperlukan oleh pemakai.tidak diperlukan oleh pemakai.

Ada tiga macam pemakai kelas :Ada tiga macam pemakai kelas : kelas itu sendirikelas itu sendiri pemakai umumpemakai umum kelas turunankelas turunan

Page 19: Kelas dan Objek

Hak Akses KelasHak Akses Kelas Setiap macam pemakai mempunyai Setiap macam pemakai mempunyai

hak aksesnya masing-masing. hak aksesnya masing-masing. Hak akses ini ditandai dengan Hak akses ini ditandai dengan

kenampakan anggota kelas. kenampakan anggota kelas. Kelas pada C++ menawarkan tiga Kelas pada C++ menawarkan tiga

level kenampakan anggota kelas level kenampakan anggota kelas ((baik anggota data maupun fungsi baik anggota data maupun fungsi anggotaanggota) : ) : PrivatePrivate PublicPublic ProtectedProtected

Page 20: Kelas dan Objek

PrivatePrivate Anggota kelas private mempunyai Anggota kelas private mempunyai

kendali akses yang paling ketat. kendali akses yang paling ketat. Dalam bagian private, Dalam bagian private, hanya fungsi hanya fungsi anggota dari kelas itu yang dapat anggota dari kelas itu yang dapat mengakses anggota private atau mengakses anggota private atau kelas yang dideklarasikan kelas yang dideklarasikan sebagai teman (sebagai teman (friendfriend))..

Page 21: Kelas dan Objek

PublicPublic Dalam bagian public, Dalam bagian public, anggotanya anggotanya

dapat diakses oleh fungsi dapat diakses oleh fungsi anggota kelas itu sendiri, anggota kelas itu sendiri, instance kelas, fungsi anggota instance kelas, fungsi anggota kelas turunan. kelas turunan.

Suatu kelas agar bisa diakses dari Suatu kelas agar bisa diakses dari luar kelas, misalnya dalam fungsi luar kelas, misalnya dalam fungsi main()main(), perlu mempunyai hak akses , perlu mempunyai hak akses publik. Hak akses ini yang biasanya publik. Hak akses ini yang biasanya digunakan sebagai perantara antara digunakan sebagai perantara antara kelas dengan dunia luar.kelas dengan dunia luar.

Page 22: Kelas dan Objek

ProtectedProtected Suatu kelas dapat dibuat berdasarkan kelas Suatu kelas dapat dibuat berdasarkan kelas

lain. Kelas baru ini mewarisi sifat-sifat dari lain. Kelas baru ini mewarisi sifat-sifat dari kelas dasarnya. Dengan cara ini bisa kelas dasarnya. Dengan cara ini bisa dibentuk dibentuk kelas turunan dari beberapa tingkat kelas kelas turunan dari beberapa tingkat kelas dasardasar. .

Bila pada kelas dasar mempunyai anggota Bila pada kelas dasar mempunyai anggota dengan hak akses terproteksi, maka dengan hak akses terproteksi, maka anggota anggota kelas ini akan dapat juga diakses oleh kelas ini akan dapat juga diakses oleh kelas turunannyakelas turunannya. .

Anggota kelas terproteksi dibentuk dengan Anggota kelas terproteksi dibentuk dengan didahului kata kunci protected. Pada bagian didahului kata kunci protected. Pada bagian protected, protected, hanya fungsi anggota dari kelas hanya fungsi anggota dari kelas dan kelas-kelas turunannya yang dapat dan kelas-kelas turunannya yang dapat mengakses anggotamengakses anggota..

Page 23: Kelas dan Objek

Contoh ProgramContoh Program//File persegiPJ.Cpp//File persegiPJ.Cpp#include <iostream.h>#include <iostream.h>class PersegiPanjangclass PersegiPanjang{{protected :protected :

int panjang;int panjang;int lebar;int lebar;

public :public :PersegiPanjang(int pj, int lb)PersegiPanjang(int pj, int lb){{

panjang = pj;panjang = pj;lebar = lb;lebar = lb;

}}int Panjang()int Panjang(){{

return panjang;return panjang;}}int Lebar()int Lebar(){{

return lebar;return lebar;}}

Page 24: Kelas dan Objek

Contoh ProgramContoh Programint Keliling()int Keliling(){{

return 2*(panjang+lebar);return 2*(panjang+lebar);}}int Luas()int Luas(){{

return panjang*lebar;return panjang*lebar;}}void Skala(float sk)void Skala(float sk){{

panjang *= sk;panjang *= sk;lebar *= sk;lebar *= sk;

}}void TulisInfo()void TulisInfo(){{

cout<<"Panjang : "<<panjang<<endlcout<<"Panjang : "<<panjang<<endl<<"Lebar :"<<lebar<<endl<<"Lebar :"<<lebar<<endl<<"Keliling :"<<Keliling()<<endl<<"Keliling :"<<Keliling()<<endl<<"Luas :"<<Luas()<<endl;<<"Luas :"<<Luas()<<endl;

}}};};

Page 25: Kelas dan Objek

Contoh ProgramContoh Program(Main Program)(Main Program)

//Buat dalam file baru.//Buat dalam file baru.

// penggunaan kelas persegi panjang// penggunaan kelas persegi panjang

#include "PersegiPJ.Cpp"#include "PersegiPJ.Cpp"

void main()void main()

{{

PersegiPanjang pp1(10,5);PersegiPanjang pp1(10,5);

pp1.Skala(2);pp1.Skala(2);

pp1.TulisInfo();pp1.TulisInfo();

getch();getch();

}}

Page 26: Kelas dan Objek

END OF MODUL - 6END OF MODUL - 6