Nama: Panca Rulian Effendi
NPM:2115061117
Kelas:PSTI-C
OOP (Object-Oriented Programming) atau Pemrograman Berorientasi Objek adalah sebuah paradigma atau gaya dalam pemrograman yang berfokus pada objek-objek dan interaksi antara objek-objek tersebut. Dalam OOP, sebuah program dianggap sebagai kumpulan objek yang saling berinteraksi untuk mencapai tujuan tertentu.
Tujuan utama dari Pemrograman Berorientasi Objek adalah untuk mempermudah pembuatan, pengembangan, dan pemeliharaan perangkat lunak dengan memandang program sebagai kumpulan objek yang saling berinteraksi. Dengan pendekatan ini, kompleksitas perangkat lunak dapat diatasi dengan membaginya menjadi objek-objek yang lebih kecil dan lebih terkelola.
KONSEP DASAR DALAM PBO
- Class: Tempat untuk membuat objek. Class mendefinisikan karakter atribut objek atau metode yang dapat dilakukan objek tersebut
- Objek: turunan dari kelas sebuah instance atau hasil dari pembuatan suatu kelas. Objek memiliki atribut dan metode yang didefinisikan oleh kelas dan dapat melakukan interaksi dengan objek lain.
- Encapsulation: konsep menyembunyikan detail internal suatu objek dari dunia luar dan hanya memungkinkan akses melalui metode publik yang ditentukan. Hal ini penting karena dengan cara ini, kita dapat menjaga data dan perilaku objek agar tidak terganggu oleh kode lain yang tidak terkait.
- Inheritance (pewarisan): mekanisme dalam OOP untuk merancang dua atau lebih entitas yang berbeda tetapi memiliki kesamaan fitur. Cara kerja inheritance adalah menggunakan kata “extends” diikuti kata induk (parent classs) yang akan diwarisi.
- Polymorphism: kemampuan suatu objek untuk memiliki banyak bentuk atau perilaku yang berbeda tergantung pada konteks penggunaannya. Contohnya, sebuah objek “Shape” dapat memiliki banyak bentuk yang berbeda seperti persegi, segitiga, atau lingkaran, tetapi tetap dapat dioperasikan dengan metode yang sama seperti “getArea()” atau “getPerimeter()”.
COUPLING DAN COHESION
Coupling dalam Pemrograman Berorientasi Objek mengacu pada tingkat ketergantungan antara objek satu dengan yang lain. Semakin besar ketergantungan antara objek-objek, semakin kuat coupling-nya. Sedangkan, Cohesion dalam Pemrograman Berorientasi Objek mengacu pada tingkat kohesi atau kesatuan fungsi antara elemen-elemen dalam suatu objek. Semakin terfokus dan spesifik fungsi-fungsi dalam suatu objek, semakin tinggi tingkat kohesinya.
ACCESS MODIFIER
- Private: member hanya dapat diakses oleh method yang sama pada class yang sama.
- Protected: member dapat diakses oleh method yang sama pada class yang sama dan subclass-nya.
- Public: member dapat diakses oleh method pada class yang sama, subclass-nya, dan class lain.
PERBEDAAN ABSTRACT CLASS DAN INTERFACE
Abstract class adalah sebuah class setengah jadi (abstrak) yang memuat/memiliki method dan atrribut. Abstract class sebenarnya adalah sebuah class, sehingga memiliki semua sifat dari class biasa (punya konstruktor). Hanya saja sifatnya masih abstrak, karena itu biasanya method kosong/belum di implementasikan. Namun Abstract class dapat mengimplementasikan method tersebut. Abstract class akan selalu menjadi superclass / hirarki tertinggi dari subclass-subclass-nya. Sedangkan
Interface adalah sebuah blok signature kumpulan method tanpa tubuh (konstan). Sebuah definisi method yang umum/general yang dapat menghubungkan class-class yang berbeda. Dengan kata lain, interface memungkinkan kita mengimplementasikan method yang sama terhadap class yang tidak ada hubungan sama sekali (tidak dalam satu hirarki). Oleh karena itu, interface bukanlah sebuah class, walaupun memiliki ciri yang serupa dengan abstract class.