Saturday 29 September 2012

OBJECT ORIENTED PROGRAMMING (OOP) pada C++



·        Apa itu C++ ?
·         C++ adalah sebuah bahasa pemrograman yang memiliki banyak dialek, seperti bahasa orang yang banyak memiliki dialek. Dalam C++, dialek bukan disebabkan oleh karena si pembicara berasal dari Jepang atau Indonesia, melainkan karena bahasa ini memiliki beberapa kompiler yang berbeda.

·         C++ diciptakan untuk mendukung pemrograman berorientasi pada objek (Object Oriented Pragramming/OOP) yang tidak dimiliki C. sementara C merupakan bahasa pemrograman terbaik dilingkungannya, bahasa ini tidak memiliki kemampuan OOP. Reputasi C tidak diragukan lagi dalam menghasilkan program .EXE berukuran kecil, eksekusi yang cepat,antarmuka (interfacing) yang sederhana dengan bahasa lain dan fleksibilitas pemrograman. Apa yang membuat C tampak sukar dipelajari mungkin karena tiadanya pemeriksaan tipe. Sebagai contoh, dapat mencampur bilangan bulat dengan string untuk menghasilkan karakter. Namun, justru dsitu letak fleksibilitas C, dapat mengolah data C sebebas mengolah data dalam bahasa assembly.

·        Sejarah dari C++
 Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C ANSI (American National Standard Institute). Pertama kali, prototype C++ muncul sebagai C yang dipercanggih dengan fasilitas kelas. Bahasa tersebut disebut C dengan kelas ( C wih class). Selama tahun 1983-1984, C dengan kelas disempurnakan dengan menambahkan fasilitas pembebanlebihan operator dan fungsi yang kemudian melahirkan apa yang disebut C++. Symbol ++ merupakan operator C untuk operasi penaikan, muncul untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.

·        Kelebihan dari bahasa C++
·         Bahasa C++ tersedia hampir di semua jenis komputer.
Program C++ dapat ditulis menggunakan sembarang editor teks seperti NOTEPAD ataupun menggunakan editor bawaan dari kompiler. Program C++ biasa ditulis dengan nama ekstensi .CPP. Agar program ini bisa dijalankan, maka harus dikompilasi terlebih dulu dengan menggunakan kompiler C++.
Pada saat pengkompilasian, program sumber (.CPP) bersama file-file header (berekstensi .H atau .HPP) akan diterjemahkan oleh kompiler C++ menjadi kode obyek (.OBJ). File obyek ini berupa file dalam format biner (berkode 0 dan 1).
Selanjutnya file obyek ini bersama-sama dengan file obyek lain serta file pustaka (.LIB) dikaitkan menajdi satu oleh linker. Hasilnya berupa file yang bersifat executable. File inilah yang bisa dijalankan dari sistem operasi secara langsung.

·         Proses eksekusi program bahasa C++ lebih cepat.

Maksudnya karena kompiler C++ relatif memiliki size yang rendah, sehingga tidak membuat beban komputer menjalankannya. 
C++ pada proses penrunningan program lebih cepat menghasilkan output/keluaran di bandingkan dengan program yang lain.

·         C++ adalah bahasa yang terstruktur, dengan demikian akan lebih mendukung OOP.

Karena C++ akan lebih mudah dipelajari dan dipahami untuk dikembangakan karena sifatnya yang lebih modular yaitu mampu menyederhanakan dan mendefinisikan fungsi-fungsi dan variabel-variabel kedalam bentuk objek.


·        Kekurangan dari bahasa C++
·         Bahasa ini cukup sulit untuk dipelajari dan dipahami.
·         Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai
·         Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

·        Kompiler pemograman bahasa C++
·         Microsoft Visual C++
·         Dev C++
·         Borland C++
·         Borland C++ Builder
·         MinGW
·         Turbo C++



·        Pengertian Object Oriented Programing

Object-Oriented 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.

OOP adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi .

OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. 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.

Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan, dan polymorphism atau kebanyakrupaan,aggregation dan Abstaction. Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.

·        Konsep dasar Object Oriented Programing (OOP) pada C++
Pemrograman berorientasi objek menekankan pada konsep berikut :
A.    Kelas
      Yaitu kumpulan 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 menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
      Kelas merupakan contoh abstrak dari sebuah objek yang telah terbentuk dari proses penyerderhanaan. Adapun contoh nyata atau perwujudan dari sebuah objek dinamakan instance. Misalnya terdapat kelas manusia, contoh instance (wujud nyata) dari kelas tersebut adalah Ali, Udin, Dewi dan yang lainnya. Begitu pula nanti, jika anda mulai membuat program didalam C++Builder, yang dinamakan kelas adalah TForm, TEdit, Tbutton, Tlabel, Tlist, Ttimer dan sebagainya, sedangkan contoh instance-nya adalah Form1, Edit1, Edit2, Button1, Label1, Timer1 dan objek-objek lainya yang merupakan perwujudan dari sebuah kelas tertentu.
B.     Objek
      Digunakan untuk membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
C.    Abstraksi
      Yaitu Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
D.    Enkapsulasi
      Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
E.     Polimorfisme
      Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
F.     Inheritas
      Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.


·        Kesimpulan
·         Keistimewaan pada C++ adalah karena bahasa ini mendukung pemrograman yang berorientasi obyek (OOP: Object Oriented Programming). Tetapi tetap saja C++ adalah bahasa pemrograman yang bersifat hibrid, bukan bahasa murni yang berorientasi obyek. Karena itulah, pemrograman C pada tahap awal dapat berpindah jalur ke C++ setahap demi setahap.
·        
Tujuan utama pembuatan bahasa pemrograman C++ adalah untuk meningkatkan produktivitas pemrograman dalam membuat aplikasi. Selain itu, C++ juga dapat mengurangi kekompleksitasan, terutama pada program besar yang terdiri dari 10.000 baris atau lebih.