Fendy Chandra Science and Technology Weblog

Brings Science and Technology in Your Hands

Konsep Dasar Pemograman Berorientasi Objek (Object Oriented Programming) Bagian 2 22 Juni 2009

Filed under: Programming — Fendy Chandra @ 16:47
Tags: , , , , ,

Konsep Dasar Pemograman Berorientasi Objek (Object Oriented Programming)

Bagian 2 : Pewarisan dan Polimorfisme

Sebelumnya kita telah mempelajari tentang konsep dasar pemograman berorientasi objek (Object Oriented Programming) tentang sedikit ulasan mengenai pengertian objek, kelas, enkapsulasi, serta pengertian asosiasi dan agregasi, untuk lebih jelasnya, silahkan melihat artikel sebelumnya disini. Di artikel ini kita akan membahas sedikit ulasan tentang pewarisan dan polimorfisme. Langsung saja ke topik pembahasan :

 

Pewarisan (Inheritance)

Pewarisan mengijinkan kita untuk menspesifikasikan atau mengkhususkan bahwa sebuah kelas bisa memiliki atau mendapatkan beberapa karakteristik dari kelas induknya (parent class) dan menambahkan fitur atau kegunaan khusus atas dirinya sendiri. Kelas anak (subclass) mewariskan (inherits) semua fields, messages, dan methods dari kelas induk utama (superclass). Pewarisan menjadikan kelas dapat di-grupkan atau dikelompokkan ke dalam kelas yang lebih general (umum), oleh sebab itu pewarisan sering disebut juga sebagai bentuk spesialisasi atau generalisasi atas objek.

Dalam perspektif pemograman, kita memerlukan pewarisan karena:

– Pewarisan mendukung perluasan dan kekuatan yang lebih dalam proses pemodelan perangkat lunak.

– Pewarisan mengijinkan kita untuk mendefenisikan informasi atau atribut dan kelakuan (behavior) pada sebuah  kelas dan membagikannya (share) kepada kelas anak (subclass) yang berhubungan. Ini berarti kita akan memiliki code yang lebih efisien.dan reuseable.

– Pewarisan merupakan hal yang natural, yang gampang dimengerti dan didefenisikan dalam kehidupan nyata.

Gambar berikut akan mendefenisikan perawisan terhadap Kendaraan Tak Bermotor :

picpewarisan

 

 

Polimorfisme (Polymorphism)

Polimorfisme diambil dari bahasa Yunani yang diturunkan dari kata poly, yang berarti banyak, dan morph yang berarti bentuk. Maka dari itu polimorfisme berarti ‘memiliki banyak bentuk/rupa’. Dalam kehidupan sehari-hari, antara satu objek dengan objek lainnya sering terjadi komunikasi. Satu objek mengirmkan pesan (message) ke objek lainnya untuk mendapatkan sesuatu yang dinginkan, namun tanggapan dari objek-objek tersebut dapat beragam walaupun pesan yang disampaikan adalah pesan yang sama. Sebagai contoh, seorang ibu memberikan pesan yang sama kepada anak-anaknya, “Sekarang waktunya makan !”. Pesan yang berupa perintah tersebut akan memberi makna yang berbeda pada setiap anak-anaknya, dan setiap anak akan memberikan tanggapan yang berbeda-beda. Seorang anak yang berumur 1 tahun akan duduk diam menunggu ibunya menyiapkan makanan dan menyuapkan makanan tersebut ke dalam mulutnya, sedangkan untuk anak yang berumur 16 tahun akan langsung duduk di meja makan langsung mengambil makanannya sendiri dan memakannya tanpa harus menunggu dan duduk diam berharap ibunya menyuapkan makanan ke dalam mulutnya.

Contoh di atas menggambarkan konsep dari polimorfisme, dimana polimorfisme memiliki arti ‘banyak bentuk/rupa’ yang merujuk pada suatu kemungkinan bahwa pesan yang disampaikan kepada objek-objek yang berbeda, namun pada prinsipnya adalah sama dan mendapatkan tanggapan yang berbeda-beda. Objek yang menerima pesan memiliki tanggung jawab untuk memberikan respon atau tanggapan terhadap pesan yang diterimanya. Dalam pemograman berorientasi objek, polimorfisme memiliki arti dan fungsi yang sama, namun memiliki perilaku yang berbeda pada setiap kelas-kelas yang berbeda.

 

Pustaka :

O’Docherty, M., 2005, Object-Oriented Analysis and Design: Understanding System Development with UML 2.0, John Wiley & Sons.

L.Sinaga, B., 2005, Pemograman Berorientasi Objek Dengan Java, Gava Media.

 

Konsep Dasar Pemograman Berorientasi Objek (Object Oriented Programming) Bagian 1

Filed under: Programming — Fendy Chandra @ 16:43
Tags: , , , , , ,

Konsep Dasar Pemograman Berorientasi Objek (Object Oriented Programming)

Bagian 1

Pemograman berorientasi objek sekarang ini merupakan teknik pemograman yang paling banyak digunakan oleh programmer, software (perangkat lunak) yang ada pada saat sekarang ini biasanya dibangun dengan dasar pemograman yang berorientasi objek.

Apa itu pemograman berorientasi objek (Object Oriented Programming), yang biasanya disingkat dengan OOP. Paradigma pemograman berorientasi objek adalah hal yang relatif mudah untuk dimengerti dan diaplikasikan, karena pada dasarnya objek merupakan sesuatu hal yang mudah dimengerti oleh manusia. Berikut ini kita lihat hal-hal yang berkaitan dengan pemograman berorientasi objek.

 

Objek (object)

Objek adalah suatu benda, entitas, biasanya berupa kata benda (noun), sesuatu yang dapat kita angkat maupun kita tendang atau pukul. Beberapa objek berupa benda hidup, dan beberapa tidak. Contoh objek dalam kehidupan nyata sehari-hari adalah sebuah mobil, orang, rumah, meja, seekor anjing, kucing ataupun beruang. Objek memiliki atribut (attributes), misalnya: sebuah mobil memiliki atribut manufaktur, nomor model, warna, dan harga, seekor anjing memiliki atribut umur, warna, tinggi maupun berat. Objek juga memiliki kelakuan (behavior), misalnya: sebuah mobil dapat bergerak dari satu tempat ke tempat lainnya dan seekor anjing dapat menggongong.

 

Kelas (class)

Sebuah kelas mengenkaspsulasi karakteristik bawaan ke dalam sebuah kelompok objek (sekumpulan objek). Beberapa programmer mengatakan “objek merupakan instance (diumpamakan) dari sebuah kelas”, oleh karena itu istilah instance bisa dikatakan merupakan persamaankata (synonym) dari objek. Kelas merupakan sebuah model, pola, atau blueprint (cetak biru) yang digunakan untuk menciptakan sebuah objek (Benyamin L.Sinaga, 2005). Ambil contoh sebuah rumah yang dibuat oleh seorang arsitek. Ada banyak sekali rumah di dunia ini, kesemuanya memiliki karakteristik yang sama. Sebuah cetak biru menggambarkan semua karakteristik yang dimiliki oleh sebuah rumah, misalnya dinding, jendela, saluran listrik, dan lain sebagainya. Dengan menggunakan cetak biru tersebut, maka dapat dibuat banyak rumah. Rumah-rumah yang dibangun dari cetak biru itu disebut dengan instance dari kelas. Instance dari kelas adalah objek yang dibentuk dengan menggunakan kelas sebagai dasar pembentukannya. Rumah-rumah tersebut yang terbentuk dari cetak biru yang ada dapat berbeda satu dengan lainnya, misalnya: lokasi, bahan yang digunakan untuk membangun rumah, bentuk dan ukuran, dan lain sebagainya. Tetepi mereka dapat dikatakan memiliki karakteristik yang sama.

Gambar berikut merepresentasikan contoh beberapa kelas :

   

piccontohkelas

 

 

 

Enkapsulasi (Encapsulation)

Enkapsulasi merujuk pada sebuah objek yang menyembunyikan atau mengenkapsulasi atribut-atributnya terhadap operasi yang dikenakan (analoginya objek tersimpan dan terkunci dalam sebuah kapsul, dan operasi berada di tepian luar kapsul tersebut). Atribut yang tersembunyi ini disebut dengan private. Beberapa bahasa pemograman (sebagai contoh, Smalltalk) secara otomatis membuat atribut-atributnya sebagai private dan beberapa tidak (sebagai contoh, Java) membiarkan programmernya menentukan sendiri. Sebagai contoh mengapa enkapsulasi adalah sebuah ide yang bagus adalah bayangkanlah sebuah objek selalu menjaga kesopanan antara satu objek terhadap objek lainnya. Sebagai contoh, jika Anda hendak meminjam uang dari teman kita untuk membeli makanan di sebuah warung makan, Anda pastinya tidak akan serta-merta mengambil dompet teman Anda dan langsung melihat isi uang yang ada dalam dompet tersebut, apakah dompet itu berisi uang yang cukup untuk dipinjamkan kepada kita atau tidak. Sebaliknya, Anda hanya akan menanyakan apakah dia dapat meminjamkan Anda sejumlah uang dan mereka sendiri-lah yang akan melihat ke dalam dompet mereka dan memberikan uang tersebut kepada kita.

 

Asosiasi (Association) dan Agregasi (Aggregation)

Setiap objek memiliki kaitan dengan objek lainnya, baik itu secara langsung maupun tidak langsung, kuat maupun lemah. Dengan mengaitkan tiap objek, kita membuat mereka semakin kuat. Kaitan antar objek mengijinkan kita untuk membantu kita menemukan informasi dan kelakuan (behavior) ekstra. Ketika kita melakukan pemodelan objek, kita dapat mengaitkan mereka ke dalam 2 prinsip: Asosiasi atau Agregasi. Terkadang memang sulit untuk mencari letak perbedaan antara asosiasi dan agregasi ini. Berikut sedikit penjelasannya :

Asosiasi merupakan kaitan yang lemah: objek dapat berupa grup atau kelompok, namun objek ini tidak secara komplit tergantung satu dengan lainnya. Sebagai contoh, bayangkanlah sebuah mobil, seorang supir, seorang penumpang dan satu penumpang lainnya. Ketika supir dan dua penumpang berada dalam mobil, mereka berasosiasi dan mereka semua menuju ke arah atau alamat yang sama, mereka menempati tempat yang sama, yakni di dalam mobil. Namun kaitan asosiasi ini sifatnya lemah, supir dapat menurunkan salah satu atau kedua penumpang pada arah atau alamat yang terpisah, jadi penumpang tersebut tidak lagi berasosiasi dengan objek lainnya.

Contoh Gambar berikut menjelaskan asosiasi tersebut :

   

picasosiasi

Agregasi berarti menempatkan objek bersama-sama untuk menjadikannya objek yang lebih besar. Barang-barang atau benda-benda manufaktur biasanya merupakan contoh dari bentuk agregasi. Sebagai contoh, sebuah microwave terbentuk dari sebuah cabinet (semacam lemari kaca), sebuah pintu, sebuah panel indikator, sejumlah tombol, sebuah alat pemanas dan lain sebagainya. Agregasi mengimplikasikan kedekatan ketergantungan. Sebagai contoh, alat pemanas akan tetap menjadi sebuah alat pemanas meskipun kita melepaskannya dari microwave, namun sebuah microwave akan menjadi tidak berguna tanpa sebuah alat pemanas, karena microwave tersebut tidak akan dapat memanaskan makanan lagi .

Contoh Gambar berikut menjelaskan bagaimana kita membuat sebuah rumah dengan kaitannya terhadap agregasi :

   

picagregasi

Sebagai saran, ada sebuah teknik seederhana untuk memperhalus letak perbedaan antara asosiasi dan agregasi, yaitu, dengan membayangkan apa yang akan terjadi apabila kita melepaskan salah satu objek tersebut,dengan begitu kita akan dapat lebih mudah menentukan mana yang termasuk asosiasi dan mana yang termasuk agregasi. Teknik ini mungkin dapat sedikit membantu, namun itu juga tidak serta-merta selalu memecahkan masalah, berpikir lebih keras dan memahami lebih dalam serta pengalaman yang lebih sering kali diperlukan juga.

Artikel selanjutnya akan membahas tentang konsep dasar dari pewarisan (inheritance) dan polimorfisme (polymorphism), baca selengkapnya disini.

 

Pustaka :

O’Docherty, M., 2005, Object-Oriented Analysis and Design: Understanding System Development with UML 2.0, John Wiley & Sons.

 

Konsep Dasar Pemograman 29 Maret 2008

Filed under: Programming — Fendy Chandra @ 16:26
Tags:

programming.jpg

Sebelum kita memasuki pengertian programming, ada baiknya kita mengartikan dulu apa itu program, dalam hal ini program komputer.

Program: sekumpulan instruksi-instruksi yang “dikodekan” oleh programmer (orang yang membuat program) yang dapat dimengerti oleh computer yang nantinya akan dieksekusi oleh komputer.

Oleh sebab itu programming (pemograman) bisa dikatakan suatu kegiatan dalam membuat program komputer, atau membuat suatu kumpulan-kumpulan instruksi atau perintah ke komputer, atau istilahnya membuat sekumpulan “kode-kode” yang dimengerti oleh komputer. Agar komputer dapat mengerti instruksi-instruksi tersebut, maka dibutuhkan sebuah bahasa tersendiri, yaitu “kode-kode”, yang lebih dikenal dengan istilah “bahasa pemograman”.

Pemograman komputer sendiri memiliki banyak evolusi atau perubahan teknik dalam melakukannya, berikut ini beberapa teknik dalam pemograman komputer…

  • Pemograman Prosedural.

Pada pemograman procedural, program dibedakan atas bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan/urutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instruksi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan pemrograman procedural. Contoh bahasa pemograman yang mendukung pemograman procedural adalah Basic, Pascal, C, dan lain-lain.

  • Pemograman Functional.

Pada pemograman functional lebih dtekankan pembangunan fungsi-fungsi, seperti fungsi-fungsi di dalam perhitungan matematika. Fungsi merupakan pembangun utama program sehingga fungsi-fungsi ini dapat dilewatkan parameternya dan mengembalikan nilai yang sudah diproses, yang lebih dikenal dengan istilah return.

  • Pemograman Terstruktur.

Pada dasarnya pemograman terstruktur merupakan suatu teknik yang memecah masalah besar menjadi lebih kecil dan lebih mudah dipahami. Biasanya masalah-masalah kecil ini dipetakan dan diimplementasikan ke dalam suatu procedure atau fungsi (function).

  • Pemograman Declarative.

Pada pemograman declarative, suatu permasalahan dideskripsikan dengan pernyataan (declarative) daripada penggunaan implementasi algoritma. Pemograman declarative ini sering disebut juga dengan pemograman logika. PROLOG dan CLIPS merupakan bahasa pemograman yang bersifat deklaratif.

  • Pemograman berbasis modul.

Teknik pemograman berbasis modul ini adalah dengan menciptakan banyak modul, masing-masing modul merupakan suatu grup atau kelompok dari entitas variabel, procedure, maupun fungsi, modul dapat juga diartikan dengan sebuah program kecil yang mandiri. Bahasa pemograman ADA mendukung pemograman modul ini.

  • Pemograman berorientasi objek (OOP).

Konsep utama pemrograman berorientasi objek (Object Oriented Programming) yaitu melakukan permodelan objek dari kehidupan nyata ke dalam tipe data abstrak. Jelasnya, pemrograman berorientasi objek merupakan konsep pemrograman untuk memodelkan objek yang kita gunakan dalam kehidupan sehari-hari. OOP membawa konsep yang sama sekali berbeda dengan teknik pemograman sebelumnya, sehingga bisa disebut juga OOP memunculkan “paradigma” pemograman yang baru. Untuk mengetahui konsep OOP lebih dalam akan kita bahas dalam tulisan selanjutnya. Contoh bahasa pemograman yang mendukung OOP adalah java, C++, smalltalk, dan lain-lain.

Happy Reading…………. GOD BLESS U…………

Sumber : http://www.ilmukomputer.com