Object Oriented Programming

ObjectOriented Programming (OOP) adalah sebuah pendekatan untuk pengembangan / development suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses/tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan /action atau metode. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah objectoriented world. Jika akan bepergian kita pasti berinteraksi dengan object mobil. Sebagai sebuah object, mobil berisi object-object lain yang berinteraksi untuk melakukan tugasnya membawa kita.

Objectoriented programs terdiri dari objects yang berinteraksi satu sama lainnya untuk menyelesaikan sebuah tugas. Seperti dunia nyata, users dari software programs dilibatkan dari logika proses untuk menyelesaikan tugas. Contoh, ketika kamu mencetak sebuah halaman diword processor, kamu berarti melakukan inisialisasi tindakan dengan mengklik tombol printer. Kemudian kamu hanya menunggu respon apakah job tersebut sukses atau gagal, sedangkan proses terjadi internal tanpa kita ketahui. Tentunya setelah kamu menekan tombol printer, maka secara simultan object tombol tersebut berinteraksi dengan object printer untuk menyelesaikan job tersebut.

Konsep OOP dimulai pertengahan 1960-an dengan sebuah bahasa program SIMULA kemudian dilanjutkan di era 70-an dengan SMALLTALK. Meskipun developer software tidak secara intensif mengembangkan OOP, tetapi metodologi objectoriented tetap digunakan.

Pada pertengahan 80-an, bahasa OOP seperti C++ dan Eifle menjadi popular diantara programmer computer. Popularitas OOP berlanjut pada tahun 90-an, banyak pengembang software menggunakan konsep OOP seperti Java dll. Di tahun 2002, versi terakhir dari Visual Studio, Microsoft memperkenalkan bahasa OOP baru yaitu C# (dibaca C-sharp) serta upgrade Visual Basic, dan ini merupakan sebuah bahasa OOP sesungguhnya.

Mengapa menggunakan OOP?

Mengapa OOP dibangun dalam sebuah paradigma yang luas untuk menyelesaikan masalah bisnis? Bahasa prosedural mengatur program dalam mode barisan linier yang bekerja dari atas ke bawah. Dengan kata lain, program adalah kumpulan dari tahapan yang dijalankan setelah yang lain berjalan. Programming tipe ini bekerja dengan baik untuk program kecil yang berisi code relative sedikit, tetapi pada saat program menjadi besar, mereka cenderung susah untuk di-manage dan di-debug. Dalam usaha untuk me-manage program, struktur programming diperkenalkan cara untuk mem-break down code-code tersebut melalui functions dan procedures.

Ini adalah sebuah langkah perbaikan, namun pada saat program dijalankan dalam sebuah fungsi bisnis yang kompleks dan berinteraksi dengan sistem lain, maka kelemahan dari struktur metodologi programming muncul kepermukaan meliputi:

Programs menjadi lebih susah untuk dimaintain.

Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan.

Programming tidak baik untuk team development. Programmers harus mengetahui setiap aspek bagaimana program itu bekerja dan tidak menyebabkan terisolasi usaha mereka atas aspek yang lain dari sistem.

Butuh usaha yang keras untuk menterjemahkan Business Models dalam programming models.

Mungkin dapat bekerja dengan baik pada saat terisolasi tapi tidak pada saat terintegrasi dengan sistem lain.

Sebagai hasilnya, banyak developer software beralih ke object-oriented methodologies dan programming languages untuk memecahkan masalah ini. Keuntungan dari object-oriented methodologies adalah sebagai berikut:

Langkah ini merupakan sebuah transisi intuitive dari business analysis models menuju software implementation models.

Kemampuan untuk memaintain dan menerapkan perubahan dalam program ini lebih efisien dan dengan cepat.

Kemampuan untuk lebih efektif menciptakan sistem software dengan menggunakan sebuah team proses, yang mengijinkan seorang spesialis untuk bekerja hanya pada bagiannya saja.

Kemampuan untuk menggunakan kembali komponen kode dalam suatu program dan membeli komponen dari developer lain untuk meningkatkan fungsi program mereka dengan usaha minimal.

Integration lebih baik dengan pasangan bebas dalam distributed computing systems.

Meningkatkan integration dengan modern operating systems.

Kemampuan untuk menciptakan GUI yang lebih intuitive bagi users.
Karakteristik OOP

Dalam section ini, kita akan melihat beberapa konsep dasar dan term-term yang umum untuk seluruh bahasa OOP.

Objects

Jika kita pikir maka kita sekarang hidup dalam sebuah dunia objectoriented. Kamu adalah object. Kamu berinteraksi dengan object lain. Untuk menulis tugas ini kami berinteraksi dengan object komputer. Ketika saya bangun pagi, saya merespon pesan suara object alarm jam. Faktanya, kamu adalah object dengan data-data seperti tinggi dan warna rambut. Kamu mempunyai metode-metode yang kamu akan lakukan, seperti makan dan berjalan.

Jadi, apa itu objects? Dalam term OOP, object adalah sebuah structure yang menggabungkan data dan prosedur untuk bekerja bersama-sama. Contoh, jika kamu tertarik dalam pelacakan data yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung jawab untuk me-maintenance dan bekerja dengan data yang bersinggungan dengan produk. Jika kamu ingin kemampuan mencetak dalam aplikasi kamu, kamu harus bekerja dengan sebuah object printer yang bertanggung jawab untuk data serta metode yang digunakan untuk berinteraksi dengan printermu.

Abstraction

Ketika kamu berinteraksi dengan object-object di dunia ini, kamu sering hanya konsentrasi dengan sebuah bagian dari propertiesnya. Tanpa kemampuan untuk mensarikan/abstract atau menyaring untuk dibuang properties object yang asing / tidak ada hubungannya, maka kamu akan menemukan kesulitan untuk memproses informasi yang kebanyakan membombarding kamu. Sebagai hasil abstraction, ketika 2 orang berbeda berinteraksi dengan object yang sama, mereka sering setuju dengan bagian yang berbeda atas atribut. Ketika kami mengendarai mobil, kami perlu tahu kecepatan serta tujuan yang akan dicapai.

Karena mobil itu otomatis, maka kami tidak perlu tahu berapa RPMs dari mesinnya, jadi kami akan membuang informasi ini. Tapi informasi ini sangat diperlukan oleh mekanik atau pembalap.

Ketika membangun objects dalam aplikasi OOP, adalah penting untuk menggabungkan konsep abstraction ini. Jika kamu membangun aplikasi shipping, kamu harus membangun object produk dengan atribut seperti ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan harus dibuang. Tetapi ketika kamu membangun order-entry application, warna menjadi penting dan harus termasuk atribut object produk.

Encapsulation

Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat data, kamu harus berinteraksi dengan object yang bertanggung jawab atas dara tersebut. Dalam contoh inventory, jika kita ingin melihat atau mengupdate informasi atas produk, kita seharusnya bekerja melalui object produk. Untuk membaca data, kita mengirimkan pesan ke object produk, kemudian object produk akan membaca pesan dan mengirim pesan balik ke kamu.

Object produk mendefinisikan bahwa operasi dapat dilakukan pada data produk. Jika kamu mengirim pesan untuk memodifikasi data dan jika object produk menentukan bahwa permintaan itu valid maka permintaan tersebut akan dilakukan dan akan mengirimkan pesan balik bersama hasilnya.

Pikirkan mengenai Human Resource Department (HRD), yang meng-encapsulasi informasi mengenai karyawan. Mereka menentukan bagaimana data ini dapat digunakan da dimanipulasi. Setiap permintaan data karyawan atau permintaan untuk mengupdate datanya harus dijalankan melalui mereka. Contoh lain, network security. Setiap permintaan informasi security atau perubahan kebijakan security harus dilakukan melalui network administrator. Data security di-encapsulate dari user network.

Dengan melakukan encapsulasi pada data, berarti kamu membuat data dari sistemmu lebih secure dan terpercaya. Karena kamu mengetahui bagaimana data diakses dan operasi apa yang sedang berjalan pada data. Hal ini membuat maintenance program menjadi lebih mudah. Kamu juga dapat memodifikasi metode yang digunakan untuk kerja pada data, dan jika kamu tidak merubah bagaimana metode itu diminta dan tipe response dikirim balik, maka kamu tidak dapat merubah object lain dengan menggunakan metode tersebut. Pikirkan ketika kamu mengirim surat melalui pos. Kamu membuat permintaan ke kantor pos agar mengantar surat, dan bagaimana kantor pos menyelesaikannya kita tidak perlu tahu. Jika ada perubahan rute yang digunakan, maka hal itu tidak mempengaruhi keinginan untuk kirim surat lewat kantor pos. Kamu tidak perlu tahu prosedur internal yang digunakan oleh kantor pos untuk mengantar surat.

Polymorphism

Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya melatih anjing saya dengan perintah untuk menggonggong dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.

Bagaimana hal ini berhubungan dengan OOP? Kamu dapat membuat objects yang dapat merespon pesan yang sama dalam implementasi yang unik. Contohnya, kamu dapat mengirim pesan print ke object printer yang akan mencetak pada printer, dan kamu juga dapat mengirim pesan yang sama ke object screen yang akan menuliskan pada screen monitor. Dalam OOP, kamu menerapkan tipe polymorphism melalui proses yang disebut overloading. Kamu dapat mengimplementasikan metode yang berbeda pada sebuah object yang mempunyai nama yang sama.

Inheritance

Banyak objects diklasifikasikan menurut hirarki. Contoh, kamu dapat mengklasifikasikan sebuah mobil yang mempunyai karakteristik umumnya mobil, seperti mempunyai ban, mesin, serta body. Keturunan berikutnya diklasifikasikan dengan atribut umum seperti ukuran, jumlah roda, isi silinder dll atau mengklasifikasikan mereka atas dasar daya angkutnya. Contoh, ada kendaraan komersial atau kendaraan pribadi, ada truk atau mobil penumpang. Kamu menggunakan inheritance dalam OOP untuk mengklasifikasikan objects dalam program sesuai karakteristik umum dan fungsinya. Hal ini akan membuat pekerjaan bersama object lebih mudah dan lebih intuitif. Hal ini juga membuat programming lebih mudah karena memungkinkan kita untuk mengkombinasikan karakteristik umum kedalam object parent dan mewariskan karakteristik ini ke child object.

Aggregation

Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Contoh mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dll. Object mesinpun merupakan gabungan dari berbagai object. Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.

Lebih Jauh dengan VB & C++

Hal paling mendasar dalam lingkungan pemrograman visual adalah object. Object adalah bundel data yang terdiri dari elemen-elemen data seperti field, property, prosedur dan fungsi. Untuk menulis komponen diperlukan pemahaman yang cukup baik terhadap objek tersebut dan juga istilah-istilah yang digunakan dalam lingkungan OOP, termasuk teknik dasar pemrogramannya. Istilah-istilah yang digunakan dalam pemrograman visual seperti visual basic banyak berhubungan dengan istilah-istilah pada OOP.

Konsep dari object oriented programming (OOP) adalah lebih dari sekedar sebuah konsep pemrograman, Object oriented programming adalah cara berpikir tentang aplikasi yang mempelajari untuk berpikir bahwa aplikasi bukan sekedar prosedur melainkan sebagai object dan real entity. Object yang dimaksud disini memiliki pengertian suatu modul yang mengkombinasikan antara data dan kode program yang bekerja sama dalam program dengan melewatkan proses satu sama lain. Jadi object oriented programming merupakan cara yang paling efisien untuk menulis program komputer yang sangat mudah untuk di kombinasikan dan untuk dipergunakan kembali.

Object oriented programming lebih memfokuskan kepada manipulasi object. Kenapa seorang programmer harus mempelajari object oriented programming bahkan seorang programmer yang tidak pernah bekerja dengan object oriented programing pun harus mempelajarinya juga. Hal ini dikarenakan pada suatu hari nanti semua bahasa pemrograman akan menambahkan kemampuan object oriented programming pada bahasanya. Object oriented programming yang paling populer adalah java dan C++, tetapi visual basic pun sudah ikut menambahakan kemampuan ini sejak meluncurkan VB 4.0. Pada kesempatan kali ini kita hanya akan membahas tentang visual basic dan C++ saja. Sesuai dengan namanya object oriented programming maka konsep object merupakan jantung dari object oriented programming. Maka dari itu sebelum kita membahas lebih jauh lagi mari kita lihat beberapa konsep utama dari object oriented programming ini.

Data dan prosedur dari sebuah object yang akan dipergunakan dibuat di dalam class, jadi sebelum sebuah object dibuat maka perlulah terlebih dahulu dibuat class. Untuk membuat sebuah class dalam visual basic maka perlu diperhatikan langkah-langkah berikut ini :

1. Menambah module class pada project.

2. Deklarasi lokal variabel yang akan digunakan pada module.

3. Inisialisasi properti class dari obeject.

4. Menuliskan statement untuk enable class, untuk membuat nilai yang akan dipetakan ke properti atau memetakan variabel properti dari object yang diluar.

5. Menuliskan suatu fungsi yang akan menghasilkan metode proses dari class.

6. Simpan module sebagai cls file.

Variabel yang ada didalam sebuah class disebut instance variabel, untuk membuat properti didalam visual basic dapat menggunakan statement properti let dan properti get. Berikut ini perhatikanlah definisi umum dan contoh dari masing-masing statement.

Dengan statement Propertylet

Public propertylet namaproperty (ByVal Ouside Var as tipe)

Mvarlokalvariabel = outsidevar

End property

Contoh :

Public Propertylet Namadepan (ByVal vData as string)

MvarNamadepan = vData

End property

Dengan statement Propertyget

Public propertyget nama properti ()

Nama Properti = mvarlocalvariabel

End property

Contoh :

Public propertyget Nama()

Nama = mvarNama

End property

Didalam sebuah class dapat juga dibuat sebuah sub atau fungsi prosedur yang disebut sebagai methode class. Perbedaan antara sub dan fungsi metode hanya terletak kalau pada fungsi nilai akan dikembalikan sedangkan pada sub tidak.

Secara umum dapat dikatakan bahwa object dan class mengacu pada hal yang sama, object adalah class dan class adalah object. Class atau object mempunyai karakteristik dan sifat-sifat tertentu, merupakan bagian dari pengelompokan dan penjenjangan seluruh object dalam suatu hirarki yang membentuk hubungan antara moyang dan keturunannya.

Dalam lingkungan pemrograman visual, object atau class ini sering disebut komponen (Component). Dilihat dari sisi pengembang aplikasi, dengan mengetahui bahwa moyang semua komponen visual adalah TComponent maka object akan lebih tepat disebut komponen. Sedangkan jika dilihat dari istilah formalnya dan juga dari strukturisasi objectnya, seperti sifat, fungsi dan penjenjangan, mungkin object akan lebih tepat disebut kelas. Kedua istilah ini sering digunakan bersama dalam pembahasan suatu topik. Oleh karena itu jangan bingung dengan istilah-istilah tersebut, tetap harus diingat dan disadari, pada konteks apa istilah tersebut digunakan.

Sebagai penulis komponen, mau tidak mau akan selalu berhubungan dan berhadapan dengan class-class ini. Dalam perancangan komponen, pemahaman tentang class-class ini, karakteristik dan fungsinya, sangat menentukan. Sebaliknya pemahaman class-class ini tidak diperlukan oleh pengembang aplikasi. Pengembang aplikasi hanya memandang class-class ini sebagai komponen yang dapat dimanipulasi pada tahap design-time maupun runtime untuk keperluan aplikasi yang dirancangnya.

Setelah diatas kita melihat beberapa konsep utama dari object oriented programing di dalam visual basic lalu bagaimana dengan object oriented programming C++. Dalam C++ konsep object oriented programing dijelaskan sebagai abstact data type (ADT) programming yang merupakan konsep dasar dari OOP. ADT terdiri dari struktur data abstrak dan operasi, dimana struktur data abstrak hanya dapat diakses dengan mendefinisikan operasi. Kumpulan dari berbagai macam operasi ini disebut interface (Antar Muka). Karena operasi ini memiliki interface maka dia dapat dilihat dari luar.

Dalam object oriented programming abstrak data type menjadi classnya karena abtsract data type memiliki vraiabel instance yang merupakan variabel dari class. Class ini merupakan betuk nyata dari abstract data type. Class menyediakan detail dari struktur data yang dipergunakan dan operasinya. Perhatikan contoh mendelakrasikan class berikut ini.

class Integer {

attributes:

int i

methods:

setValue(int n)

Integer addValue(Integer j)

}

Pada potongan program diatas class di notasikan dengan class (..), di dalam tanda kurung terdapat dua bagian yaitu attribut dan methode yang mendefinisikan implementasi dari struktur data dan operasi dari ADT yang bersangkutan,

Dua konsep utama dari object orientasion yang diperkenalkan diatas adalah class dan object. Sementara object oriented programming merupakan implementasi dari abstract data type atau dengan kata lain penulisan dari class itu sendiri. Program yang sedang berjalan dapat dikatakan sebagai kumpulan object yang sedang berjalan. Dengan ketika sebuah program sedang berjalan object-object tadi mau tidak mau harius berinteraksi satu sama lain, lalu pertanyaannya bagaiman object-object itu berinteraksi satu sama lain. Untuk menjawab pertanyaan itu terlebih dahulu kita perhatikan beberapa hal berikut ini. Program yang sedang berjalan merupakan pool (Tempat berkumpul) dari object-object dimana object dibuat, dihancurkan dan berinteraksi. Interaksi hanya dapat terjadi jika ada message (pesan) yang dikirim dari satu object ke object lain, pesan ini berisi metode yang harus dijalankan oleh object yang menerima pesan. Sedangkan definisi messsage sendiri ialah permintaan terhadap suatu object untuk menjalan sebuah metode, message ini terdiri dari :

Nama dari metode.

Argumen dari metode.

Sekarang mungkin sudah cukup jelas bahwa object berinteraksi satu sama melalui message ini.

Dari hal-hal diatas mungkin kita dapat membuat satu kesimpulan bahwa definisi dari class sendiri ialah implementasi dari ADT yang menjabarkan tentang attribute dan metode yang menjabarkan struktur data dan operasinya. Variabel dari class atau yang disebut instance dapat disebut sebagai object, akibatnya class dapat mendefinisikan property dan kebiasaan/perilaku (behaviour) dari object. Obejct sendiri diidentifikasikan dengan sebuah nama yang unik. Jadi definisi dari object itu sendiri adalah intsance dari class yang dapat didentifikasi secara unik denagn membuat namanya dan membuat status dari sebuah program yang berjalan yang dimunculkan oleh nilai dan attributnya. Behaviour/perilaku dari object didefinisikan sebagai kumpulan dari metodhe yang diaplikasikan terhadap object.

2 Tanggapan

  1. blognya Komting TF F

  2. Selamat Hari Raya Idul Fitri 1 Syawal 1430 H
    Minal Aidin Wal Faizin
    Mohon Maaf Lahir Dan Batin

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: