Anda di halaman 1dari 6

Nama : George Michael Simbolon

Nim : 2281055

1. Pengenalan

OOP adalah singkatan dari Object Oriented Programming, yaitu suatu metode pemrograman yang
fokus atau berorientasi pada objek yang bertujuan untuk membantu para developer dalam
mengembangkan model yang sudah ada di kehidupan sehari-hari. Sehingga, satu bagian dari suatu
permasalah dalam program tersebut adalah objek. Objek itu juga merupakan komposisi dari
komponen-komponen objek yang lebih kecil lagi. OOP membantu dalam menciptakan perangkat
lunak yang lebih terstruktur, terorganisasi, mudah dimengerti, dan mudah dikelola. Ini penting
dalam pengembangan perangkat lunak karena meningkatkan produktivitas, memungkinkan
perawatan yang lebih baik, dan menghasilkan perangkat lunak yang lebih handal dan mudah diubah
sesuai kebutuhan.

2. Abstraksi (Abstraction)

Abstraksi dalam konteks Pemrograman Berorientasi Objek (OOP) adalah salah satu prinsip dasar
yang memungkinkan pengembang perangkat lunak untuk menyederhanakan dan mengisolasi fitur-
fitur penting dari objek di dunia nyata, dan menggambarkannya dalam bentuk kelas dan objek.
Abstraksi membantu pengembang untuk fokus pada aspek-aspek penting dari objek, sementara
menyembunyikan detail yang tidak diperlukan. Ini memungkinkan untuk menciptakan model-model
yang lebih terorganisir, mudah dimengerti, dan dapat diulang.

Cara abstraksi memungkinkan pengembangan perangkat lunak untuk memodelkan objek di dunia
nyata dalam bentuk kelas dan objek:
1. Identifikasi Konsep Dasar: Identifikasi konsep atau entitas dasar dalam dunia nyata yang ingin
Anda modelkan dalam perangkat lunak. Ini bisa berupa objek, entitas, atau konsep penting
lainnya.
2. Pilih Fitur Penting : Tentukan fitur-fitur atau karakteristik utama dari konsep tersebut yang perlu
dimodelkan. Abstraksi membantu dalam menyederhanakan objek dengan memilih fitur-fitur kunci
yang relevan untuk tujuan perangkat lunak.

3. Buat Kelas dan Objek : Buat kelas yang mencerminkan konsep tersebut. Kelas adalah panduan
untuk membuat objek yang mewakili instans dari konsep tersebut. Kelas ini berisi atribut (variabel)
dan metode (fungsi) yang merepresentasikan fitur-fitur penting dari objek tersebut.

4. Sembunyikan Detail : Abstraksi memungkinkan untuk menyembunyikan detail yang tidak relevan
atau terlalu kompleks dari pengguna kelas. Ini dilakukan dengan menggunakan hak akses (misalnya,
private, protected) dan konsep seperti "encapsulation."

5. Penggunaan Objek : Penggunaan objek yang dibuat dari kelas tersebut dalam aplikasi perangkat
lunak. Objek tersebut memungkinkan berinteraksi dengan objek-objek lain dalam program.

Contoh konkret dalam pemrograman menggunakan bahasa Java :


3. Enkapsulasi (Encapsulation)

PengertianEncapsulation pada OOP adalah konsep tentang pengikatan data atau metode berbeda
yang di satukan atau “dikapsulkan” menjadi satu unit data. Encapsulation dapat memudahkan dalam
pembacaan kode karena informasi yang di sajikan tidak perlu di baca secara rinci dan sudah
merupakan satu kesatuan. Encapsulation juga sering di gunakan karena terdapat fitur information-
hiding mechanism. Mekanisme ini menghilangkan akses publik ke atribut-atribut yang terdapat di
dalam “kapsul” tersebut. Metode ini dapat memudahkan kamu dalam mendefinisikan atribut apa
saja yang dapat di baca dan di perbarui.

Contoh implementasi enkapsulasi dalam bahasa pemrograman Java :


4. Pewarisan (Inheritance)

Prinsip inheritance pada OOP adalah di mana kita dapat membentuk class baru yang “mewarisi” atau
memiliki bagian-bagian dari class yang sudah ada sebelumnya. Konsep ini menggunakan sistem
hirarki atau bertingkat.

Berikut adalah cara pewarisan memungkinkan pengembang untuk membuat kelas baru berdasarkan
kelas yang sudah ada:

1. Mengambil Atribut dan Metode: Ketika Anda membuat kelas turunan, Anda dapat
menggambarkan kelas baru tersebut sebagai turunan dari kelas dasar. Ini berarti kelas
turunan akan memiliki semua atribut dan metode yang ada dalam kelas dasar.
2. Menambahkan Fungsi Tambahan: Anda dapat menambahkan atribut atau metode
tambahan ke kelas turunan sesuai kebutuhan. Dengan cara ini, Anda dapat memperluas
fungsionalitas kelas dasar dan menyesuaikannya dengan kebutuhan spesifik kelas turunan.

3. Mengubah Fungsi yang Ada: Anda juga dapat mengubah perilaku metode yang diwarisi
dari kelas dasar dalam kelas turunan. Dalam OOP, ini dikenal sebagai overriding, di mana
Anda mendefinisikan ulang metode dalam kelas turunan untuk menggantikan perilaku dari
kelas dasar.

Contoh penggunaan pewarisan dalam situasi dunia nyata adalah sebagai berikut:

Misalkan Anda memodelkan hierarki kelas untuk entitas kendaraan. Anda memiliki kelas dasar
"Kendaraan" yang memiliki atribut umum seperti nomor plat dan metode untuk memulai dan
berhenti kendaraan. Kemudian, Anda memiliki kelas turunan seperti "Mobil" dan "Sepeda Motor,"
yang mewarisi atribut dan metode dari kelas "Kendaraan."

Namun, setiap kelas turunan juga dapat menambahkan perilaku khusus yang unik untuk mereka
sendiri. Sebagai contoh, kelas "Mobil" dapat memiliki metode "bunyikanKlakson" yang tidak relevan
untuk kelas "Sepeda Motor," sementara kelas "Sepeda Motor" dapat memiliki metode
"aktivasiLampuMoto" yang tidak berlaku untuk kelas "Mobil." Dengan pewarisan, Anda dapat
mengelola hierarki kelas ini secara efisien dan menghindari duplikasi kode yang tidak perlu.

5. Polimorfisme (Polymorphism)

Polimorfisme adalah salah satu konsep penting dalam Pemrograman Berorientasi Objek (OOP) yang
memungkinkan objek untuk berperilaku dengan berbagai cara. Polimorfisme memungkinkan objek
dari kelas yang berbeda untuk merespons panggilan metode dengan cara yang sesuai dengan tipe
objek tersebut, bahkan jika metode tersebut memiliki nama yang sama.

Ada dua konsep utama dalam polimorfisme:

1. Overloading (Overloading Polimorfisme): Overloading adalah ketika Anda memiliki beberapa


metode dengan nama yang sama dalam suatu kelas, tetapi dengan parameter yang berbeda.
Dengan kata lain, Anda menggantikan metode yang sama dengan metode lain yang memiliki
tanda tangan yang berbeda (parameter yang berbeda). Saat pemanggilan metode,
pemrogram akan memilih metode yang sesuai berdasarkan jumlah dan tipe parameter yang
digunakan.

2. Overriding (Overriding Polimorfisme): Overriding terjadi ketika Anda memiliki metode dalam
kelas turunan yang memiliki nama, tipe pengembalian, dan parameter yang sama dengan
metode di kelas dasar (superclass). Dalam hal ini, metode dalam kelas turunan
menggantikan perilaku metode dalam kelas dasar. Saat objek dari kelas turunan dipanggil
untuk metode yang diwarisi, metode yang ada dalam kelas turunan yang akan dieksekusi.
Berikut contoh nyata kasus polimorfisme overriding dalam bahasa Java :

Kita memiliki kelas dasar "Hewan" dengan metode "suara". Kemudian, kita memiliki dua kelas
turunan, "Kucing" dan "Anjing," yang menggantikan metode "suara" yang diwarisi dari kelas dasar.
Meskipun kita menciptakan objek "hewan1" sebagai instansi dari "Kucing" dan objek "hewan2"
sebagai instansi dari "Anjing," saat kita memanggil metode "suara," setiap objek berperilaku sesuai
dengan jenisnya sendiri. Ini adalah contoh polimorfisme overriding, di mana metode yang sesuai
dengan tipe objek yang sebenarnya yang dieksekusi.

6. Kesimpulan

1. Abstraksi (Abstraction): Abstraksi adalah konsep yang memungkinkan pemodelan objek


dunia nyata dalam bentuk kelas dan objek, dengan menyederhanakan kompleksitas dan
mengekstraksi detail yang tidak relevan. Abstraksi membantu pengembang untuk fokus
pada atribut dan metode yang penting dalam pemodelan objek dan membuat representasi
yang lebih mudah dimengerti.
2. Enkapsulasi (Encapsulation): Enkapsulasi adalah konsep yang memungkinkan
penyembunyian rincian implementasi internal dalam kelas dan hanya mengekspos
antarmuka publik yang diperlukan. Ini membantu meningkatkan keamanan data dan
memungkinkan perubahan internal tanpa memengaruhi penggunaan eksternal.
3. Pewarisan (Inheritance): Pewarisan memungkinkan kelas untuk mewarisi sifat dan perilaku
dari kelas lain. Kelas turunan dapat mengambil atribut dan metode yang telah didefinisikan
dalam kelas dasar, dan dapat menambahkan atau mengubah perilaku sesuai kebutuhan. Ini
memungkinkan penggunaan hierarki kelas untuk menghindari duplikasi kode dan
memperluas fungsionalitas.
4. Polimorfisme (Polymorphism): Polimorfisme memungkinkan objek untuk berperilaku dengan
berbagai cara. Ini dapat dicapai melalui overloading, di mana Anda memiliki metode dengan
nama yang sama tetapi parameter yang berbeda, dan melalui overriding, di mana kelas
turunan menggantikan perilaku metode dalam kelas dasar. Polimorfisme membuat kode
lebih fleksibel dan dapat digunakan ulang dengan memungkinkan objek dari kelas yang
berbeda untuk merespons panggilan metode dengan cara yang sesuai dengan tipe objek.

Pemahaman tentang keempat sifat OOP ini sangat penting bagi seorang pengembang perangkat
lunak karena:

1. Meningkatkan Abstraksi dan Pemahaman : Abstraksi membantu pengembang untuk


memodelkan objek dunia nyata secara efisien, sementara enkapsulasi memungkinkan
penyembunyian detail yang tidak relevan. Dengan pemahaman tentang kedua konsep ini,
pengembang dapat merancang dan mengelola kode yang lebih abstrak dan mudah
dimengerti.
2. Keamanan dan Pemeliharaan Kode : Enkapsulasi membantu menjaga data tetap aman dan
memungkinkan perubahan internal tanpa memengaruhi penggunaan eksternal. Ini penting
untuk memastikan keandalan perangkat lunak dan mempermudah pemeliharaan kode.
3. Hierarki dan Reusabilitas : Pewarisan memungkinkan pengembang untuk mengelola hierarki
kelas, menghindari duplikasi kode, dan memperluas fungsionalitas. Dengan pemahaman
tentang pewarisan, pengembang dapat menciptakan struktur kelas yang lebih efisien dan
mengoptimalkan penggunaan kode.
4. Fleksibilitas dan Kode Dinamis : Polimorfisme memungkinkan pengembang untuk
menciptakan kode yang lebih fleksibel dan dinamis. Dengan pemahaman tentang
polimorfisme, pengembang dapat membuat kode yang dapat berperilaku berbeda
tergantung pada konteks penggunaan, sehingga meningkatkan adaptasi dan reusabilitas
kode.

7. Daftar Pustaka :

1. https://www.jagoanhosting.com/blog/oop-adalah
2. Gamma, Erich, et al. "Design Patterns: Elements of Reusable Object-Oriented Software."
Addison-Wesley, 1994.
3. Meyer, Bertrand. "Object-Oriented Software Construction." Prentice Hall, 1988.
4. Booch, Grady. "Object-Oriented Analysis and Design with Applications." Addison-Wesley,
1994.
5. "Java: The Complete Reference" by Herbert Schildt
6. "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin
7. "Object-Oriented Software Engineering: Practical Software Development Using UML and
Java" by Timothy C. Lethbridge and Robert Laganière
8. "Head First Design Patterns" by Eric Freeman and Elisabeth Robson

Anda mungkin juga menyukai