Rabu, 27 Januari 2016

Materi 15 Pemrograman berorientasi objek

sumber gambar : pythoncentral.io
Pengantar
Pemrograman berorientasi pada objek atau Object-Oriented Programming (OOP) erupakan suatu paradigma pemrograman yang termasuk ke dalam ketegori pemrograman
imperatif. Pemrograman imperatif sendiri adalah suatu paradigma pemrograman yang mendeskripsikan program sebagai suatu urutan atau alur langkah-langkah yang harus dilakukan untuk memecahkan suatu masalah. Berlawanan dari pemrograman imperatif adalah pemrograman deklaratif, yang mendeskripsikan program sebagai sekumpulan aturan yang digunakan untuk mendeskripsikan masalah.

Konsep OOP berbeda dari konsep pemrograman prosedural, meskipun sama-sama bersifat imperatif. Pada pemrograman prosedural, programmer berpikir bagaimana mengolah data yang ada dengan menggunakan instruksi-instruksi yang ada. Di sini programmer melihat data sebagai objek PASIF yang harus dikenai tindakan agar dapat menghasilkan output yang diinginkan. Berbeda dengan itu, pada konsep OOP programmer berpikir bagaimana membuat sebuah objek yang berisi data dan dapat melakukan pekerjaan yang sesuai. Di sini programmer melihat data sebagai objek AKTIF yang dapat bertindak dan melakukan hal-hal tertentu untuk menghasilkan output. Sebagai contoh dapat menggunakan data atau objek pesawat. Pada pemrograman prosedural atau Non-OOP, programmer berpikir bagaimana cara menerbangkan atau mendaratkan pesawat. Sementara itu pada pemrograman berorientasi objek atau OOP, programmer berpikir bagaimana pesawat itu terbang atau mendarat. Contoh lainnya adalah menggunakan sebuah struktur data abstrak semacam stack atau tumpukan. Pada pemrograman Non-OOP, programmer berpikir bagaimana cara menambahkan item baru ke dalam stack. Sementara itu pada konsep OOP, programmer berpikir  apa yang akan dilakukan oleh stack saat suatu item baru ditambahkan padanya.

Tujuan utama dari pengembangan pendekatan berorientasi objek (OOP) adalah untuk menghilangkan beberapa kelemahan yang terdapat pada pendekatan procedural. Pada OOP data diperlakukan sebagai elemen yang penting dan tidak boleh mengalir secara bebas dalam program. Data yang terikat kepada function dan harus dilindungi terhadap kemungkinan perubahan dari luar function.

Saat program semakin tumbuh besar lagi, konsep pemrograman terstruktur ini kemudian dirasa sudah kurang mencukupi lagi untuk menanganinya. Kerepotan yang dirasakan terutama timbul karena adanya pemisahan antara kesatuan - kesatuan data dengan fungsi - fungsi yang digunakan untuk mengolahnya. Semakin banyak kesatuan data yang dibuat, maka semakin akan terasa bahwa sebenarnya ada yang mirip satu sama lain, sehingga fungsi - fungsi yang mengolahnya pun menjadi mirip - mirip. Hal ini sering menyebabkan munculnya kode yang ditulis berulang - ulang di bagian - bagian yang saling terpisah. Sebagai contoh adalah data karyawan di sebuah perguruan tinggi, yang dibedakan menjadi karyawan kependidikan (dosen) dan karyawan non - kependidikan (non - dosen). Kedua data ini memiliki banyak kesamaan, namun juga ada perbedaannya yang tidak sedikit. Keduanya sama - sama digaji namun perhitungannya berbeda. Tapi walaupun dikatakan berbeda cara menghitungnya , ada kemiripannya juga sehingga menyebabkan adanya duplikasi kode. Selain itu masih banyak contoh yang lainnya. Untuk memecahkan masalah semacam itu, dikembangkanlah konsep pemrograman berorientasi pada objek atau OOP. Dalam OOP, bukan hanya nilai - nilai yang terkait saja yang disatukan ke dalam satu kesatuan, melainkan juga aksi - aksi atau tindakan untuk mengolah nilai - nilai itu juga. Dengan kata lain, dalam OOP data dan fungsi (tindakan) untuk mengolahnya dibungkus dalam satu kesatuan. Bungkus inilah yang kemudian dinamakan sebagai OBJEK.

Teknik pembungkusan data dan fungsi ini dikenal dengan istilah encapsulation atau pengkapsulan. Selain itu ada konsep inheritance atau pewarisan dimana dua objek yang mirip dapat diturunkan dari sebuah objek yang lebih umum dan mewarisi semua data dan fungsi yang ada tanpa harus menulis ulang kodenya. Selain itu terdapat juga konsep polymorphism yang membuat dua objek berbeda dapat diperlakukan dengan cara yang sama karena diturunkan dari objek umum yang sama, walaupun nantinya dapat menghasilkan output yang berbeda juga. Sebagai contoh, masalah karyawan dosen dan karyawan non - dosen di atas. Dengan OOP, masalah tersebut dapat dipecahkan dengan membuat sebuah objek (sebenarnya istilah yang lebih tepat adalah class, namun untuk sementara memakai objek dulu supaya lebih jelas) karyawan yang berlaku bagi karyawan secara umum, baik dosen maupun non - dosen. Objek ini berisi data dan fungsi yang umum dimiliki oleh seorang karyawan. Setelah itu tinggal menurunkan objek tersebut ke dalam dua objek terpisah yaitu objek dosen dan objek non - dosen. Kedua objek ini mewarisi semua yang dimiliki objek karyawan namun dapat dikustomisasi atau disesuaikan dengan hal - hal yang lebih spesifik. Kedua objek ini
kadang bisa dianggap sama, kadang juga bisa dianggap berbeda.

Referensi
Asnawi C, Pemrograman Berorientasi Objek, 2012, STMIK Jenderal A.Yani, Yogyakarta.
Hendra, Pemrograman Berorientasi Objek pada VB.NET, 2014, Indoprog

Kerjakan Quiz KLIK DISINI





0 komentar:

Posting Komentar