Anda di halaman 1dari 37

KATA PENGANTAR

Puji syukur kami panjatkan atas kehadirat Tuhan Yang Maha Esa, yang atas rahmat Nya
lah kami dapat menyelesaikan tugas mata kuliah Pemrograman Berorientasi Objek.
Dalam penyusunan makalah ini, tidak sedikit hambatan yang kami hadapi. Namun kami
menyadari bahwa kelancaran dalam penyusunan makalah ini tidak lain berkat bantuan, dorongan
dan bimbingan orang tua, sehingga kendala-kendala yang kami hadapi teratasi.
Dalam penulisan makalah ini kami menyampaikan ucapan terima kasih yang tak
terhingga kepada pihak-pihak yang membantu dalam menyelesaikan makalah ini, khususnya
kepada :
1. Orang tua yang telah turut membantu, membimbing, dan mengatasi berbagai kesulitan
sehingga tugas ini selesai.
2. Dosen Nahot Frastian, M.Kom, selaku Dosen Mata Kuliah Pemrograman Berorientasi
Objek yang telah meluangkan waktu, tenaga dan pikiran dalam pelaksanaan bimbingan,
pengarahan, dorongan dalam rangka penyelesaian penyusunan makalah ini.
3. Rekan-rekan semua di Kelas R5M Universitas Indraprasta Jurusan Teknik Informatika.
4. Semua pihak yang tidak dapat disebutkan satu persatu, yang telah memberikan bantuan
dalam penulisan makalah ini.
Akhirnya, kami berharap semoga Allah memberikan imbalan yang setimpal pada mereka
yang telah memberikan bantuan dan dapat menjadikan semua bantuan ini sebagai ibadah, Amiin
Yaa Robbal Alamiin.
Semoga materi ini dapat bermanfaat dan menjadi sumbangan pemikiran bagi pihak yang
membutuhkan, khususnya bagi kami sehingga tujuan yang diharapkan dapat tercapai, Amiin.

DAFTAR ISI
KATA PENGANTAR......................................................................................................................1
DAFTAR ISI ..................................................................................................................................2
BAB 1 Pendahuluan.........................................................................................................................5
1.1

Latar Belakang.........................................................................................................5

1.2

Rumusan Masalah....................................................................................................5

1.3

Tujuan ......................................................................................................................5

BAB 2 Struktur,Typedef,Union, Enumerasi, Bitfiels.......................................................................6


2.1

Struktur....................................................................................................................6
2.1.1

Deklarasi Struktur........................................................................................6

2.2

Typedef....................................................................................................................7

2.3

Uinon........................................................................................................................7

2.4

Enumerasi................................................................................................................8
2.4.1

Deklarasi Emunerasi....................................................................................8

2.5

Bitfiels......................................................................................................................8

2.6

Implementasi Struct.................................................................................................9

2.7

2.6.1

Bentuk Umum..............................................................................................9

2.6.2

Implementasi................................................................................................9

Member Operator...................................................................................................13
2.7.1

Operator Pada Java....................................................................................13


1. Operator Aritmatika...............................................................................13
2

2. Operator Penugasan...............................................................................13
3. Operator Pembandingan.........................................................................14
4. Operator Logika.....................................................................................14
2.8

2.9

2.10

Konsep Dasar Pointer ............................................................................................14


2.8.1

Deklarsi Pointer.........................................................................................15

2.8.2

Pointer di dalam Bahasa Java....................................................................15

Struktur Pointer Operator.......................................................................................18


2.9.1

Operator &.................................................................................................18

2.9.2

Operator *..................................................................................................18

Macam-macam Pointer..........................................................................................19
1. Pointer Bertipe Void ..........................................................................................19
2.Pointer Aritmetika ..............................................................................................19
3.Pointer NULL ....................................................................................................19

BAB 3 Konsep Pemrograman Berorintasi Objek..........................................................................21


3.1

Pengertian (PBO)...................................................................................................21
3.1.1

3.2

3.3

Enkapsulasi............................................................................................................25
3.2.1

Modularitas................................................................................................25

3.2.2

Information Hiding....................................................................................25

Inheritansi..............................................................................................................26
3.3.1

3.4

Konsep Dasar.............................................................................................21

Keuntungan dari inheritance......................................................................26

Polimorfisme..........................................................................................................27
3

3.5

Overriding..............................................................................................................28

3.6

Bahasa pemrograman.............................................................................................29

BAB 4 Program PrintOut...............................................................................................................30


4.1

Enkapsulasi...............................................................................................................30

4.2

Polimorfisme.............................................................................................................31

4.3

Inheritansi (Inheritance)............................................................................................35

BAB 5 Penutup..............................................................................................................................37
5.1 Kesimpilan 37

DAFTER PUSTAKA.....................................................................................................................38

BAB 1
PENDAHULUAN
1.1 Latar belakang
Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan
program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma
ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah
objek. Objek-objek ini kemudian dapat berupa gabungan dari beberapa objek yang lebih kecil.
Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan
beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan
saling mengirim pesan kepada objek lain.

1.2 Rumusan Masalah


1. Apa pengertian, dari Pemrograman Berorientasi Objek?
2. Apa konsep dasar dari PBO tersebut?
3. Terbagi menjadi berapa Member Operator pada java?

4. Apa pengertian dari Struktur dan deklarasinya?


5. Apa pengertian dari Typedef dan deklarasinya?
6. Apa pengertian dari Enumerasi dan deklarasinya?
7. Apa pengertian dari Union dan deklarasinya?
8. Apa pengertian dari Bitfiels dan deklarasinya?
9. Apa pengertian dari Enkapsulasi, Inheritansi, Polimorfisme, dan Overriding?
1.3 Tujuan
1. Untuk mengetahui pengertian, Pemrograman Berorientasi Objek tesebut, Strukturnya,dan
konsep serta deklarasinya
2. Untuk mengetahui bagaimana cara mengimplementasikan konsep PBO tersebut!
5

3. Untuk mengetahui perbedaan dari konsep-konsep yang ada di Pemrograman Berorientasi


Objek!

BAB 2
STRUKTUR, TYPEDEF, UNION, ENUMERASI, DAN BIT FIELDS
2.1

STRUKTUR
Struktur adalah sekumpulan variable yang masing-masing dapat berbeda tipe, dan

dikelompokkan ke dalam satu nama. Struktur ini sering digunakan untuk mendefinisikansuatu
record data yang disimpan didalam file.
Struktur termasuk ke dalam tipe data yang dibangkitkan (derived data type) yang disusun
dengan menggunakan obyek tipe lain.
2.1.1 Deklarasi Struktur
Struct Nama_Struktur { elemen/tipe data struktrur ; } ;
Contoh: struct mhs{
char*nama;
char*npm;
int uts, uas;
float akhir;
char mutu;
}
Contoh : struct Data {
int tinggi ;
char alamat[30];
};
variable struktur dideklarasikan dengan : struct Nama_struktur Nama_variable;
Contoh : struct Data Dian, Andi;

// Dian dan Adi variable dari struct Data


6

Cara lain mendeklarasikan variable struktur adalah digabung dengan deklarasi struct dengan
bentuk sebagai berikut :
struct Data { int tinggi;
char Alamat[30];
} Dian, Adi;
2.2

TYPEDEF
Digunakan untuk mendefinisikan kembali suatu nama tipe data yang baru berdasarkan

dengan tipe data yang lama. Contoh :


Typedef float Pecahan;
Pecahan Nilai;
Akan membuat tipe data yang baru yaitu Pecahan yang ekivalen dengan tipe data float. Maka
variabel Nilai bertipe pecahan sama dengan float Nilai ;

2.3

UNION
Union merupakan tipe data yang dibangkitkan dimana anggota-anggotanya menggunakan

secara bersama-sama ruang penyimpanan yang sama, berbeda dengan struktur yang masingmasing variable menempati lokasi memori yang berbeda. Jumlah byte yang digunakan untuk
menyimpan union adalah sedikitnya cukup untuk menyimpan data terbesar yang ditangani. Oleh
karena itu, tipe union ini digunakan untuk menangani satu, dua, atau tiga variable dengan tipe
yang mirip. Sebagai contoh:
union nilaiujian {
int uts, uas;
float akhir;
}

2.4

ENUMERASI
Enumerasi suatu tipe data yang mempunyai elemen-elemen bernilai konstatnta dengan

urutan yang sudah tertentu.Nilai-nilai tersebut berupa nilai integer. Nama enumerasi boleh tidak
ditulis jika tidak digunakan untuk enumerasi lain.
2.4.1 Deklarasi Enumerasi
enum Nama_tipe { elemen1,elemen2,};
Contoh :
enum {Minggu, senin,selasa, rabu, kamis,jumat,sabtu};

printf(%d%d%d%d%d

%d,minggu,senin,selasa,rabu,kamis,jumat,sabtu);
Output : 0123456
2.5

BIT FIELDS
Operasi bit dengan bahasa C didasarkan pada suatu struktu yang mempunyai elemen-

elemen berupa medan digit binary (bit field). Tiap bit field dapat ditentukan banyaknya bit yang
akan diwakilinya, Pendeklasian bit filed sama seperti struktur. Bit filed hanya dapat
didiklarasikan dengan tipe int, signed atau unsigned.
Contoh ;
struct tanggal { unsigned hari : 5;
unsigned bulan : 4;
unsigned tahun : 78; } ;
keterangan : elemen hari diberi nilai 5 bit berarti dapat mewakili 5 nilai 0 s/d 1 cukup untuk
mewakili nilai hari dalam 1 bulan.

2.6

IMPLEMENTASI STRUCT
Setelah kita membahas tentang ADT dan struct, sekarang akan dibahas beberapa contoh

implementasi struct, Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel
yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain. Berbeda dengan
array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabelvariabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data
array atau struct itu sendiri. Variabel-variabel yang menjadi anggota struct disebut dengan
elemen struct.
2.6.1 Bentuk umum:
typedef struct {
tipe_data ;
tipe_data ;
.... }
2.6.2 implementasi
typedef struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk;
};
untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2 seperti berikut:
Mahasiswa mhs,mhs2;
untuk menggunakan struct Mahasiswa dengan membuat variabel array m;
Mahasiswa m[100];
contoh lain:
struct {
char NIM[8];
char nama[50];
float ipk;
} mhs;
9

Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.
Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe
data struct tersebut. Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan
nama variabel struct diikuti dengan operator titik (.) misalnya dengan struct mahasiswa seperti
contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:
#include
#include
//Pendeklarasian tipe data baru struct Mahasiswa
typedef struct Mahasiswa{
char NIM[9];
char nama[30];
float ipk;
};
int main(){
//Buat variabel mhs bertipe data Mahasiswa
Mahasiswa mhs;
printf("NIM = ");scanf("%s",mhs.NIM);
printf("Nama = ");scanf("%s",mhs.nama);
printf("IPK = ");scanf("%f",&mhs.ipk);
printf("Data Anda : \n");
printf("NIM : %s\n",mhs.NIM);
printf("Nama : %s\n",mhs.nama);
printf("IPK : %f\n",mhs.ipk);
getch();
}
contoh lain:
#include
#include
#define phi 3.14
10

//langsung dianggap variabel 'lingkaran'


struct {
float jari2;
float keliling;
float luas;
} lingkaran;
void luasLingkaran()
{lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi;
printf("\nLuas lingkaran = %f",lingkaran.luas);
}
float kelLingkaran(float j){
return 2*phi*lingkaran.jari2;
}
int main(){
printf("Jari-jari = ");scanf("%f",&lingkaran.jari2);

luasLingkaran();

lingkaran.keliling = kelLingkaran(lingkaran.jari2);
printf("\nKeliling lingkaran = %f",lingkaran.keliling);
getch();
}

contoh struct yang berisi struct yang lain:


#include
#include
typedef struct Date{
int dd;
int mm;
int yyyy;
};
11

typedef struct Time{


int h;
int m;
int s;
};
typedef struct Login{
int ID;
Date tglLogin;
Time waktuLogin;
};
int main(){
Login user1
printf("USER 1\n");
printf("ID : ");scanf("%d",&user1.ID);
printf("Tanggal Login\n");
printf("Hari : ");scanf("%d",&user1.tglLogin.dd);
printf("Bulan : ");scanf("%d",&user1.tglLogin.mm);
printf("Tahun : ");scanf("%d",&user1.tglLogin.yyyy);
printf("Waktu Login\n");
printf("Jam : ");scanf("%d",&user1.waktuLogin.h);
printf("Menit : ");scanf("%d",&user1.waktuLogin.m);
printf("Detik : ");scanf("%d",&user1.waktuLogin.s);
printf("Terimakasih\n");
printf("Data Anda :\n");
printf("ID : %d\n",user1.ID);
printf("Date : %d - %d - %d\n",user1.tglLogin.dd, user1.tglLogin.mm, user1.tglLogin.yyyy);
printf("ID : %d:%d:%d\n",user1.waktuLogin.h, user1.waktuLogin.m, user1.waktuLogin.s);

12

getch();
}
2.7

MEMBER OPERATOR

2.7.1

Operator pada Java

Operator adalah sebuah karakter yang digunakan untuk menghasilkan suatu nilai dari
operator.di java ada beberapa tipe operator, antara lain :
1. Operator Aritmatika
2. Operator Penugasan
3.

Operator Pembanding

4.

Operator Logika

1. Operator Aritmatika
Operator aritmatika yang sering digunakan untuk menghitung sebuah pekerjaan matematika
seperti jumlah, bagi, kali, pangkat, dll.
Operator
+
*
/
%

Keterangan
Penjumlahan
Pengurangan
Pengurangan
Pembagian
SisaPembagian

2. Operator Penugasan
Operator penugasan adalah operator yang digunakan untuk menugaskan suatu fariabel untuk
melakukan sebuah proses. Operator ini biasa digunakan pada perulangan sebagai increment
atau decrement.
Operator
=
+=
-=
/=
%

Keterangan
PemberianNilai
PenambahanBilangan
PenguranganBilangan
PembagianBilangan
PerolehanSisaPembagian

3. Operator Pembanding

13

Operator pembanding adalah operasi yang digunakan untuk membandingkan antara dua nilai
atau operand yang menghasilkan tipe data Boolean yaitu true / false.biasa digunakan pada
perulangan dan kondisional.
Operator
==
!=
>
<
>=
<=

Keterangan
SamaDengan
TidakSamaDengan
Lebihdari
Kurangdari
Lebihdarisamadengan
Kurangdarisamadengan

4. Operator Logika
Operator logika digunakan untuk membandingkan dua kondisi yang menghasilkan nilai
Boolean yaitu true / false.
Operator
&&
||

Keterangan
Dan
Atau

Operator AND / && akan menghasilkan sepertiini :


Kondisi 1
False
False
True
True

Kondisi 2
False
True
False
True

Hasil
False
False
False
True

Operator Or / || akan menghasilkan sepertiini :


Kondisi 1
False
False
True
True
2.8

Kondisi 2
False
True
False
True

Hasil
False
True
True
True

KONSEP DASAR POINTER


Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek lain.

Pada kenyataan yang sebenarnya, variabel pointer berisi alamat dari suatu obyek lain (yaitu
obyek yang dikatakan ditunjuk oleh pointer).

14

2.8.1

Deklarasi Pointer
Seperti halnya variabel lain, variabel pointer juga harus dideklarasikan terlebih dahulu

sebelum digunakan. Bentuk umum deklarasi pointer adalah : Dimana Tipe_data merupakan tipe
dari data yang ditunjuk, bukan tipe dari pointer-nya. Contoh :
1. Mensubstitusikan address sebuah variabel ke pointer dengan memakai address operator &
int x;
int *ptr;
ptr = &x;
2. Mensubstitusikan address awal sebuah array ke pointer
char t[5];
char *ptr;
ptr = t;
3. Mensubstitusikan address salah satu elemen array dengan address operator
char t[5] ;
char *ptr;
ptr = &t[3];
4. Mensubstitusikan address awal character string ke pointer char
char *ptr;
ptr = "jakarta"
5.Mensubstitusikan NULL pada pointer. NULL ada pointer kosong, menunjukkan suatu status
dimana pointer itu belum diinisialisasikan dengan sebuah address tertentu.
6.Memakai fungsi MALLOC

2.8.2

Pointer di dalam Bahasa Java


Bahasa pemrograman Java merupakan bahasa turunan dari C, atau lebih tepatnya bahasa

turunan dari C++. Bahasa C, C++ dan Java masih merupakan saudara. Namun bahasa Java dan
bahasa C++ adalah saudara dekat. Heran ini kok malah nyambung ke sini ya
Well, Java dan C++, mereka sama-sama berorientasi objek dan mendukung fitur kelas (classes),
dan memiliki syntax yang hampir similiar secara konsep. Sejak awal diciptakannya, bahasa

15

pemrograman C memang banyak menginspirasi berbagai bahasa pemrograman lainnya,


contohnya PHP, Objective-C, Perl, Phyton, Java, dan banyak lainnya .
Java sebagai bahasa pemrograman yang juga ter-influenced by bahasa C, mempunyai banyak
kesamaan. Tapi Java tidak lantas sama dengan C. Dan bisa diperjelas lagi, bahwa Java itu bukan
C ataupun C++.
Java didesain sebagai simplifikasi dari bahasa C/C++ dan sekaligus memperbaiki fiturfitur keamanan yang kurang di pendahulunya sehingga banyak fitur-fitur bahasa C/C++ yang
dihilangkan. Semua itu bertujuan untuk meng-eliminate redundancy, alias meminimalisir proses
yang berulang-ulang. Di dalam evolusinya, bahasa C berubah menjadi kumpulan proses yang,
banyak, namun intinya sama, menyediakan terlalu banyak cara untuk melakukan hal yang sama,
dimana bahkan dalam beberapa kasus C malah tidak menyediakan fitur yang dibutuhkan.
Salah satu hal yang menjadi ciri khas Java adalah tidak adanya pointer. Sekali lagi saya
ulangi, Theres no pointer in Java. Banyak yang bilang, bahkan beberapa teman saya juga
bilang, Ada kok. Tapi mari kita bahas disini apa yang orang-orang sebut pointer di Java.
Kenapa Tidak Ada Pointer di Java Banyak penelitian berkesimpulan kalau pointer adalah
salah satu fitur utama yang memungkinkan programmer menginjeksikan bugs ke dalam program
mereka. Di Java, struktur data sudah dilenyapkan (hal ini akan dibahas lain waktu), dan array
dan string adalah objek. Maka kebutuhan untuk memakai pointer bagi struktur tersebut hilang.
Ditambah lagi Java tidak punya pointer data types. Algoritma-algoritma yang membutuhkan
array, struktur, dan pointer di dalam C bisa lebih mudah dan cepat diselesaikan dengan deklarasi
array dan objek dari suatu array. Lalu, apakah kita nggak bisa membuat struktur data seperti
linked list, stack dsb pada Java? Tentu saja tidak.
Algoritma di bawah ini adalah contoh linked-list di dalam bahasa C, dan memakai pointer
tentunya

16

Kita bisa mengamati pointer di Java hanyalah permainan dari objek-objek, object of object.
Istilah pointer di Java tidak ada, namun sengaja saya tulis mengalokasikan pointer pada
algoritma di atas. Pointer di dalam Java telah diganti dengan istilah references. Bahasa Java
hampir semuanya adalah references, variable references, object references dan lain-lain. Lantas
apa bedanya dengan pointer? Well, mekanisme references di dalam Java juga jauh berbeda,
dimana kita tidak perlu mengalokasikan wadah bagi references, dan kita juga tidak perlu
membuang references yang tidak terpakai. Masih ingat saat-saat Anda menge-set alamat pointer
ke nilai NULL? Saya tahu di saat itu Anda sedang membuang, pointer yang tidak terpakai
dengan mengesetnya ke NULL, atau bahasa Inceptionnya di-set ke LIMBO.

2.9

STRUKTUR POINTER OPERATOR


17

Ada 2 operator pointer yang dikenal secara luas, yaitu operator & dan operator *.
Operator &
2.9.1

Operator &

merupakan operator alamat. Pada saat pendeklarasian variable, user tidak diharuskan
menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh
kompiler dan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable
akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable ,
yang berarti "address of". Contoh :
ted = &andy;
Penulisan tersebut berarti akan memberikan variable ted alamat dari variable andy. Karena
variabel andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah
alamat dalam memory, bukan isi variable. Misalkan andy diletakkan pada alamat 1776 kemudian
dituliskan instruksi sbb :
andy = 25;
fred = andy;
ted = &andy;
2.9.2

Operator *

merupakan operator reference. Dengan menggunakan pointer,kita dapat mengakses nilai yang
tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier
pointer, yang berarti "value pointed by". Contoh : beth = *ted;
(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat
1776, dan nilai yang berada pada alamat 1776 adalah 25. Ekspresi dibawah ini semuanya benar,
perhatikan :
andy = 25;
&andy = 1776;
ted = 1776;
18

*ted = 25;
2.10

MACAM-MACAM POINTER
1.Pointer Bertipe Void
Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, pointer semacam
ini dideklarasikan dengan tipe void sehingga sering dikenal dengan istilah Void Pointer.
Berikut ini contoh listing program yang menggunakan void pointer.
2.Pointer Aritmetika
Elemen-elemen array biasanya diakses melalui indeksnya, sebenarnya ada cara lain yang
lebih efisien, yaitu dengan menggunakan pointer. Pointer semacam ini disebut dengan
istilah pointer aritmetika. Konsep dasar dari pointer aritmetika ini adalah melakukan
operasi aritmetika terhadap variabel yang bertipe pointer.
3.Pointer NULL
Pada saat program dijalankan, pointer akan menunjuk ke alamat acak pada memori,
sehingga diperlukan inisialisasi agar hal tersebut tidak terjadi. Dalam C++ terdapat
sebuah cara untuk membuat pointer tidak menunjuk ke alamat manapun, yaitu dengan
mengisikan ponter tersebut dengan nilai NULL. Karena hal inilah maka pointer tersebut
sering dinamakan pointer NULL (NULL Pointer).Sebagai contoh kita mempunyai pointer
p, dan kita ingin melakukan inisialisasi pada pointer tersebut dengan nilai NULL maka
sintaknya adalah sebagai berikut. P=NULL;

Melewatkan sebuah struktur untuk menjadi parameter sebuah fungsi dapat dilakukan sama
dengan pengiriman parameter berupa variabel biasa. Fungsi yang mendapat kiriman parameter
tersebut juga bisa mengirimkan hasil baliknya yang juga berupa sebuah struktur (pass by
reference).
Apabila nilai suatu elemen struktur diharapkan akan diubah oleh fungsi, maka yang dilewatkan
haruslah berupa alamat dari elemen struktur (pass by reference). Untuk keperluan ini, operator
alamat ditempatkan di depan nama variabel struktur (bukan di depan nama elemen struktur).
19

BAB 3
KONSEP PEMOGRAMAN BERORIENTASI OBJEK
3.1

Pengertian (PBO)
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,
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.
3.1.1

Konsep dasar
Kelas kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan

tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan
fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class
adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class
secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan
domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif)
bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan
OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam
masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan
menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

20

Contohnya :
public class Siswa
{
public int nrp;
public String nama;
public void Info()
{
System.out.println(Saya siswa STMIK ERESHA);
}
}

Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program
komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer
berorientasi objek.
Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses
olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani
sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan
keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan
bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan
beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
Desain berorientasi object : Sebuah teknik yang memusatkan desain pada object dan class
berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (state), behaviour dan
interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan,
meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam
modifikasi dan meningkatkan penggunaan kembali software.
Pewarisan : hubungan antara class dimana dalam satu class ada superclass atau class
induk dari class yang lain. Pewarisan menunjuk pada properti dan behaviour yang diterima dari

21

nenek moyang dari class. Ini dikenal juga sebagai hubungan is-a. Perhatikan pada hirarki
berikut.
Contohnya :
import java.awt.*;
class titik
{
int x;
int y;
}
class warnaTitik extends titik
{
Color warna;
}
Atribut : Menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi
tentang object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field
data. Kembali lagi ke contoh sistem registrasi siswa, atribut dari sebuah siswa adalah nomor
siswa.
Contohnya :
public class DeklarasiAtribut
{
private String nama;
public boolean lulus = false;
String kampus;
}
Method : Sebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal
sebagai fungsi atau prosedur. Sebagai contoh, method yang mungkin tersedia untuk entiti siswa
adalah method register.

22

Contohnya :
class DeklarasiMethod
{
int data;
int getData()
{
return data;
}
void setData(int data)
{
this.data = data;
}
void setMaxData(int data1, int data2)
{
data = (data1>data2)? data1 : data2;
}
}
Constructor : sebuah tipe khusus dari method yang digunakan untuk membuat dan
menginisialisasi sebuah object baru. Ingat bahwa constructor bukan member (yaitu atribut,
method atau inner class dari sebuah object).
Contohnya :
class DeklarasiKonstruktor
{
private int data;
public DeklarasiKonstruktor()
{
data = 100;
}
DeklarasiKonstruktor (int data)
{
23

this.data = data;
}
Package : menunjuk pada pengelompokkan class dan/atau subpackages. Strukturnya
dapat disamakan dengan direktorinya.
Contohnya :
package registrasi.reports;
import registration.processing.*;
import java.util.List;
import java.lang.*;
class Kelasku
{
3.2

ENKAPSULASI
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu

proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program
lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat
diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Manfaat dari proses enkapsulasi adalah :
3.2.1

Modularitas
Kode sumber dari sebuah objek dapat dikelola secara independen dari kode
sumber objek yang lain.

3.2.2

Information Hiding
Karena kita dapat menentukan hak akses sebuah variabel/method dari objek,
dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui
objek lain.

Contoh program
24

Belajar.java
class belajar{
public String x =Pintar;
private String y = Java;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
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.
3.3

INHERITANSI
Merupakan proses mencipatakan kelas baru dengan mewarisi karakteristik kelas yang

telah ada, atau pewarisan dari satu kelas ke kelas lain. Pewarisan adalah mekanisme ampuh yang
memungkinkan kelas mewarisi fungsionalitas kelas yang telah ada.Untuk menciptakan kelas
baru, hanya perlu menspesifikasikan cara kelas baru itu berbeda dari kelas yang telah ada.
3.3.1

Keuntungan dari inheritance :

1. Tidak perlu mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class induk
2. Memudahkan dan Mempercepat pemprogramman , mengurangi Code

public class A

25

{
public A() { }
}
public class B : A
{
public B() { }
}

3.4

POLIMORFISME
Kata polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda, adalah

konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari
suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil,
dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus dipenuhi supaya
polimorfisme dapat diimplementasikan adalah :
1.

Method yang dipanggil harus melalui variabel dari basis class atau superclass.

2.

Method yang dipanggil harus juga menjadi method dari basis class.

3.

Signature method harus sama baik pada superclass maupun subclass.

4.

Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.

public class BaseClass


{
public void DoWork() { }
public int WorkField;
public int WorkProperty
{
get { return 0; }
}
}
public class DerivedClass : BaseClass
{
26

public new void DoWork() { }


public new int WorkField;
public new int WorkProperty
{
get { return 0; }
}
}
3.5

OVERRIDING
Overriding menyatakan keadaan dimana method pada subclass menolak method pada

parent classnya. Overriding dipakai saat kita menggunakan method yang sama tapi berbeda
implementasinya. Jadi overriding method mempunyai nama method yang sama,
Contoh:
class Kendaraan

public String getJenis()

System.out.println(Harga BBM turun);


}
}
class Motor extends Kendaraan
public String getJenis()

System.out.println(Harga BBM premium 4000 rupiah);


}
}

3.6

Bahasa pemrograman
27

Bahasa pemrograman yang mendukung OOP antara lain:


1. Visual Foxpro
2. Java
3. C++
4. Pascal
5. PHP
6. Delphi
7. DLL

28

BAB 4
PROGRAM PRINT OUT
4.1

Enkapsulasi

29

4.2

Polimorfisme

30

31

32

33

4.3

Inheritansi (Inheritance)

34

35

BAB 5
PENUTUP
5.1

Kesimpulan
Struktur adalah pengelompokan variabel-variabel yang bernaung dalam satu nama yang

sama, namun tipe datanya tidak harus sama. Variabel-variabel yang membentuk suatu struktur,
selanjutnya disebut sebagai elemen dari struktur atau field. Suatu struktur didefinisikan dengan
menggunakan kata kunci struct. Elemen dari suatu variabel struktur dapat diakses dengan
menyebutkan nama variable struktur diikuti dengan operator titik (.) dan nama dari elemen
strukturnya.
Sebuah struktur juga bisa diinisialisasi pada saat dideklarasikan. Hal ini serupa dengan
inisialisasi array, yaitu elemen-elemennya dituliskan di dalam sepasang kurung kurawal ({ })
dengan masing-masing dipisahkan dengan koma. Elemen-elemen dari suatu array juga dapat
berbentuk sebuah struktur (array of struct). Melewatkan sebuah struktur untuk menjadi
parameter sebuah fungsi dapat dilakukan sama dengan pengiriman parameter berupa variabel
biasa. Fungsi yang mendapat kiriman parameter tersebut juga bisa mengirimkan hasil baliknya
yang juga berupa sebuah struktur (pass by reference).
Jika sebuah struktur mengandung banyak field dan diputuskan bahwa keseluruhan fieldnya akan diubah oleh fungsi, maka cara yang efisien adalah dengan melewatkan (passing) alamat
dari struktur. Dengan demikian pada pendefinisian fungsi, parameter formalnya berupa pointer
yang menunjuk ke struktur (pointer to struct).
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak
melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek
apa yang dapat melakukan pemecahan masalah tersebut.

36

DAFTAR PUSTAKA
Read more: http://jintoples.blogspot.com/2012/12/tipe-tipe-operator-padajava.html#ixzz2fIRaxFEm
http://www.google.com
http://www.ilmukomputer.com/pemrograman-berorientasi-objek/

37

Anda mungkin juga menyukai