KONSEP DASAR PEMOGRAMAN BERORIENTASI OBJEK (OOP)
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.
Istilah-istilah dalam OOP :
·
Kelas atau Class :
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.
·
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.
·
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
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.
·
Polomorfisme 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.
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 bagian
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 administrasi. Jadi untuk
menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena
setiap objek memiliki deskripsi tugasnya sendiri.
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.
Versi awal Java ditahun 1996 sudah merupakan
versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan
banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
·
java.lang:
Peruntukan kelas elemen-elemen dasar.
·
java.io:
Peruntukan kelas input dan output, termasuk
penggunaan berkas.
·
java.util:
Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas
penanggalan.
·
java.net:
Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer
lain menggunakan jaringan TCP/IP.
·
java.awt:
Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
·
java.applet:
Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
Kelebihan bahasa pemograman Java antara lain :
·
Multiplatform.
Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem
operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di
mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java
dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa
mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas
beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program
berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan
baik di atas Microsoft Windows. Platform yang didukung sampai saat ini
adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris.
Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri
(yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
·
OOP (Object
Oriented Programming - Pemrogram Berorientasi Objek)
·
Perpustakaan Kelas Yang Lengkap,
Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan
dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para
pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah
dengan keberadaan komunitas Java yang besar yang terus menerus membuat
perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan
aplikasi.
·
Bergaya C++,
memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik
banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat
banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java.
Universitas-universitas di Amerika Serikat juga mulai berpindah
dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah
dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil
jurusan komputer.
·
Pengumpulan Sampah otomatis,
memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak
perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa
C++ yang dipakai secara luas).
Selain mempunyai kelebihan seperti yang sudah
dijelaskan di atas, pemograman Java juga mempunyai kekurangan yaitu :
·
Tulis sekali, jalankan di mana
saja - 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 didekompilasi.
Dekompilasi adalah 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/direverse-engineer.
·
Penggunaan memori yang banyak.
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.
Banyak pihak telah membuat IDE (Integrated
Development Environment - Lingkungan Pengembangan Terintegrasi) untuk
Java. Yang populer saat ini (Juli 2006) antara lain:
·
Dr. Java, program gratis yang dikembangkan oleh
Universitas Rice, Amerika Serikat
·
BlueJ, program gratis yang dikembangkan oleh
Universitas Monash, Australia
·
NetBeans (open source- Common Development and
Distribution License (CDDL))
·
NetBeans disponsori Sun Microsystems, dan versi
terkininya memilki Matisse, sebuah GUI Editor yang menurut pendapat umum
merupakan yang terbaik.[rujukan?]
·
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 maupun free)
·
JCreator ditulis dalam C/C++ sehingga lebih cepat (dan
menggunakan memori lebih sedikit) dari kebanyakan IDE.
(Sumber : http://en.wikipedia.org)
Contoh penulisan bahasa pemograman Java :
public class identitas
{
String Nama,WarnaRambut,TinggiBadan,BeratBadan;
int Umur;
public static void main(String[]args)
{
identitas Obj = new identitas();
Obj.Nama = "XXXXXXX";
Obj.WarnaRambut="XXXX";
Obj.TinggiBadan="155";
Obj.BeratBadan="50";
Obj.Umur=24;
System.out.println("Nama Lengkap : " +
Obj.Nama);
System.out.println("Warna Rambut : " +
Obj.WarnaRambut);
System.out.println("Tinggi Badan : " +
Obj.TinggiBadan + " Cm");
System.out.println("Berat Badan : " +
Obj.BeratBadan + " Kg");
System.out.println("Umur : " + Obj.Umur);
}
}
Semoga artikel yang saya share ini dapat bermanfaat.
Thanks..
Tidak ada komentar:
Posting Komentar
Hai. Jangan lupa tinggalkan komentarnya ya!
Komentar sobat sangat berarti bagi saya ^_^