Anda di halaman 1dari 24

oop

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan


paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam
paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman
terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek
lainnya,

CATATAN KECIL

ARYA DHARMAADI'S BLOG

Konsep Dasar Pemrograman Berorientasi Objek

February 5, 2016 aryadharmaadi

PENDAHULUAN: PEMROGRAMAN PROSEDURAL

Pada kuliah pemrograman dengan menggunakan bahasa C, telah diajarkan pembuatan program secara
prosedural. Pemrograman prosedural adalah pembuatan program dengan memberikan serangkaian
instruksi yang berurutan secara top-down. Pada pemrograman procedural, program dibedakan antara
bagian data dengan bagian instruksi.

PRINSIP PEMROGRAMAN PROSEDURAL

Penekanan utama pada sesuatu yang harus dikerjakan secara berurutan. Jika program cukup besar,
maka dibagi-bagi menjadi sub-sub program (fungsi atau prosedur) yang lebih kecil. Sebagian besar fungsi
atau prosedur mengakses variabel global.

Contoh: Alat Counter


Alat counter

counter.c

#include <stdio.h>

int value=0;

void next();

void reset();

void display();

int main(){

int menu;

scanf("%d",&menu);

if (menu==1){

next();

}else if (menu==2){

reset();

display();

void next(){

value++;

}
void reset(){

value=0;

void display(){

printf("%d",value);

10

11

12

13

14

15

16

17

18
19

20

21

22

23

24

25

26

27

28

29

30

#include <stdio.h>

int value=0;

void next();

void reset();

void display();

int main(){

int menu;

scanf("%d",&menu);

if (menu==1){

next();
}else if (menu==2){

reset();

display();

void next(){

value++;

void reset(){

value=0;

void display(){

printf("%d",value);

Pada contoh kasus alat counter di atas, dikerjakan dengan pendekatan top-down, yaitu:

identifikasi program counter tersebut memiliki fungsi-fungsi apa saja. Fungsi yang dimiliki adalah:

next (untuk menjalankan nilai counter)

reset (untuk mengembalikan nilai counter menjadi nol)

display (untuk menampilkan nilai counter di layar)

identifikasi program counter tersebut memiliki data apa saja. Data yang dimiliki adalah:

value (untuk menampung nilai counter saat ini)


menu (untuk menampung tombol mana yang dipilih oleh user)

deklarasi data dan fungsi-fungsi tersebut sebagai variabel dan prosedur (baris 3 sampai baris 7)

buat kerangka program seperti code di atas (baris 8 sampai baris 18) yang berfungsi sebagai alur
berjalannya program

buat detail dari tiap-tiap prosedur (baris 19 sampai baris akhir)

Pada kasus lain yang lebih kompleks, dari tiap-tiap fungsi umum yang diidentifikasi (seperti point nomor
1), dimungkinkan untuk membuat sub-sub fungsi yang mendukung fungsi umum tersebut. Pembuatan
program dari fungsi general ke fungsi-fungsi spesifik tersebut dinamakan pendekatan top-down.

PARADIGMA PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berorientasi Objek (PBO) BUKAN merupakan bahasa pemrograman, tetapi merupakan
sebuah paradigma (cara berpikir) baru dalam pembuatan sebuah program. PBO menitikberatkan pada
identifikasi objek-objek yang terlibat dalam sebuah program dan bagaimana objek-objek tersebut
berinteraksi.

Pada PBO, program yang dibangun akan dibagi-bagi menjadi objek-objek. Perlu diidentifikasi tentang:

Objek yang apa yang akan digunakan,

Data apa saja yang dibutuhkan oleh objek tersebut,

Bagaimana perilaku dari objek tersebut,

Bagaimana komunikasi objek satu dengan objek yang lainnya sehingga bisa memecahkan masalah yang
diinginkan

Contoh: Sistem Perpustakaan

Class Diagram

Class Diagram

Keterangan:
Anggota dan Buku adalah objek yang ada pada sistem (asumsi sistem informasi perpustakaan
sederhana)

Objek Anggota memiliki data nomor_anggota, nama, alamat, telp, dan daftar peminjaman

Objek Buku memiliki data nomor_buku, judul, penerbit, dan kategori

Objek Anggota memiliki method (perilaku): meminjam dan mengembalikan, sedangkan objek Buku tidak
memiliki method (objek pasif)

DEFINISI PEMROGRAMAN BERORIENTASI OBJEK

[Meyer98]: Sebuah sistem yang dibangun berdasarkan metoda berorientasi objek adalah sebuah sistem
yang komponennya di-enkapsulasi menjadi kelompok data dan fungsi, yang dapat mewarisi atribut dan
sifat dari komponen lainnya, dan komponen-komponen tersebut saling berinteraksi satu sama lain.

Pemrograman berorientasi objek adalah metode pemrograman berdasarkan hirarki kelas, dimana kelas-
kelas tersebut didefinisikan dengan baik dan bisa saling bekerja sama untuk memecahkan masalah.

CLASS (KELAS)

Merupakan definisi statik (kerangka dasar) dari objek yang akan diciptakan, berupa struktur yang
mendefinisikan data (property) dan method dari objek. Bisa disebut cetak biru dari objek atau bisa
disebut gambaran umum dari benda.?

Contoh penamaan kelas: Mobil, Laptop, Anggota, Buku, dll

PROPERTY

Merupakan data atau state yang dimiliki oleh class. Contoh pada class Mobil, memiliki property:
Warna

Model

Produsen

Contoh lain, class Anggota, memiliki property: nomor anggota, nama, alamat, telp, daftar buku yang
dipinjam.

METHOD

Merupakan behavior (perilaku) sebuah class. Bisa dikatakan sebagai aksi atau tindakan yang bisa
dilakukan oleh suatu class. Contoh pada class Mobil, memiliki method:

Start, method untuk menjalankan mobil

Stop, method untuk menghentikan laju mobil

Change Gear, method untuk ganti gigi persneling

Turn, method untuk belok kanan atau kiri

Contoh Pembuatan Class, Property, dan Method pada Bahasa Pemrograman Java

Car.java

public class Car{

String color;

String model;

private int current_gear;

public void start(){

}
public void stop(){

public void changeGear(int gear){

10

11

12

13

14

15

16
17

public class Car{

String color;

String model;

private int current_gear;

public void start(){

public void stop(){

public void changeGear(int gear){

OBJECT

Merupakan abstraksi dari sesuatu yang mewakili sesuatu pada dunia nyata. Pada bahasa pemrograman,
object adalah komponen yang diciptakan dari class (instance of class). Object merupakan entitas pada
saat RUN TIME. Object memiliki siklus creation, manipulation, dan destruction. Satu class bisa menghasil
banyak object.

Contoh Object pada Bahasa Java:


MainProgram.java

public class MainProgram {

public static void main(String[] args){

Car myCar = new Car();

Car yourCar = new Car();

public class MainProgram {

public static void main(String[] args){

Car myCar = new Car();

Car yourCar = new Car();

Dua baris (baris 3-4) di atas merupakan contoh pembuatan object myCar dan yourCar dari kelas Car.

KARAKTERISTIK UTAMA PEMROGRAMAN BERORIENTASI OBJEK

Abstraksi
Menunjukkan karakteristik atau sesuatu yang khas dari sebuah objek yang bisa membedakannya
dengan objek yang lain. Dengan demikian akan terlihat batasan konseptual dari sebuah objek dari sudut
pandang tertentu.

Contoh:

Pada sistem informasi perpustakaan, apakah membuat class Mahasiswa dan class Dosen atau membuat
class Member saja?

Kasus toko sepeda, apakah membuat Class Sepeda atau Class Sepeda Balap dan Class Sepeda Gunung?

Dalam pengembangan aplikasi, abstraksi difokuskan pada:

Hal atau sesuatu yang mana saja yang akan menjadi object?

Apa ciri-ciri pembeda (property) yang dimiliki object tersebut?

Bagaimana kelakuan (method) dari object tersebut?

Enkapsulasi

Merupakan proses untuk menutupi semua detail dari sebuah object yang tidak menyokong karakteristik
khas dari object. Artinya, data property dan method-method dari object hasil abstraksi dibungkus oleh
struktur class agar terlindungi.

Rincian implementasi internal suatu object dibuat tersembunyi sehingga tidak bisa diketahui dan diakses
oleh object lain. Object lain hanya bisa berkomunikasi dengan object tersebut melalui antarmuka
(interface) yang disediakan oleh object tersebut.

Misal pada class Car, data variabel current_gear dibuat private sehingga object lain tidak bisa mengakses
variabel tersebut. Object lain hanya bisa menjalankan method changeGear(int gear) tanpa mengetahui
posisi gear saat sebelum diganti.

Contoh:
MainProgram.java

public class MainProgram {

public static void main(String[] args){

Car myCar = new Car();

/* INI TIDAK BISA DILAKUKAN */

myCar.currentGear = 1;

/* SEDANGKAN INI BISA DILAKUKAN */

myCar.changeGear(2);

10

11

public class MainProgram {

public static void main(String[] args){


Car myCar = new Car();

/* INI TIDAK BISA DILAKUKAN */

myCar.currentGear = 1;

/* SEDANGKAN INI BISA DILAKUKAN */

myCar.changeGear(2);

Inheritance (pewarisan)

Sebuah class bisa mewariskan atribut property-nya dan method-nya ke class yang lain. Class yang
mewarisi disebut superclass (kelas induk). Class yang diberi warisan disebut subclass (kelas turunan).

Pewarisan memungkinkan kita untuk menciptakan kelas baru (kelas turunan) yang merupakan perluasan
atau spesialisasi dari kelas lain yang telah ada (kelas induk).

Kelas turunan akan memiliki property dan method yang sama dengan kelas induk, dimana pada kelas
turunan memungkinkan untuk menambahkan property atau method-method baru. Kelas turunan bisa
melakukan definisi ulang terhadap method-method yang sudah ada di kelas induknya (overriding).

Contoh: anda bisa membuat class ModernCar yang merupakan turunan dari class Car. Artinya, class
ModernCar memiliki property dan method yang sama dengan induknya tanpa perlu dideklarasikan
ulang. ?Agar menjadi unik, class ModernCar menambahkan method retreat() pada definisi class-nya.

ModernCar.java

public class ModernCar extends Car {

public void retreat(){

// Implementasi method untuk memundurkan mobil


}

public class ModernCar extends Car {

public void retreat(){

// Implementasi method untuk memundurkan mobil

Polymorphism

Merupakan kemampuan suatu object untuk melakukan hal yang berbeda-beda dengan menggunakan
interface yang sama. Hal ini tercermin dengan menggunakan teknik overriding dan overloading.
Overriding adalah penulisan ulang method warisan dari kelas induk. Overloading adalah penulisan
method yang sama dengan parameter input yang berbeda.

Contoh overriding:

contoh overriding

public class Animal {

String nama;

public void walk(){

System.out.println("Walk with 2 legs");

}
}

public class Dog extends Animal {

// overriding method walk() yang sudah ada di class Animal

public void walk(){

System.out.println("Walk with 4 legs");

public class Fish extends Animal {

// overriding method walk() yang sudah ada di class Animal

public void walk(){

System.out.println("Sorry can't walk");

10
11

12

13

14

15

16

17

18

19

20

21

public class Animal {

String nama;

public void walk(){

System.out.println("Walk with 2 legs");

public class Dog extends Animal {

// overriding method walk() yang sudah ada di class Animal

public void walk(){

System.out.println("Walk with 4 legs");

}
public class Fish extends Animal {

// overriding method walk() yang sudah ada di class Animal

public void walk(){

System.out.println("Sorry can't walk");

Contoh overloading:

contoh overloading

public class Dog extends Animal {

public void walk(){

System.out.println("Walk with 4 legs");

// overloading method walk() di atas dengan penambahan parameter integer

public void walk(int leg){

if ((leg<=4) && (leg>0)){

System.out.println("Walk with "+leg+" legs");

2
3

10

11

12

13

public class Dog extends Animal {

public void walk(){

System.out.println("Walk with 4 legs");

// overloading method walk() di atas dengan penambahan parameter integer

public void walk(int leg){

if ((leg<=4) && (leg>0)){

System.out.println("Walk with "+leg+" legs");

PENUTUP
Pemrograman Berorientasi Objek merupakan paradigma pemrograman yang sangat berbeda dengan
Pemrograman Prosedural. Disamping fokus pada pemecahan masalah, Pemrograman Berorientasi Objek
menitikberatkan pada identifikasi objek-objek yang terlibat dan bagaimana interaksi antar objek
tersebut.

NEXT

Pengenalan bahasa pemrograman Java

DOWNLOAD PDF

Jika anda ingin membaca materi ini dalam format PDF, silahkan download secara gratis di link ini.

REFERENSI

Tjokorda Agung Budi Wirayuda. (2007) Slide Kuliah: CS3123 Pemrograman Berorientasi Objek. Institut
Teknologi Telkom, Bandung

Sierra, K., & Bates, B. (2005) “A Brain-Friendly Guide: Head First Java 2nd Edition”. O’Reilly

Share this:

Click to share on Twitter (Opens in new window)Click to share on Facebook (Opens in new window)

Related

Source File Compilation


& Make Program

December 7, 2015
In "Kuliah"

Method, Overloading, Overriding, dan Rekursif

March 30, 2016

In "Kuliah"

Pengenalan
Pemrograman Java

February 18, 2016

In "Kuliah"

Comments

6 comments

ABSTRAKSI

BERORIENTASI

ENKAPSULASI

INHERITANSI

JAVA

KELAS

OBJEK

OVERLOADING

OVERRIDING

PEMROGRAMAN

PENURUNAN

PEWARISAN

POLYMORFISME
PREVIOUS

Source File Compilation


& Make Program

NEXT

Pengenalan
Pemrograman Java

4 COMMENTS

Fahri

NOVEMBER 15, 2018 AT 10:47

nice gan,membantu amat

REPLY

aryadharmaadi

JANUARY 11, 2019 AT 13:22

terima kasih 🙂

REPLY

Leo

JANUARY 10, 2019 AT 02:25

penejelasan yang simple


REPLY

aryadharmaadi

JANUARY 11, 2019 AT 13:23

terima kasih 🙂

REPLY

Leave a Reply

Your email address will not be published.

Comment

Name *

Email *

Website

Save my name, email, and website in this browser for the next time I comment.

Notify me of follow-up comments by email.

Notify me of new posts by email.


Search for:

SEARCH …

RECENT POSTS

Internet Protocol

Network Layer

Data Link Layer: Error Management

Data Link Layer

Physical Layer

TOP POSTS & PAGES

Konsep Dasar Pemrograman Berorientasi Objek

Konsep MVC pada Java dan Studi Kasus

Hubungan Antar Kelas dan Konsep Pewarisan

Method, Overloading, Overriding, dan Rekursif

Pengenalan Android Location

Teknik Penulisan Tugas Akhir (Bab II)

Latihan Soal Pewarisan, Overriding, dan Polymorfisme

String dan Array

Kolaborasi jQuery + AJAX + PHP + MySQL

Teknik Penulisan Tugas Akhir (Bab I)

TAGS

AGREGASI AJAX AKHIR ANDROID C CODE DATA DATABASE GET INHERITANCE JARINGAN JAVA
JAVASCRIPT JQUERY JQUERYMOBILE KELAS KOMPUTER LATIHAN LAYER LINK LOCALHOST MAHASISWA
MATAKULIAH METHOD MODEL MYSQL NETWORK OBJEK OVERLOADING OVERRIDING PEMROGRAMAN
PEWARISAN PHP POLYMORFISME POST PREPARED REFERENCE SERVER SOAL STATEMENT TABLE TUGAS
WEB XAMPP XML

Copyright © 2020 | WordPress Theme by MH Themes

Anda mungkin juga menyukai