Kita ketahui bersama bahwa pada awal berkembangnya komputer, tahun 70an,
telah ditemukan bahasa pemrograman yang prosedural (belum berbasis
object/oop). Nah, kebanyakan bahasa – bahasa ini digunakan untuk
antarmuka hardware. Intinya digunakan supaya hardware tersebut bisa
didetect dengan baik oleh system operasi komputer.
Bahasa – bahasa seperti ini jaman sekarang dikenal dengan bahasa
asembly. Banyak yang menyebutnya dengan bahasa low level. Bahasa -
bahasa prosedural tersebut diantaranya adalah bahasa C, Basic, Pascal,
Fortran, dan lain lain. Sekarang bahasa C berkembang menjadi C++, Visual
C++, Visual C#. Sedangkan bahasa Basic sendiri juga berkembang menjadi
Visual Basic. Sementara pascal berkembang menjadi Delphi dan lain – lain
.
1.Apa itu C++?
Sebelum C++ dikembangkan, sudah ada bahasa sejenis yang digunakan
programmer yaitu bahasa C (dikembangkan oleh Dennis Ritchie dari bahasa
B), saat itu dia dari Bell Laboratories sedang mengembangkan system
operasi Unix. C ini merupakan bahasa prosedural, kemudian dikembangkan
hingga menjadi sebuah bahasa pemrograman C yang berorientasi pada object
(OOP – Object Oriented Programming) yang kemudian disebut dengan C++
(dikembangkan oleh Bejarne Stroustrup tahun 1979).
2.Bagaimana Filosophy bahasa C?
Secara umum, pemrograman dengan bahasa C menggunakan 2 konsep, yaitu
data dan algorithms. Data merupakan bahan yang akan diolah, sedangkan
algorithms adalah metode pengolahan.
Bisa dibilang algorithms ini adalah fungsi/cara/metode/langkah dan lain lain untuk mengolah data tersebut.
Lihat gambar 1:
Tapi bagaimanapun juga, penggunaan bahasa prosedural seperti C sangat
tidak efisien untuk pembuatan software skala menengah ke atas. Terlalu
banyak perulangan, terlalu banyak percabangan, terlalu banyak kode yang
harus kita ketikan. Maka, seiring dengan perkembangan jaman dan
teknologi, bahasa C ini dikembangkan ke tingkat lebih lanjut yaitu
bahasa C yang berorientasi object yang disebut dengan C++.
3.Apa itu bahasa pemrograman berorientasi object? Apa bedanya dengan bahasa prosedural?
Object Oriented Programming (OOP) adalah bahasa pemrograman yang
berorientasi pada object. Apa sih object??? Object itu ya bahasa
pemrograman itu sendiri.
Mari kita renungkan. Misalnya kita membuat sebuah object mobil misalnya.
Mobil ini bisa kita buat dengan prosedural language maupun dengan OOP
language. Loh, jadi tidak ada bedanya dong?? Sebentar dulu, harap
bersabar.
Kita tidak akan membahas bagaimana cara membuat 1 mobil, bahasa apa yang
digunakan untuk membuat mobil, tapi yang kita bahas adalah 1 mobil. Yup
mobil yang sudah jadi yang baru saja anda buat dari mengetikan puluhan
kode misalnya.
Nah, sekarang saya ingin 1 mobil tadi digandakan menjadi 2 mobil.
Bagaimana anda membuat mobil yang satunya?? Apakah anda akan mengopikan
semua kode anda tadi untuk menjadikan mobil ke dua??? Ini cuman dua,
bagaimana kalo saya ingin 3, atau 4, atau 120 mobil???
Ah, ada renungan lain, mobil tadi telah anda buat, pasti ada bagian
bagiannya seperti roda. Nah, bagaimana kalo saya ingin mobil yang sama
dengan cat yang berbeda? Bagaimana kalo saya ingin anda membuat mobil
yang sama dengan salah satu roda nya kempes.
Disinilah object oriented programming punya peranan yang sangat penting.
Kita hanya perlu membuat sebuah class mobil. Untuk membuat mobil baru
hanya tinggal membuat instance baru. Dan lain sebagainya. Jauh lebih
elegan, lebih efisien, lebih terstruktur ketimbang prosedural language.
4.Langsung saja, apa yang kita perlukan untuk belajar C++?
Anda bisa saja pakai aplikasi teks editor apa saja. Kemudian anda dapat
mendownload aplikasi compiler apa saja yang sudah tersedia di internet.
Mudah bukan??
Tapi, sekarang banyak sekali vendor yang menyediakan software komplit
(lengkap) untuk anda baik berbayar maupun gratis. Software komplit ini
dinamakan dengan IDE (Integrated Development Environment).
Dalam IDE ini terdapat editor khusus yang dapat kita gunakan, terdapat
compiler yang terintegrasi dengan editor tadi, terdapat debugger, bahkan
terdapat software deployer yang akan membuat kode anda menjadi software
jadi disertai dengan installer nya.
Dengan editor khusus ini maka pekerjaan anda akan jauh lebih mudah,
disertai dengan kode warna yang presentatif, disertai code inspektor
yang akan langsung menginformasikan kepada anda bahwa kode yang anda
ketikan salah, disertai juga dengan smart coding (intellisense code)
yaitu saat anda mengetikan 1 huruf saja maka smart coding ini akan
memunculkan baik method maupun propertis yang tersedia.
Disertai juga template ui dan installer, sehingga untuk membuat menu,
bottom, dan lain – lain yang berhubungan dengan User Interface sudah
dibundled pada software tersebut kita hanya tinggal membuat logic nya
saja.
Banyak sekali IDE/SDK super powerfull gratis maupun berbayar yang dapat anda gunakan di jaman 2013 ke 2014 ini.
Referensi saya pribadi adalah anda dapat menggunakan QT 5.1 dan Visual
Studio 2012. Semuanya gratis. Untuk visual studio yang gratis adalah
Visual Studio Express. Atau mungkin anda memiliki referensi lain??
Bila sudah tersedia IDE super powerfull gratis dengan GUI yang
komunikatif, haruskan saya install compiler sendiri dari download di
internet? Haruskah saya memakai editor simple tanpa intellisense code??
Haruskah saya belajar menggunakan command line juga??
Semua ini anda sendiri yang dapat menjawabnya :)
5.Mari kita mencoba membuat Hello World Application
Buka editor anda, ketikan kode di bawah ini. Disini saya menggunakan Visual Studio 2012.
Lihat gambar 2:
Nah, kode di atas adalah kode default standar penulisan C++.
*Kenapa harus ada fungsi
main() ?????
*Apa itu
#include ?
*Kenapa tidak
#include ?
*Kenapa memakai
int??? Kenapa
int main()?? Kenapa tidak
main() saja?? Kenapa tidak
main(void)?? Kenapa tidak
void main()???
*Apa itu
using namaspace std; ???
*Kenapa memakai
return 0; ??
Pertanyaan – pertanyaan seperti inilah yang terlewatkan pada kebanyakan tutorial C++ yang bertebaran di internet.
Perlu diketahui bahwa kode di atas adalah kode standar C++, ada dapat
me-run kode tersebut pada IDE anda dan cobalah lihat, pasti dapat
berjalan dengan sempurna. Akan tertampil conlose window hasil dari
running kode. Tetapi pada Visual Studio IDE, setelah eksekusi kode maka
akan menutup secara otomatis. Memang begitulah Microsoft membuatnya.
Sehingga untuk membuat window hasil running tetap ditempat (tidak close)
anda dapat menambahkan:
cin.get();
kode ini akan meng-catch input yang dimasukan pengunjung sebelum window
menutup. Bila pengunjung tidak mengetikan apa apa, maka window akan
tetapi terbuka.
Lihat gambar 3:
Lihat gambar 4:
Pada Source.cpp di atas, kita akan menjelaskan bagian – bagian dari kode seperti berikut ini:
#include ini adalah preprocessor
int main() ini adalah function header
using namespace ini adalah using namespace directive
function body yaitu antara {}
statements yaitu pada code cout
return 0; yaitu return statement untuk menyudahi jalannya fungsi
Lihat gambar 5:
Mari kita lanjut ke pembahasan…
*Kenapa harus ada fungsi main() ?????
Saat anda me-run C++ program, eksekusi kode selalu dimulai dari fungsi
main(). Ini adalah standard dari kode C++. Bagaimana bila tidak ada
fungsi main() pada kode anda? Tentu program anda tidak akan berjalan dan
compiler (compiler apa saja) akan menginformasikan kepada anda bahwa
program anda tidak lengkap karena tidak terdapat fungsi main().
Jadi semua alur eksekusi kode dimulai dari fungsi main(), ini berbeda
dengan bahasa pemrograman lain seperti php, actionscript, dan lain lain
yang mana kita bisa memanggil langsung fungsi yang kita buat.
Lihat gambar 6:
Diatas adalah koding dengan php, lebih flexible karena kita bisa
memanggil index.php dan menampilkan langsung fungsi – fungsi contoh()
dan lagi() pada browser.
Lihat gambar 7:
Lihat kode c++ diatas, semua eksekusi harus melalui fungsi main(). Diatas kita meng-include karena kita menggunakannya untuk hal hal yang berhubungan dengan string. Hasilnya adalah seperti berikut ini:
Nah, ada pertanyaan, bagaimana bila kita membuat file .dll (untuk
Windows)? Haruskan kita menambahkan fungsi main()? .dll adalah sebuah
dynamic link library, file ini tidak dapat berjalan sendiri, file ini
bukan standalone, file ini hanya merupakan sebuah bagian dari dari
aplikasi utama, sehingga .dll tidak membutuhkan fungsi main(), fungsi
main() hanya perlu ditambahkan pada aplikasi utamanya / aplikasi
pemanggilnya.
Ada pertanyaan lagi, terutama buat pengguna Visual C++ (dikembangkan
oleh Windows), secara default tidak ada fungsi main() dalam Visual C++.
Lihat gambar 9:
Memang benar, microsoft mengembangkan Visual C++ dengan _tmain() yang
merupakan non standard sintaks. Apakah itu berarti tidak ada fungsi
main() dalam Visual c++?
Ya, ada fungsi main() yang tersembunyi yang akan memanggil fungsi
_tmain() ini. Ini merupakan programming environment dalam Windows.
*Apa itu #include ?
Line di atas adalah preprocessor directives. C++ sama seperti C, sama –
sama menggunakan preprocessor. Maksudnya adalah program akan memproses
file tertentu terlebih dahulu sebelum proses compile utama dilakukan.
Iostream adalah file yang kita gunakan bila program kita berhubungan
dengan input – output. Input – Output yang kita ambil dari file ini dan
kita gunakan pada kode program adalah cout dan cin. Sehingga supaya
cout dan cin tersebut berjalan sebagai menstinya kita perlu meng-iclude
kan file yang kita butuhkan.
*Kenapa tidak #include ?
File – file yang kita gunakan pada include (termasuk iostream) biasanya
disebut sebagai ‘include files’ atau ‘header files’. Pada bahasa C,
penulisan untuk include file disertai extensi dari file tersebut
misalnya iostream.h. nah, berbeda dengan penulisan pada C++, yang hanya
cukup menggunakan nama file tanpa ekstensi (.h).
Dulu C++ juga menggunakan extensi file (.h) pada gaya penulisan, tetapi
untuk style yang sekarang tidak diperlukan lagi. Jadi hanya cukup dengan
#include.
Lalu bagaimana bila ditambahkan dengan .h? tentu saja tidak masalah :)
*Apa itu using namespace std; ???
Bila anda menginclude file dengan #include tanpa ektensi .h maka anda perlu menggunakan using namespace std;
Bila tidak menggunakan line diatas maka untuk memanggil cout dan cin dapat dengan :
Std::cout;
Serta
std::cin;
Mudah bukan???
Namespace ini sebetulnya digunakan untuk memudahkan penulisan kode bila
program anda terdiri dari kode kode dari beberapa vendor.
Coba bayangkan, bila anda mengambil kode dari vendor ‘OkieInc’ dan
vendor ‘MetuInc’ misalnya. Ternyata kedua-duanya memiliki nama fungsi
yang sama yaitu ‘function Mediatutorial()’. Nah, tanpa namespace,
compiler akan sangat bingung bahkan jadi hang karena harus memilih
fungsi dari vendor yang mana?
Nah, dengan namespace, kita dapat memanggil fungsi dari vendor OkieInc dengan misalnya
okieinc::Mediatutorial();
Sedangkan dari MetuInc dapat dengan:
metuinc::Mediatutorial();
Mungkin cukup sekian tutorial update untuk pengenalan C++, semoga
bermanfaat, dan kita akan kembali dengan tutorial-tutorial C++
berikutnya.
Saya punya referensi bagus tentang C++, tapi ini hanya tahap
pemula,belum pada GUI. Silahkan anda dapat download pada link yang telah
tersedia di bawah ini.
Download C++ pegangan saya (dari cplusplus.com)
atau
Donwload C++ Premiere PDF
Sumber : http://www.mediatutorial.web.id/2012/04/c-no1-belajar-c-pemula-apa-itu-c.html