Pemrograman Berorientasi Objek (PBO/OOP) UTS/Task
Soal:
1. Jelaskanlah
sejarah lahirnya OOP hingga saat ini ! Dan seberapa urgensi kah penggunaan OOP
pada masa sekarang ini ? Jelaskan dengan pendapatmu masingmasing !
2. Representasikanlah
dalam kehidupan nyata apa yang dimaksud dengan class, object, method dan juga
atribute ! Jelaskan contohnya masing-masing !
3. Jelaskanlah
bagaimana konsep inheritance dan encapsulation dalam pemrograman berorientasi
objek kemudian buatlah contoh program
yang mengimplementasikan konsep inheritance dan encapsulation tersebut !
4. Jelaskanlah
jenis-jenis hak access modifier dalam OOP kemudian jelaskanlah masing masing
fungsi nya beserta contohnya masing-masing!
5. Jelaskanlah
perbedaan antara Overloading dengan Overriding! Dan berikan contoh penggunaanya
masing-masing!
Jawab:
1.
Sejarah lahirnya
OOP pertama kali muncul di MIT pada era
1960-an. Lalu sekitar beberapa tahun kemudian antara 1962-1965, sebuah bahasa
pemrograman yang mendasari konsep OOP diperkenalkan dengan nama bahasa
pemrograman SIMULA 1, dikembangkan oleh Kristen Nygaard dan Ole-Johan yang
merupakan warga negara Norwegia. Setelah itu pada tahun 1967 keluarlah SIMULA
67, Bahasa SIMULA dengan OOP menginspirasi banyak pengembang, sehingga pada
tahun 70-an tercipta bahasa SMALTALK, Bahasa yang pertama kali disebut oleh
dunia sebagai Object-Oriented Programming, dengan membawa fitur barunya yaitu
Inheritance.
Semenjak itu konsep OOP semakin dikenal, pada tahun 1980-an banyak
Bahasa pemrograman menggunakan konsep OOP diperkenalkan kepada dunia, tapi
hanya empat yang cukup populer yaitu ADA, PROLOG, Eifle dan C++. Kedua Bahasa,
yaitu ADA dan PROLOG dipercaya akan bersaing ketat sebagai bahasa pemrograman
yang paling dominan. Namum pada tahun 80-an Bahasa pemrograman C++ mematahkan
kepercayaan tersebut. Bahasa pemrograman C++ menjadi Bahasa pemrograman yang
popular dan mendominasi hingga sekarang.
urgensi
kah penggunaan OOP pada masa sekarang ini? Iya , karena menjadi
idealisme baru dalam pemrograman masa kini. Menggunakan konsep OOP untuk
pembuatan sebuah aplikasi berbasis PHP setidaknya dapat memberikan pengalaman
baru bagi para developer.
2. Class
ialah pemodelan dari objek yang berisi
informasi tentang sifat karakteristik (data/atribute) dan tingkah laku
(methode) yang dimiliki objek tersebut dan terbagi menjadi 2 yaitu class utama dan class turunan,
misalnya contoh suzuki smash, yamaha vega r, honda supra fit, dan kawasaki
kazer merupakan obyek dari class sepeda motor.
Object ialah kesatuan entitas (benda) atau abstraksi dari suatu
problem dan punya nilai atribute yang
unik yang mebedakannya dengan objek lain dikelas yang sama yang di sebut stat,
misalnya contoh objek mobil x, (Atribut): merek, warna,
bahan bakar . ( Method) : maju, mundur, pindah persnelling, kecepatan
bertambah, dll, Pada OOP : status disimpan dalam variabel, dan tingkah laku
disimpan dalam method.
Method ialah suatu operasi berupa fungsi-fungsi yang dapat dikerjakan
oleh suatu object, didefinisikan pada class akan tetapi dipanggil melalui object.dan
menentukan perilaku objek, yakni apa yang terjadi ketika
objek itu dibuat serta berbagai operasi yang dapat dilakukan objek
sepanjang hidupnya, misalnya contoh kelas Mahasiswa memiliki
atribut Nama, Umur dan memiliki method untuk mengisi Nama dan Umur , misalnya
dinamakan SetData, method untuk mencetak misalnya dinamakan CetakInfo.
Dan attribute ialah nilai data yang terdapat pada suatu object
yang berasal dari class, contohnya pada Class Buah terdapat attribute :
warna, rasa . Pada object mangga : warna berisi kuning dan rasa asam,
pada object apel : warna berisi merah dan rasa manis.
3. Konsep inheritance dan encapsulation
-
Encapsulasi
adalah teknik penyembunyian atribut dan metode, dimana keterintegrasian antara
class TIDAK BOLEH semua atribut dan metode di deklarasian sebagai public,
dan enkapsulasi ada 3 jenis, yaitu public,
protected, dan private.
Contoh
-
Inheritance adalah proses pewarisan data dan method satu kelas induk kepada
kelas turunannya dan komponenya ada dua yaitu superclass
dan subclass.
Contohnya
Suatu Subclass juga dapat memanggil
constructor yang terdapat di superclass menggunakan kata kunci “super”. Kata
kunci super juga dapat digunakan untuk merujuk pada anggota dari superclass,
hal ini sama dengan penggunaan referensi “this”.
Contoh super :
4. Jenis-jenis
hak access modifier dalam OOP adalah
-
Private : Memberikan hak akses hanya pada class itu sendiri,
artinya apa-apa saja yang ada di dalam class A baik itu method ataupun atribut
hanya bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya,
Contoh
Pada contoh
diatas, variabel name dan methodgetName() hanya dapat diakses oleh method
internal class tersebut.
-
Public : Memberikan hak akses kepada atribut atau method agar bisa
diakses oleh siapapun (property atau class lain diluar class yang
bersangkutan), artinya method atau atribut yang ada diclass A dapat diakses
oleh siapaun baik itu class A, class B dan seterusnya,
Contoh
Dalam contoh ini, variabel name dan
methodgetName() dapat diakses dari objectlain.
-
Protected : Memberikan hak akses kepada class itu sendiri dan class
hasil turunannya (inheritance), artinya apa apa saja yang ada diclass A hanya
bisa diakses oleh class A sendiri dan class yang meng Extends class A,
Contohnya
Pada contoh
diatas, variabel name dan methodgetName()
hanya dapat diakses oleh methodinternal classdan subclassdari
classStudentRecord.
-
Defalut : Tipe ini mempersyaratkan bahwa hanya class dalam package
yang sama yang memiliki hak akses terhadap variabel dan methods dalam class.
Tidak terdapat keyword pada tipe ini
Contohnya
Pada contoh
diatas, variabel nama dan methodgetName() dapat diakses dari object lain selama
object tersebut berada pada
package yang sama dengan letak dari file StudentRecord.
5. Perbedaan
antara Overloading dengan Overriding!
-
Overloading ialah mengijinkan sebuah method dengan nama yang sama namun
memiliki parameter yang berbeda sehingga mempunyai implementasi dan return
value yang berbeda pula. Daripada memberikan nama yang berbeda pada setiap
pembuatan method, overloading method dapat digunakan pada operasi yang sama
namun berbeda dalam implementasinya, jadi beberapa method dengan nama yang sama
pada suatu kelas memiliki parameter yang berbeda.
Sebagai contoh, pada class StudentRecord kita menginginkan sebuah method
yang akan menampilkan informasi tentang siswa. Namun kita juga menginginkan
operasi penampilan data tersebut menghasilkan output yang berbeda menurut
parameter yang digunakan
-
Overridding ialah class asal perlu mempunyai implementasi berbeda dari
method yang khusus dari super class tersebut. Oleh karena itulah, method
overriding digunakan. Subclass dapat mengesampingkan method yang didefinisikan
dalam super class dengan menyediakan
implementasi baru dari method tersebut, jadi method yang ada di class utama
(Parent class) digunakan kembali pada sub class ( class anak).
Komentar
Posting Komentar