Paradigma pemrograman adalah bagaimana cara pandang kita terhadap penyelesaian masalah pemrograman (atau sudut “serang” kita dalam menyelesaikan suatu masalah pemrograman). Ada banyak cara untuk menyelesaikan suatu masalah, sehingga ada banyak paradigma yang ada.
Beberapa contoh paradigma pemrograman yang ada saat ini adalah: prosedural, fungsional, deklaratif, dan objek. Secara singkat dapat dikatakan bahwa:
• paradigma prosedural memandang penyelesaian masalah sebagai hasil dari serangkaian langkah yang menyelesaikan sub masalah
• paradigma fungsional memandang penyelesaian masalah sebagai komposisi dan aplikasi fungsi yang memetakan masalah ke jawaban
• paradigma deklaratif memandang penyelesaian masalah sebagai hasil inferensi terhadap fakta dan aturan yang diberikan
• paradigma objek memandang penyelesaian masalah sebagai hasil interaksi dari kelas yang membentuk objek (objek dalam konsep ini merupakan representasi objek di dunia nyata)
Paradigma prosedural merupakan paradigma yang biasanya diajarkan pertama karena sangat dekat dengan mekanisme eksekusi mesin (secara hardware, komputer bekerja secara sekuensial atau berurutan). Dalam paradigma prosedural masalah diselesaikan dengan menggunakan langkah-langkah yang berurutan yang disebut sebagai suatu algoritma.
Sedangkan paradigma objek, 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 (object-oriented programming) mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Dalam pemrograman berorientasi-objek, ada beberapa konsep yang perlu ditekankan:
Abstraksi (pembuatan objek) adalah suatu cara dimana kita melihat objek dalam bentuk yang lebih sederhana. Contohnya : kita mengendarai mobil, kita tidak pernah memperhatikan komponen-komponen penyusun system mobil tersebut. Kita tidak perlu tahu bagaimana rel itu bekerja, bagaimana mesin bekerja, tentang pencampuran bahan baker dengan oksigen. Biasanya hanya melihat mobil sebagai suatu kesatuan dan dapat dikendarai.
Dengan abstarksi, kita dapat melihat suatu system terdiri dari kumpulan subsistem yang saling bekerja sama dan berinteraksi menjadi satu kesatuan.
Elemen dalam sebuah object: state dan behaviour (kelas)
Setiap object memiliki state dan behaviour. Contoh : manusia memiliki state antara lain umur, tinggi, berat, dll. Dengan behaviour berupa makan, tidur, bekerja, menjadi tua, dll. Behaviour dapat mengubah state atau tidak sama sekali, secara langsung ataupun tidak langsung. Supaya lebih mudah kita dapat menganggap state merupakan kata benda, karena bersifat pasif dan tidak beroperasi, sedangakan behaviour merupakan kata kerja, karena berfungsi melakukan operasi. Dalam implementasi sesungguhnya dalam java, state akan dikenal dengan nama properties atau field, sedangkan behaviour dikenal dengan method.
Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi penyalahgunaan dari luar system sekaligus menyederhanakan suatu system itu sendiri. Akses ke internal system diatu oleh interface.
Contoh : seperti dalam kasus mobil, bayangkan transmisi mobil. Kita tidak mengetahui transmisi tersebut secara fisik seperti pada system transmisi tentang bagaimana cara mobil mengatur percepatan dan apa yang dilakukannya terhadap mesin untuk mendapatkan percepatan tersebut. Kita hanay memindah-mindahkan tongkat transmisi untuk mendapatkan percepatan yang kita inginkan. Tongkat transmisi inilah yang menjadi interface mobil tersebut. Dengan pedal rem kita tidak dapat mengakses system tersebut. Sebaliknya dengan menggunakan transmisi tersebut kita tidak mungkin dapat menyalakan radio mobil ataupun membuka pintu mobil. Konsep yang sama dilakukan dalam pemrograman.
Dalam bahasa Java “everything is an object”. Setiap baris program merupakan bagian dari object dan memiliki fungsi masing-masing. Kita dapat mengganti object-object yang menyusun subsistem dengan object lainnya jika memang diperlukan tanpa mengganggu keseluruhan system.
Pewarisan (inheritance) merupakan suatu proses dimana suatu class diturunkan dari class yang lainnya sehingga ia mendapatkan ciri dan sifat dari class tersebut. Perbedaan antara class dan object, class dipergunakan untuk menggambarkan suatu model atau spesifikasi dari suatu entitas, sedangkan object merupakan kenyataan, realisasi atau perwujudan dari class itu sendiri.
Polymorphism berasal dari bahasa Yunani yang berarti “banyak bentuk”. Dalam OOP, mungkin digunakannnya suatu interface yang sama untuk memerintahkan suatu objek agar melakukan tindakan yang mungkin akan memberikan hasil akhir yang serupa dengan proses berbeda. Dalam konsep lebih umum polymorphism dapat disebut “suatu interface, banyak aksi”. Contoh: dalam kasus mobil, banyak merek mobil beredar dipasaran tapi semua memiliki interface kendali yang sama. Jika kita dapat mengendarai satu mobil, kita pasti dapat mengendari mobil lain dengan merek berbeda. Interface yang sama tidak berarti cara kerja yang sama.
Dengan interface yang sama dapat mendapatkan hasil yang sama tetapi bagaimana proses yang terjadi dari aksi menjadi hasil mungkin saja berbeda.
Saturday, September 26, 2009
Subscribe to:
Comments (Atom)
