Pengantar Pemrograman Berorientasi Obj ek -STRUKTUR DATA- Muhammad Riza Hilmi, ST. rizahilmi@gmail.com
Pengantar (1) Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis, dan tersusun berdasarkan algoritma yang sederhana dan m udah dipaham i. Pemrograman Berorientasi Objek (Inggris: object-oriented program m ing disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek, jadi semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.
Pengantar (2) Perbedaan keduanya adalah pada pemrograman berorientasi objek setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Sedangkan untuk pemrograman terstruktur adalah sebuah cara pemrosesan data yang terstruktur (sistematis) dalam analisa, cara dan penulisan pem rogram an.
Pengantar (3) Pemrograman terstruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih m udah dalam hal perawatannya. Sementara itu pemrograman berorientasi objek m em liki beberapa keuntungan seperti : Maintenance, program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk program m er. Pengubahan program (berupa penambahan atau penghapusan fitur tertentu) disesuaikan dengan keperluan berdasarkan objeknya.
Apa itu OOP? Paradigma pemrograman yang memandang sistem yang akan dibangun berdasarkan objek objek yang terlibat dan interaksinya dalam sistem. Sistem dibangun dengan membuat objek objek dan menginteraksikannya untuk menyelesaikan suatu pekerjaan. Fungsi dan data menjadi satu kesatuan yang disebut sebagai Obje ct Program adalah serangkaian object yang berinteraksi untuk m enyelesaikan suatu problem.
Pemrograman Berorientasi Obj ek OOP berputar pada konsep dari obyek yang m erupakan elem en dasar dari program. Ilustrasinya adalah Objek m obil m em punyai atribut tipe transm isi, warna dan manufaktur, mobil juga mempunyai tingkah laku berbelok, mengerem dan berakselerasi. Cara yang sam a pula kita dapat m endefinisikan perbedaan sifat dan tingkah laku dari singa. Pada perangkat lunak, m enggunakan atribut sebagai d ata dan tingkah laku sebagai m e thod.
Class Kum pulan 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 m enunjuk pada berbagai m acam perilaku/ turunan dari anjing. Class adalah suatu struktur dalam program yang berisi satu atau beberapa metode (dapat berupa fungsi dan/ atau prosedur) dan atribut (dapat berupa data ataupun variabel yang akan dipoerasikan dalam metode). Dengan demikian atribut merupakan anggota kelas yang bersifat statis, sedangkan metode merupakan anggota kelas yang bersifat dinam is.
Obj ect Setiap obyek dibangun dari sekumpulan data (atribut) yang disebut variabel untuk menjabarkan karakteristik khusus dari obyek, dan juga terdiri dari sekumpulan method yang menjabarkan tingkah laku dari obyek. Bisa dikatakan bahwa obyek adalah sebuah perangkat lunak yang berisi sekumpulan variabel dan m ethod yg berhubungan. Sebuah obyek adalah sebuah instance (keturunan) dari class.
Perbedaan Class dan Obj ect Misal, kita memiliki sebuah class mobil dimana dapat digunakan untuk medefinisikan beberapa obyek mobil. Pada tabel dibawah, mobil A dan mobil B adalah obyek dari class mobil. Class memiliki field nomor, plat, warna, manufaktur dan kecepatan yang diisi dengan nilai pada obyek mobil A dan mobil B. Mobil juga dapat berakselerasi, berbelok dan m elakukan rem. Ketika diinisialisi, setiap obyek mendapat satu set variabel yang baru. Bagaimanapun, implementasi dari method dibagi diantara objek pada class yang sama. Class menyediakan keuntungan dari reusability. Programmer perangkat lunak dapat menggunakan sebuah kelas beberapa kali untuk m em buat banyak objek.
Metodologi PBO Terdapat 3 (tiga) metodologi dasar PBO yaitu : 1. Pem odulan/ pengkapsulan (encapsulation) 2. Penurunan/ pewarisan (Inheritance) 3. Polim orfism e (Polim orphism)
Pemodulan/ pengkapsulan (encapsulation) Pemodulan adalah metode untuk menggabungkan data dengan fungsi. Dalam konsep ini data dan fungsi digabung m enjadi satu kesatuan yaitu ke las. Konsep ini erat kaitannya dengan konsep penyem bunyian inform asi (inform ation hiding). Co n to h : Mobil adalah sebuah kelas. Seorang pengendara mobil tidak harus tahu bagaimana proses kerja mesin mobilnya, pembakaran bahan bakar, proses pemindahan transmisi gigi, dan seterusnya. Yang dia tahu adalah bahwa setir untuk mengendalikan jalannya mobil, pedal gas untuk menambah kecepatan, pedal rem untuk mengurangi kecepatan, dan seterusnya. Singkatnya dia hanya tahu bahwa m obilnya berjalan dengan baik.
Penurunan/ pewarisan (Inheritance) Dari konsep penurunan ini suatu kelas bisa diturunkan menjadi kelas baru yang masih mewarisi sifat-sifat kelas orangtuanya. Hal ini dapat dianalogikan dengan kelas m anusia. Manusia m erupakan turunan dari orang tuanya dan sifat-sifat orang tua diwarisi olehnya. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang m enggam barkan silsilah kelas tersebut.
Penurunan/ pewarisan (Inheritance) Co n to h: Dari kelas kendaraan bermotor dapat diturunkan beberapa kelas baru, misalnya: sepeda motor, sedan, pick-up, mini-bus, dan kendaraan roda banyak.
Penurunan/ pewarisan (Inheritance) Contoh 2: kelas sepeda motor mungkin masih dibagi lagi menjadi dua kelas, yaitu sepeda motor 2 tak dan 4 tak. Sepeda motor 2 tak mungkin masih dibagi lagi menurut pabrik pembuatnya, seperti Honda, Suzuki, Yamaha, dan seterusnya. Masing-masing pabrik mungkin masih mempunyai beberapa kelas turunan lagi, seperti Honda Astrea Star, Honda Astrea Grand, dan seterusnya.
Keuntungan Pewarisan Subclass menyediakan state/ behaviour yang spesifik yang m em bedakan dengan superclass. Memungkinkan programmer untuk m enggunakan ulang source code dari superclass yang telah ada. Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk m endefinisikan class dengan tingkah laku dan state secara secara umum.
Polimorfisme (Polimorphism) Polimorfisme berarti kelas-kelas yang berbeda tetapi berasal dari satu orang tua dapat mempunyai metode yang sama tetapi cara pelaksanaannya berbeda-beda. Atau dengan kata lain, suatu fungsi akan memiliki perilaku berbeda jika dilewatkan ke kelas yang berbeda-beda. Co n to h: kelas untuk input sound system. Sebuah tape recorder dan CD player memiliki tombol PLAY yang berfungsi untuk memainkan musik yang dikehendaki. Tape recorder mengimplementasikan tombol PLAY dengan membaca isyarat-isyarat yang terekam di pita magnetis kaset, sedangkan CD player menggunakan sinar laser untuk membaca bit-bit digital yang terekam di perm ukaan CD.
Bahasa Pemrograman Bahasa pem rogram an yang m endukung OOP antara lain: Visual Foxpro J ava C++ Pascal (bahasa pem rogram an) Visual Basic.NET SIMULA Smalltalk Ruby Python PHP C# Delphi Eiffel Perl Adobe Flash AS 3.0
Contoh dalam C++ # in clude < io stre am.h> co n st in t batas = 8 0 ; class pe gaw ai / / ke las in duk { private : char n am a [batas]; public: vo id ge tdata() { cout < < e n dl < < " In put Nam a : "; cin > > n am a; } vo id putdata() { co ut < < e n dl << " Nam a : " < < n am a; } }; class m an aje r : public pe gaw ai / / ke las turun an { private : char bagian [batas]; do uble tun jan gan ; public: vo id ge tdata() { pe gaw ai::ge tdata(); cout < < " In put Bagian : ; cin > > bagian ; } vo id putdata() { pe gaw ai::putdata(); co ut < < "\ n Bagian : "< < bagian ; } };