Anda di halaman 1dari 9

More On Classes

5.1 Object-Oriented Programming

Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu


proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh
program lain.
Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar
dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut. Ada 4 konsep inti
dalam OOP: enkapsulasi, pewarisan, polimorfisme, dan abstraksi.
Ide dibalik enkapsulasi adalah untuk memastikan bahwa detail implementasi tidak
terlihat oleh pengguna.Contoh:
class BankAccount {
private double balance=0;
public void deposit(double x) {
if(x > 0) {
balance += x;
}
}
}
enkapsulasi memberikan manfaat sebagai berikut:
- Kontrol cara data diakses atau diubah
- Lebih fleksibel dan mudah diubah kode
- Kemampuan untuk mengubah satu bagian dari kode tanpa mempengaruhi bagian lain

5.2 Object-Oriented Programming

Class dapat didefinisikan dengan referensi pada class yang lain yang telah terdefinisi.
Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh
dari class yang telah terdefinisikan tersebut. Class yang diwarisi class yang lain di sebut
dengan subclass, sedangkan class mewarisi disebut dengan superclass.

Salah satu keuntungan dari inheritance adalah Subclass dari merubah atau
memodifikasi apa yang telah diwariskan oleh Superclass. Untuk mewarisi dari kelas,
gunakan kata kunci perluasan.
Contoh ini menunjukkan bagaimana cara kelas Anjing mewarisi dari kelas Hewan.

class Dog extends Animal {


// some code
}
4.1 Method

Ketika satu kelas diwarisi dari kelas lain, ia mewarisi semua variabel dan metode non-
pribadi superclass.
Contoh:
class Animal {
protected int legs;
public void eat() {
System.out.println("Animal eats");
}
}
class Dog extends Animal {
Dog() {
legs = 4;
}
}

Kami sekarang dapat mendeklarasikan objek Dog dan memanggil metode makan
superclass-nya:

class MyClass {
public static void main(String[ ] args) {
Dog d = new Dog();
d.eat();
}
}

4.2 The Return Type

konstruktor dari superclass disebut ketika subclass yang dipakai.Contoh: class A {


public A() {
System.out.println("New A");
}
}
class B extends A {
public B() {
System.out.println("New B");
}
}
class Program {
public static void main(String[ ] args) {
B obj = new B();
}
}
/*Outputs
"New A"
"New B"
*/
4.3 Creating Classes

Dalam kamus pemrograman polymorphism mengacu pada prinsip dalam biologi di


mana suatu organisme atau spesies dapat memiliki banyak bentuk atau tahapan yang
berbeda. Prinsip ini juga dapat diterapkan untuk pemrograman dan bahasa seperti
bahasa Java berorientasi objek. Subclass kelas dapat menentukan perilaku mereka
sendiri yang unik dan belum berbagi beberapa fungsi yang sama dari kelas induk.
Panggilan ke metode anggota akan menyebabkan implementasi yang berbeda
dijalankan, tergantung pada jenis objek yang memohon metode.
Berikut ini contohnya: Anjing dan Kucing adalah kelas yang mewarisi dari kelas
Hewan.

class Animal {
public void makeSound() {
System.out.println("Grr...");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("Meow");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("Woof");
}
}

Karena semua objek Kucing dan Anjing adalah objek Hewan, kita dapat melakukan hal
berikut:

public static void main(String[ ] args) {


Animal a = new Dog();
Animal b = new Cat();
}

Kami telah membuat dua variabel referensi jenis Hewan, dan mengarahkan mereka ke
objek Kucing dan Anjing.
Sekarang, kita bisa memanggil metode makeSound ().

a.makeSound();
//Outputs "Woof"

b.makeSound();
//Outputs "Meow"
4.4 Class Attributes

Defining Attributes atau mendifinisikan atribut, sebuah bahasa pemrograman class


memiliki metode dan atribut, atribut pada dasarnya adalah variable dalam suatu kelas.
Kita dapat membuat beberapa objek dari class missal “new Vehicle” dalam pembuatan
class tersebut harus menggunakan sintaks titik untuk mengakses atribut dan metode
objek tersebut, contoh;
class MyClass {
public static void main(String[ ] args) {
Vehicle v1 = new Vehicle();
Vehicle v2 = new Vehicle();
v1.color = "red";
v2.horn();
}
}
Kode diatas menggunakan sintaks titik untuk mengakses atribut dan metode pada objek.

4.5 Access Modifiers

Acces Modifiers atau Akses pengubah adalah metode yang digunakan untuk mengubah
objek yang bersifat public atau default. Untuk kata kunci public didepan metode utama
atau main yaitu; public static void main
(String [] args)
Public adalah pengubah akses yang berarti bahwa itu digunakan untuk mengatur tingkat
akses, dapat digunakan untuk mengubah akses untuk kelas, atribut dan metode. Untuk
class, pengubah yang tersedia bersifat public dan default.
Public : kelas dapat diakses oleh kelas lain atau kelas manapun.
Default : Kelas hanya dapat diakses oleh kelas dalam paket yang sama.
Sedangkan untuk atribut dan metode adalah sebagai berikut.
Default : Suatu variabel atau metode yang dideklarasikan tanpa pengontrolan
akses tidak tersedia untuk kelas lain dalam paket yang sama.
publik : Dapat diakses dari kelas lain mana saja.
protected : Menyediakan akses yang sama sebagai pengubah akses default,
dengan
penambahan subclass yang dapat mengakses metode yang dilindungi
dan variabel superclass (Subclass dan superclasses tercakup dalam
pelajaran yang akan datang).
4.6 Getters And Setters

Digunakan untuk melindungi data secara efektif dan aman, terutama saat membuat
sebuag class. Untuk setiap variable metode getters mengembalikan nilainya sedangkan
metode setters menetapkan nilainya. Penggunaan metode getters dimulai dengan get
kemudian diikuti nama variable diambil dari huruf pertama variable yang dikapitalisasi,
sedangkan metode setters dimulai dengan set, diikuti oleh nama variable dengan huruf
pertama variable yang di kapitalisasi. Berikut adalah contoh penggunaan metode
Getters dan Setters.
public class Vehicle {
private String color;
// Getter
public String getColor() {
return color;
}

// Setter
public void setColor(String c) {
this.color = c;
}
}
dari kode diatas dapat dinyatakan bahwa, metode pengambil atau Getters
mengembalikan nilai atribut. Metode Setters mengambil parameter dan menugaskanya
ke atribut. Kata kunci tersebut digunakan untuk merujuk pada objek yang sedang
dijalankan, pada dasarnya color adalah atribut warna dari objek. Getters dan setter
memungkinkan kita untuk mengendalikan nilai-nilai. Anda dapat, misalnya,
memvalidasi nilai yang diberikan di setter sebelum benar-benar mengatur nilai.
4.7 Constructors

Konstruktur adalah sebuah metode khusus yang digunakan ketika suatu objek dibuat,
metode ini dapat memberikan nilai awal untuk atribut objek. Kontrukstur dipanggil
ketika membuat objek yang menggunakan kata kunci baru seperti public class Myclass.
Satu kelas dapat memiliki beberapa konstruktur dengan jumlah parameter yang
berbeda, dan metode setters dapat digunakan didalam konstruktur untuk mengatur nilai
atribut.
Java secara otomatis menyediakan konstruktur default, jadi semua kelas memiliki
konstruktur yang default.

4.8 Value Types

Value Types atau tipe nilai adalah jenis nilai yang termasuk kedalam byte, short, int,
long, float, double, Boolean, dan char. Tipe-tipe data ini menyimpan nilai-nilai yang
diberikan kepada tipe nilai dilokasi memory yang sesuai. Jadi, ketika meneruskan
kemetode pada dasarnya beroperasi pada nilai variable, bukan nilai variable itu sendiri.
Reference Types jenis tipe ini menyimpan referensi atau alamat kelokasi memori
dimana data yang sesuai disimpan. Contoh variable referensi pertimbangan untuk
memiliki class;
public class MyClass {
public static void main(String[ ] args) {
Person j;
j = new Person("John");
j.setAge(20);
celebrateBirthday(j);
System.out.println(j.getAge());
}
static void celebrateBirthday(Person p) {
p.setAge(p.getAge() + 1);
}
}
//Outputs "21"

Metode celebrateBirthday mengambil objek Person sebagai parameternya, dan


menambahkan atributnya. Karena j adalah tipe referensi, metode mempengaruhi objek
itu sendiri, dan mampu mengubah nilai sebenarnya dari atributnya. Array dan String
juga merupakan tipe data referensi.
4.9 The Math Class

Class math menyediakan metode yang telah ditentukan oleh operasi matematika, tanpa
harus membuat objek dari kelas math untuk menggunakanya, jadi untuk mengaksesnya
ketikan saja matematika dan metode yang sesuai, contoh;
Math.abs() returns the absolute value of its parameter.
int a = Math.abs(10); // 10
int b = Math.abs(-20); // 20
Math.ceil () membulatkan nilai floating point ke nilai integer terdekat. Nilai bulat
dikembalikan sebagai dobel.
double c = Math.ceil (7.342); // 8.0
Demikian pula, Math.floor () membulatkan nilai floating point ke nilai integer terdekat.
double f = Math.floor (7.343); // 7.0
Math.max () mengembalikan yang terbesar dari parameternya.
int m = Math.max (10, 20); // 20
4.10 Static

Metode statis digunakan untuk mendeklarasikan variable dan digunakan sebagai class
bukan instance tertentu, missal, jika kita membuat beberapa objek dari class atau tidak
membuat apapun, berarti itu akan dibagi oleh semua objek, contoh.
public class Counter {
public static int COUNT=0;
Counter() {
COUNT++;
}
}
Variabel COUNT akan dibagikan oleh semua objek dari kelas itu. Contoh lain dari
metode statis adalah dari kelas Matematika, yang mengapa Anda dapat memanggil
mereka tanpa membuat objek Math. Juga, metode utama harus selalu statis.

4.11 Final

Final adalah kata kunci untuk menandai variable konstan, sehingga hanya dapat
ditetapkan sekali. Contoh;
class MyClass {
4.12 Packages

Packages atau paket digunakan untuk menghindari konflik nama dan mengontrol akses
ke kelas. Paket dapat didefinisikan sebagai grup yang terdiri dari jenis kelas yang
serupa, bersama dengan sub-paket. Membuat paket di Java cukup mudah. Yaitu dengan
cara klik kanan pada direktori src Anda dan klik New-> Package. Berikan nama paket
Anda dan klik Selesai. Setelah membuat paket baru kita dapat memindahkan, membuat
kelas dari paket tersebut, berikut adalah contoh yang menggunakan class ”new
Vehicle”;

class MyClass {
public static void main(String[ ] args) {
Vehicle v1 = new Vehicle();
v1.horn();
}
}

Dua hasil utama terjadi ketika kelas ditempatkan dalam sebuah paket. Pertama, nama
paket menjadi bagian dari nama kelas. Kedua, nama paket harus sesuai dengan struktur
direktori tempat file kelas yang sesuai berada. Gunakan wildcard untuk mengimpor
semua kelas dalam satu paket.

Anda mungkin juga menyukai