DPH1C4 Pemrograman berorientasi Obyek Semester Ganjil – 2019/2020 Introduction to OOP
Obyektif OOP? Why? Obyek & Kelas Karakteristik OOP
OOP? Teknik atau cara untuk membuat program. Sistem yang terdiri dari komponen (kelas/obyek) yang dapat melakukan interaksi antara kelas/objek lainnya. Kelas dan obyek di-enkapsulasi menjadi kelompok atribut dan fungsi, yang dapat mewarisi atribut dan fungsi dari komponen (kelas/obyek) lainnya.
Karakteristik OOP
Abstraction An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries relative to the perspective of the viewer.
ENCAPSULATION The process of compartmentalizing the elements of an abstraction that constitute its structure and behavior; encapsulation serves to separate the contractual interface of an abstraction and its implementation. Variabel dan method yang dimiliki suatu obyek, bisa ditentukan hak aksesnya access modifier Contoh: Jam tangan. User tidak perlu mengetahui bagaimana cara kerja detil dari jam
Cara untuk mewariskan atribut dan method dari sebuah kelas ke kelas lainnya. induk Superclass, anakan Subclass Single Inheritance: C++, Java, .NET Satu anakan, satu induk Multiple Inheritance: C++ Satu anakan, banyak induk ENCAPSULATION
Polimorfisme mememungkikan user untuk menggubakan interface tunggal agar dapat digunakan oleh objek dengan berbagai macam tipe https://www.ict.social/csharp/oop/inheritance-and-polymorphism-in-csharp-net ENCAPSULATION
Kelas dan Objek Kelas adalah template dari objek-objek yang memiliki ciri dan perilaku yang sama Object adalah instansiasi dari class Kelas memiliki variabel yang disebut sebagai atribut subrutin yang biasa disebut method Objek Object dibentuk dari Class melalui konstruktor Setiap atribut dan method dipanggil melalui object-nya Method static dan atribut static dipanggil melalui class-nya
Kelas Cetak biru dari sebuah obyek. Kumpulan dari obyek yang memiliki atribut yang sama. Kelas didefinisikan oleh programmer secara statik. Runtime: kelas obyek. Kelas Memiliki: Atribut : data, konstanta, properti variabel Method : service, prosedur, fungsi
Object Adalah abstraksi/penggambaran dari sesuatu yang mewakili sesuatu tersebut pada dunia nyata. Contoh: Rumah no 18, Mobil W1234 LR, Mahasiswa dgn NIM 30110999, Meja dengan ID 1. Dasar dari sebuah program OO. Pembentukan Obyek dari sebuah kelas dinamakan instantiasi instance Obyek dibuat, dimanipulasi dan dihancurkan pada saat runtime. Karakteristik Obyek State / status atribut Behaviour method Identitas
Instantiasi
Instantiasi
OOP : Atribut Data yang membedakan antara satu obyek dengan yang lain Contoh: Kelas MobilFOne Type=Nama seri tiap mobil per-tahun maxSpeed=Dalam satuan KM/Jam CompoundBan=Soft, Medium, Hard Pembalap=Nama Pembalap noMobil=No Urut sesuai klasemen tahun sebelumnya Dalam Kelas, Atribut dinamakan variabel
OOP : Behaviour Hal-hal yang bisa dilakukan oleh obyek dari suatu kelas. Behaviour dapat digunakan untuk: mengubah nilai atribut suatu obyek. menerima informasi dari obyek lain. mengirim informasi ke obyek lain. Contoh: GantiJenisBan PercepatMobil PitStop Dalam Kelas, Behaviour dinamakan methods
Kelas dan objek Paradigma Disain Paradigma Code Nama Class public class Employee{ private String nip; private String nama; private String divisi; public void setNip(String nip){ this.nip = nip; } public String getNip(){ return this.nip; public void setNama(String nama){ this.nama = nama; public String getNama(){ return this.nama; … Ciri : Atribut/Variabel Perilaku: Method
Kalkulator Nama Kelas Hitung Pemanggilan Kelas ak46 instance dari kelas Hitung ak46.getJumlah pemanggilan method getJumlah dari kelas Hitung
Instance variable public class StudentRecord { private String name; private String address; private int age; private double mathGrade; private double englishGrade; private double scienceGrade; private double average; //kita akan tambahkan kode di sini }
method <instance variable> <statement> <modifier> <returnType> <name>(<parameter>*) { <instance variable> <statement> <return value> } <modifier> Menentukan hak akses terhadap kelas <returnType> tipe data pengembalian. void jika tidak ada <name> Nama identifikasi <parameter> Parameter inputan <instance variable> variabel kelas yang digunakan <Statement> Statement <Return value> Nilai yang dikembalikan
Contoh public class StudentRecord { private String name; public String getName(){ return name; } public void setName( String temp ){ name = temp;
this mengakses instance variable yang dibayangi oleh parameter penggunaan this.<namaInstanceVariable> hanya dapat digunakan untuk mengakses instance variable
Contoh public class StudentRecord { private String name; private int age; public String getName(){ return name; } public void setName( String temp ){ name = temp; public void setAge( int age ){ this.age = age;
constructor method untuk melakukan instantiasi sebuah kelas Constructor memiliki properti-properti, sbb: tidak memiliki return value. tidak dapat dipanggil langsung. hanya dapat dipanggil pada saat instantiasi kelas operator new Default Constructor constructor tanpa parameter. default constructor ada secara implisit, jika class tidak mendeklarasikan constructor apapun.
Constructor public StudentRecord(){ //……… } public StudentRecord(String temp){ this.name = temp; public StudentRecord(String name, String address){ this.name = name; this.address = address; //------------pada kelas lainnya---------------- StudentRecord sr1 = new StudentRecord(){ StudentRecord sr2 = new StudentRecord(“Bejo”){ StudentRecord sr3 = new StudentRecord(“Bejo”, “Bojongsoang”){
Penentuan akses variabel Abstraksi variabel Penentuan akses variabel Access modifier public protected default private Diakses dari kelas ya kelas turunan same package other class
any question?