Apa sih OOP?
OOP (Object Oriented Programming) adalah suatu metode pemrograman yang
berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan
program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari.
Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri
merupakan gabungan dari beberapa objek yang lebih kecil lagi. Saya ambil contoh
Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari
beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi,
dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil
saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan
kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang
besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling
berkomunikasi, dan saling berkirim pesan kepada objek yang lain.
a. Apa sih Objek (Object)
Setiap objek memiliki dua karakteristik yaitu Attribute (State)
dan Behavior. Attribute (State) merupakan identitas atau
informasi objek itu sendiri atau disebut juga sebagai variable,
sedangkan Behavior adalah tingkah laku atau apa yang dapat dilakukan
oleh objek itu atau disebut juga sebagai method.
Sebagai contoh Attribute (State) dari pesawat adalah nama
pesawat, tipe, warna, tahun produksi, roda, dll. Sedangkan Behavior dari
pesawat adalah cara menghidupkan mesin, cara menerbangkan pesawat (take off),
cara menurunkan pesawat (landing), dll.
Contoh :
- Titik
Titik merupakan sebuah objek yang terdiri dari posisi x dan posisi y
- Persegipanjang
Persegipanjang merupakan objek yang mempunyai panjang dan lebar
b. Apa sih Kelas (Class)
Kelas merupakan cetakan atau blueprint atau prototype, hasil dari
cetakan itu disebut objek. Contoh pesawat Boeing 737 dibuat dengan rancangan
yang sama, rancangan pesawat ini disebut kelas. Hasil rancangan itu menjadi
pesawat Boeing 737 yang disebut objek. Pesawat-pesawat hasil rancangan tadi
bisa memiliki warna, nama yang berbeda-beda tergantung perusahaan
penerbangannya. Disini jelas bahwa objek memiliki sifat independen. Objek
adalah instance dari kelas, satu kelas bisa memiliki beberapa objek.
c.
Instan (Instance)
Kelas yang telah terdefinisi dapat dijalankan (run-time) dalam bentuk instan di
memori.
Contoh :
PersegiPanjang pp = new PersegiPanjang();
Maksud dari perintah di atas adalah
sebagai berikut :
-
Instan pp merupakan sebuah objek kelas PersegiPanjang dimana pp dibentuk oleh
konstruktor Persegipanjang();
-
Konstruktor (Constructor) merupakan sebuah method dimana nama method
tersebut sama dengan nama kelas. Konstruktor tidak mengembalikan nilai tetapi
dapat dilewati atau diberikan parameter.
-
Instan pp berjalan pada memory komputer.
d. Method
Method atau fungsi atau operasi atau behaviour merupakan perintah-perintah
prosedural yang ditempatkan pada kelas untuk mendapat hasil dari
perintah-perintah tersebut.
e. Pengiriman Pesan (Message
Passing)
Setiap objek dapat menerima atau
mengirimkan pesan. Pesan-pesan tersebut bukan hanya berbentuk primitif variable
(integer, double, dll), tetapi pesan-pesan tersebut dapat berupa objek lainnya.
Contoh :
pp.setPanjang(10);
Maksud perintah diatas adalah sebagai berikut :
pp diberikan nilai panjan sebesar 10
KONSEP-KONSEP OOP PADA JAVA
1. Kelas Abstrak (Class Abstraksi)
2. Enkapsulasi (encapsulation)
3. Pewarisan (Inheritance)
4. Polimorfisme (polymorphism)
Penjelasan :
1. Kelas Abstrak (Class Abstraksi)
·
Kelas merupakan deskripsi abstrak
informasi dan tingkah laku dari sekumpulan data.
·
Kelas dapat diilustrasikan sebagai
suatu cetak biru(blueprint) atau prototipe yang digunakan
untuk menciptakan objek.
·
Kelas merupakan tipe data bagi objek
yang mengenkapsulasi data dan operasi pada data dalam suatu unit
tunggal.
·
Kelas mendefinisikan suatu struktur
yang terdiri atas data kelas (data field), prosedur atau
fungsi (method), dan sifat kelas (property).
2. Enkapsulasi (encapsulation)
·
Istilah enkapsulasi sebenarnya
adalah kombinasi data dan fungsionalitas dalam sebuah unit
tunggal sebagai bentuk untuk menyembunyikan detail informasi.
·
Proses enkapsulasi memudahkan kita
untuk menggunakan sebuah objek dari suatu kelas karena kita tidak
perlu mengetahui segala hal secara rinci.
·
Enkapsulasi menekankan pada
antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan
objek kelas tertentu.
·
Contoh: kelas mobil menyediakan
antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita
perlu tahu komposisi bahan bakar, udara dan kalor yang diperlukan
untuk proses tersebut. Contoh penggunaannya antara lain :
Private
Variabel atau method hanya dapat diakses oleh objek itu saja.
Public
Variabel atau method dapat diakses oleh objek itu sendiri dan objek lainnya
Protected
Variabel dan method dapat diakses oleh objek itu sendiri dan turunannya.
3. Pewarisan (Inheritance)
·
Kita dapat mendefinisikan suatu
kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada.
·
Penurunan sifat ini bisa dilakukan
secara bertingkattingkat, sehingga semakin ke bawah kelas
tersebut menjadi semakin spesifik.
·
Sub kelas memungkinkan kita untuk melakukan spesifikasi
detail dan perilaku khusus dari kelas supernya.
·
Dengan konsep pewarisan, seorang
programmer dapat menggunakan kode yang telah ditulisnya pada kelas
super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang
semua kodekode itu.
4. Polimorfisme (polymorphism)
·
Polimorfisme merupakan kemampuan
objekobjek yang berbeda kelas namun terkait dalam pewarisan untuk
merespon secara berbeda terhadap suatu pesan yang sama.
·
Polimorfisme juga dapat
dikatakan kemampuan sebuah objek untuk memutuskan method mana yang
akan diterapkan padanya, tergantung letak objek tersebut pada jenjang
pewarisan.
·
Method overriding.
·
Method name overloading.
Contoh
:
PersegiPanjang pp = new PersegiPanjang
Titik ttk = pp;
Maksud
pada 2 baris perintah diatas adalah
- Instan pp merupakan
objek kelas PersegiPanjang PersegiPanjang dimana pp dibentuk oleh konstruktor
Persegipanjang();
- Instan ttk merupakan
objek kelas Titik
- Instan ttk dibentuk
dari instan pp yang merupakan turunan dari pp (Polimorphisme)
- Nilai instan ttk sama
dengan instan pp
- Nilai instan pp yang
dianggap pada instan ttk adalah x,y. Sedangkan panjang dan lebar diabaikan.
KARAKTERISTIK OOP
·
Semua adalah objek.
·
Komputasi dilakukan dengan
komunikasi antar objek. Setiap objek berkomunikasi dengan objek yang
lain melalui pengiriman dan penerimaan pesan.
·
Sebuah pesan merupakan permintaan
atas sekumpulan aksi dengan semua argumen yang diperlukan untuk
menyelesaikan suatu tugas tertentu.
·
Setiap objek memiliki memori
sendiri, yang dapat terdiri dari objek-objek lainnya.
·
Setiap objek adalah wakil atau
representasi dari suatu kelas. Sebuah kelas dapat mewakili sekelompok
objek yang sama.
·
Kelas merupakan kumpulan tingkah
laku yang berkaitan dengan suatu objek. Jadi, semua objek yang
merupakan wakil dari kelas yang sama dapat melakukan aksi yang sama pula.
·
Kelas-kelas diorganisasikan ke dalam
struktur pohon yang berakar tunggal, yang dinamakan dengan jenjang
pewarisan (inheritance hierarchy).
·
Setiap objek pada umumnya memiliki
tiga sifat, yaitu keadaan, operasi dan identitas objek.
·
Operasi merupakan tindakan yang
dapat dilakukan oleh sebuah objek.
·
Keadaan objek merupakan koleksi dari
seluruh informasi yang dimiliki oleh objek pada suatu saat.
·
Informasi yang terkandung pada objek
tersebut pada akhirnya memberikan identitas khusus yang membedakan
suatu objek dengan objek lainnya.
Mari kita mencoba program sederhana ini :
import java.io.BufferedReader; //fungsi buffered reader untuk menangkap inputan dari keyboard
import java.io.IOException; //fungsi buffered reader untuk menangkap inputan dari keyboard
import java.io.InputStreamReader; //fungsi buffered reader untuk menangkap inputan dari keyboard
import javax.swing.JOptionPane; //Untuk Menampilkan Karakter
import javax.swing.*; //untuk memanggil package
import java.awt.*;
import java.awt.event.*;
public class Pembagian_Daging_Kurban extends JFrame { // pewarisan dari JFrame untuk digunakan di class Pembagian_Daging_Kurban
public Pembagian_Daging_Kurban() {
// PEMBUATAN OBJEK
JPanel panel2 = new JPanel(); // pembuatan panel 1
Container con = this.getContentPane(); // pembuatan ontainer
// Membuat label
JLabel lblDaging=new JLabel(“Masukan Berat Daging Kurban/kg”);
final JLabel lblMustahiq =new JLabel(“Masukan Jumlah Mustahiq “);
// Membuat text field
final JTextField txtDaging=new JTextField(5);
final JTextField txtMustahiq=new JTextField(5);
final JButton cmdHasil=new JButton(“HASIL”);
final JButton cmdUlangi=new JButton(“ULANGI”);
final JButton cmdExit=new JButton(“KELUAR”);
// konfigurasi layout
con.setLayout(new GridLayout(1,2,3,4)); //
panel2.setLayout(new GridLayout(5,4,3,2));
panel2.setBorder(BorderFactory.createTitledBorder(“Pembagian Daging kurban “));
// menambahkan panel ke window
con.add(panel2);
// menambahkan objek ke dalam panel 2
panel2.add(lblDaging);
panel2.add(txtDaging);
panel2.add(lblMustahiq);
panel2.add(txtMustahiq);
panel2.add(cmdUlangi);
panel2.add(cmdHasil);
panel2.add(cmdExit);
// memberikan even handling kepada command button
cmdHasil.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent ae) {
float bagian,bmustahiq,bmpo;
float daging=Float.parseFloat (txtDaging.getText());
float mustahiq=Float.parseFloat(txtMustahiq.getText());
bagian=(daging/3);
bmustahiq=(daging*2)/3;
bmpo= bmustahiq /mustahiq;
JOptionPane.showMessageDialog(null,” Bagian Daging Kurban Untuk
Yang Berkurban = ” +bagian+”Kg\nBagian Daging Kurban Untuk
Mustahiq = ” +bmustahiq+”Kg\nBagian Daging Kurban Untuk Per Orang
Mustahiq = = ” +bmpo+”Kg”); //Menampilakan hasil
} });
cmdUlangi.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent ae) {
txtDaging.setText(” “);
txtMustahiq.setText(” “);
} });
cmdExit.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent ae) {
System.exit(1);
}
});
// menampilkan window
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(300 ,300);
this.setSize(300,200);
this.setVisible(true);
}
public static void main(String[] args) {
new Pembagian_Daging_Kurban();
}
}
Hasil Program !!!
1.Tampilan awal setelah di exe
2. Tampilan setelah di inputkan angka.
3.Tampilan setelah di klik tombol hasil muncul form sebagai berikut :
4.Setelah di klik ok maka kembali ke menu utama
5. Jika anda ingin mengitung kembali pembagian daging kurban maka
klik tombol ULANGI. Maka tampilan akan kosong seperti pertama muncul.
6. Dan jika lain kali lagi mengitung pembagian daging kurban silahkan klik tombol KELUAR.