You are on page 1of 15

Kegiatan Belajar 3: Pemrograman Berorientasi Objek

A. Capaian Pembelajaran Mata Kegiatan


Peserta dapat memahami pemrograman berorientasi objek

A. Sub Capaian Pembelajaran Mata Kegiatan


1. Menjelaskan konsep pemrograman berorientasi objek
2. Menjelaskan enkapsulasi
3. Meenjelaskan Pewarisan
4. Menjelaskan Polymorphism
5. Membuat interface
6. Membuat java sebagai pemrograman berorientasi objek

B. Pokok-pokok materi
1. Konsep pemrograman berorientasi objek
2. Enkapsulasi
3. Pewarisan
4. Polymorphism
5. Interface
6. Pemrograman Java

C. Uraian Materi

1. Konsep Pemrograman Berorientasi Objek


a. Enkapsulasi
Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau
memproteksi suatu proses dari kemungkinan interprensi atau penyalahgunaan
dari luar sistem sekaligus menyederhanakan penggunaan sistem itu sendiri.
Akses ke internal sistem diatur sedemikian rupa melalui perangkat interface.
Contoh kasus di dunia nyata, seperti kasus mobil. Bayangkan sistem transmisi di
dalam mobil tersebut. Sistem transmisi ini menyembunyikan dari Anda
bagaimana cara ia bekerja, mulai dari bagaimana cara ia mengatur percepatan
dan apa yang dilakukannya terhadap mesin mobil untuk mendapatkan
percepatan tersebut. Anda sebagai pengguna hanya cukup memindah-
mindahkan tongkat transmisi untuk mendapatkan percepatan yang diinginkan.
Tongkat transmisi inilah yang menjadi satu-satunya interface dalam mengatur
sistem transmisi dalam mobil tersebut. Dalam hal ini, tidak dapat digunakan
pedal rem untuk mengakses sistem transmisi tersebut. Sebaliknya dengan
mengubah-ngubah transmisi mobil tidak akan dapat menghidupkan radio mobil

1
dan menyetelnya ke stasiun kesukaan Anda, ataupun membuka pintu mobil
untuk Anda. Konsep yang sama dapat diterapkan dalam pemrograman.
Dalam bahasa Java, “everithing is an Object”. Setiap baris program yang ditulis
merupakan bagian dari suatu objek. Anda dapat juga membangun suatu objek
yang lebih kecil, dimana masing-masing objek yang menyusunnya mempunyai
fungsi tersendiri, seperti halnya subsistem dalam sebuah mobil. Yang terpenting
adalah memanfaatkan konsep ini, maka Anda dapat mengganti-ganti objek-objek
yang menyusun sub sistem ini dengan objek lainnya suatu saat nanti jika
memamng diperlukan tanpa mengganggu keseluruhan sistem.
a. Pewarisan
Sebagai manusia, sebenarnya terbiasa untuk melihat objek disekitarnya
tersusun secara hierarki berdasarkan classnya masing-masing. Dari sini
kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses
dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkan ciri
atau sifat dari class tersebut. Perhatikan contoh hierarki class berikut:

Gambar 1. Contoh hierarki class

Dari hierarki di atas, dapat dilihat bahwa semakin ke bawah, class akan
bersifat semakin spesifik, dan semakin ke atas hierarki class akan bersifat
semakin umum. Class Mamalia memiliki seluruh sifat yang dimiliki oleh class
binatang, demikian juga class Anjing, Kucing, dan Monyet memiliki seluruh sifat
yang diturunkan dari class Mamalia. Dengan konsep ini, karakteristik yang
dimiliki oleh class Binatang cukup didefenisikan di dalam class binatang saja.
Class mamalia tidak perlu mendefenisikan ulang apa yang telah dimiliki oleh
class binatang karena sebagai class turunannya, ia akan mendapatkan
karakteristik dari class Binatang secara otomatis. Demikian juga class Anjing,
Kucing, dan Monyet, hanya perlu mendefinisikan karakteristik yang spesifik yang

2
dimiliki oleh classnya masing-masing. Dengan menafaatkan konsep pewarisan
ini dalam pemrograman, Anda hanya perlu mendefinisikan karakteristik yang
spesifik dimiliki oleh suatu class, sementara semua karakteristik yang lebih
umum akan didapatkan dari class dimana ia diturunkan. Dalam pemrograman,
hal ini akan menghemat jumlah baris code yang harus ditulis sekaligus
meningkatkan reusability dari code tersebut.
b. Polymorphism
Polymorphism berasal dari bahasa Yunani yang berarti “banyak bentuk”.
Dalam OOP , konsep ini memungkinkan digunakannya suatu interface yang
sama untuk memerintah suatu objek agar melakukan suatu aksi atau tindakan
yang mungkin hasil akhir yang serupa, tetapi melalui proses yang berbeda.
Dalam konsep yang lebih umum seringkali polymorphism disebut dengan istilah
“satu interface, banyak aksi”. Contoh yang konkrit dalam dunia nyata, kembali ke
masalah mobil. Mobil yang ada dipasaran terdiri dari berbagai tipe dan merek,
namun semuanya memiliki interface kemudi yang sama, seperti stir, kemudi,
tongkat transmisi, pedal gas, dan rem. Jika Anda dapat mengemudikan satu jenis
mobil dari satu merk tertentu, maka Anda pasti dapat mengemudikan hampir
semua jenis mobil yang ada karena semua mobil tersebut menggunakan
interface yang sama. Harus diperhatikan disini bahwa interface yang sama tidak
berarti cara kerjanya juga sama. Anda mengetahui jika menekan pedal gas,
maka mobil akan melaju lebih cepat. Namun bagaimana proses ini terjadi, dapat
berbeda-beda untuk setiap jenis mobil.
Dengan interface yang sama, Anda mendapatkan hasil yang sama, tetapi
bagaimana proses yang terjadi dari aksi (menekan pedal gas) menjadi hasil
(menambah kecepatan), mungkin saja berbeda. Dalam kasus mobil di atas, hal
ini tergantung dengan teknologi bahan bakar yang digunakan.
Contoh lain untuk polymorphism, yaitu apapun jenis kendaraannya (mobil, truk,
van, pickup, sedan, baik yang berbahan bakarlistrik, gas, bensin, ataupun solar),
tetap saja istilah yang digunakan adalah “mengendarai”. Anda akan mengatakan
mengendarai trusk, atau mengendarai sedan, atau mengendarai bus. Aktivitas
yang digunakan selalu mengendarai, Anda tidak akan mengucapkan
“menunggang motor” hanya karena jenis kendaraannya berbeda bukan?

3
Mengendarai motor, mengendarai truk, mengendarai sedan, mengendarai
bus, semua potongan kalaimat ini dapat digantikan hanya dengan sebuah
potongan kalimat: mengendarai kendaraan bermotor.
Dalam struktur hierarki class, kendaraan bermotor akan menempati struktur
hierarki yang lebih tinggi (supeclass) dari semua jenis kendaraan yang telah
disebutkan di atas (motor, truk, sedan, bus). Ini adalah salah satu ciri dari
polymorphism yang akan dibahas lebih lanjut.

1. Pewarisan
Pada bagian ini akan dibahas tentang prinsip pewarisan atau penurunan
(inheritance) yang merupakan salah satu bagian terpenting dalam pemrograman
berorientasi objek. Sangat memungkinkan pengklasifikasian secara hierarki
terhadap objek dari class yang dibuat sebagaimana layaknya mengklasifikasikan
objek-objek disekitar secara hierarki dalam kehidupan nyata.
Pada dasarnya, dilakukan pewarisan untuk membuat class baru (class
turunan/subclass) yang masih memiliki sifat atau spesifikasi class dari mana ia
diturunkan (superclass). Untuk melakukan ini, java menyediakan keyword extend
yang dapat dipakai pada waktu mendeklarasikan class. Perhatikan contoh
sederhana berikut ini:
class A {
int x;
int y;
void TampilkanNilaixy() {
System.out.println(“nilai x: “ + x + “, y : “ +
y);
}
}
class B extend A {
int z;
void TampilkanJumlah() {
//subclass dapat mengakses member dari superclass
System.out.println(“Jumlah : “ + (x+y+z);
}
}
class DemoInheritance {
public static void main(String[] args) {
A superOb = new A();
B subOb = new B();
System.out.println(“SuperClass”);
//member superclass dapat diakses dari
subclassnya

4
subOb.x = 5;
subOb.y = 4;
subOb.TampilkanNilaixy();
//member tambahan yang hanya ada pada subclass
subOb.z = 5;
subOb.TampilkanJumlah();
}
}

Hasil eksekusi program:


SuperClass
Nilai x : 10, y : 20
SubClass
Nilai x : 5, y : 4
Jumlah : 59

Pada contoh di atas, class B diturunkan dari class A. Dengan demikian, class
B juga memiliki apa yang dimiliki oleh class A. Karena pada contoh di atas, tidak
menggunakan access specifier pada class A, maka class B dapat mengakses
semua member class A.
Beberapa peraturan tentang pewarisan yang perlu diperhatikan
1. Java tidak mengizinkan pewarisan berganda, yaitu membuat suatu
subclass yang diturunkan dari beberapa superclass sekaligus. Contoh
class z hendak diturunkan dari class x dan juga sekaligus dari class y. Hal
ini memungkinkan dalam c++ tetapi tidak dalam Java.
2. Suatu subclass pada dasarnya juga adalah class biasa, maka Anda tetap
dapat melakukan pewarisan pada subclass ini. Contoh dengan
berdasarkan program di atas, Anda dapat membuat sebuah class baru
yang diturunkan dari class B di atas, sehingga class baru tersebut akan
memiliki apa yang dimiliki oleh class A dan class B.
Contoh program di atas memang dibuat sederhana supaya Anda dapat
mempelajarinya dengan mudah, namun dibalik kesedarhanaan itu telah terlihat
salah satu manfaat pewarisan. Class B memiliki semua yang dimiliki oleh class A
karena itu pada class B cukup ditambahkan bagian yang memang merupakan
spesifik milik class B itu sendiri. Dengan demikian, prinsip reuse of code telah
diterapkan walaupun dalam bentuk yang paling sederhana.

5
Catatan Penting!
Dalam Java semua class sebenarnya adalah turunan dari class object. Jadi,
sekalipun membuat suatu class yang tidak diturunkan dari class manapun,
secara default Java akan membuat class tersebut diturunkan dari class object.
Dengan demikian, class object merupakan superclass dari semua class yang
ada dalam Java.

2. Interface
Terkadang dalam membuat suatu class, ingin dilakukan abstraksi, dalam arti
bahwa ingin menentukan apa yang harus atau dapat dilakukan oleh suatu class
tetapi tidak menentukan bagaimana cara untuk melakukannya. Dalah hal ini
dapat digunakan interface untuk melakukannya. Pada dasarnya interface mirip
dengan class biasa, namun property yang dimilikinya bersifat final, dan hanya
memiliki deklasri method tanpa memiliki implementasi, mirip seperti method
abstrak.
Jika diperhatikan penjelasan tentang polymorphism pada bahasan
sebelumnya mengenai dynamic method dispatch. Dapat dilihat bahwa
penggunaannya sangat tergantung dengan struktur hierarti class. Dengan
interface, diputuskan hubungan antara method dengan class hierarki ini. Dengan
demikian, dapat terjadi lebih dari satu class yang tidak berhubungan dalam
struktur class hierarki yang mengimplementasikan satu interface yang sama
sehingga memiliki sekumpulan method yang sama dan dapat diakses dengan
cara yang sama pula. Inilah salah satu aspek dari plymorphism yang telah
beberapa kali singgung, yaitu “one interface, multiple method”.
Untuk mengimplementasikan suatu interface, suatu class harus
mengimplementasi semua method yang telah ditentukan oleh interface tersebut.
Namun, detil cara implementasinya ditentukan sendiri oleh class yang
bersangkutan.
a. Pendeklarasian Interface
Secara umum bentuk deklarasi interface adalah sebagai berikut:
Access­specifier interface NamaInterface {
 Access­specifier tipe­data namaVariabel1 = value1;
 .

6
 .
 .
 Access­specifier tipe­data namaVariabelN = valueN;
 Access­specifier tipe­data namaMethod1 (parameter); 
 .
 .
 .
    Access­specifier tipe­data namaMethod1 (parameter);
}

Berikut ini aturan yang harus diingat tentang pendeklarasian interface:


1. Access specifier yang dapat digunakan hanya public atau tidak ada sama
sekali. Jika tidak ada acces specifier, maka interface tersebut hanya
dapat digunakan dalam package yang sama, dimana ia dideklarasikan.
2. Semua property yang dideklarasikan didalam interface secara otomatis
akan dianggap sebagai static final (sekalipun kita tidak menuliskannya).
Oleh karena itu, pada saat pendeklarasian harus langsung memberinya
nilai.
3. Semua method yang dideklarasikan, sama seperti class abstrak, tidak
memiliki implementasi. Bedanya dengan class abstrak adalah kita tidak
perlu lagi menggunakan keyword abstract pada waktu pendeklarasian
method di dalam interface.
4. Sama seperti class abstract, tidak dapat dibuat instance dari interface
secara langsung menggunakan perintah new
Contoh pendeklarasian interface:
interface Buku {
}
c. Penggunaan Interface
Interface digunakan dengan cara mengimplementasikannya ke suatu class
menggunakan keyword implements. Bentuk umum pemakaiannya sebagai
berikut:
Access­specifier class NamaClass implements 
NamaInterface1 ,..., NamaInterfaceN { 
//class implementation 
}
Beberapa aturan yang harus diperhatikan pada saat pengimplementasian
interface:

7
1. Anda dapat mengimplementasikan lebih dari satu interface dalam sebuah
class dengan memisahkan nama dari setiap interface dengan tanda
koma.
2. Dapat terjadi lebih dari satu interface yang diimplementasikan dalam
suatu class, memiliki method yang sama, dalam hal ini semua akses dari
interface manapun akan menggunakan implementasi dari method yang
sama pula.
3. Semua method yang diimplementasikan harus dideklarasikan sebagai
public
4. Jika tidak semua dari method yang dideklarasikan didalam interface
dimplementasikan oleh class implementasinya, maka class tersebut harus
dideklarasikan sebagai abstrak menggunakan keyword abstract.
Contoh penggunaan interface dalam program:
interface infrared {
void kirimDataInfrared(string data);
}
interface bluetooth {
void kirimDataBluetooth(string data);
}
//contoh   deklarasi   class   yang   mengimplementasikan
//interface infrared dan bluetooth
class HandPhone implements Infrared, Bluetooth {
public void kirimDataInfrared(string data {
//implementasi
} Implementasi Method dari interface
Infrared, harus dideklarasikan sebagai

public void kirimDataBluetooth(string data {
//implementasi
} Implementasi Method dari interface
Bluetooth, harus dideklarasikan sebagai

//method internal milik class ini sendiri
public void diaNomor(string no) {

8
//implementasi
}
}
/*   class   berikut   ini   harus   dideklarasikan   abstract   karena
tidak   membuat   implementasi   dari   method   yang   ada   pada
interface bluetooth*/
abstract class PDA implements Bluetooth {
//tidak ada impelemntasi method dari dari interface 
//bluetooth
}

3. Latihan dan Praktikum

Sebelum melaksanakan latihan dan praktikum, dipastikan Anda telah memiliki


aplikasi neatbeans, JDK dan JDE. Jika belum silahkan mengunduh dari laman
resmi aplikasi-aplikasi tersebut. Lalu instalasi ke dalam komputer masing-
masing. Pada tahapan ini Anda dianggap sudah dapat: melakukan instalasi dan
setting Java Development Kit; menggunakan Jcreator sebagai editor
pemrograma; dan menjalankan (eksekusi) program Java sederhana yang ditulis
dengan editor JCreator

1) Installasi Netbeans dan Setting Path


Untuk menulis program JAVA dapat digunakan berbagai editor, bahkan editor
paling sederhana (seperti Notepad pun dapat digunakan. Namun pada
umumnya, agar penulisan program lebih terarah, beberapa editor telah
disediakan untuk membantu para programmer. Beberapa editor atau IDE
(Integrated Development Environment) yang telah ada untuk Java, antara lain:
NetBeans (open source- Common Development and Distribution License
(CDDL)); NetBeans yang disponsori Sun Microsystems, yang dilengkapi dengan
GUI Editor; Eclipse JDT (open source- Eclipse Public License); Eclipse dibuat
dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation'
(beserta individu-individu lain). Banyak nama besar yang ikut dalam 'Eclipse
Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing
langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih
banyak dan bervariasi dibandingkan IDE lainnya; IntelliJ IDEA (commercial, free
30-day trial); Oracle JDeveloper (free); Xinox JCreator (ada versi berbayar

9
maupun free); JCreator ditulis dalam C/C++ sehingga lebih cepat (dan
menggunakan memori lebih sedikit) dari kebanyakan IDE lain.
Sebelum memulai pemrograman Java, kita harus menginstal Java
Development Kit (JDK) yang disediakan secara gratis oleh Sun Microsystem.
Java Development Kit tersedia dan dapat didownload pada situs Java Sun
Microsystem, yaitu: http://java.sun.com. Java 1.6 untuk berbagai platform
tersedia pada situs tersebut. Untuk menginstal software Java dapat dilakukan
dengan menjalankan file yang mengekstrak sendiri. Terdapat dua pilihan cara,
yaitu:
- Menjalankan installer dari perintah MS DOS, dan
- Melakukan double-click ikon jdk-6u11-windows-i586-p.exe
Installer yang mengekstrak file JDK akan membuat direktori yang diperlukan, dan
sekaligus menyalin file-file ke dalam direktori tersebut. Installshield Wizard
memberikan tampilan bahwa Java siap diinstalasi.
2) Setting Variabel Path
Pada saat program MS DOS dieksekusi, secara otomatis mencari direktori
yang ada untuk file target. Jika program atau file batch tidak tersedia dalam
direktori yang ada, maka akan mencari semua drive dan direktori lainnya dalam
variable path system. Dalam pengembangan Java, tidak diperlukan variable path
jika semua software yang diperlukan terdapat dalam direktori yang ada. Namun
akan lebih mudah apabila dilakukan setting variable path agar sistem secara
otomatis mencari file yang diperlukan. Dalam hal ini, path adalah drive dan
direktori dimana java.exe, javac.exe, dan aplikasi pengembangan lain
ditempatkan.
Apabila tidak dipilih direktori default, maka path adalah direktori yang dipilih
pada saat instalasi. Perintah path sistem DOS biasanya terdapat dalam file
autoexec.bat, yang dieksekusi selama sistem startup. Alternatif lain adalah, path
dapat dimasukkan dari baris perintah MS DOS dengan sintaks sebagai berikut:

PATH=[drive:][path];[drive:][path]…]

Apabila digunakan sistem operasi windows dengan JDK versi 1.5 atau yang lebih
baru, maka setting variabel path tidak diperlukan lagi. Untuk pelaksanaan
praktikum Pemrograman Berorientasi Objek nanti, digunakan JDK versi 1,6

10
sehingga proses instalasi tidak akan dilakukan. Namun apabila digunakan versi
lama, maka diperlukan langkah-langkah setting sebagai berikut:

a) Klik kanan pada “My Computer” lalu klik properties. Kemudian klik
“Advanced” lalu klik “Environment Variables” (Gambar 3.1).
b) Pada System Variables, pilih ”path” lalu klik edit (Gambar 3.2).
c) Pada “variable value” tambahkan path dimana direktori bin nya Java
diletakkan. Lalu klik OK (Gambar 3.3).

Gambar 3. 1. Setting JDK pada Windows (langkah-1).

Gambar 3. 2. Setting JDK pada Windows (langkah-2).

11
Gambar 3. 3. Setting JDK pada Windows (langkah-3).

Bila JDK yang digunakan adalah versi 1.5 atau yang terbaru, maka setting
variabel path tidak diperlukan.
3) NetBeans IDE 6.9
Pada Kegiatan Belajar Pemrograman Berorientasi Objek ini akan digunakan
NetBeans sebagai editor pemrograman. Berikut langkah-langkah penggunaan
NetBeans.
a) Setelah masuk ke NetBeans maka akan terlihat tampilan seperti pada
Gambar 3.4.

Gambar 3. 4. Tampilan awal NetBeans IDE 6.9.

b) Untuk memulai membuat project baru, pilih file – New Project... pada
bagian menu (Gambar 3.5).
c) Kemudian pada saat bagian choose project Categoty pilih java, dan pada
bagian Projects pilih Java Application (Gambar 3.6).

12
Gambar 3. 5. Membuat project baru.

Gambar 3. 6. Memilih kategori project.

Selanjutnya klik next untuk masuk ke langkah selanjutnya.


4. Selanjutnya masukkan project name dan project location seperti terlihat pada
Gambar 3.7. Sebagai latihan berikan nama project dengan hello_world.

13
Gambar 3. 7. Memberi nama pada project.

Pada bagian create main class, dapat diberikan nama yang berbeda dari
Project Name nya. Tidak perlu menambahkan .Main atau .Java, NetBeans
akan secara otomatis memberikan ekstensi-nya. Setelah selesai, klik finish.
Project hello_world yang dibuat seperti terlihat pada Gambar 3.8.

Gambar 3. 8. Tampilan awal project hello_world.

14
Dengan demikian sebuah project baru telah berhasil dibuat. Untuk pembuatan
class baru, akan dijelaskan lebih lanjut pada praktikum berikutnya yang
membahas khusus tentang pembuatan class.

D. Rangkuman
Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau
memproteksi suatu proses dari kemungkinan interprensi atau penyalahgunaan
dari luar sistem sekaligus menyederhanakan penggunaan sistem itu sendiri.
Akses ke internal sistem diatur sedemikian rupa melalui perangkat interface
Dalam interface terdapat istilah pewarisan (inheritance) yaitu pewarisan
method dan atribut dari super-class kepada sub-classnya. Penggunaan
inheritance dapat dilakukan secara overriding dan overloading method. Untuk
menggunakan inheritance pada interface,maka digunakan keyword extends.
Single inheritance yaitu pewarisan yang jumlah kelas dasarnya (super-class)
hanya satu, tetapi kelas turunannya bisa lebih dari satu. Sedangkan multiple
inheritance adalah pewarisan dimana kelas yang diturunkan lebih dari satu kelas
yang berbeda (super-class lebih dari satu).
Interface merupakan kumpulan dari method-method yang belum terdapat
operasi di dalam tubuh method tersebut.Interface bisa diturunkan atau
diwariskan kepada class yang ingin memakai method yang ada dalam masing-
masing interface tersebut dengan keyword extends [interface yang
didefinisikan]. Sebuah class dapat mengimplementasikan 1 interface yang sudah
dibuat dengan keyword implement. Interface dapat mendefinisikan konstanta.
Interface juga tidak dapat membuat instance atau objek baru dari sebuah
interface.Baik interface maupun class dapat mendefinisikan method. dalam java
terdapat multiple interface, dimana dalam satu class dapat
mengimplementasikan lebih dari satu interface.

15

You might also like