Powered By Blogger

Senin, 20 Mei 2013

Pengertian PBO (Pemrograman Beroirentasi Objek)



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