Class,
&
Methods
AJI SETO ARIFIANTO
Tujuan
Memahami tentang classes, methods
dan instance variables.
Mampu memahami beberapa contoh
kode program tentang class dan method
Class
Class merupakan struktur dasar dari OOP
sebagai prototipe/blue prints
Class mendefinisikan karakteristik (atribut) dan
aksi (method) yang dimiliki object.
Class menyediakan keuntungan berupa
reusability.
Class
Pencetak kue class
Dapat digunakan berkali-kali untuk
mencetak kue.
Kue object
Sebuah class dapat menghasilkan
banyak object
Dari 1 cetakan dapat dibuat banyak kukis
dengan berbagai macam hiasan, namun
kukis- kukis tersebut tetap memiliki
bentuk yang sama.
Class Hierarchy
Class Hierarchy adalah struktur kelas dengan akar dan elemen lainnya diatur
sedemikian rupa sehingga masing-masing kelas mempunyai satu cabang yang
menghubungkannya dengan kelas akar (root class). Dalam java, root
class/superclass.
1. Setiap kelas adalah turunan dari root class/superclass.
2. Setiap kelas memiliki satu superclass yang tepat. (kecuali kelas Object)
3. Setiap kelas mempunyai satu superclass, tetapi beberapa subclass bisa
memiliki superclass yang sama
Contoh Class Hierarchy
Contoh :
Class Hierarchy of
Biology
Classification :
Pengertian Generalization
Mencari persamaan dari beberapa subclass yang kemudian
digabungkan / didefinisasikan kedalam suatu superclass baru,
begitu seterusnya hingga terbentuknya klas tertinggi dari
kumpulan subclass tersebut.
Generalisasi dapat berlangsung dalam beberapa tahap, yang
memungkinkan dalam membuat model hirarki warisan bertingkat
kompleks. Dengan kata lain, dapat menggunakan generalisasi
untuk memodelkan spesialisasi konsep yang lebih umum.
Contoh Generalization
Pengertian Specialization
Specializationmerupakan proses yang
memperhatikan perbedaan setiap anggota dari
sebuah entitas sehingga anggota dari sebuah
entitas bisa dikelompokkan ke dalam kelompok
yang lebih kecil.
Contoh Specialization
Class – Biped
Memiliki Attribute
dan Behaviour
Jika kita Klik, maka
akan masuk kedalam
pilihan subClass
Contoh SubClass:
Elder()
Adult()
Teen()
Abstract Class
Abstract class adalah kelas yang mempunyai setidaknya
satu abstract method.
Abstract method adalah method yang tidak memiliki body
(hanya deklarasi method).
Abstract class tidak bisa dideklarasi menjadi obyek (tidak
bisa di-instansiasi).
Obyek hanya bisa dibuat dari non-abstract class (concrete
class).
Abstract Class
Konsekuensinya, suatu abstract class haruslah diturunkan
sebagai implementasi dari abstract method yang ada di super
class-nya.
Abstract class digunakan di dalam inheritance (pewarisan
class) untuk ‘memaksakan’ implementasi method yang sama
bagi seluruh class yang diturunkan dari abstract class. Abstract
class digunakan untuk membuat struktur logika penurunan di
dalam pemrograman objek.
Contoh abstract class
Pada gambar, abstract method tidak memerlukan body/inisialisasi pada
fungsi/variabel.
Tujuan membuat
abstrak class adalah
agar satu kelas lain
dapat memperluasnya
(extend) dengan
menjadi subclass
darinya.
Mengenai konsep
abstract class dapat
diilustrasikan seperti
gambar di bawah ini :
Kode Program – Abstract Class
public abstract class Animal { public int getLeg(){
private String color; return leg;
private int leg; }
public void setLeg(int leg){
public String getColor(){ [Link] = leg;
return color; }
} //Method abstrak
public void setColor(String color){ public abstract void walk();
[Link] = color; public abstract void sound();
} }
Implementasi – Abstract Class
public class bird extends Animal{ //implement abstact method
public bird (String color, int leg){ public void walk() {
setColor(color); [Link]("Bird
have 2 legs");
setLeg(leg);
}
[Link]("Color : " + public void sound() {
getColor());
[Link]("ciiiit
[Link]("Leg : " + ciiit");
getLeg());
}
}
}
Main Class
Output
public class print {
Color : white
public static void main(String[] Leg : 2 Bird have
args) { 2 legs
ciiiit ciiit
bird b = new bird("white", 2);
[Link]();
[Link]();
}
}
Concrete Class
Mendefinisikan class yang nyata.
Dapat membentuk atau di-instansiasi menjadi object.
Dapat menurunkan implementasi dari super class.
Dapat sebagai base class pada hierarchical relationship
dan membutuhkan class lain untuk mewarisinya.
Abstract Class VS Concrete Class
Abstract Class : Tidak bisa diinstansiasi menjadi
objek. Kecuali setelah diturunkan dulu.
Concrete Class : Class yang bisa langsung
diinstansiasi menjadi objek
Bentuk Umum Class
[modifier] class <nama_kelas>
{
<class body>
}
Access Modifiers
Instance Variable (Atribut)
Atribut yang membedakan suatu instance objek yang satu dengan yang lainnya
disebut instance variable.
Bentuk Umum :
[modifier] <tipe_data> <nama_variabel> = [nilai_default];
Contoh :
public double tinggi;
private int berat = 70;
Static Class
Pada Java, karakteristik dari class yang TIDAK di-
shared dengan object-nya disebut static.
Hanya ada satu class, jadi ketika program berjalan, jika
ada sesuatu bertipe static maka hanya ada satu saja.
"no matter how many objects have been made,
there is only one of these"
Class Variabel
Class Variabel merupakan
variabel milik dari seluruh class
Variabel ini memiliki nilai yang
sama untuk semua object
pada class yang sama
Variabel ini juga disebut
static member variables
Method
Method adalah Bagian-bagian kode yang dapat dipanggil oleh kelas,
badan program atau method lainnya untuk menjalankan fungsi yang
spesifik di dalam kelas.
Karakteristik
Dapat mengembalikan / melaporkan nilai balikkan (return value) atau tidak
(void).
Dapat diterima beberapa parameter yang dibutuhkan atau tidak ada
parameter sama sekali. Parameter berguna sebagai nilai masukkan yang
hendak diolah oleh fungsi.
Setelah method telah selesai dieksekusi, dia akan kembali pada method
yang memanggilnya.
Keuntungan Method
a. Program lebih mudah dibaca dan mudah untuk dipelihara
b. Proses pengembangan dan perawatan (maintenance ) menjadi lebih
cepat.
c. Dasar untuk membuat software yang reusable.
d. Memungkinkan obyek-obyek yang berbeda berkomunikasi dan
mendistribusikan beban kerja yang dipikul oleh program.
Mendefinisikan Method
[modifiers] return_type method_identifier ([ arguments ]) {
method_code_block;
}
Contoh :
public int Perkalian ( int y;int z )
{
return y * z ;
}
return_type adalah tipe nilai yang akan dikembalikan oleh method yang
akan digunakan pada bagian lain dari program. Return_type pada method
sama dengan tipe data pada variabel. Return_type dapat merupakan tipe
data primitif maupun tipe data referensi.
method_identifier adalah nama method.
([arguments]), merepresentasikan sebuah daftar variabel yang nilainya
dilewatkan / dimasukkan ke method untuk digunakan oleh method. Bagian ini
dapat tidak diisi, dan dapat pula diisi dengan banyak variabel.
method_code_block, adalah rangkaian pernyataan / statements yang
dibawa oleh method.
Method without return value Method ini merupakan method yang
tidak mengembalikan nilai. Maka dari itu, kita harus mengganti tipe
kembalian dengan kata kunci void.
Method with return value Method ini berguna untuk melakukan suatu
proses yang memerlukan nilai kembalian. Method ini wajib
didefinisikandengan tipe data dari nilai yang akan dikembalikan.
Method Static Sebuah method static dapat diakses tanpa harus
melakukan instantiasi terlebih dahulu. Pemanggilan method static
dilakukan dengan format :
Nama_kelas.nama_method();
Latihan – Silahkan dicoba - pahami
Apakah kode diatas bisa di compile?
Output dari Program ini adalah?
Latihan – Silahkan dicoba - pahami
Output dari Program ini adalah? Output dari Program ini adalah?
Latihan – Silahkan dicoba - pahami
Apa yang terjadi jika program di run? Jika di compile, apakah Error atau tidak?
Latihan – Silahkan dicoba - pahami
Apa program bisa dicompile ? Apa outputnya?
Latihan – Silahkan dicoba - pahami
Variabel apa saja yang bisa diakses di baris 9 ?
Apa outputnya?
Latihan – Silahkan dicoba - pahami
Apa program bisa dicompile ?
Apa program bisa dicompile ?
Referensi ALICE3
Moving Individual Body Part
[Link]
Creating a Method
[Link]
ywZ440OmMec0WWu6jqdqCXMd8Td&index=7