1.
Pengertian PBO
Merupakan paradigma pemrograman yang berorientasikan kepada objek.
Semua data dan fungsi di dalam paradigma ini dibungkus dalam class-class
atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat
menerima pesan, memproses data, dan
mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang
lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh
lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula
dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah
dikembangkan dan dirawat.
2.
Perbedaan PBO dengan Program Prosedural
Munculnya C++ sebagai bahasa pemrograman yang berorientasi objek sangat
memberikan manfaat yang besar kepada kita dalam menyelesaikan masalah-masalah
didalam perusahaan/organisasi baik yang berhubungan dengan bisnis ataupun
sience. Dengan konsep OOP nya, C++ akan lebih mudah dipelajari dan dipahami
untuk dikembangakan karena sifatnya yang lebih modular yaitu mampu menyederhanakan
dan mendefinisikan fungsi-fungsi dan variabel-variabel kedalam bentuk objek.
Berbeda dengan Pemrograman sebelumnya yang bersifat prosedural dan struktural
sehingga di dalam implementasinya akan banyak statement atau listing program
yang kita tulis secara berulang-ulang seperti penulisan fungsi maupun variabel.
Salah satu contoh perbedaan yang sangat sederhana antara pemrograman
prosedural dengan Pemrograman berorientasi objek adalah pada pendefinisian
variabel, konstanta atau fungsi. Didalam pemrograman prosedural seluruh
variabel, konstanta, ataupun fungsi yang dibutuhkan didalam program wajib
didefinisikan sementara didalam program berorientasi objek semua kebutuhan
variabel, konstanta dan fungsi tersebut cukup dibuatkan didalam sebuah objek. Sebuah
objek inilah yang dapat menampung data-data baik data dari variabel, konstanta
ataupun berupa fungsi. Didalam C++ Builder data-data didalam objek tersebut
dikenal dengan nama property, perilaku atau fungsi yang dimilikinya dikenal
dengan nama method dan peristiwa-peristiwa yang terjadi pada objek tersebut
dikenal dengan nama event.
Jika kita analogikan kedalam kehidupan kita sehari-hari, objek yang
dimaksud misalnya orang. Setiap orang pasti mempunyai properti seperti nama,
berat badan, tinggi badan dan betuk fisik lanya dengan ukuran tertentu. Selain
itu, orang juga mempunyai method, misalnya berjalan, marah, makan, dan prilaku
lain. Sedangkan contoh event, (kejadian) yang dapat menimpahj orang adalah
ketika dipukul, lapar, mengantuk dan sebagainya. Pada saat terjadi suatu event
terhadap orang, maka orang akan merespon event tersebut dengan cara melakukan
method tertentu. Misalnya ’ketika lapar’ (event), orang akan melakukan sebuah
pekerjaan, yaitu ’makan’ (Method). Pada C++Builder, pemograman yang menerapkan
konsep ini disebut model pemograman property-method-event (PME).
3.
Konsep-konsep dalam PBO
1.
Object
Objek dalam kehidupan nyata dapat digambarkan sebagai suatu
benda yang tampak oleh mata.. Di dalam pemrogramman, objek mempunyai 2
karakteristik yaitu state dan behavoiur. State memiliki
pengertian sebagai keadaan dari sebuah objek (properti), sedangkan behaviour
dapat diartikan sebagai tingkah laku atau sifat yang dimiliki dari objek itu
sendiri.
Banyak contoh-contoh dari objek yang berada disekitar kita,
misalnya kursi, meja, lemari, kucing, ayam, kambing dan sebagainya. Jika seekor
kambing disebut sebagai suatu objek, maka yang akan menjadi state
(properti) dari kambing contohnya adalah warna bulu dan tanduknya. Sedangkan
yang menjadi behaviour atau sifatnya adalah menyeruduk, mengembik,
melompat dan lain-lain.
2.
Class
Class merupakan kumpulan dari
objek-objek yang saling berinteraksi dalam suatu proses program. Selain itu class
dapat pula diartikan sebagai pembuatan dan pendefinisian suatu obejk. Misalnya
jika kita ingin membangun suatu objek rumah, maka kita harus menentukan
properti (state) dari rumah seperti warna tembok, pintu, jendela,
genteng dan sebagainya. Dan juga kita harus menentukan sifat (behaviour)
dari rumah tersebut, misalnya memiliki 2 lantai, dapat bertahan dalam badai,
tidak bocor dan sebagainya. Di dalam bahasa pemrograman class diartikan
sebagai kumpulan dari pendefinisian data (Variable / Constant)
serta fungsi-fingsi (methode) yang saling berinteraksi satu sama
liannya.
3.
Encapsulation (Enkapsulasi / Pengkapsulan)
Enkapsulasi dapat diartikan sebagai pengkapsulan yang
artinya adalah pembungkus. Pembungkus disini dimaksudkan untuk menjaga suatu
proses program agar tidak dapat diakses secara sembarang atau di intervensi
oleh program lain. Konsep enkapsulasi sangat penting di gunakan untuk menjaga
keutuhan program agar dapat dengan mudah digunakan pada waktu yang akan datang,
sekaligus menjaga program dari “keanehan-anehan” yang dapat timbul jika diakses
secara sembarang oleh program lain.
Contoh enkapsulasi dalam sebuah perumpamaan misalnya sistem
lampu sorot, dan sistem perputaran roda pada sebuah kereta api. Kerja sistem
lampu sorot tidak dapat mempengaruhi kerja dari sistem perputaran roda pada
kereta api, begitu pula sebaliknya. Karena di dalam sistem lampu sorot
tersebut, kita tidak perlu mengetahui bagaimana kinerja dari sistem perputaran
roda kereta api, apakah roda akan maju berputar ke depan atau pun ke belakang.
Begitupun di dalam sistem perputaran roda kereta api, kta tidak perlu tahu
bagaimana sistem lampu sorot bekerja, apakah menyala atau tidak.
Begitulah konsep dari enkapsulasi, dia akan melindungi
sebuah program dari akses ataupun intervensi dari program lain yang akan
mempengaruhinya. Hal ini menjaga keutuhan program yang telah dibuat sesuai
dengan deskripsi atau konsep dari program itu sendiri yang telah ditentukan
dari awal.
Contoh dalam program :
Coba.Java
class Coba{
public String x =”Belajar”;
private String y = “Java”;
}
Belajar.Java
public class Belajar{
public static void main(String[]args){
Coba panggil = new Coba();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}
Tipe public dan private
mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x,
memungkinkan nilai dari variable x dapat diakses oleh class Belajar.
Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
4.
Inheritance (Pewarisan / Turunan )
Inheritance atau pewarisan merupakan konsep OOP yang mudah di pahami.
Pewarisan atau turunan lebih dekat dengan kehidupan sehari-hari dari manusia
atau mahluk hidup lainnya. Jika kita coba untuk mengambil contoh nyata adalah
diri kita sendiri yang merupakan “turunan” dari orang tua kita. Ataupun seekor
kambing yang merupakan turunan dari induknya. Inheritance atau pewarisan
dapat dibilang seperti sistem hirarki keturunan manusia, untuk jenjang yang
paling atas disebut dengan induk atau orang tua sedangkan jenjang yang berada
dibawahnya disebut dengan anak dan tentunya seorang anak akan mewarisi
sifat-sifat dari orang tua atau induknya.
Didalam pemrograman java, Inheritance
merupakan turunan dan pengembangan dari sebuah class menjadi class lainnya
dan mempunyai suatu hubungan antar class dan mewarisi (inherits)
semua attribute dan method dari class pendahulunya. Untuk class
yang menjadi pendahulu / induknya disebut sebagai super class / parent
class / based class.
Sedangkan class baru yang menjadi turunannya disebut dengan subclass / child class / derived class.
Contoh dalam program :
OrangTua.Java
class OrangTua{
String a = “Penyabar”;
char b = ‘A’;
void sifatOrangTua(){
System.out.println(“Sifat Orang Tua : “+a);
System.out.println(“Golongan Darah : “+b);
}}
Anak.Java
class Anak extends OrangTua{
String c = “Nakal”;
public void sifatAnak(){
System.out.println(“Sifat Anak : “+c);
}}
AnakAnak.Java
public class AnakAnak{
public static void main(String[]args){
Anak anakku = new Anak();
anakku.sifatOrangTua();
anakku.sifatAnak();
}}
Kalimat extends yang terdapat dalam class
Anak, menjelaskan bahwa class Anak merupakan subclass dari class
OrangTua. Hal ini menjadikan bahwa semua sifat dan variabel yang berada
pada class OrangTua dapat diakses oleh class Anak.
5. Polymorphism (Polimorfisme
/ Berubah Bentuk)
Suatu object yang dapat
memiliki berbagai atau banyak bentuk yang menjadi object dari class nya
sendiri ataupun object dari superclass nya adalah merupakan konsep OOP
dari Polymorphism. Polymorphism adalah serperti kepribadian
berganda, yang mana satu nama dapat berperilaku berbagai macam.
Ada 2 bentuk dari
polimorfisme, yaitu overloading dan overriding. Overloading
adalah pemakaian suatu nama yang digunakan untuk beberapa method yang di
dalamnya mempunyai parameter yang berbeda-beda. Sedangkan overriding
adalah deklarasi method subclass sama dengan method yang ada pada superclass
nya.
Contoh Program :
Nilai.Java
class Nilai{
int a;
String b;
Nilai(int a, String b){ //Dengan Parameter
this.a = a;
this.b = b;
}
Nilai(){ //Tanpa Parameter
a = 1;
b = “Dua”;
}}
LihatNilai.Java
class LihatNilai{
public static void main (String[]args){
Nilai x = new Nilai ();
System.out.println(“X = “+x.a);
System.out.println(“Y = “+x.b);
}}
Hasil yang akan ditampilkan ketika class
LihatNilai di atas dijalankan adalah x = 1 dan y = Dua, hal ini membuktikan
bahwa sifat polimorfisme yang ada di java. Class LihatNilai memanggil
method Nilai tanpa parameter, sehingga nilai yang dikembalikan adalah nilai
yang ada dimana nilai tersebut berada di method yang tidak memiliki parameter.
4.
Pengertian UML
UML (Unified Modeling Language) adalah sebuah bahasa untuk
menetukan, visualisasi, kontruksi, dan mendokumentasikan artifact (bagian dari
informasi yang digunakan atau dihasilkan dalam suatu proses pembuatan perangkat
lunak. Artifact dapat berupa model, deskripsi atau perangkat lunak) dari system
perangkat lunak, seperti pada pemodelan bisnis dan system non perangkat lunak
lainnya.
UML merupakan suatu kumpulan teknik terbaik yang telah
terbukti sukses dalam memodelkan system yang besar dan kompleks. UML tidak
hanya digunakan dalam proses pemodelan perangkat lunak, namun hampir dalam
semua bidang yang membutuhkan pemodelan.
Bagian-bagian UML
Bagian-bagian utama dari UML adalah view, diagram, model
element, dan general mechanism.
1.
View
View digunakan untuk melihat sistem yang dimodelkan dari
beberapa aspek yang berbeda. View bukan melihat grafik, tapi merupakan
suatu abstraksi yang berisi sejumlah diagram.
Beberapa jenis view dalam UML
antara lain: use case view, logical view, component view, concurrency view, dan
deployment view.
a.
Use case view
Mendeskripsikan fungsionalitas sistem
yang seharusnya dilakukan sesuai yang diinginkan external actors. Actor
yang berinteraksi dengan sistem dapat berupa user atau sistem lainnya.
View ini digambarkan dalam use case diagrams dan
kadang-kadang dengan activity diagrams. View ini digunakan
terutama untuk pelanggan, perancang (designer), pengembang (developer),
dan penguji sistem (tester).
b.
Logical view
Mendeskripsikan bagaimana
fungsionalitas dari sistem, struktur statis (class, object,dan relationship
) dan kolaborasi dinamis yang terjadi ketika object mengirim pesan
ke object lain dalam suatu fungsi tertentu.
View ini digambarkan dalam class diagrams untuk struktur
statis dan dalam state, sequence, collaboration, dan activity diagram untuk
model dinamisnya. View ini digunakan untuk perancang (designer) dan
pengembang (developer).
c.
Component view
Mendeskripsikan implementasi dan
ketergantungan modul. Komponen yang merupakan tipe lainnya dari code module diperlihatkan
dengan struktur dan ketergantungannya juga alokasi sumber daya komponen dan
informasi administrative lainnya.
View ini digambarkan dalam component view dan digunakan
untuk pengembang (developer).
d.
Concurrency view
Membagi sistem ke dalam proses dan
prosesor. View ini digambarkan dalam diagram dinamis (state,
sequence, collaboration, dan activity diagrams) dan diagram
implementasi (component dan deployment diagrams) serta digunakan
untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
e.
Deployment view
Mendeskripsikan fisik dari sistem
seperti komputer dan perangkat (nodes) dan bagaimana hubungannya dengan
lainnya.
View ini digambarkan dalam deployment diagrams dan digunakan
untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
Tidak ada komentar:
Posting Komentar