·
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.
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.
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.
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.
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.
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.
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.
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.