Top Banner
Pengenalan Pemrograman 2 Versi 2.0 Review Review Konsep Dasar Java Konsep Dasar Java
62
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: Jeni   konsep oop

Pengenalan Pemrograman 2

Versi 2.0

ReviewReviewKonsep Dasar JavaKonsep Dasar Java

Page 2: Jeni   konsep oop

Topik

Konsep Object-Oriented

Struktur Program Java

Page 3: Jeni   konsep oop

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

Page 4: Jeni   konsep oop

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

Page 5: Jeni   konsep oop

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

Page 6: Jeni   konsep oop

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

Page 7: Jeni   konsep oop

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

Page 8: Jeni   konsep oop

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

Page 9: Jeni   konsep oop

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

Page 10: Jeni   konsep oop

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 }

Page 11: Jeni   konsep oop

Struktur Program Java : Deklarasi Attribut

Sintaks:◦ <attributeDeclaration> ::=◦ <modifier> <type> <name> [= <default_value>];

◦ <type> ::=◦ byte | short | int | long | char | float | double | boolean | <class>

Page 12: Jeni   konsep oop

Struktur Program Java : Deklarasi Attribut

1 public class AttributeDemo {2 private String studNum;3 public boolean graduating = false; 4 protected float unitsTaken = 0.0f;5 String college;6 }

Page 13: Jeni   konsep oop

Struktur Program Java : Deklarasi Method

Sintaks:◦ <methodDeclaration> ::=◦ <modifier> <returnType> <name>(<parameter>*) {◦ <statement>*◦ }◦ <parameter> ::=◦ <parameter_type> <parameter_name>[,]

Page 14: Jeni   konsep oop

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}

Page 15: Jeni   konsep oop

Struktur Program Java : Deklarasi Konstruktor

Sintaks:◦ <constructorDeclaration> ::=◦ <modifier> <className> (<parameter>*) {◦ <statement>*◦ }◦ dimana◦ Modifier

Dapat berupa beberapa acces modifier tetapi bukan tipe modifier lainnya.

Konstruktor secara default◦ Tidak mempunyai argumen◦ Tidak memiliki isi

Page 16: Jeni   konsep oop

Struktur Program Java : Deklarasi Method

1 class ConstructorDemo {2 private int data;3 public ConstructorDemo() {4 data = 100;5 }6 ConstructorDemo(int data) {7 this.data = data;8 }9 }

Page 17: Jeni   konsep oop

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.}

Page 18: Jeni   konsep oop

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

◦ int intArr = {1, 2, 3, 4, 5};

◦ //Access length attribute

◦ System.out.println(“Length: ” + intArr.length);

Page 19: Jeni   konsep oop

Struktur Program Java : Mengakses Anggota Object

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 data13 }14 }

Page 20: Jeni   konsep oop

Struktur Program Java : Package

Sintaks untuk indikasi bahwa kode dimiliki oleh sebuah package:◦ <packageDeclaration> ::=◦ package <packageName>;

Sintaks untuk mengimpor package lainnya:◦ <importDeclaration> ::=◦ import <packageName.elementAccessed>;

Format Source code:◦ [<packageDeclaration>]◦ <importDeclaration>*◦ <classDeclaration>+

Page 21: Jeni   konsep oop

Struktur Program Java : Package

1 package registration.reports;2 import registration.processing.*;3 import java.util.List;4 import java.lang.*; //imported by default5 class MyClass {6 /* details of MyClass */7 }

Page 22: Jeni   konsep oop

Struktur Program Java : Access Modifier

Page 23: Jeni   konsep oop

Struktur Program Java : Enkapsulasi

Menyembunyikan anggota dengan membuatnya private Contoh

1. class Encapsulation {2. private int secret;3. public boolean setSecret(int secret) {4. if (secret < 1 || secret > 100)5. return false;6. this.secret = secret;7. return true;8. }9. public getSecret() {10. return secret;11. }12.}

Page 24: Jeni   konsep oop

Struktur Program Java : Pewarisan

Membuat class anak atau subkelas:◦ Menggunakan extends dalam mendeklarasikan

class◦ Sintaks:

class <childClassName> extends <parentClassName>

Sebuah class hanya dapat meng-extend satu class induk

Page 25: Jeni   konsep oop

Struktur Program Java : Pewarisan

1.import java.awt.*;

2.class Point {3. int x;4. int y;5.}

6.class ColoredPoint extends Point {7. Color color;8.}

Page 26: Jeni   konsep oop

Struktur Program Java : Method Overriding

subclass mendefinisikan method yang bertanda serupa ke method dalam superclass

Tanda pada sebuah method◦ informasi yang ditemukan dalam definisi

method bagian atas Return type Nama method Daftar Parameter pada method

Berbeda dengan method overloading!

Page 27: Jeni   konsep oop

Struktur Program Java : Method Overriding

1. class Superclass {2. void display(int n) {3. System.out.println("super: " + n);4. }5. }

6. class Subclass extends Superclass {7. void display(int k) {8. System.out.println("sub: " + k);9. }10.}

11.// continued...

Page 28: Jeni   konsep oop

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.}

Page 29: Jeni   konsep oop

Struktur Program Java : Method Overriding

Pemanggilan method◦ Ditentukan oleh tipe data sebenarnya dari object

yang diminta method

Access modifier untuk method yang dibutuhkan tidak harus sama ◦ Access modifier pada method overriding

Access modifier yang sama seperti pada method overridden

Access modifier lebih luas

Page 30: Jeni   konsep oop

Struktur Program Java : Method Overriding

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...

Page 31: Jeni   konsep oop

Struktur Program Java : Method Overriding

14./* class Superclass {15. void overriddenMethod() {16. }17.} */18.class Subclass3 extends Superclass {19. protected void overriddenMethod() {20. }21.}22.class Subclass4 extends Superclass {23. private void overriddenMethod() {24. }25.}

Page 32: Jeni   konsep oop

Struktur Program Java : class abstract dan method

Sintaks:◦ abstract <modifier> <returnType> <name>(<parameter>*);

Sebuah class yang berisi method abstract harus dideklarasikan sebagai sebuah class abstract.◦ abstract class <name> {◦ /* constructors, fields and methods */◦ }

Page 33: Jeni   konsep oop

Struktur Program Java : class abstract dan method

Kata kunci abstract tidak dapat digunakan pada :◦ konstruktor◦ Method static

class abstract tidak dapat diinstansiasi

Class yang meng-extends sebuah class abstract :◦ harus mengimplementasikan semua method abstract ◦ Sebaliknya, subclass sendiri harus dideklarasikan

sebagai abstract

Page 34: Jeni   konsep oop

1. abstract 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. abstract void displayPower();12.}13.//continued...

Struktur Program Java : class abstract dan method

Page 35: Jeni   konsep oop

1. class FlyingSuperHero extends SuperHero {2. void displayPower() {3. System.out.println("Fly...");4. }5. }

6. class Spiderman extends SuperHero {7. void displayPower() {8. System.out.println("Communicate with sea" +9. " creatures...");10. System.out.println("Fast swimming ability...");11. }12.}

Struktur Program Java : class abstract dan method

Page 36: Jeni   konsep oop

Struktur Program Java : Interface

Sintaks:◦ <interfaceDeclaration> ::=◦ <modifier> interface <name> {◦ <attributeDeclaration>*◦ [<modifier> <returnType> <name>

(<parameter>*);]*◦ }

Anggotanya adalah public ketika interface dideklarasikan sebagai public

Page 37: Jeni   konsep oop

Struktur Program Java : Interface

Attribut Interface:◦ Secara implisit static dan final ◦ Harus diinisialisasi

Modifier:◦ Access modifiers: public, package◦ Harus diinisialisasi

Mengimplementasikan sebuah interface:◦ Menggunakan kata kunci implements◦ Harus mengimplementasikan semua method interface◦ Sebuah class boleh mengimplementasikan lebih dari satu

interface

Page 38: Jeni   konsep oop

Struktur Program Java : Interface

1. interface MyInterface {2. void iMethod();3. }

4. class MyClass1 implements MyInterface {5. public void iMethod() {6. System.out.println("Interface method.");7. }8. void myMethod() {9. System.out.println("Another method.");10. }11.}12.//continued...

Page 39: Jeni   konsep oop

Struktur Program Java : Interface

14.class MyClass2 implements MyInterface {15. public void iMethod() {16. System.out.println("Another implementation.");17. }18.}19.class InterfaceDemo {20. public static void main(String args[]) {21. MyClass1 mc1 = new MyClass1();22. MyClass2 mc2 = new MyClass2();23. mc1.iMethod();24. mc1.myMethod();25. mc2.iMethod();26. }27.}

Page 40: Jeni   konsep oop

Struktur Program Java : kata kunci this

mengapa this?1. Agar tidak ambigu antara attribut lokal dan

variabel lokal2. Menunjuk pada object yang meminta

method non-static3. Menunjuk pada konstruktor lain

Page 41: Jeni   konsep oop

Struktur Program Java : kata kunci this

1. Agar tidak ambigu antara attribut lokal dan variabel lokal1. class ThisDemo1 {2. int data;3. void method(int data) {4. this.data = data;5. /* 6. this.data refers to the attribute 7. while data refers to the local variable 8. */9. }10.}

Page 42: Jeni   konsep oop

Struktur Program Java : kata kunci this

1. Menunjuk pada object yang meminta method non-static1. class ThisDemo2 {2. int data;3. void method() {4. System.out.println(data); //this.data5. }6. void method2() {7. method(); //this.method();8. }9. }

Page 43: Jeni   konsep oop

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

Page 44: Jeni   konsep oop

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.}

Page 45: Jeni   konsep oop

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

Memanggil konstruktor superclass1. class Person {2. String firstName;3. String lastName;4. Person(String fname, String lname) {5. firstName = fname;6. lastName = lname;7. }8. }

Page 46: Jeni   konsep oop

Struktur Program Java : kata kunci super

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

Page 47: Jeni   konsep oop

Struktur Program Java : kata kunci super

Menunjuk anggota superclass 1.class Superclass{2. int a;3. void display_a(){4. System.out.println("a = " + a);5. }6.}

7.//continued...

Page 48: Jeni   konsep oop

Struktur Program Java : kata kunci super

9. class Subclass extends Superclass {10. int a;11. void display_a(){12. System.out.println("a = " + a);13. }14. void set_super_a(int n){15. super.a = n;16. }17. void display_super_a(){18. super.display_a();19. }20.}

Page 49: Jeni   konsep oop

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.}

Page 50: Jeni   konsep oop

Struktur Program Java : kata kunci static

Digunakan untuk anggota dari sebuah class :◦ attribut◦ Method◦ Inner class

Mengijinkan untuk mengakses static atau anggota class tanpa instansiasi

Variabel class◦ Bersifat seperti variabel global◦ Dapat diakses oleh semua instance dari kelas

Page 51: Jeni   konsep oop

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

Page 52: Jeni   konsep oop

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 block7. System.out.println("static block");8. a += 1;9. }10.}

11.//continued...

Page 53: Jeni   konsep oop

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.}

Page 54: Jeni   konsep oop

Struktur Program Java : kata kunci final

Dapat diaplikasikan pada variabel, method dan class Dibatasi apa yang kita dapat lakukan dengan

variabel, method dan class.

Variabel final◦ Tidak dapat diubah setelah nilainya diset◦ contoh:

final int data = 10; data++;

Page 55: Jeni   konsep oop

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 {}

Page 56: Jeni   konsep oop

Struktur Program Java : kata kunci final

Kata kunci dapat diletakkan sebelum setelah modifier lain◦ public final static void meth() {} or◦ final public static void meth() {} or ...

◦ //order of modifiers is not important

Page 57: Jeni   konsep oop

Struktur Program Java :Inner Classes

Dideklarasikan dalam class lain

Mengakses anggota dari inner class :◦ Membutuhkan sebuah instance dari inner class ◦ Example:

innerObj.innerMember = 5; //innerObj is an instance of the inner class

//innerMember is a member of the inner class

Page 58: Jeni   konsep oop

Method-method dari inner class dapat secara langsung mengakses anggota dari outer class contoh:

1.class Out {2. int OutData;3. class In {4. void inMeth() {5. OutData = 10;6. }7. }8.}

Struktur Program Java :Inner Classes

Page 59: Jeni   konsep oop

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

Page 60: Jeni   konsep oop

9. public static void main(String args[]) {10. OuterClass oc = new OuterClass();11. InnerClass ic = oc.new InnerClass();12. System.out.println(oc.data);13. System.out.println(ic.data2);14. ic.method();15. }16.}

Struktur Program Java :Inner Classes

Page 61: Jeni   konsep oop

Kesimpulan

Konsep Object-Oriented ◦ Desain Object-Oriented

◦ Class

◦ Object

◦ Attribut

◦ Method

◦ Konstruktor

− Package− Enkapsulasi− Abstraksi− Pewarisan− Polymorfisme− Interface

Page 62: Jeni   konsep oop

Kesimpulan

Struktur Program Java ◦ Mendeklarasikan class Java ◦ Mendeklarasikan Attribut◦ Mendeklarasikan Metode◦ Mendeklarasikan konstruktor◦ Meng-instansiasi sebuah class◦ Mengakses anggota object◦ Package◦ Access Modifier◦ Enkapsulasi

− Pewarisan

− Method Overriding

− Class abstract dan method

− Interface

− Kata kunci this

− Kata kunci super

− Kata kunci static

− Kata kunci final

− Inner Classes