Pemrograman berorientasi objek (Inggris: object-oriented
programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan
kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam
kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur.
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.
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.
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 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 PBO antara lain:
1. Visual Foxpro
2. Java
3. C++
4. Pascal (bahasa pemrograman)
5. Visual Basic.NET
6. SIMULA
7. Smalltalk
8. Ruby
9. Python
10. PHP
11. C#
12. Delphi
13. Eiffel
14. perl
Java
Sejarah perkembangan Java
Bahasa pemrograman Java pertama lahir dari The Green
Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas
1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini
dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy,
beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil
proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang.
Pertemuan proyek berlangsung di sebuah gedung perkantoran
Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup
dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai
pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen),
seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star
Seven).
Setelah era Star Seven selesai, sebuah anak perusahaan TV
kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka
memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo
Alto.
Perusahaan baru ini bertambah maju: jumlah karyawan
meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini
juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan
ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan,
yang dipakai hanya di kalangan akademisi dan militer.
Mereka menjadikan perambah (browser) Mosaic sebagai landasan
awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi
dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner
berganti nama menjadi Hot Java.
Pada sekitar bulan Maret 1995, untuk pertama kali kode
sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk
pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23
Mei 1995.
Sayang terjadi perpecahan di antara mereka suatu hari pada
pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama
proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc
Andreessen, membentuk Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan
jendela ruangan kerja "bapak java", James Gosling. Nama Oak ini tidak
dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar
dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi
"Java". Nama ini diambil dari kopi murni yang digiling langsung dari
biji (kopi tubruk) kesukaan Gosling.
Versi Awal
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
1. 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.
2. OOP (Object Oriented Programming - Pemrogram Berorientasi
Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan
salah satu bahasa pemrograman berbasis objek 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.
3. 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.
4. 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.
5. 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).
Kekurangan
1. Tulis sekali, perbaiki 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.
2. 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
Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan
lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
3. 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.
Contoh Kode Program Sederhana Dalam Java
Contoh program Halo dunia yang ditulis menggunakan bahasa
pemrograman Java adalah sebagai berikut:
Public class HaloDunia
{
public static void
main(String[] args)
{
System.out.println("Halo Dunia");
}
}
System.out.println("Halo km");
}
Tahap Kompilasi Java
1. Tulis / Ubah. Pemrogram menulis program dan menyimpannya di
media dalam bentuk berkas '.java'.
2. Kompilasi. Pengkompilasi membentuk bytecodes dari program
menjadi bentuk berkas '.class'.
3. Muat. Pemuat kelas memuat bytecodes ke memori.
4. Verifikasi. Peng-verifikasi memastikan bytecodes tidak
mengganggu sistem keamanan Java.
5. Jalankan. Penerjemah menerjemahkan bytecodes ke bahasa
mesin.tidak bisa di pakai‘’
C++
C++ adalah salah satu bahasa pemrograman komputer. Dibuat
pada tahun 1980-an oleh Bell Labs (Bjarne Stroustrup) sebagai pengembangan dari
Bahasa pemrograman C. Salah satu perbedaan yang paling mendasar dengan bahasa C
adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented
Programming).
Java' adalah bahasa pemrograman yang dapat dijalankan di
berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems
dan diterbitkan tahun 1995. Java tidak boleh disalahpahami sebagai JavaScript.
JavaScript adalah bahasa scripting yang digunakan oleh web browser.
Pascal (bahasa pemrograman)
Pascal adalah bahasa pemrograman yang pertama kali di buat
oleh Profesor Niklaus 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.
Kelebihan
Kelebihan dari bahasa pemrograman Pascal adalah:
1. Tipe Data Standar, tipe-tipe data standar yang telah
tersedia pada kebanyakan bahasa pemrograman. Pascal memiliki tipe data standar:
boolean, integer, real, char, string,
2. User defined Data Types, programmer dapat membuat tipe data
lain yang diturunkan dari tipe data standar.
3. Strongly-typed, programmer harus menentukan tipe data dari
suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan
tipe data selain dari format yang ditentukan.
4. Terstruktur, memiliki sintaks yang memungkinkan penulisan
program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat
dipergunakan berulang-ulang.
5. Sederhana dan Ekspresif, memiliki struktur yang sederhana
dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari
dan dipahami.
Bahasa PASCAL juga merupakan bahasa yang digunakan sebagai
standar bahasa pemrograman bagi tim nasional Olimpiade Komputer Indonesia
(TOKI). Selain itu, Bahasa PASCAL masih digunakan dalam IOI (International
Olympiad in Informatics).
Tipe Data
Dalam bahasa Pascal terdapat beberapa jenis tipe data yang
bisa digunakan untuk sebuah variabel atau konstanta pada program. Tipe Data
tersebut antara lain adalah
Tipe Data Deskripsi (range variabel)
Byte angka dari 0 sampai 255
Integer angka dari -32768 to 32767
Real semua nilai pecahan dari 1E-38 to 1E+38
Boolean nilai TRUE atau FALSE
Char semua karakter dari tabel ASCII
String semua huruf, spasi, frase
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
programmer dapat 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 Basic versi 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.
Hubungan dengan Visual Basic klasik
Apakah Visual Basic .NET dianggap sebagai sebuah versi
Visual Basic atau benar-benar bahasa yang berbeda merupakan sebuah topik
perdebatan yang hangat. Hal ini dikarenakan sintaksis bahasa Visual Basic .NET
tidak mengalami perubahan yang sangat drastis, dan hanya menambahkan beberapa dukungan
fitur baru seperti penanganan eksepsi secara terstruktur dan ekspresi yang bisa
di-short-circuit-kan. Dua perubahan tipe data pun terjadi saat berpindah ke
Visual Basic .NET. Dibandingkan dengan Visual Basic 6.0, tipe data Integer yang
dimiliki oleh Visual Basic .NET memiliki panjang dua kali lebih panjang, dari
16 bit menjadi 32 bit. Selain itu, tipe data Long juga sama-sama berubah
menjadi dua kali lipat lebih panjang, dari 32 bit menjadi 64 bit. Bilangan
bulat 16-bit dalam Visual Basic .NET dinamakan dengan Short. Lagi pula,
desainer GUI Windows Forms yang terdapat di dalam Visual Studio .NET atau
Visual Basic .NET memiliki gaya yang sangat mirip dengan editor form Visual
Basic klasik.
Jika sintaksis tidak banyak yang berubah, lain halnya dengan
semantik, yang berubah secara signifikan. Visual Basic .NET merupakan sebuah
bahasa pemrograman yang mendukung fitur "Bahasa Pemrograman Berorientasi
Objek" secara penuh, karena memang didukung oleh arsitektur Microsoft .NET
Framework, yang mengandung kombinasi dari Common Language Runtime dan Base
Class Library. Visual Basic klasik, hanya merupakan sebuah bahasa pemrogaman
berbasis objek, yang berjalan di atas arsitektur Component Object Model (COM).
Perubahan ini telah mengubah banyak asumsi tentang hal yang
benar yang harus dilakukan dengan mempertimbangkan performa dan kemudahan untuk
dipelihara. Beberapa fungsi dan pustaka perangkat lunak, yang ada di dalam
Visual Basic klasik, kini tidak terdapat di dalam Visual Basic .NET; mungkin
masih banyak yang masih terdapat di dalam Visual Basic .NET, tapi tidak
seefisien apa yang ditawarkan oleh .NET Framework. Bahkan jika program Visual
Basic klasik bisa dikompilasi dengan benar, sebagian besar program Visual Basic
klasik harus melalui beberapa proses refactoring untuk mengadopsi fitur bahasa
baru secara keseluruhan. Dokumentasi untuk ini pun tersedia di situs
Microsoft[1].
Contoh Pemrograman
Contoh program sederhana dalam bahasa Visual Basic .NET yang
dipakai untuk menghitung jumlah pembayaran dari m_item buah barang dengan harga
m_price per item ditambah 5% pajak penjualan: [2].
Dim m_item, m_price,
tax, total As double
m_item =
double.Parse(textBox1.Text)
m_price =
double.Parse(textBox2.Text)
tax = 0.05
total = m_item *
m_price * (1 + tax)
label5.Text =
total.ToString()
MessageBox.Show("Well Done.")
Berikut ini adalah contoh lain dari program Visual Basic
yang menggunakan objek CheckBox dan ComboBox untuk menghitung jumlah kredit
mata kuliah yang diambil oleh seorang mahasiswa (masing-masing mata kuliah = 3
kredit):
Dim total As Integer
total = 0 ' awal dari jumlah kredit total
If (CheckBox1.Checked = True) Then 'boleh memilih semua
checkbox
total += 3
End If
If
(CheckBox2.Checked = True) Then
total =
total + 3
End If
If
(CheckBox3.Checked = True) Then
total =
total + 3
End If
If (ComboBox1.SelectedIndex = 0) Then 'hanya bisa memilih
satu
total =
total + 3
ElseIf
(ComboBox1.SelectedIndex = 1) Then
total =
total + 3
ElseIf
(ComboBox1.SelectedIndex = 2) Then
total =
total + 3
End If
Label3.Text = CStr(total) ' hasil kredit total yang diambil