Download - Review Konsep Dasar Java
Pengenalan Pemrograman 2
Versi 2.0
ReviewReviewKonsep Dasar JavaKonsep Dasar Java
Topik
Konsep Object-Oriented
Struktur Program Java
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
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
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
1 public class AttributeDemo {2 private String studNum;3 public boolean graduating = false; 4 protected float unitsTaken = 0.0f;5 String college;6 }
Struktur Program Java : Deklarasi Method
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.
Konstruktor secara default◦ Tidak mempunyai argumen◦ Tidak memiliki isi
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 }
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());
◦ int intArr = {1, 2, 3, 4, 5};◦ //Access length attribute◦ System.out.println(“Length: ” + intArr.length);
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 }
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>+
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
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.}
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
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.}
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!
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...
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
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
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...
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.}
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 */◦ }
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
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
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
Struktur Program Java : Interface
Sintaks:◦ <interfaceDeclaration> ::=◦ <modifier> interface <name> {◦ <attributeDeclaration>*◦ [<modifier> <returnType> <name>
(<parameter>*);]*◦ }
Anggotanya adalah public ketika interface dideklarasikan sebagai public
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
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...
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.}
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
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.}
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. }
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
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. }
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
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...
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.}
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
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
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 block7. 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
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++;
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
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
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
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
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
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
Kesimpulan
Konsep Object-Oriented ◦ Desain Object-Oriented◦ Class◦ Object◦ Attribut◦ Method◦ Konstruktor
Package Enkapsulasi Abstraksi Pewarisan Polymorfisme Interface
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