Tugas Pertemuan 2 Pemrograman Berbasis Objek (PBO) A 2024

 Nama : Amadeo Yesa

NRP : 5025231160

Kelas : A

Tahun : 2024


Pada pertemuan 2, telah diperkenalkan Pemrograman Berorientasi Objek (PBO) atau Object Oriented Programming (OOP). Object Oriented Programming sendiri memiliki konsep-konsep yang menyusunnya. Konsep-konsep tersebut adalah sebgaia berikut:

1. Class

Class adalah suatu data tipe yang didefinisikan oleh seorang programmer yang akan menjadi cetakan atau blueprint dari suatu object. Dalam class terdapat properties dan methods yang akan menjadi variabel-variabel dan fungsi-fungsi dari setiap object hasil instansiasi class tersebut. Sebagai contoh, diberikan suatu class car.

// Classes
class Vehicle {
    // Encapsulation
    private String mode;

    public Vehicle(String mode){
        this.mode = mode;
    }

    public String getMode(){
        return mode;
    }

    // Abstraction
    public void informationOut(){
        System.out.println("I move from one position to another through...");
    }
}

2. Object

Object adalah hasil instansiasi dari suatu class. Object merepresentasikan entitas nyata dari class pada run-time. Dalam OOP, object-object dapat berinteraksi dengan satu sama lain sehingga menghasilkan suatu program yang diinginkan. Sehubungan dengan contoh pada poin 1, apabila terdapat suatu class car, object-objectnya dapat berupa berbagai jenis mobil, seperti polo, mini, dan beetle.

public class Main {
    public static void main(String[] args){

        // Objects, Instantiation of Classes
        Vehicle boat = new Vehicle("Water");

    }
}


Visualisasi Class dan Object

https://medium.com/@ardi.nusawan13/class-in-oop-dry-principle-single-responsibility-principle-e3faacae2d04


3. Abstraction

Abstraction merupakan salah satu poin penting dalam OOP, dimana secara global, informasi-informasi spesifik dari suatu data (umumnya class) tidak sepenuhnya diketahui. Abstraksi atau abstraction ini berfungsi dalam OOP untuk menyembunyikan implementasi kompleks dan hanya menunjukkan fitur-fitur yang diperlukan dari suatu object.



4. Encapsulation

Encapsulation atau Enkapsulasi didefinisikan sebagai membungkus data dalam satu unit. Dalam hal ini, dalam OOP, data yang dimaksud adalah properties dan methods yang dibungkus dalam satu Class. Enkapsulasi memungkinkan data suatu class disembunyikan dari class lain kecuali dideklarasikan untuk satu data dapat dibagi dengan class lain.


https://www.digitalocean.com/community/tutorials/what-is-abstraction-in-oops


5. Inheritance

Inheritance merupakan salah satu pilar utama dalam OOP. Inheritance merupakan kapabilitas suatu class untuk menurunkan atau mewariskan karakteristiknya kepada class lain. Class yang mewariskan propertynya disebut parent dan yang menerima warisannya disebut dengan child. Dengan inheritance, kode dapat menjadi lebih sederhana dan dapat mengurangi redundancy.



6. Polymorphism

Polymorphism memiliki arti banyak bentuk. Polymorphism menggambarkan situasi dimana suatu method dapat digunakan untuk banyak kelas dengan implementasi yang berbeda-beda. Secara sederhana, method ini dapat mengambil banyak bentuk. 



7. Overloading

Overloading merupakan suatu konsep dimana suatu class dapat memiliki lebih dari satu method dengan nama yang sama namun dengan parameter berbeda. Dengan ini, method akan bergantung pada parameter yang diberikan dan akan menjalankan method yang sesuai. Konsep ini menghasilkan kode yang lebih sederhana dan mudah dimengerti.


https://www.geeksforgeeks.org/polymorphism-in-java/


Implementasi Abstraction, Encapsulation, Inheritance, Polymorphism, dan Overloading:

// Classes
class Vehicle {
    // Encapsulation
    private String mode;

    public Vehicle(String mode){
        this.mode = mode;
    }

    public String getMode(){
        return mode;
    }

    // Abstraction
    public void informationOut(){
        System.out.println("I move from one position to another through...");
    }
}

// Inheritance
class Car extends Vehicle {
    private String brand;

    public Car(String mode, String brand){
        super(mode);
        this.brand = brand;
    }

    public String getBrand(){
        return brand;
    }

    // Polymorphism
    @Override
    public void informationOut(){
        System.out.println("I move from one position to another through land");
    }

    // Overloading
    public void informationOut(String engine){
        System.out.println("I move from one position to another through land using " + engine + ".");
    }
}


Program Lengkap:

Source Code Github

Comments

Popular posts from this blog

Evaluasi Tengah Semester Pemrograman Berbasis Objek (PBO) A 2024

Tugas Pertemuan 7 Pemrograman Berbasis Objek (PBO) A 2024

Evaluasi Akhir Semester Pemrograman Berbasis Objek (PBO) A 2024