Professional Documents
Culture Documents
Versi
2.0
Topik
Konsep Object-Oriented
Konsep Object-Oriented
◦ Terfokus pada object dan class, berdasarkan skenario
pada dunia nyata
◦ Mendeskripsikan state, behavior dan interaction pada
object
◦ Keuntungan :
Pengembangan lebih cepat
Meningkatkan kualitas
Penanganan lebih mudah
Dapat dimodifikasi
Meningkatkan karakter reusable pada software
Class
◦ Digunakan untuk mendefinisikan tipe data baru
◦ Blueprint
Konsep Object-Oriented
Object
◦ Sebuah entitas yang memiliki state, behavior dan
identity
◦ Contoh nyata dari sebuah class
◦ Dibuat pada saat class di-instantiate menggunakan keyword
new
◦ Contoh: pada Sistem registrasi siswa
Attribut
◦ Elemen data dari sebuah object
◦ Menyimpan informasi tentang object
◦ Alias dari atribut : Data member, instance variable,
property, data field
◦ Contoh: pada Sistem registrasi siswa
Konsep Object-Oriented
Method
Menyatakan sifat dari sebuah object
◦
Disebut juga fungsi atau prosedur
◦
Contoh: pada Sistem registrasi siswa
◦
Konstruktor
Menyerupai method
◦
Untuk membuat dan menginisialisasi sebuah object baru
◦
Bukan merupakan anggota dari sebuah object
◦
Konsep Object-Oriented
Package
Pengelompokan class atau subpackage
◦
Fungsinya sama seperti direktori
◦
Enkapsulasi
Suatu prinsip penyembunyian desain atau pengimplementasian informasi yang tidak sesuai pada object yang ada
◦
Abstraksi
Mengabaikan aspek dari subjek yang tidak sesuai dengan tujuan yang ada supaya lebih banyak
◦
mengkonsentrasikan yang ada
Konsep Object-Oriented
Pewarisan
◦ Hubungan antara class dimana dalam satu class ada
superclass atau class induk dari class yang lain
◦ Mengarah pada properi dan sifat yang diterima dari asalnya
◦ Dikenal juga dengan hubungan "is-a"
SuperHero
FlyingSuperHero UnderwaterSuperHero
Konsep Object-Oriented
Polymorfisme
◦ "poly" berarti banyak sedangkan "morph" berarti
bentuk
◦ Kemampuan dari sebuah object untuk membolehkan
mengambil beberapa bentuk yang berbeda
Interface
◦ Sebuah contract dalam bentuk kumpulan method
dan deklarasi konstanta
◦ Mengimplementasikan janji pada class untuk
mengikuti contract
Struktur Program Java :
Deklarasi Class
Sintaks
◦ <classDeclaration> ::=
◦ <modifier> class <name> {
◦ <attributeDeclaration>*
◦ <constructorDeclaration>*
◦ <methodDeclaration>*
◦ }
◦ dimana
◦ Modifier
Mengacu pada access modifier atau type lain dari
modifier
◦ Name
Sebuah identifier pada nama kelas
Struktur Program Java :
Deklarasi Class
1 class SuperHero {
2 String superPowers[];
3 void setSuperPowers(String superPowers[])
{
4 this.superPowers = superPowers;
5 }
6 void printSuperPowers() {
7 for (int i = 0; i <
superPowers.length; i++) {
8 System.out.println(superPowers[i]);
9 }
10 }
11 }
Struktur Program Java :
Deklarasi Attribut
Sintaks:
◦ <attributeDeclaration> ::=
◦ <modifier> <type> <name> [=
<default_value>];
◦ <type> ::=
◦ byte | short | int | long | char |
float | double | boolean | <class>
Struktur Program Java :
Deklarasi Attribut
Sintaks:
◦ <methodDeclaration> ::=
◦ <modifier> <returnType> <name>(<parameter>*) {
◦ <statement>*
◦ }
◦ <parameter> ::=
◦ <parameter_type> <parameter_name>[,]
Struktur Program Java :
Deklarasi Method
1 class MethodDemo {
2 int data;
3 int getData() {
4 return data;
5 }
6 void setData(int data) {
7 this.data = data;
8 }
9 void setMaxData(int data1, int data2) {
10 data = (data1>data2)? data1 : data2;
11 }
12 }
Struktur Program Java :
Deklarasi Konstruktor
Sintaks:
◦ <constructorDeclaration> ::=
◦ <modifier> <className> (<parameter>*) {
◦ <statement>*
◦ }
◦ dimana
◦ Modifier
Dapat berupa beberapa acces modifier tetapi
bukan tipe modifier lainnya.
1 class ConstructorDemo {
2 private int data;
3 public ConstructorDemo() {
4 data = 100;
5 }
6 ConstructorDemo(int data) {
7 this.data = data;
8 }
9 }
Struktur Program Java :
Instansiasi Kelas
Syntax:
◦ new <constructorName>(<parameters>)
Contoh:
1.class ConstructObj {
2. int data;
3. ConstructObj() {
4. /* initialize data */
5. }
6. public static void main(String args[]) {
7. ConstructObj obj = new ConstructObj();
8. }
9.}
Struktur Program Java :
Mengakses Anggota Objek
Notasi titik:
◦ <object>.<member>
Contoh:
◦ String myString = new String(“My String”);
◦ //Access length method
◦ System.out.println(“Length: ” + myString.length());
1 class ConstructObj {
2 int data;
3 ConstructObj() {
4 /* initialize data */
5 }
6 void setData(int data) {
7 this.data = data;
8 }
9 public static void main(String args[]) {
10 ConstructObj obj = new ConstructObj();
11 obj.setData = 10; //access setData()
12 System.out.println(obj.data);//access data
13 }
14 }
Struktur Program Java :
Package
1 package registration.reports;
2 import registration.processing.*;
3 import java.util.List;
4 import java.lang.*; //imported by default
5 class MyClass {
6 /* details of MyClass */
7 }
Struktur Program Java :
Access Modifier
Struktur Program Java :
Enkapsulasi
1.import java.awt.*;
2.class Point {
3. int x;
4. int y;
5.}
1. class Superclass {
2. void display(int n) {
3. System.out.println("super: " + n);
4. }
5. }
11.// continued...
Struktur Program Java :
Method Overriding
14.class OverrideDemo {
15. public static void main(String args[]) {
16. Subclass SubObj = new Subclass();
17. Superclass SuperObj = SubObj;
18. SubObj.display(3);
19. ((Superclass)SubObj).display(4);
20. }
21.}
Struktur Program Java :
Method Overriding
Pemanggilan method
◦ Ditentukan oleh tipe data sebenarnya dari object
yang diminta method
1. class Superclass {
2. void overriddenMethod() {
3. }
4. }
5. class Subclass1 extends Superclass {
6. public void overriddenMethod() {
7. }
8. }
9. class Subclass2 extends Superclass {
10. void overriddenMethod() {
11. }
12.}
13.//continued...
Struktur Program Java :
Method Overriding
Sintaks:
◦ abstract <modifier> <returnType>
<name>(<parameter>*);
Sintaks:
◦ <interfaceDeclaration> ::=
◦ <modifier> interface <name> {
◦ <attributeDeclaration>*
◦ [<modifier> <returnType> <name>
(<parameter>*);]*
◦ }
Modifier:
◦ Access modifiers: public, package
◦ Harus diinisialisasi
1. interface MyInterface {
2. void iMethod();
3. }
mengapa this?
1. Agar tidak ambigu antara attribut lokal dan
variabel lokal
2. Menunjuk pada object yang meminta
method non-static
3. Menunjuk pada konstruktor lain
Struktur Program Java :
kata kunci this
Method Overloading
◦ Metode berbeda dalam sebuah kelas membagi nama yang
sama
◦ Daftar parameter harus berbeda
Jumlah parameter
Tipe parameter
◦ Konstruktor dapat juga menjadi overload
◦ Contoh:
class MyClass {
void myMeth() {}
void myMeth(int i) {}
void myMeth(int i, int j) {}
}
Struktur Program Java :
kata kunci this
menunjuk versi lain dari konstruktor
1. class ThisDemo3 {
2. int data;
3. ThisDemo3() {
4. this(100);
5. }
6. ThisDemo3(int data) {
7. this.data = data;
8. }
9. }
Struktur Program Java :
kata kunci super
Berhubungan dengan pewarisan
◦ Digunakan untuk meminta konstruktor superclass
◦ Dapat digunakan seperti kata kunci this untuk menunjuk
pada anggota dari superclass
9. //continuation...
10.class Student extends Person {
11. String studNum;
12. Student(String fname, String lname, String sNum) {
13. super(fname, lname);
14. studNum = sNum;
15. }
16.}
super()
◦ Menunjuk pada superclass dengan segera
◦ Harus berada pada pernyataan pertama dalam konstruktor
superclass
Struktur Program Java :
kata kunci super
7. //continued...
Struktur Program Java :
kata kunci super
21.class SuperDemo {
22. public static void main(String args[]){
23. Superclass SuperObj = new Superclass();
24. Subclass SubObj = new Subclass();
25. SuperObj.a = 1;
26. SubObj.a = 2;
27. SubObj.set_super_a(3);
28. SuperObj.display_a();
29. SubObj.display_a();
30. SubObj.display_super_a();
31. System.out.println(SubObj.a);
32. }
33.}
Struktur Program Java :
kata kunci static
Variabel class
◦ Bersifat seperti variabel global
◦ Dapat diakses oleh semua instance dari kelas
Struktur Program Java :
kata kunci static
Method class
◦ Dapat diambil tanpa membuat sebuah object dari
class tersebut
◦ Hanya dapat mengakses anggota static dari class
◦ tidak dapat menunjuk pada this dan super
Blok static
◦ Hanya dapat dieksekusi sekali, ketika kelas diisi
◦ Untuk inisialisasi variabel class
Struktur Program Java :
kata kunci static
1. class Demo {
2. static int a = 0;
3. static void staticMethod(int i) {
4. System.out.println(i);
5. }
6. static { //static block
7. System.out.println("static block");
8. a += 1;
9. }
10.}
11.//continued...
Struktur Program Java :
kata kunci static
13.class StaticDemo {
14. public static void main(String args[]) {
15. System.out.println(Demo.a);
16. Demo.staticMethod(5);
17. Demo d = new Demo();
18. System.out.println(d.a);
19. d.staticMethod(0);
20. Demo e = new Demo();
21. System.out.println(e.a);
22. d.a += 3;
23. System.out.println(Demo.a+", "+d.a+", "+e.a);
24. }
25.}
Struktur Program Java :
kata kunci final
Variabel final
◦ Tidak dapat diubah setelah nilainya diset
◦ contoh:
final int data = 10;
data++;
Struktur Program Java :
kata kunci final
Method final
◦ Tidak dapat di-override
◦ contoh:
final void myMethod() { //in a parent class
}
void myMethod() { //in a child class
}
Class final
◦ Tidak dapat diwariskan
◦ contoh:
final public class MyClass {}
class WrongClass extends MyClass {}
Struktur Program Java :
kata kunci final
1. class OuterClass {
2. int data = 5;
3. class InnerClass {
4. int data2 = 10;
5. void method() {
6. System.out.println(data);
7. System.out.println(data2);
8. }
9. }
10.//continued...
Struktur Program Java :
Inner Classes
Konsep Object-Oriented
◦ Desain Object-Oriented
◦ Class
◦ Object
◦ Attribut
−
Package
◦ Method
◦ Konstruktor
−
Enkapsulasi
−
Abstraksi
−
Pewarisan
−
Polymorfisme
−
Interface
Kesimpulan
Struktur Program Java
◦ Mendeklarasikan class Java
◦ Mendeklarasikan Attribut
◦ Mendeklarasikan Metode −
Pewarisan
◦ Mendeklarasikan konstruktor
◦ Meng-instansiasi sebuah class
◦ Mengakses anggota object
−
Method Overriding
◦ Package
◦ Access Modifier
◦ Enkapsulasi
−
Class abstract dan method
−
Interface
−
Kata kunci this
−
Kata kunci super
−
Kata kunci static
−
Kata kunci final
−
Inner Classes