Belajar C++ untuk Pemula: Pengenalan Dasar

Pengenalan Dasar

Pada materi sebelumnya, kita sudah belajar cara membuat program komputer sederhana dengan menggunakan source code bawaan dari Code::Blocks.

Untuk dapat membuat program-program komputer lainnya, kamu harus bisa menulis source code.

Namun, untuk bisa menulis source code, kamu harus mengerti dulu fungsi dari baris-baris kode yang akan kamu tuliskan di source code.

Nah, sebelum saya menjelaskan fungsinya, saya akan memberikan satu tips penting dalam menulis sebuah source code, yaitu:

Dalam menulis source code, tulislah serapi mungkin.
"Kenapa begitu, kak? Lagipula mau rapi atau enggak, yang penting jalan kan kak."
Jika kamu berpikiran seperti itu, saya sarankan untuk buang jauh-jauh pemikiran seperti itu.

Asal kamu tahu, untuk membuat program yang bagus, kamu perlu menulis ratusan, ribuan, bahkan puluhan ribu baris kode. Bayangkan jika kamu tidak menulisnya dengan rapi, apabila ada error saya yakin kamu akan kesusahan untuk memperbaikinya.

Terlebih lagi, programmer di perusahaan-perusahaan bekerja secara tim, bukan individu. Jika kamu menulisnya tidak rapi, hal itu dapat menghambat pekerjaan programmer lainnya karena mereka butuh waktu ekstra untuk membacanya.

Maka dari itu, saya sangat menyarankan untuk mulai membiasakan diri menulis source code serapi mungkin seperti yang saya lakukan.

Membuat Program Sederhana

 /*
  * Pengenalan Dasar C++
  * Dibuat sepenuh hati oleh Kak Ardi khusus untuk kamu
  */ 

 #include <iostream>        // Memasukkan file header iostream
 using namespace std;       // Menggunakan namespace std

 int main()
 {                          // Awal fungsi main

      // Memunculkan tulisan
      cout << "Hore!" << endl;            
      cout << “Aku bisa bikin program!;  
      cout << endl;

      return 0;             // Memberikan exit status 0
 }                          // Akhir fungsi main
/* ... */ dan // ...
Tanda ini merupakan komentar. Setiap komentar yang ada pada source code akan diabaikan saat proses compile.

Tanda /* ... */ digunakan untuk membuat komentar banyak baris, sedangkan tanda // ... digunakan untuk membuat komentar satu baris.

Apa sih pentingnya pakai komentar? 

Komentar sangat cocok digunakan untuk memberikan penjelasan maupun dokumentasi pada source code yang kita buat.

Bayangkan jika source code yang kamu buat dilihat oleh orang lain (misalnya tim kerja), jika kamu menggunakan komentar, orang tersebut tidak perlu susah-susah untuk mencari tahu apa fungsi dari baris-baris kode yang ada di dalamnya.


#include <iostream>
Tanda # merupakan preprocessor directive (perintah sebelum proses compile).

Jadi, maksud dari #include <iostream> adalah perintah untuk meng-include-kan (memasukkan) file header iostream sebelum proses compile berlangsung (preprocessing).

Kenapa kita perlu meng-include-kan file header iostream?

File header iostream diperlukan agar kita bisa melakukan operasi input maupun output, seperti cin dan cout. Kalau kamu tidak memasukkan file header iostream, maka kamu tidak akan bisa menggunakan perintah cin maupun cout.

Jika kamu pernah membaca referensi di buku ataupun di internet yang menggunakan perintah #include <iostream.h>, maka referensi tersebut sudah sangat jadul.

Kenapa jadul? Karena gaya penulisan tersebut hanya dipakai pada bahasa C atau bahasa C++ saat baru selesai dibuat (C with classes) saja.

Seperti yang kamu tahu, bahwa C++ merupakan bahasa pemrograman yang dikembangkan dari bahasa C. Jadi, sangatlah wajar jika gaya penulisan bahasa C++ saat baru selesai dibuat masih mengikuti standar dari bahasa C.

Namun, karena standar C++ selalu berkembang (saat ini sudah C++14), maka gaya penulisan seperti itu sudah tidak digunakan lagi saat ini. Karena hal itu, saya sangat menyarankan untuk tidak menggunakan gaya penulisan seperti itu jika kamu benar-benar ingin serius belajar bahasa C++.

Untuk mengetahui penulisan header standar yang tepat beserta fungsinya, kamu dapat melihatnya di http://en.cppreference.com/w/cpp/header


using namespace std;
Kalimat ini merupakan pernyataan (statement). Setiap statement selalu diakhiri dengan tanda ; (titik koma atau semicolon).

Statement ini berfungsi untuk memberitahu program agar menggunakan (using) namespace yang bernama std.

Di dalam namespace std berisi perintah-perintah seperti cin, cout, dan endl. Jadi tanpa menggunakan namespace std, kamu tidak akan bisa menggunakan perintah cin, cout, maupun endl.
"Lho, kak, tadi katanya untuk bisa memakai cin dan cout kita harus masukin fiheader iostream. Kok sekarang harus menggunakan namespace std? Yang benar yang mana sih, kak?"
Kedua hal tersebut sama-sama diperlukan.

Asal kamu tahu, di dalam file header iostream ada namespace yang namanya std. Nah, di dalam namespace tersebut ada banyak objek dan manipulator (gampangnya disebut perintah), seperti cin, cout, dan endl.

Untuk memudahkan pemahaman, coba lihat gambar di bawah ini.
Analogi Header dan Namespace

Kamu analogikan saja header dan namespace sebagai folder, dan perintah sebagai file.

Jika kamu ingin membuka file cin, cout, atau endl, tentu saja kamu harus buka folder iostream-nya dulu, kemudian baru buka folder std, habis itu baru kamu bisa klik file yang ingin dibuka, bukan?

Nah, dalam pemrograman C++, kita juga harus melakukan hal yang sama jika ingin menggunakan suatu perintah.

Pertama, kita harus menyediakan file header yang diperlukan dengan meng-include-kannya. Kedua, kita perlu menyatakan lokasi tempat perintah tersebut tersedia dengan menggunakan using namespace. Setelah itu, baru kita bisa menggunakan perintah yang kita inginkan.

Sebenarnya kita tetap bisa menggunakan perintah yang kita inginkan walaupun tanpa menggunakan using namespace, asalkan kita tahu di namespace apa perintah itu tersedia.

Caranya adalah dengan menambahkan namaNamespace:: sebelum perintah tersebut digunakan. Contohnya adalah sebagai berikut. 
 /*
  * Pengenalan Dasar C++
  * Dibuat sepenuh hati oleh Kak Ardi khusus untuk kamu
  */ 

 #include <iostream>        // Memasukkan file header iostream

 int main()
 {                          // Awal fungsi main

      // Memunculkan tulisan
      std::cout << "Hore!" << std::endl;            
      std::cout << “Aku bisa bikin program!;  
      std::cout << std::endl;

      return 0;             // Memberikan exit status 0
 }                          // Akhir fungsi main
Cara ini memang sedikit menguras tenaga, karena kita harus menuliskan nama namespace-nya setiap kali ingin menggunakan perintah.

Namun, dibalik kelemahannya itu, sebenarnya cara ini masih lebih baik digunakan dalam pemrograman dibandingkan dengan using namespace karena cara ini dapat mencegah terjadinya konflik.
"Konflik? Maksudnya gimana sih, kak?"
Anggap saja di dalam iostream ada namespace yang namanya std dan wibu. Di dalam std dan wibu sama-sama terdapat perintah cout. Sekarang bayangkan kamu menggunakan using namespace std; dan using namespace wibu; kemudian kamu memakai perintah cout.

Kira-kira apa yang akan terjadi?

Sudah pasti komputer akan kebingungan. "Perintah cout yang mana sih yang dimaksud? Yang di dalam namespace std atau yang di dalam namespace wibu?" Nah, konflik inilah yang saya maksud.

Meskipun begitu, saya akan tetap menggunakan using namespace pada materi-materi selanjutnya untuk mempermudah pembelajaran.


int main { ... }
Ini merupakan sebuah function (fungsi). Di dalam fungsi terdapat statement-statement. Dan setiap fungsi selalu diawali dengan tanda { (kurung kurawal buka) dan diakhiri dengan tanda } (kurung kurawal tutup).

Fungsi ini bernama main. Fungsi main merupakan fungsi yang istimewa.

Kenapa? Karena saat kita membuka sebuah program, komputer akan mengeksekusi (menjalankan) statement-stament yang ada pada fungsi main secara berurutan.

Jadi, bisa dibilang fungsi main ini merupakan nyawa dari program komputer. Tanpa fungsi main, program komputer tidak akan dapat berjalan.


cout
cout merupakan singkatan dari character output, yang berfungsi untuk menampilkan output ke console (dalam sistem operasi windows disebut Command Prompt atau CMD).

Penggunaan cout selalu dibarengi oleh penggunaan tanda << (operator output).

Untuk penggunaan cout beruntun, contohnya cout << "Aku bisa bikin program" cout << endl; dapat digabungkan menjadi cout << "Aku bisa bikin program!" << endl;


endl 
endl merupakan singkatan dari end of line, yang berfungsi untuk memberikan baris baru (sama seperti fungsi tombol Enter pada keyboard).

Penggunaan endl selalu diikuti oleh perintah cout di depannya.


return 0;
Statement ini berfungsi untuk memberikan exit status 0.

Yang dimaksud exit status adalah status atau laporan akhir program yang ditujukan kepada sistem operasi.

Kalau masih belum paham, kamu bisa bayangkan seperti ini.

Anggap saja ada orang yang namanya sistem operasi. Si sistem operasi ini memanggil orang yang namanya main untuk melakukan suatu tugas.

Jika si main telah menyelesaikan tugasnya secara sempurna, dia akan melapor seperti ini, "Lapor, Pak. Tugas sudah selesai dengan sempurna." Namun jika si main tidak dapat menyelesaikan tugasnya, dia akan melapor seperti ini, "Maaf, Pak. Tugas tidak dapat diselesaikan karena ada suatu masalah."

Nah, laporan itulah yang disebut dengan exit status. Jika nilainya 0, itu artinya program berjalan dengan normal. Selain nilai tersebut (umumnya -1) menandakan bahwa program tidak berjalan dengan normal.

Proses  Pembuatan Program

Dalam belajar C++, setidaknya kamu harus punya sedikit gambaran umum tentang bagaimana program C++ dibuat.

Untuk membuat program C++, ada 4 tahapan yang harus dilakukan, yaitu:
  1. Menulis source code
  2. Preprocessing
  3. Compile
  4. Linking
Proses Pembuatan Program C++

1. Menulis source code
Pada tahap ini programmer membuat source code yang berfungsi untuk memberikan perintah kepada komputer untuk melakukan suatu tugas tertentu.

Tahap ini menghasilkan source code (.cpp) yang masih belum sempurna (masih mentah).


2. Preprocessing
Pada tahap ini preprocessor akan mengeksekusi semua preprocessor directive yang ada pada source code.

Contohnya pada program sebelumnya kita menggunakan #include <iostream>, maka si preprocessor ini akan meng-copy seluruh isi dari file header iostream, kemudian mem-paste-nya atau lebih tepatnya me-replace (mengganti) tulisan #include <iostream> pada source code dengan isi dari file header iostream yang telah di-copy tadi.

Tahap ini menghasilkan source code (.i) yang sudah sempurna (sudah matang).


3. Compile
Pada tahap ini compiler akan mengubah source code (.i) menjadi file object (.o).

Asal kamu tahu, sebenarnya komputer tidak mengerti sama sekali bahasa C++, karena komputer hanya mengerti '1' dan '0' saja. Maka dari itu, compiler perlu mengubah bahasa yang tidak dimengerti komputer (C++ yang berupa source code) menjadi bahasa yang dimengerti komputer (bahasa mesin yang berupa file object).

 
4. Linking
Pada tahap ini linker akan menggabungkan semua file object menjadi satu paket (.exe).
"Kalau linker itu tugasnya gabungin semua file object jadi satu, tapi kok pada gambar di atas linker juga menggabungkan standard library sih, kak?"
Standard library itu sebenarnya merupakan kumpulan dari file-file object yang telah disediakan langsung oleh C++. File-file object tersebut merupakan komponen pendukung untuk mengakses perintah yang ada pada header standar (contohnya perintah cout pada header iostream).

Jadi dapat disimpulkan bahwa jika linker tidak menyertakan standard library, perintah cout tidak akan dapat berfungsi.

Latihan

  1. Apa yang kamu ketahui tentang statement?
  2. Apa fungsi dari tanda /* ... */ dan // ...?
  3. Kenapa kita perlu menggunakan #include <iostream> dan using namespace std;?
  4. Apa yang perlu kita tambahkan setelah perintah cout?
  5. Perintah apa yang perlu kita gunakan sebelum perintah endl?
  6. Apa yang kamu ketahui tentang fungsi main?
  7. Kenapa kita perlu menggunakan statement return 0; pada fungsi main?
  8. Apa saja yang harus dilakukan untuk membuat program?
  9. Buatlah sebuah program sederhana yang menghasilkan output seperti di bawah ini! 
Ternyata ...

... belajar C++ itu ...

... gak susah-susah banget.

Saya sangat menyarankan untuk mengerjakan latihan di atas sebelum kamu lanjut ke materi selanjutnya. Lebih bagus lagi kalau kamu menulis jawabannya di kertas. Itu akan membuat ingatanmu lebih tahan lama.

Untuk kunci jawabannya, kamu bisa download di sini.

Sebelum membuka kunci jawabannya, saya mohon untuk menjawab sebisanya terlebih dahulu serta gunakanlah bahasamu sendiri. Kalau memang sudah mentok tidak bisa jawab atau memang sudah selesai, silakan buka kunci jawabannya lalu bandingkanlah dengan jawabanmu.

Apabila ada pertanyaan ataupun masukan, jangan sungkan-sungkan untuk meninggalkan komentar.

Sekian dari saya, makasih ( ^_^) /

Materi selanjutnya >>

* Untuk materi selanjutnya masih dalam proses pembuatan. Jadi mohon kesabarannya, ya~

Share this

Related Posts

Latest
Previous
Next Post »