Pemrograman Berorientasi Objek
Beni Suranto, S.T.
What is Object-Oriented Programming ? Metafora dasar OOP Objek-objek yang berinteraksi Sebuah program Java dan program berorientasi objek lainnya, adalah sebuah kumpulan dari objek-objek yang berinteraksi yang memodelkan dari kumpulan objek-objek di dunia nyata
Contoh : Model yang digunakan desainer untuk membuat desain lay out dapur
Model tersebut berisi objek-objek yang merepresentasikan berbagai macam cabinet dan peralatan dapur. tiap objek tersebut merupakan versi sederhana yang berkorespondensi dengan objek nyata yang sebenarnya
Model dari lay out dapur bersifat statis, tidak berubah. sebaliknya, sebuah program komputer bersifat dinamis dan dapat melakukan berbagai macam aksi. Objek pada sebuah program komputer berkomunikasi dengan objek yang lain dan mereka berubah setiap saat. Dalam hal ini, objek-objek yang menyusun sebuah program komputer disebut
anthropomorphic (“like people”).
• Contoh : jika si A sedang makan dengan si B dan si A memerlukan garam, maka si A akan berkata kepada si B : “Tolong ambilkan saya garam di dekatmu itu”. • Sama halnya ketika si A memasukkan kartu ATM dan menekan nomor pin maka ATM akan “meminta” kepada objek database bank : “Berilah saya objek rekening bank milik si A”. • Kemudian jika si A ingin mengambil sejumlah uang, missal 1.000.000 maka ATM akan kembali “meminta” kepada objek database bank untuk mengurangi saldo rekening si A sejumlah 1.000.000. dalam hal ini, baik si A maupun rekening bank si A adalah objek yang berubah sebagai hasil dari transaksi yang telah dilakukan.
What is an Object? Sama halnya seperti di kehidupan nyata, objek adalah semua hal, baik objek fisik (physical) maupun objek konseptual (abstract), meliputi objek natural maupun objek artificial (human-made).
Attribute and Value Semua objek memiliki beberapa atribut karakteristik. Atribut dan nilainya pada sebuah objek seringkali disebut sebagai state dari objek tersebut. Contoh : Saldo rekening si A adalah 3.500.000. Dalam contoh ini, saldo menunjukkan state dari objek rekening si A.
Action and Message Sebagai sesuatu yang dinamis, setiap objek dapat melakukan aksi dan dapat dikenakan aksi tertentu. Pada prakteknya, membuat program dengan Java pada dasarnya adalah bagaimana membuat objek-objek yang kita perlukan dan membuat objek-objek tersebut melakukan aksi yang kita inginkan. Contoh : 1. program game catur method moveTo() untuk memindah posisi bidak catur 2. program ATM method report() untuk menampilkan saldo rekening
Aksi yang berkaitan dengan objek dapat digunakan untuk mengirim message ke objek dan memperoleh informasi dari objek.
Message adalah melewatkan informasi atau data dari satu objek ke objek yang lain.
Argument adalah nilai data yang menentukan isi dari message. Contoh : Method moveTo(C,4) memindah posisi bidak catur ke posisi baris C kolom 4.
Contoh lain : Mekanisme mesin ATM
Pada prinsipnya, untuk dapat merespons message yang dikirim, sebuah objek harus “mengetahui” bagaimana melakukan aksi yang diminta. Contoh : • Bidak catur harus tahu bagaimana bergerak (merespons method moveTo() ) • ATM harus tahu bagaimana menampilkan saldo rekening (merespons method report() ) Kita tidak bisa meminta bidak catur untuk menampilkan saldo rekening atau meminta ATM untuk bergerak pada bidang catur.
Pada melakukan aksi yang diminta message, state sebuah objek dapat berubah maupun tetap.
Contoh : • Akibat method moveTo() state bidak catur berubah (pindah posisi) • Akibat method report() state rekening tetap
Prinsip-prinsip Desain Berorientasi Objek 1. Divide and Conquer memecah masalah secara keseluruhan menjadi sejumlah objek yang akan berinteraksi untuk menyelesaikan masalah tersebut. 2. Encapsulation menentukan atribut dan aksi yang melekat pada sebuah objek-objek. Tujuan utamanya adalah untuk mendefinisikan aturan yang jelas dalam program dengan menentukan tanggung jawab masing-masing objek yang berbedabeda.
3. Interface kita harus mendeskripsikan dengan jelas bagaimana objek-objek saling berinteraksi agar dapat bekerja sama secara efisien. Interface objek harus didesain untuk membatasi cara bagaimana sebuah objek dapat digunakan oleh objek yang lain.
Contoh : • Jam digital waktu ditampilkan dalam unit diskret dan untuk mengubah setting waktu menggunakan tombol • Jam analog waktu ditunjukkan oleh jarum dan untuk merubah setting waktu menggunakan semacam roda kecil
4. Information-Hiding desain detail dari sebuah objek harus disembunyikan dari objek yang lain. Contoh : kita tidak perlu tahu mekanisme bagaimana jam bekerja untuk dapat menggunakan jam tersebut. 5. Generality Agar objek dapat berguna seoptimal mungkin, objek tersebut harus didesain untuk dapat melakukan beberapa jenis tugas, bukan hanya untuk satu tugas tertentu saja. Prinsip ini mendasari adanya penggunaan library software. Contoh : penggunaan library I/O.
6. Extensibility Salah satu dari keunggulan pendekatan berorientasi objek adalah kemampuan untuk memperluas perilaku objek dalam menangani tugas baru. Contoh : Jika perusahaan membutuhkan agen penjualan yang mampu menguasai pesanan hardware maka akan lebih ekonomis untuk melatih agen sales yang sudah ada daripada harus merekrut dan melatih agen sales baru. 7. Abstraction abstraksi adalah kemampuan untuk memilih fokus pada fitur-fitur penting dari sebuah objek ketika harus bekerja dengan informasi yang berjumlah sangat banyak. Pada program Java, objekobjek yang dirancang akan diabstraksi dengan fokus hanya pada atribut-atribut yang penting bagi penyelesaian masalah yang dihadapi.
Why Java ? Java didesain pertama kali oleh Sun Microsystems pada tahun 1991 dengan nama “Oak” (karena pohon tersebut terlihat dari ruangan pengembangnya, yaitu James
Goslin).
Java pada awalnya merupakan bahasa pemrograman yang digunakan untuk memprogram alat-alat elektronik konsumen, seperti oven microwave dan sistem keamanan rumah.
Keunggulan Java :
1. Berorientasi Objek (object oriented). 2. Handal (Robust) memiliki fitur untuk mendetekdi error sebelum program dijalankan. 3. Bebas platform (Platform independent) Trademark Java “Write once, run everywhere” Portabilitas tinggi sangat bermanfaat untuk aplikasi berbasis web
4.
Merupakan bahasa terdistribusi (Distributed language) Mendukung aplikasi jaringan Memiliki sejumlah koleksi code libraries yang dapat langsung digunakan untuk jenis-jenis aplikasi tertentu
5.
Mendukung keamanan kode program (Secure language) Melindungi program dari untrusted code yang mungkin membawa virus atau menyebabkan corrupt pada sistem. Contoh : pada saat program Java yang berbasis web didownload maka program tersebut akan mencegah adanya proses pembacaan dan penulisan informasi dari dan ke komputer.
End of slides..