KD 3.1 Memahami konsep pemrograman berorientasi objek
A.Pemrograman berorientasi objek (object-oriented programming disingkat OOP)
Merupakan pemograman yang berorientasikan kepada
objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas
atau objek-objek. 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.
Bahasa pemrograman yang mendukung OOP antara lain:
·
Visual Foxpro
·
Java
·
C++
·
Pascal (bahasa
pemrograman)
·
SIMULA
·
Smalltalk
·
Ruby
·
Python
·
PHP
·
C#
·
Delphi
·
Eiffel
·
Perl
·
Adobe Flash AS
3.0
Istilah-Istilah
OOP
1.
Objek
Untuk mempermudah pemahaman, maka disini akan
dijelaskan melalui analogi. Pada dasarnya semua benda yang ada di dunia nyata
dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas,
komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status
(state) dan tingkah laku sebagai behavior.
Contoh objek : Motor. Maka atribute (state) nya adalah
pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku
(behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi
motor.
Analogi pemrograman berorientasi objek sama dengan
penggambara pada dunia nyata seperti contoh di atas. Dalam OOP, state disimpan
pada variabel dan tingkah laku disimpan pada method.
Dalam bahasa teoretis OOP, Objek berfungsi untuk
membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program
komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah
program komputer berorientasi objek.
2.
Class
Definisi class yaitu template untuk membuat objek. Class merupakan prototipe atau blue prints yang mendefinisikan variabel-variabel dan method-method secara umum. Objek merupakan hasil instansiasi dari suatu class. Proses pembentukan objek dari suatu kelas disebut sebagai instantiation. Objek disebut juga sebagai instances.
Dalam bahasa teoretis OOP, class merupakan 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.
3.
Attributes
Atribut adalah data yang membedakan antara objek satu dengan
yang lainnya.
Contoh Objek : VolcanoRobot ( a volcanic exploration
vehicle), mempunyai atribut sebagai berikut:
·
Status ~>
menjelajah, bergerak, kembali ke rumah
·
Kecepatan ~>
dalam mil per jam
·
Suhu ~> dalam
derajat Fahrenheit
Dalam class, atribut sering disebut sebagai variabel.
Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable.
Instance
variable adalah atribut untuk tiap objek
dari kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya
sendiri. Jadi, tiap objek dari class yang sama bokeh mempunyai nilai yang sama
atau berbeda.
Class Variable adalah atribut untuk semua objek yang
dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama.
Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya
sama.
4.
Behavior
Behavior/tingkah
laku adalah hal-hal yang bisa dilakukan oleh objek dari
suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu objek,
menerima informasi dari objek lain, dan mengirim informasi ke objek lain untuk
melakukan suatu tugas (task).
Contoh behavior untuk objek VolcanoRobot:
·
Periksa Suhu Saat Ini
·
Memulai Survei
·
Laporkan Posisinya Saat Ini
Dalam class, behavior disebut juga sebagai methods.
Methods sendiri adalah serangkaian statements dalam suatu class yang menghandle
suatu task tertentu. Cara objek berkomunikasi dengan objek yang lain adalah
dengan menggunakan method
5.
Abstraksi
Abstraksi adalah 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.
B. Konsep Konsep OOP
1.
Enkapsulasi (Encapsulation)
Definisi enkapsulasi: Pembungkusan variabel dan method
dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses
variabel tersebut. Variabel dan method yang dimiliki oleh suatu objek, bisa ditentukan
hak aksesnya. Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari
struktur dalam bahasa C.
Contoh: jam tangan. Dalam hal ini, penting sekali
untuk mengetahui waktu, sedangkan cara jam mencatat waktu dengan baik antara
jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui.
Dengan kata lain enkapsulasi berfungsi untuk
memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari
sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut
yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface
yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek
lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek
tersebut.
2.
Pewarisan (Inheritance)
Pewarisan merupakan pewarisan atribut dan method dari
sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class
yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi
class lainya, disebut sebagai multilevel inheritance.
Contoh : terdapat class sepeda dan sepeda gunung.
Sepeda termasuk superclass. Sepeda gunung termasuk subclass. Hal ini
dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh
sepeda.
Prinsip dasar inheritance yaitu persamaan-persamaan
yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk
sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk
kelas yang bersangkutan.
Keuntungan
Pewarisan
§ Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan
superclass, sehingga memungkinkan programmer untuk menggunakan ulang source
code dari superclass yang telah ada.
§ Programmer dapat mendefinisikan superclass khusus yang bersifat generik,
yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan
tingkah laku dan state secara umum.
Single &
Multiple Inheritance
Bahasa C adalah contoh multiple inheritance. Suatu
class diperbolehkan untuk mempunyai lebih dari satu superclass. Variabel dan
method yang diwariskan merupakan kombinasi dari superclass-nya. Java adalah
contoh single inheritance. Suatu class hanya boleh mempunyai satu superclass.
Multilevel
Inheritance
Suatu subclass bisa menjadi superclass bagi class yang
lain.
3.
Polimorfisme
Polimorfisme adalah kemampuan suatu obyek untuk
mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada
pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman
pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim.
Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan
menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama,
dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang
sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut
polimorfisme karena sebuah variabel tungal dalam program dapat memegang
berbagai jenis objek yang berbeda selagi program berjalan, dan teks program
yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda
dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang
mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Salah satu pemograman pendukung OOP adalah bahasa
pemograman Java.
Java adalah salah satu bahasa pemograman OOP. Bahasa ini awalnya dibuat oleh James Gosling. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
Kelebihan bahasa pemograman Java antara
lain:
·
Multiplatform
·
OOP (Object Oriented Programming - Pemrogram
Berorientasi Objek)
·
Perpustakaan Kelas Yang Lengkap
·
Bergaya C++
·
Pengumpulan Sampah otomatis
Selain mempunyai kelebihan seperti yang
sudah dijelaskan di atas, pemograman Java juga mempunyai kekurangan yaitu:
·
Masih ada beberapa hal yang tidak kompatibel antara
platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang
sampai sekarang tidak berfungsi pada Mac OS X.
·
Mudah Di Dekompilasi (proses membalikkan dari kode
jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan
bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama
kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Micosoft, NET
Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit
disembunyikan dan mudah dibajak/ reverse-engineer.)
·
Penggunaan memori untuk program berbasis Java jauh
lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++
dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan
merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend
memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih
harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.
Kd.3.2 memahami dasar dasar dan aturan pemrograman
berorientasi objek
DASAR-DASAR DAN ATURAN:
1) Penulisan
komentar
Dalam bahasa pemrograman manapun selalu
ada fitur komentar. Java sendiri memiliki sintaks yang sangat mirip dengan C
dan C++, dengan tambahan yang sangat istimewa yaitu komentar yang nantinya
digunakan untuk menciptakan dokumentasi secara otomatis oleh suatu aplikasi
yang disebut javadoc.
Dalam Java ada 3 sintaks
komentar:
·
komentar untuk satu baris saja, yaitu yang dimulai dengan
tanda // sampai dengan akhir baris;
·
komentar untuk beberapa baris, yaitu yang dimulai
dengan tanda /* dan diakhiri dengan tanda */;
·
komentar khusus untuk membuat dokumentasi program,
yaitu yang dimulai dengan tanda /** dan diakhiri dengan
tanda */.
2)
Variabel atau Identifiers
Variabel adalah item yang
digunakan data untuk menyimpan pernyataan objek. Variabel memiliki tipe data
dan nama. Tipe data menandakan tipe nilai yang dapat dibentuk oleh variabel itu
sendiri. Nama variabel harus mengikuti aturan untuk identifier.
Untuk deklarasi variabel
adalahsebagai berikut,
[=initial value];
Java memiliki tiga jenis
variabel, yaitu :
·
Variabel instans adalah variabel yang digunakan
sebagai atribut dari sebuah objek. Instans adalah objek yang diciptakan dari
sebuah kelas.
·
Variabel kelas adalah variabel yang digunakan sebagai
atribut dari sebuah kelas.
·
Variabel lokal adalah variabel yang didefinisikan dan
digunakan hanya dalam sebuah metode.
3)
Kata Kunci (Keyword)
Kata kunci adalah kata yang
telah di definisikan oleh compiler dan memiliki arti atau tujuan tertentu.
Berikut ini daftar kunci dalam java :
-Abstract |
-Const |
-Float |
-Long |
-Short |
-Boolean |
-Continue |
-For |
-Native |
-Strictfp |
-Break |
-Default |
-Goto |
-New |
-Super |
-Byte |
-Double |
-If |
-Package |
-Switch |
-Case |
-Else |
-Implements |
-Private |
-Synchronized |
-Cath |
-Extends |
-Import |
-Protected |
-This |
-Char |
-Final |
-Int |
-Public |
-Throw |
-Class |
-Finaly |
-Interface |
-Return |
-Throws |
-Transient |
-Void |
-Try |
-Void |
-Volatile |
4)
Tipe Data Primitif
Java menggunakan 8 tipe data primitif yaitu :
-Byte |
-Char |
-Short |
-Float |
-Int |
-Double |
-Long |
-Boolean |
5)
Operator
Operator adalah suatu simbol atau tanda yang digunakan
untuk mengoperasikan dua value atau lebih. Berikut ini beberapa jenis operator
yang dikenal dalam bahasa java.
a.
Operator
Aritmatika
Simbol
Operator |
Keterangan |
+ |
Penjumlahan |
- |
Pengurangan |
* |
Perkalian |
/ |
Pembagian |
% |
Modulus (sisa bagi) |
b.
Operator Logika
Simbol
Operator |
Keterangan |
& |
Logika AND |
| |
Logika OR |
^ |
Logika XOR |
! |
Logika NOT |
c.
Operator
Increment/Decrement
Simbol
Operator |
Keterangan |
++ |
Value bertambah 1 |
-- |
Value berkurang 1 |
d.
Operator
Relational
Simbol
Operator |
Keterangan |
< |
Lebih kevil dari |
> |
Lebih besar dari |
>= |
Lebih besar atau sama dengan dari |
<= |
Lebih kecil atau sama dengan dari |
== |
Sama dengan |
!= |
Tidak sama dengan |
e.
Operator
majemuk
Simbol
Operator |
Keterangan |
+= |
Contoh: a +=2, ekuivalen dengan a
= a + 2 |
-= |
Contoh: a -=2, ekuivalen dengan a
= a - 2 |
*= |
Contoh: a *=2, ekuivalen dengan a
= a * 2 |
/= |
Contoh: a /=2, ekuivalen dengan a
= a / 2 |
%= |
Contoh: a %=2, ekuivalen dengan a
= a % 2 |
6)
Pengambilan keputusan / Kontrol Pemilihan
Struktur kontrol pemilihan adalah pernyataan dari Java
yang mengijinkan user untuk memilih dan mengeksekusi blok kode spesifik dan
mengabaikan blok kode yang lain.
a)
Statement If
Pernyataan if
akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan
hanya jika persyaratan bernilai benar (true).
Bentuk dari pernyataan if,
if(boolean_expression)
statement; |
if(boolean_expression)
{ statement1; statement2; } |
b) Statement If-else
Pernyataan if-else
digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi
true dan pernyataan yang lain dengan kondisi false.
Bentuk statement if-else,
if(boolean_expression)
statement1;
else
statement2;
c) Statement If-else-if
Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if-else yang lain. Kondisi struktur
seperti ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih
kompleks. Bentuk statement if-else if,
if(boolean_expression1)
statement1;
elseif(boolean_expression1)
statement2;
else
statement3;
d) Statement Switch
Struktur penulisan statement switch adalah sebagai
berikut.
switch(expression)
{
case variabel1: statement;
statement;
break;
case variabel2: statement;
statement;
break;
default :
statement;
statement;
break;
}
7)
Perulangan
Struktur kontrol pengulangan adalah berupa pernyataan
dari Java yang mengijinkan kita untuk mengeksekusi blok code berulang-ulang
sesuai dengan jumlah tertentu yang diinginkan. Ada tiga macamj enis dari
struktur kontrol pengulangan yaitu while,
do- while,dan for-loops.
a)
While
Pernyataan whileloop
adalah pernyataan atau blok pernyataan yang diulang - ulang sampai mencapai
kondisi yang cocok. Pernyataan di dalam whileloop
akan di eksekusi berulang-ulang selama kondisi boolean_expression bernilai
benar (true). Bentuk pernyataan while,
while(boolean_expression)
{
statement1;
statement2;
}
b)
Do-while
Do-whileloop mirip dengan while-loop.
Pernyataan di dalam do-whileloop akan
dieksekusi beberapa kali selama kondisi bernilai benar(true). Perbedaan antara while
dan do-whileloop adalah dimana pernyataan
didalam do-while loop akan dieksekusi
sedikitnya satu kali.
do
{
statement1;
statement2; ...
}while(boolean_expression);
c)
For
Pernyataan forloop
memiliki kondisi hamper mirip seperti struktur pengulangan sebelumnya yaitu
melakukan pengulangan untuk mengeksekusi kode yang sama sebanyak jumlah yang
telah ditentukan. Bentuk dari for loop,
for(ekspresi awal; syarat ;ekspresi akhir)
{
statement1;
statement2;
...
}