Belajar C++ #1: Pengenalan

Keinginan belajar hal terutama dalam sebuah keberhasilan mencapai apa yang diinginkan. mungkin disini belajar pemrograman C++ pasti ada yang karena keinginan sendiri dan ada juga yang terpaksa karena tuntunan dari kuliah 😆.
Pada artikel ini akan mempelajari C++ mulai dari mempelajari sedikit sejarah dan asal usulnya, hingga nanti membuat persiapan awal untuk belajar C++ sampai ke contoh programnya.
Sejarah C++
Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C ANSI (American National Standard Institute). Bahasa tersebut disebut sebagai perpanjangan dari bahasa pemrograman C,atau "C with Classes".
Pada tahun 1982, Bjarne Stroustrup mulai mengembangkan penerus C dengan kelas, yang ia beri nama "C++"
Pada tahun 1984, Bjarne Stroustrup mengimplementasikan library input/ouput aliran pertama.
Pada tahun 1985, edisi pertama The C++ Programming Language dirilis, yang menjadi referensi definitif untuk bahasa, karena belum ada standar resmi.
Pada tahun 1989, C++ 2.0 dirilis, diikuti oleh edisi kedua yang diperbarui dari The C++ Programming Language pada tahun 1991.
Pada tahun 1998, C++ 98 dirilis, membakukan bahasa, dan perbaruan kecil.
Struktur Program
Program C++ selalu tersusun dari 4 bagian utama, yaitu :
- Bagian Preprocessor Directive
- Bagian komentar
- Bagian deklarasi dan definisi
- Bagian pernyataan atau ekspresi
1// Bagian Preprocessor directive/File header 2#include <header> 3 4// Deklarasi namespace 5using namespace std; 6 7int main() { // Deklarasi function 8 // Definisi function 9 cout<<"Hello World!!!"<<endl; // Pernyataan atau ekspresi 10 return 0; 11}
1. Bagian Preprocessor Directive
Program yang dibuat dengan bahasa pemrograman C++ selalu diawali dengan Preprocessor Directive, disebut juga pengarah compiler karena berfungsi mengatur proses kompilasi. Perintah diawali dengan simbol/tanda pagar #. Khusus untuk bagian awal program, selalu menggunakan Directive #include yang digunakan untuk mendefinisikan file header di dalam kode program. File-file dengan ekstensi .h adalah file yang berisi deklarasi fungsi-fungsi dan telah dikompilasi sebelumnya.
Contoh :
1#include <iostream> 2using namespace std; 3 4int main() { 5 char text = "Hai dunia tipu-tipu!!!"; 6 cout<<text<<endl; 7 return 0; 8}
Beberapa macam Preprocessor Directive :
1. Definisi Makro (Macro Definitions)
Definisi Makro atau Macro Definitions digunakan untuk membuat konstanta simbolik yang dinamakan sebagai makro. Untuk mendefinisikan makro definisi dengan Syntax #define.
Konstanta sendiri adalah sebuah tempat atau container dari suatu nilai.
Bentuk penulisan :
1#define IDENTITAS nilai
Contoh :
1#include <iostream> 2using namespace std; 3 4#define NAMA "Nfitec" // Mendirikan makro 5#define UMUR 18 // Mendirikan makro 6 7int main() { 8 cout<<"Nama saya "<<NAMA<<endl; 9 cout<<"Umur saya "<<UMUR<<endl; 10 /* Output 11 Nama saya Nfitec 12 Umur saya 18 13 */ 14 return 0; 15}
Makro yang didefinisikan tidak dipengaruhi oleh struktur blok. Makro akan berlangsung sampai tidak terdaftar dengan menggunakan Syntax #undef.
Contoh :
1#include <iostream> 2using namespace std; 3 4#define NAMA "Nfitec" // Mendirikan makro 5#define UMUR 18 // Mendirikan makro 6 7#undef NAMA // Menghapus makro sebelumnya 8#define NAMA "Nizar" // Mendirikan makro yang telah dihapus 9 10int main() { 11 cout<<"Nama saya "<<NAMA<<endl; 12 cout<<"Umur saya "<<UMUR<<endl; 13 /* Output 14 Nama saya Nizar 15 Umur saya 18 16 */ 17 return 0; 18}
Maka pada bagian define yang semula berisi "Nfitec" akan berubah menjadi "Nizar".
Macro seperti Function(Function-Like Macros)
Dalam mendirikan makro kita dimungkinkan mirip layaknya sebuah function yang dapat menerima argumen.
Contoh :
1#include <iostream> 2using namespace std; 3 4#define nama(x) #x 5 6int main() { 7 cout<<nama(Nizar)<<endl; 8 // output Nizar 9 return 0; 10}
atau bisa menambahkan sebuah operasi dengan menerima 2 argumen
Contoh :
1#include <iostream> 2using namespace std; 3 4#define kalikan(a,b) (a*b) // Menerima 2 argumen 5 6int main() { 7 cout<<kalikan(8,10)<<endl; // 8x10/8*10 8 // Output 80 9 return 0; 10}
2. Penyertaan File Sumber (Source File Inclusion)
Intruksi ini telah digunakan dengan tekun/sering di bagian setiap contoh program. Ketika Preprocessor menemukan arahan, ia menggantinya dengan seluruh konten header atau file yang ditentukan. Ada 2 cara untuk menggunakan, yaitu :
Bentuk penulisan :
1#include <header> // Cara 1 2#include "file" // Cara 2
Biasanya juga menemukan library yang di-include dengan ekstensi .h, .cpp, .hpp, .cc, .c, dsb.
Dalam cara pertama, header ditentukan antara sudut-kurung. Ini digunakan untuk menyertakan pustaka standar yang telah disediakan oleh C++. Dalam hal apapun mereka harus benar disertakan dengan arahan ini. Ada beberapa library yang disediakan, yaitu :
- #include <stdio.h>
- #include <conio.h>
- #include <iostream.h>
- #include <math.h>
Dalam cara kedua menggunakan kutipan, dan termasuk file, umumnya file dicari mencakup jalur yang digunakan saat ini.
3. Penyertaan Berkondisi (Conditional inclusions)
Intruksi ini pada umunya sama seperti if, dimana membantu menyeleksi dengan kondisi yang ada. Hal ini dapat dilakukan dengan Syntax #if, #elif, #else, ifdef, #ifndef dan ditutup dengan #endif.
Bentuk penulisan :
1// Kondisi menggunakan kondisi #if #elif dan #else 2#if kondisi 3 // Aksi 4#elif kondisi 5 // Aksi 6#else 7 //aksi 8#endif 9 10// Kondisi menggunakan #ifdef 11#ifdef kondisi 12 //aksi 13#endif 14 15// Kondisi menggunakan #ifndef 16#ifndef kondisi 17 //aksi 18#endif
Contoh menggunakan kondisi #if, #elif, #else :
1#include <iostream> 2using namespace std; 3 4#define semester 1 // Mendirikan makro 5 6#if semester < 2 7 #define tipe_mahasiswa "Semangat banget" 8#elif semester < 4 9 #define tipe_mahasiswa "Semangat menurun" 10#elif semester < 6 11 #define tipe_mahasiswa "Mulai merasa salah jurusan" 12#elif semester < 8 13 #define tipe_mahasiswa "Yoh acc skripsi... lulus langsung rabi" 14#elif semester > 9 15 #define tipe_mahasiswa "Mahasiswa abadi haha" 16#else 17 #define tipe_mahasiswa "Tidak dikenali" 18#endif // Akhir kondisi 19 20int main() { 21 cout<<"Anda mahasiswa dengan tipe : "<<tipe_mahasiswa<<endl; 22 return 0; 23}
Berbeda jika menggunakan #ifdef dan #ifndef keberadaan deklarasi makro sebagai kondisi penentu.
Contoh :
1#include <iostream> 2using namespace std; 3 4#ifndef tidur // Jika makro tidak ada maka jalankan ini 5 #define tidur true // Maka makro akan di isi dengan nilai 0 atau bisa diganti sesuka hati 6#endif 7 8#ifdef tidur 9 string statusTidur() { 10 return semester ? "Sedang tidur":"Sedang bangun" 11 } 12#endif 13 14void main() { 15 cout<<statusTidur()<<endl; 16}
4. Nama Makro yang sudah ditentukan (Predefined Macro Names)
Ada beberapa makro yang sudah ditentukan, makro berikut selalu didefinisikan "_" (semuanya dimulai dan diakhiri dengan dua karakter garis bawah)
| Makro | Nilai |
|---|---|
| __DATE__ | Memuat informasi mengenai tanggal saat ini, dengan bentuk "Mmm dd yyyy" |
| __LINE__ | Memuat informasi mengenai nomer baris dari pemanggilan dalam file kode sumber sedang dikompilasi |
| __FILE__ | Memuat informasi nama file dan alamat direktori yang dari file sumber yang sedang dikompilasi |
| __TIME__ | Memuat informasi mengenai waktu saat ini, dengan bentuk "hh:mm:ss" |
2. Bagian Komentar
Komentar termasuk bagian penting apa lagi dokumentasi didalam program biar lebih paham apa fungsi program yang di jalankan, Program akan lebih baik karena dapat membantu orang lain untuk memahami program yang dibuat. Dalam C++ komentar dengan lebih dari satu baris akan diapit dengan simbol /*...*/ akan berbeda jika kita hanya menulis komentar dengan satu baris saja bisa menggunakan simbol //.
Contoh :
1// Program ini adalah program latihan; //Program dibuat tanggal 30 September 2021 2 3/* 4Program hanya untuk latihan 5yang dibuat tanggal 30 September 2021 6*/
3. Bagian Deklarasi dan Definisi
Seperti yang dibagian awal pada Struktur Program secara umum deklarasi dan definisi dibutuhkan setiap program C++ dibuat.
1. Deklarasi namespace
Bagian deklarasi ini sangat optional/tidak wajib untuk ditulis, sudah sering pada contoh di atas menggunakan namespace std, karena pada file header <iostream.h> sudah dibungkus dalam namespace std.
Jika tidak menggunakan namespace std maka saat menggunakan fungsi cin dan cout yang ada pada <iostream.h> harus diawali dengan std::.
Contoh :
1std::cout<<"Hello World!!!"<<endl;
Akan tidak menyenangkan setiap cout dan cin manual menggunakan std:: dengan menggunakan seperti ini :
1using namespace std;
Maka secara global akan menggunakan namespace std
2. Deklarasi fungsi
Bagian ini yang terpenting karena di dalam fungsi kita akan banyak menulis kode di dalam fungsi.
Contoh terdapat fungsi main() fungsi ini sendiri adalah fungsi utama dari program saat program pertama kali saat program dibuka/dijalankan.
Akan beda lagi jika membuat program yang berfungsi sebagai library saja maka fungsi main() boleh tidak dibuat.
Tidak hanya ada fungsi main() saja ada beberapa fungsi lainnya.
Contoh :
1#include <iostream> 2using namespace std; 3 4void lain() { 5 cout<<"Apakah kamu manusia?"<<endl; 6} 7 8int main() { 9 cout<<"Hello people"<<endl; 10 lain(); 11 return 0; 12}
4. Bagian Pernyataan atau Ekspresi
Bagian pernyataan atau ekspresi adalah perintah yang ditulis di dalam fungsi.
Contoh:
1#include <iostream> 2using namespace std; 3 4int main() { 5 cout<<"Hello, aku sedang belajar C++"<<endl; 6 cout<<"C++ memang mantap"<<endl; 7 return 0; 8}
Yang dinamakan pernyataan atau expresi pada bagian ini :
1cout<<"Hello, aku sedang belajar C++"<<endl; 2cout<<"C++ memang mantap"<<endl; 3return 0;
Selanjutnya
Kamu baru saja belajar tentang struktur program dan sintak dasar pemrograman C++, tentu saja ini belum cukup.
Lanjutan belajar
- Belajar C++ #2: Mengenal Variabel, Konstanta, dan Tipe Data (Coming Soon)
Nizar