Anda di halaman 1dari 14

Konsep Pemrograman

Berorientasi Objek
(PBO)
Khurniawan Eko. S.T., M.Eng
Bahasa Pemrograman
Tiga tingkat Bahasa Pemrograman, yaitu:
• Bahasa Mesin / Machine languages
• Bahasa Rakitan / Assembly languages
• Bahasa Tingkat Tinggi / High-Level languages
Bahasa Mesin / Machine Languages
• Terdiri dari 2 bilangan, 1 dan 0
• Bahasa dasar “native” yang difahami komputer
• Sulit dalam pemrograman – kesalahan 1 digit akan mengakibatkan
kegagalan sistem
• Contoh kode:
1110100010101 111010101110
10111010110100 10100011110111
Bahasa Rakitan / Assembly Languages
• Bahasa yang sedikit memudahkan proses pembuatan program
• Terdiri dari satu set perintah/instruksi yang dikhususkan untuk
processor tertentu
• Kode assembly perlu di translate ke dalam bahasa mesin sebelum di
proses oleh komputer
• Contoh:
ADD 1001010, 1011010
Bahasa Tingkat Tinggi / High-Level Languages
• Merepresentasikan perubahan besar dalam dunia programming
• Menggunakan Bahasa sehari-hari yang dekat dengan Bahasa Inggris
• Dalam perkembangan, Bahasa tingkat tinggi dibagi menjadi dua
kelompok:
• Pemrograman Prosedural
• Pemrograman Berorientasi Objek
Masalah-masalah Umum
Beberapa masalah yang muncul akibat desain program yang buruk:
• Rigidity : Sulit diubah
• Fragility : Sering muncul error atau kegagalan sistem
• Immobility : Sulit digunakan kembali (re-use) dan digunakan Bersama
kode program lain
• Viscosity : Kesalahan kode mudah terjadi dan sulit diperbaiki
• Needless Complexity : Desain kode yang rumit, generalisasi yang
berlebihan
• Needless Repetition : Kode berulang-ulang, Banyak copy dan paste
• Opacity : Sulit difahami
DRY (Don’t Repeat Yourself)
“Every Piece of Knowledge must have a single, unambiguous,
authoritative representation within a system”

Duplikasi kode akan berdampak pada,


• Sulitnya perawatan dan pengembangan kode (Poor maintainability)
• Sulitnya perbaikan bila terjadi error (Expensive to fix bugs/errors)
• Sulitnya beradaptasi dengan perubahan-perubahan yang dibutuhkan
(Hard to keep up with change)
Bahasa Prosedural / Procedural Languages
• Bahasa procedural memiliki karakteristik kode program atau instruksi
yang berurutan dan linear.
• Data terpisah dari kode
• Programmer bertanggung jawab mengatur segala sesuatu ke dalam
kode
• Contoh: C, COBOL, Fortran, LISP, Perl, VBScript

Hard to build large systems (not impossible, just hard).


Pemrograman Berbasis Objek /
Object-Oriented Languages
• Fokus Bahasa PBO tidak pada struktur kode program, melainkan
memodelkan data ke dalam kode program
• Menempatkan model data tersebut ke dalam kode yang relevan
• Menyediakan mekanisme pengemasan / packaging untuk model data
dan kode programnya
• Memodelkan data sebagai objek yang dapat berkomunikasi antar
objek
• Contoh Bahasa PBO : C++, Visual Basic.NET dan Java.
Keuntungan PBO
• Code re-use : meningkatkan efisiensi dalam pembuatan kode program
• Encapsulation : pembungkusan kode program memberikan
peningkatan pada kualitas kode dan kemudahan dalam maintenance
• Inheritance : meningkatkan efisiensi dan pengembangan setiap kode
program yang telah dibuat
• Polymorphism : Power!

Java Programming: OOP 10


Penggunaan Kode Berulang / Code Re-Use
• Pengemasan kode program yang baik akan memudahkan pembuatan
dokumentasi ataupun pencarian kode program tertentu
• Setiap programmer menggunakan metode yang sama dalam
mengorganisir kode programnya
• Mempermudah pembuatan program dengan menghilangkan
kebutuhan untuk menulis kode program berulang dengan sedikit
perubahan (inheritance)

Java Programming: OOP 11


Pengapsulan / Encapsulation
• Menyembunyikan informasi/kode program dari programmer
• Membatasi keharusan programmer untuk memahami penggunaan
komponen kode program tertentu
• Implementasi dapat dilakukan tanpa mempengaruhi kode-kode yang
dipanggil
• "protects us from ourselves"

Java Programming: OOP 12


Pewarisan / Inheritance
• On the surface, inheritance is a code re-use issue.
• we can extend code that is already written in a manageable manner.
• Inheritance is more, it supports polymorphism at the language level!
• Take an existing object type (collection of fields and methods) and
extend it.
• create a special version of the code without re-writing any of the existing
code (or even explicitly calling it!).
• End result is a more specific object type, called the sub-class / derived class /
child class.
• The original code is called the superclass / parent class / base class.

Java Programming: OOP 13


Kesimpulan
• Modularity
• source code for an object can be written and maintained
independently of the source code for other objects
• easier maintainance and reuse
• Information hiding
• other objects can ignore implementation details
• security (object has control over its internal state)
• but
• shared data need special design patterns (e.g., DB)
• performance overhead

Anda mungkin juga menyukai