Anda di halaman 1dari 8

PEMROGRAMAN BERORIENTASI OBJEK (OOP)

A. TUJUAN
1. Mengetahui konsep dan paradigma umum OOP.
2. Mengetahui perbedaan antara pemrograman prosedural dengan OOP.
3. Memahami kelas, constructor, kata kunci this, package, dan kontrol akses pada
pemrograman Java.
4. Memahami overload terhadap method dan constructor.
B. DASAR TEORI
I. Pengenalan OOP
Pemrograman berorientasi objek merupakan suatu teknik dalam membuat program.
Teknik OOP akan memecah komponen-komponen penusun program menjadi bagian-
bagian tersendiri ang disebut objek. !etiap objek memiliki data "si#at, berupa variabel
maupun konstanta$ dan method "perilaku%behavior atau kemampuan melakukan sesuatu,
berupa #ungsi$.
Gambar 2.1 Konsep dasar OOP
1 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r
1
&erikut merupakan karakteristik umum OOP '
(bstraction cara kita melihat suatu sistem dalam bentuk ang lebih sederhana,
aitu sebagai suatu kumpulan subsistem "objek$ ang saling berinteraksi. )ontoh *
mobil adalah kumpulan sistem pengapian, sistem kemudi, sistem pengereman.
+ncapsulation mekanisme menembunikan suatu proses dalam sistem untuk
menghindari inter#erensi dan menederhanakan penggunaan sistem itu sendiri.
)ontoh * tongkat transmisi pada mobil, tombol on%o##%pengaturan suhu pada ().
,nheritance suatu class dapat me-ariskan data%atribut dan method kepada class
lain "subclass$, serta membentuk class hierarch.
Modularit si#at objek adalah modular. Objek dapat ditulis dan dimaintain
terpisah "independen$ dari objek lain.
Polmorphism suatu objek dapat memiliki berbagai bentuk, sebagai objek dari
classna sendiri atau objek dari superclassna.

II. Objek
Objek merupakan bagian terpenting dalam OOP. Objek dapat dide#inisikan sebagai
suatu entitas ang memiliki data dan method. )ontoh objek aitu manusia ang memiliki data
atribut "nama, jenis kelamin, hobi$ dan behavior "cara bicara, cara berjalan dsb$. .alam dunia
pemrograman, suatu objek diabstrasikan menjadi sebuah kelas/class. .engan kata lain, kelas adalah
bentuk abstrak dari sebuah objek.
III. Perbedaan Per!graan Pr!"ed#ral dan OOP
Model pemrograman tradisional atau prosedural, semua data dan kode digabung
menjadi satu bagian dalam satu program. /ntuk program-program sederhana ang hana
membutuhkan beberapa buah baris kode, penggunaan model ini tentu tidak begitu menjadi
masalah. Permasalahan baru akan timbul pada saat program tersebut berkembang kea rah
ang lebih besar dan kompleks, ang mungkin butuh ratusan bahkan ribuan baris kode.
Oleh karena itu, muncul model pemrograman berorientasi objek. Pada model ini,
komponen-komponen penusun program secara konseptual akan dipecah menjadi bagian-
bagian tersendiri ang disebut dengan objek. &erikut ini gambar ang mengilustrasikan
perbedaan ang terdapat antara pemrograman procedural dan OOP.
2 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r
Gambar 4.3 Perbedaan pemrograman prosedural dengan OOP
!ecara umum, beberapa keuntungan model pemrograman berorientasi objek adalah '
objek-objekna dapat digunakan ulang "reusable$ untuk program-program lain
programna lebih terstruktur dan lebih mudah untuk dikembangkan
bersi#at natural atau alami, kerena perilaku dan si#at-si#at objek di dalam program
akan disesuaikan dengan objek-objek dunia nata sekitar kita.
I$. Pengenalan Per!graan Ja%a
.alam sebagian besar bahasa pemrograman, sebuah kode program harus
dikompilasi maupun diterjemahkan sehingga dapat dijalankan di dalam sebuah komputer.
0omputer hana mengenali bilangan biner, 1 dan 2. Manusia tidak mampu berkomunikasi
dengan komputer menggunakan bahasa 1 dan 2 sehingga diperlukan perantara seperti
bahasa pemrograman.
.alam bahasa pemrograman Java ada compiler dan interpreter untuk
menerjemahkan kode program agar dapat dijalankan. )ompiler bertugas untuk
menerjemahkan kode program secara keseluruhan dan hasil dari kompilasina berupa
btecode. !edangkan interpreter bertugas untuk menerjemahkan btecode per baris. Pada
pemrograman Java, proses kompilasi kode program hana dilakukan sekali akan tetapi
interpreter akan dilakukan setiap program dieksekusi.
3 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r
Gambar 1.1 Proses pembentukan dan eksekusi program di dalam Java
.alam menjalankankan atau melakukan proses eksekusi program Java diperlukan
sebuah Java 3irtual Machine "J3M$. !etiap interpreter Java, baik ang berupa development
tool maupun sebuah -eb bro-ser, merupakan implementasi dari J3M. Program ang
dibuat dengan Java tidak mungkin dapat dijalankan di dalam komputer maupun alat lain
ang tidak memiliki J3M.
.engan adana konsep btecode ini, dalam terminologi Java dikenal adana istilah
4-rite once, run an-here5. ,ni berarti bah-a sekali kita menulis program Java dan
melakukan kompilasi terhadapna, maka btecode-na dapat dijalankan di dalam plat#orm
manapun selama plat#orm tersebut memiliki J3M.
2. 0elas "class$
0elas merupakan inti dari pemrograman java. !etiap program java merupakan
kelas. Jadi, setiap kasus pemrograman dalam java, haruslah dibungkus ke dalam sebuah
kelas. (pa itu 0elas6 kelas dapat dide#inisikan sebagai cetak biru "blueprint$ atau
prototpe%kerangka ang mende#inisikan variabel-variabel "data$ dan method-method
"perilaku$ umum dari sebuah objek tertentu. 0elas dapat digunakan sebagai tipe data untuk
mendeklarasikan suatu objek. Pada saat kita membuat kelas baru, berarti kita telah
mende#inisikan tipe data baru. .engan kata lain, kelas adalah pola "template$, untuk
pembuatan objek, dan objek adalah -ujud nata "instance$ dari sebuah kelas. !ebagai
contoh, manusia adalah kelas* sedangkan contoh objek atau -ujud nata dari kelas manusia
adalah si /din, Tono, .e-i, dan lainna.
.alam java, kelas dide#inisikan dengan menggunakan kata kunci class. !ebelum
mendeklarasikan objek ketika membuat program, kita perlu mendeklarasikan variabel ang
digunakan sebagai re#erensi ke objek dari kelas bersangkutan. !etelah itu, kita perlu
menginstansiasi kelas dengan menggunakan operator ne- dan memasukkan instance-na
ke dalam variabel re#erensi ang baru saja dideklarasikan.
4 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r
)ara mende#inisikan kelas di dalam Java '
class namaKelas1 {
tipeData1;
tipeData2;
....
tipeDataN;
}
)ara mendeklarasikan objek di dalam Java '
//mendeklarasikan variabel k bertipe Kotak
//Format deklarasi objek namaKelas1 namaVariabelbjek1;
Kotak k;
//!elak"kan instansiasi dan memas"kkan re#erensi ke variabel k
//Format instansiasi dan pemas"kkan re#erensi namaVariabel1 $ ne% namaKelas1&';
k $ ne% Kotak&';
//(ara sin)katn*a memb"at objek den)an Format namaKelas1 namaVariabelbjek1 $ ne%
namaKelas1&';
Kotak k $ ne% Kotak&';
2. )onstructor
)onstructor adalah method khusus ang dide#inisikan di dalam kelas dan akan
dipanggil secara otomatis setiap kali terjadi instansiasi objek. )onstructor itu sendiri
ber#ungsi untuk melakukan inisialisasi nilai terhadap data-data ang terdapat pada kelas
bersangkutan.
7al ang perlu diperhatikan pada saat mende#inisikan suatu constructor kelas adalah
tipe kembalian. Perlu diingat bah-a constructor tidak memiliki nilai kembalian, tidak juga
void seperti method biasana. 7al ini disebabkan karena secara implisit sebenarna tipe
kembalian dari constructor adalah tipe kelas itu sendiri. !elain itu nama constructor
haruslah sama persis dengan nama kelas ang dide#inisikan. /ntuk menjadikan constructor
lebih dinamis, kita dapat menggunakan parameter ke dalamna.
%%mende#inisikan constructor
namaKelas&' {
8.. %%kode program ang akan ditulis
}
%%contoh program menggunakan constructor
class Kotak {
do"ble panjan);
do"ble lebar;
do"ble tin))i;
%%mende#inisikan constructor untuk kelas kotak
Kotak &' {
5 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r
panjan) $ +;
lebar $,;
tin))i $2;
}
do"ble hit"n)Vol"me&' {
ret"rn &panjan) - lebar - tin))i';
}
class Demo(onstr"ctor {
p"blic static void main&.trin)/0 ar)s' {
Kotak k $ ne% Kotak&';
.*stem.o"t.println&1Vol"me kotak $ 1 2 k.hit"n)Vol"me&'';
}
}
3. 0ata 0unci 4this5
0ata kunci this sebenarna proses melakukan re#erensi ke objek ang sedang akti#.
Java tidak mengi9inkan untuk mendeklarasikan variabel dengan nama sama di dalam satu
blok tertentu. .i sisi lain, Java memperbolehkan untuk mendeklarasikan nama parameter
ang sama dengan nama data ang terdapat di dalam kelas. Meskipun demikian, nama
variabel lokal "dalam hal ini, variabel ang digunakan sebagai parameter$ akan menimpa
nama data ang terdapat dalam kelas bersangkutan. /ntuk menghindari proses penimpaan
variabel ini, maka diharuskan untuk menggunakan kata kunci this.
(lass Kotak&' {
Do"ble panjan)3lebar3tin))i;
%%constructor
Kotak&do"ble panjan)3 do"ble lebar3 do"ble tin))i' {
this.panjan) $ panjan);
this.lebar $ lebar;
this.tin))i $ tin))i;
}
}
Pada contoh di atas, this.panjang, this.lebar, this.tinggi menunjuk ke data panjang,
lebar, dan tinggi ang terdapat dalam kelas K!&ak()' bukan parameter ang terdapat pada
constructor.
6 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r
4. Package
Java menediakan sarana dalam pengelompokan kelas-kelas dan inter#ace ang
berkaitan menjadi satu unit tunggal ang disebut paket "package$. :asilitas package
menediakan mekanisme pengelolaan sekelompok kelas dan inter#ace serta menghindari
kon#lik penamaan. 0ita dapat mende#inisikan kelas-kelas di dalam paket ang tidak dapat
diakses kode di luar paket. 0ita juga dapat mende#inisikan kelas-kelas ang hana
digunakan kelas-kelas di paket ang sama. .engan cara ini memungkinkan kelas-kelas di
satu paket saling tahu, tapi tidak untuk kelas-kelas di luar paket.
!intaks untuk pernataan package sebagai berikut '
packa)e 4denti#ier;

5. 0ontrol (kses dengan (ccess !peci#ier
.alam melakukan pembungkusan "encapsulation$, sebenarna data dan kode
"method$ digabungkan menjadi satu. 0ontrol akses digunakan untuk mengatur siapa saja
ang dapat mengakses atau mengubah nilai suatu member dari objek. (da 4 buah access
speci#ier ang dikenal dalam java, aitu '
Public ' siapa pun dapat mengakses member ini, baik code ang ada di
dalam class itu sendiri ataupun ang berada di luar class.
Private ' member ang dideklarasikan sebagai private hana dapat digunakan
oleh internal member dari class tersebut saja. Tidak ada code satu pun dari luar class
tersebut ang dii9inkan mengakses%mengubah nilai member tersebut.
Protected ' member ang dideklarasikan hana dapat diakses oleh member
class itu sendiri, member class turunan, dan member class lain ang berada dalam
package ang sama.
Tanpa (ccess !peci#ier ' mirip dengan public, namun member tersebut tidak dapat
diakses oleh member class ang berada dalam package ang berbeda.
$. O%erl!ad
7 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r
.alam suatu kelas, kita dapat mende#inisikan lebih dari satu method atau
constructor dengan nama ang sama, selama parameter ang terdapat pada method atau
constructor tersebut berbeda. Proses pende#inisian method atau constructor dengan nama
sama ini disebut dengan overload.
Parameter dalam suatu method atau constructor dikatakan berbeda dari method atau
constructor lainna apabila '
Jumlahna berbeda, meskipun tipe datana sama.
Tipe datana berbeda, meskipun jumlahna sama.
Jumlah dan tipe datana berbeda.
.a#tar Pustaka
;aharjo, &udi., 7eranto, ,mam., 7arono, (ri#. "211<$. !"dah 5elajar 6ava3 &andung '
Penerbit ,n#ormatika.
,ndrajani,. Martin. "211=$. 7emro)raman 5erbasis bjek den)an 5ahasa 6ava. Jakarta '
Penerbit PT +le> Media 0omputindo.
8 | O b j e c t O r i e n t e d P r o g r a mmi n g L a b . S i s t e m
K o mp u t e r

Anda mungkin juga menyukai