Object Oriented
Programming (OOP)
SEJARAH OOP
Konsep OOP dimulai
pertengahan 1960-an dengan sebuah bahasa programSIMULASMALLTALK.
Meskipun developer software tidak secara intensif mengembangkan OOP, tetapi
metodologi object-oriented tetap digunakan sampai sekarang. kemudian
dilanjutkan di era 70-an dengan Pada pertengahan 80-an, bahasa OOP
seperti C++ dan Eifle menjadi popular
diantara programmer komputer. Popularitas OOP berlanjut pada tahun 90-an,
banyak pengembang perangkat lunak menggunakan konsep OOP seperti yang dilakukan
pada Java dan kemudian PHP yang menjadi popular sekarang. Di tahun 2002, versi
terakhir dari Visual Studio, Microsoft-pun ikut memperkenalkan bahasa OOP baru
yaitu C#(dibaca C-sharp) serta penyempurnaan Visual
Basic 6.0 yang tidak mendukung OOP menjadi VB.NET sebagai
bahasa pemrograman berorientasi objek.
Pengertian Object
Oriented Programming (OOP)
Pemrograman
berorientasi Objek yang dalam istilah Inggris disebut sebagai Object Oriented
Programming (disingkat OOP) adalah salah satu pendekatan pemrograman atau
paradigma untuk pengembangan / development suatu perangkat lunak komputer
dimana dalam struktur perangkat lunak tersebut didasarkan kepada interaksi
objek dalam penyelesaian suatu proses / tugas. Jika kita mencoba melihat bagaimana
tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi
dalam sebuah object-oriented world. Jika akan bepergian kita pasti
berinteraksi dengan objek mobil. Sebagai sebuah objek, mobil berisi objek-objek
lain yang berinteraksi untuk melakukan tugasnya membawa kita.
Pemrograman ini mempertinggi kualitas dan produktifitas pengembangan software.
Program pengembangannya dilakukan dengan pendekatan building block. Setiap
block, disebut object, bersifat independen dan mampu berjalan sendiri atau
saling kunci dengan object lain dengan mudah dan otomatis. Object-object
berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya.
Masing-masing object harus berisikan informasi mengenai dirinya sendiri
(encapsulation) dan object yang dapat dikaitkan (inheritan).
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih,
kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunakskala 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.
KARAKTERISTIK OOP
Pemrograman
orientasi-objek menekankan konsep berikut:
·
· 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.
·
· 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.
·
· Enkapsulasi – Memastikan pengguna
sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara
yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin 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.
·
· Polimorfisme melalui pengiriman pesan.
Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat
mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan
tergantung kepada objek tertentu di mana pesa 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.
·
· Inheritas- Mengatur polimorfisme dan
enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis
khusus dari objek yang sudah ada – objek-objek ini dapat membagi (dan
memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut
(bahasa
berbasis-objek tidak selalu
memiliki inheritas.)
·
· 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. Sebagai contoh anggap kita
memiliki sebuah departemen yang memiliki manager, sekretaris, petugas
administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data
dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung
tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus
tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data
tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas
adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar
objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Bahasa pemrograman
yang mendukung OOP:
1. Java
OOP (Object Oriented Programming –
Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java
adalah Objek. Java merupakan
salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data
diturunkan dari kelas dasar yang disebut Object. Hal ini sangat
memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi
kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan
terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa
pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi
antara komputer sekalipun.
Pascal adalah bahasa
pemrograman yang pertama
kali di buat oleh ProfesorNiklaus Wirth, seorang anggota International
Federation of Information Processing (IFIP) pada tahun 1971. Dengan mengambil
nama dari matematikawan Perancis,Blaise Pascal, yang pertama kali menciptakan
mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat
bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain
itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi
kekurangan-kekurangan bahasa pemrograman yang ada pada saat itu.
4. Microsoft
Visual Basic .NET
Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan
dan membangun aplikasi yang bergerak di atas sistem .NET
Framework, dengan
menggunakan bahasa BASIC. Dengan menggunakan alat ini,
para programmerdapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari
beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu
dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma
bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi
dari Microsoft Visual Basicversi sebelumnya yang diimplementasikan di atas .NET
Framework. Peluncurannya
mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh
Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu.
5. Ruby
Ruby adalah bahasa
pemrograman scripting yang berorientasi obyek. Tujuan dari ruby adalah
menggabungkan kelebihan dari semua bahasa-bahasa pemrograman scripting yang ada
di dunia. Ruby ditulis dengan bahasa pemrograman C dengan
kemampuan dasar seperti Perl dan Python.
6. Python
Python adalah bahasa
pemrograman model skrip (scripting
language) yang berorientasi obyek. Python dapat digunakan untuk berbagai
keperluan pengembangan perangkat lunak dan dapat berjalan di berbagai
platform sistem
operasi
7. PHP
PHP adalah bahasa
pemrograman script yang paling banyak dipakai
saat ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak
tertutup kemungkinan digunakan untuk pemakaian lain
8. C# adalah
Java versi Microsoft, sebuah bahasa multi flatform yang didesain untuk bisa
berjalan di berbagai mesin. C# adalah pemrograman berorientasi Object (OOP). C#
memiliki kekuatan
bahasa C++ dan portabilitas seperti Java.
J2EE (JAVA 2 ENTERPRISE EDITION)
J2EE adalah
kelompok dari beberapa
API (Application Programming Interface) dari
Java dan teknologi selain
Java. J2EE dirancang
untuk membuat aplikasi
yang rumit. J2EE
sering dianggap sebagai
middle-ware atau teknologi yang berjalan di server, namun sebenarnya
J2EE tidak hanya terbatas untuk itu.
Faktanya J2EE juga mencakup teknologi
yang dapat digunakan di semua lapisan dari sebuah sistem informasi.
Implementasi
J2EE menyediakan kelas dasar dan API dari Java yang mendukung
pengembangan dan rutin standard
untuk aplikasi client
maupun server, termasuk aplikasi yang berjalan di web browser.
J2SE (JAVA 2 SECOND EDITION)
J2SE adalah
inti/ dasar dari
bahasa pemrograman Java.
JDK (Java Development Kit)
adalah salah satu tool
dari J2SE untuk
mengkom- pilasi dan menjalankan
program Java. Tool
J2SE yang salah
satunya adalah JDK
1.5 dapat diunduh
pada
http://java.sun.com/j2se/,
dimana JDK merupakan tool open
source dari Sun.
J2ME (JAVA 2 MICRO EDITION)
J2ME adalah
lingkungan pengembangan yang
dirancang untuk mele-takan perangkat lunak Java pada barang
elektronik beserta perangkat
pendukungnya. Pada J2ME,
jika perangkat lunak berfungsi baik
pada sebuah perangkat, maka belum
tentu juga berfungsi baik pada perang- kat yang lainnya. J2ME membawa
Java ke dunia
informasi, komunikasi, dan
perangkat komputasi selain
perangkat komputer desktop yang biasanya lebih kecil dibandingkan
perangkat komputer desktop.
J2ME biasa digunakan
pada telepon selular,
pager, personal digital
assistants (PDA) dan
sejenisnya. J2ME adalah
bagian dari J2SE,
karena itu tidak
semua librabry yang
ada pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunyai beberapa library khusus yang tidak dimiliki
J2SE.
Teknologi J2ME
juga memiliki beberapa
keterbatasan, terutama jika
diaplikasikan pada ponsel. J2ME
sangat tergantung pada
perangkat (device) yang
digunakan, bisa dari
segi merek ponsel dan
dukungan terhadap teknologi
J2ME. Misalnya, jika
sebuah ponsel tidak
memiliki kamera, maka jelas J2ME pada ponsel tersebut tidak dapat
mengakses kamera. Keterbatasan lainnya
adalah pada ukuran aplikasi,
karena memori pada ponsel sangat terbatas. Sebagian ponsel tidak
mengijinkan aplikasi J2ME menulis pada file, karena alasan keamanan.
Configuration merupakan
Java Library minimum
dan kemampuan yang dimiliki oleh
para pengembang J2ME, maksudnya adalah sebuah
moblile device dengan kemampuan Java akan dioptimalkan agar sesuai.
Configuration hanyalah mengatur hal-hal tentang kesamaan sehingga dapat dijadikan
ukuran kesesuaian antar
device. Misalnya sebuah lampu sepeda dapat digunakan oleh
berjenis-jenis sepeda.
Dalam
J2ME telah didefinisikan dua buah konfigurasi yaitu :
♦ CLDC (Connected Limited Device
Configuration) Untuk perangkat kecil.
♦ CDC (Connected Device Configuration)
Untuk perangkat yang lebih besar.
Profile berbeda
dengan configuration, profile
membahas sesuatu yang spesifik
untuk sebuah perangkat.
Sebagai contoh misalnya, sebuah sepeda
dengan merek tertentu
tentu mempunyai ciri
spesifik dari sepeda lainnya.
Dalam
J2ME terdapat dua buah profile yaitu MIDP (Mobile Information Device Profile)
dan Foundation Profile. Keterhubungan antara configuration dan
profile yang ada
pada J2ME beserta
jenis mesin
virtualnya
dapat dilihat dibawah ini.
Aplikasi J2ME Aplikasi J2 ME Applet/ Aplikasi
(MIDlet) CVM J2SE
KVM Foundation JVM
MDP Profile J2SE
CLDC CDC
CLDC (Connected
Limited Device Configuration) adalah perangkat dasar dari
J2ME berupa library dan API yang diimplementasikan pada J2ME, seperti
yang digunakan pada
telepon selular, pager
dan PDA. Perangkat tersebut
sangat terbatas pada
memori, sumber daya
dan kemampuan memproses.
AMP C (Pengenalan Java)
Spesifikasi CLDC pada J2ME adalah spesifikasi
minimal dari package, kelas, dan sebagian fungsi JVM yang dikurangi agar dapat
diimplemen-tasikan dengan keterbatasan sumber daya pada alat-alat tersebut. JVM
yang digunakan disebut KVM (Kilobyte Virtual Machine). CDC (Connected
Device Configuration) merupakan
komunitas proses pada Java
yang memiliki standardisasi. CDC terdiri
dari virtual machine dan
library dasar untuk
dipergunakan pada profile
industri. Implementasi CDC pada J2ME adalah source code yang menyediakan
sambungan dengan macam-macam
platform. Perbandingan antara CLDC dengan CDC sebagai berikut :
CLDC
♦ Mengimplementasikan seba gian dari J2SE
♦ JVM yang digunakan adalah KVM
♦ Digunakan pada
perangkat genggam
(handphone, two-way pager, dan
PDA) denga memori terbatas antara 160-512KB
♦ Prosessor : 16/ 32 bit
CDC
♦ Mengimplementasikan selu-ruh fitur J2SE
♦ JVM yang digunakan adalah CVM
♦ Digunakan pada
perangkat genggam (internet TV, Nokia communicator, car
TV) dgn memori minimal 2MB
♦ Prosessor : 32 bitMIDP (Mobile
Information Device Profile)
adakal spesifikasi untuk sebuah profil J2ME.
MIDP memiliki lapisan
di atas CLDC,
API tam-bahan untuk daur hidup
aplikasi, antarmuka, jaringan, dan penyimpan-an persisten.
Pada saat
ini terdapat MIDP
1.0 dan MIDP
2.0, fitur tambahan
pada MIDP 2.0 adalah
terdapat API untuk
multimedia, terdapat dukungan memainkan tone, tone sequence, dan
file WAV walaupun tanpa adanya Mobile Media API (MMAPI). KVM (Kilobyte
Virtual Machine) adalah
paket JVM yang
dirancang untuk perangkat yang
kecil. KVM mendukung
sebagian dari fitur-fitur JVM, tidak mendukung operasi
floating-point dan finalisasi objek. KVM diimplementasikan dengan
menggunakan C, sehingga
sangat mudah beradaptasi pada
tipe platform yang berbeda
CVM
(C-Virtual Machine) adalah
paket JVM yang
digunakan pada CDC. CVM
mempunyai seluruh
fitur-fitur dari virtual
machine yang dirancang
untuk perangkat yang
memerlukan fitur-fitur Java
2 Virtual Machine.
AMP
C (Pengenalan Java)
MIDlet
adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah bagian dari
kelas javax.microedition.midlet. MIDlet
yang didefinisikan pada MIDP.
MIDlet berupa sebuah kelas abstrak yang merupakan sub kelas dari
bentuk dasar aplikasi
sehingga antaramuka antara aplikasi J2ME dan aplikasi manajemen pada
perangkat dapat terbentuk.
JAD (Java Application Descriptor) digunakan
untuk mendeskripsikan isi aplikasi untuk
keperluan pemetaan. File
JAD bersisi deskripsi
file JAR (Java Archive)
dan pemetaan atribut
MIDlet, sedangkan file
JAR berisi kumpulan kelas dan resource. OTA (Over The Air) mengacu pada
beberapa teknologi jaringan tanpa kabel.
Dengan menggunakan OTA,
provider MIDlet dapat
menginstal MIDlet pada web
server dan menyediakan
link untuk mengunduh
via WAP atau internet
microbrowser.
J2ME WTK
(J2ME Wireless Tool
Kit) adalah alat yang menyediakan lingkungan emulator,dokumentasi,
beserta contoh-contoh aplikasi Java untuk
perangkat kecil (small
device). J2ME WTK
berbasiskan pada CLDC dan MIDP.
J2ME WTK adalah program yang meniru kerja ponsel yang mendukung MIDP atau yang
biasa disebut emulator. Oleh karena itu,
belum tentu MIDlet
yang berjalan di
emulator juga berjalan
pada ponsel yang sebenarnya,
karena juga tergantung pada kemampuan dan kapasitas ponsel yang
digunakan.
Input Coding
/*----------------
Nama File : Latihan3.java
Author : Suroso Selalu Tersenyum
------------------*/
import java.io.*;
class Latihan3
{
public static void main(String[] args)
{
String kata="";
boolean akhir=false;
int huruf;
System.out.println("****************************************");
System.out.println(" STMIK NUSA MANDIRI");
System.out.println("****************************************");
System.out.println("Masukan Nama:");
while(!akhir)
{
try
{
huruf=System.in.read();
if(huruf <-3|| huruf=='\n')
akhir=true;
kata=kata+(char) huruf;
}
catch (IOException e)
{
System.err.println("Error");
akhir=true;
}
}
System.out.println("Masukan Nama="+ kata);
}
}
Completed Program
--------------------Configuration: <Default>--------------------
****************************************
STMIK NUSA MANDIRI
****************************************
Masukan Nama:
suroso selalu tersenyum
Masukan Nama=suroso selalu tersenyum
Process completed.