[C++] Komentar pada Source Code C++


Dalam penulisan kode program, pasti akan banyak menuliskan sintaks-sintaks yang berisi perintah suatu program. Semakin panjang kode yang dibuat, semakin sulit untuk dimengerti oleh pengembang software lain. Untuk itulah diperlukan komentar. Komentar memang tidak akan ikut dikompilasi, tetapi sangat membantu ketika dalam proses maintenance suatu program. Alangkah baiknya setiap program yang dibuat ditambahkan dengan komentar juga.

Komentar Inline dengan //

Komentar ini diawali dengan tanda // dan teks dibelakang tanda tersebut akan dianggap sebagai komentar sampai dengan penggantian baris baru. Komentar jenis ini tidak dikenali pada C, hanya pada C++. Berikut ini adalah contoh penggunaan komentar inline.

// Komentar inline untuk satu baris
int i; // Mendeklarasikan variabel i sebagai integer

Perlu diperhatikan bahwa

// Komentar inline untuk
satu baris
int // Mendeklarasikan variabel i sebagai integer i;

Kode di atas akan memiliki kesalahan, sebab satu baris tidak dianggap sebagai komentar. Selain itu i; tidak dianggap sebagai identifier, melainkan dianggap sebagai sebuah komentar.

Komentar Blok dengan /*...*/

Komentar ini digunakan ketika ingin menuliskan yang komentar dalam bentuk blok. Komentar blok diawali dengan /* sampai ditemukan */ yang pertama.

/* Komentar blok bisa juga untuk satu baris */
int /* Mendeklarasikan variabel i sebagai integer */ i;
/* Komentar blok
   juga bisa
   menuliskan untuk lebih dari satu baris */

Perlu diperhatikan, tidak boleh melakukan nested komentar blok dalam komentar blok.

/* Tidak boleh melakukan /* nested komentar blok */ dalam komentar blok */

Hal ini menyebabkan, dalam komentar blok */ dianggap sebagai identifier, bukan sebagai komentar blok. Karena tanda */ telah ditemukan terlebih dahulu sebelum teks dalam komentar blok */.

Advertisements

[C++] Struktur Program C++


Hello World!

Biasanya untuk mempelajari sebuah program, akan dimulai dengan membuat program

HelloWorld. Berikut ini adalah program HelloWorld pertama:

// File		 : HelloWorld.cpp
// Deskripsi : Program HelloWorld
// Author	 : Edward Samuel
// Tanggal	 : 23 Maret 2012
#include <iostream>;
using namespace std;
int main() {
	cout << "Hello World!" << endl;
	return 0;
}

Misalnya simpan dengan nama HelloWorld.cpp di direktori C:\BelajarCPP\ (pada Windows) atau \home\Edward\BelajarCPP\ (pada Linux). Buka command prompt (pada Windows) atau terminal (pada Linux). Masuklah ke direktori tempat kode tersebut disimpan dengan perintah cd. Maka dapat menggunakan perintah:

C:
cd \BelajarCPP\

atau pada Linux

cd \home\Edward\BelajarCPP\

Untuk menjalankannya, lakukan compile terlebih dahulu dengan perintah: g++ -o HelloWorld HelloWorld.cpp

dengan HelloWorld adalah nama file executeable output dan HelloWorld.cpp adalah nama file source code. Jalankan program dengan perintah HelloWorld (pada Windows) atau .\HelloWorld.

C:\BelajarCPP>g++ -o HelloWorld HelloWorld.cpp

C:\BelajarCPP>HelloWorld
Hello World!

Setelah menjalankan maka akan muncul tulisan HelloWorld! pada console.

Penjelasan

  1. Baris 1-4:
    // File : HelloWorld.cpp
    // Deskripsi : Program HelloWorld
    // Author : Edward Samuel
    // Tanggal : 23 Maret 2012
    Kode yang diawali dengan // merupakan sebuah komentar-inline (akan dijelaskan kemudian). Komentar tidak memiliki pengaruh dalam kode program. Komentar hanya merupakan penjelas suatu kode.
  2. Baris 5: #include <iostream>;
    Kode yang diawali dengan # merupakan sebuah preprocessor (akan dijelaskan kemudian). Preprocessor memberitahukan compiler untuk melakukan sesuatu sebelum melakukan kompilasi. Preprocessor #include akan memberitahukan kompiler untuk meng-include iostream library yang berguna untuk standar input-output pada C++.
  3. Baris 6: using namespace std;
    Tujuan dari penulisan kode ini adalah untuk melakukan penulisan kode langsung tanpa penulisan scope std::. Hal ini dikarenakan, pada iosteam C++ melakukan pembungkusan semua fungsi input-output dalam namespace std (akan dijelaskan kemudian pada topik “namespace”). Jika tidak dilakukan, maka program baris 8 harus ditulisakan:

    std::cout << "Hello World!" << std::endl;

    Cukup merepotkan jika harus menulis lengkap demikian, maka penggunaan using sangat diperlukan.

  4. Baris 7: int main() {
    Kode ini menyatakan pembuatan suatu fungsi main. Setiap program C/C++ harus memiliki sebuah main. main merupakan kode awal yang akan dieksekusi ketika program dijalankan.
  5. Baris 8: cout << "Hello World!" << endl;
    Merupakan sebuah C++ statement. C++ statement inilah yang mempengaruhi langsung eksekusi program. Statement pada contoh ini menyatakan bahwa cetak “HelloWorld!” dan end-line pada output-stream cout.
    cout sendiri berada dalam library iostream dengan namespace std, oleh karena itu dilakukan perintah include seperti pada baris 5-6.
    Setiap statement dalam C++ harus diakhiri dengan ;
  6. Baris 9: return 0;
    Menyatakan hasil keluaran dari fungsi main() adalah 0. Pada C++, return 0 dalam main() menyatakan bahwa program berakhir dengan normal.

[C++] Compiler C++


Konsep Kompilasi Program C++

Secara sederhana, proses kompilasi suatu program C++ dilakukan melalui tahapan berikut:

  1. Preprocessor: Source Code yang telah dibuat akan diperiksa bagian preprocessor yang ditandai dengan #. Misalnya #include, #define, #ifdef, dll. (akan dijelaskan kemudian).
  2. Compiler: menerjemahkan source code yang telah dibuat menjadi assembly code (bahasa mesin).
  3. Assembler: menerjemahkan assembly code menjadi object code. Jika tidak menggunakan library lain, maka akan dieksekusi langsung menjadi executeable.
  4. Linker: menggabungkan object code dan library menjadi sebuah executeable.

Compiler C++

Pada tutorial ini, khusus untuk lingkungan Windows digunakan compiler yang disediakan oleh TDM-GCC. Silahkan men-download paket bundle.
Untuk pengguna Linux dapat mencari instalasi gcc yang disertai add-on g++.

Cara Compile dan Run Program C++

Untuk melakukan kompilasi program langsung menjadi executeable, dapat menjalankan perintah:

g++ -o namaprogram sourcecode1.cpp sourcecode2.cpp sourcecoden.cpp

dengan namaprogram merupakan nama file executeable output, sourcecodei.cpp merupakan kode program dalam bahasa C++.
Untuk menjalankan program, pada Windows

namaprogram

dan pada Linux

./namaprogram

Cara Compile dan Run Program C++ (dengan Pembuatan Object Code)

Untuk melakukan pembuatan program dengan terlebih dahulu membuat object code, dapat menjalankan perintah:

g++ -c sourcecode.cpp [-o objectcode.o]

dengan mengeksekusi perintah di atas, maka akan terbentuk file sourcecode.o (jika tidak mengatur output-nya).
Linking object code dilakukan dengan:

g++ -o namaprogram objectcode1.o objectcode2.o objectcoden.o

[C] Mendapatkan Tanggal dan Jam Compile dengan C


Untuk, mendapatkan Tanggal dan Jam Compile C ternyata tidaklah sulit. Terdapat Standard Predefined Macros untuk mendapatkan tanggal dan waktu compile. Saat ini, Standard Predefined Macros didukung oleh hampir semua compiler C. Makro tersebut adalah __DATE__ dan __TIME__.

Makro __DATE__ dan __TIME__ merupakan sebuah string C yang berisi tanggal dan waktu. Coba saja mencetak __DATE__ dan __TIME__.

#include <stdio.h>

void main() {
 printf("Date = %s", __DATE__);
 printf("\nTime = %s", __TIME__);
}

Maka hasil yang didapat adalah tanggal dan waktu compile. Misalnya

Date = Dec  3 2011
Time = 12:52:22

Makro __DATE__ berisi tanggal compile yang dengan format Mmm DD YYY. Sedangkan makro __TIME__ bersi waktu compile dengan format HH:MM:SS. Untuk mendapatkan nilai integernya, dapat memodifikasi string tersebut dan memanfaatkan fungsi atoi(char *str) untuk mengonversi string ke integer.

[C] Mendapatkan Tanggal dan Jam Sistem dengan C


Menggunakan <time.h>

Berikut ini adalah contoh program kecil untuk mendapatkan informasi tanggal dan waktu dengan memanfaatkan header <time.h>

#include <time.h>
#include <stdio.h>

void main() {
    struct tm *Sys_T;

    time_t Tval;
    Tval = time(NULL);
    Sys_T = localtime(&Tval); /* Untuk mendapatkan waktu lokal komputer */
    /* Sys_T = gmtime(&Tval); */ /* Untuk mendapatkan waktu komputer berbasis GMT/UTC */

    printf("Day of Month = %d", Sys_T->tm_mday);
    printf("\nMonth        = %d", Sys_T->tm_mon+1); /* Ditambah 1 karena Januari dimulai dari 0 */
    printf("\nYear         = %d", 1900+Sys_T->tm_year); /* Ditambah 1900, karena tahun dimulai dari 1900 */

    printf("\n\nHour         = %d", Sys_T->tm_hour);
    printf("\nMinutes      = %d", Sys_T->tm_min);
    printf("\nSeconds      = %d", Sys_T->tm_sec);

    printf("\n\nDay of Week  = %d", Sys_T->tm_wday); /* 0-6 melambangkan Minggu-Sabtu */
    printf("\nDay of Year  = %d", Sys_T->tm_yday);

    printf ( "\n\nThe current date/time is: %s", asctime (Sys_T));
    /* asctime berfungsi untuk mengubah struct tm menjadi string c dengan format Www Mmm dd hh:mm:ss yyyy */
}

Untuk mengetahui lebih lanjut tentang library <time.h> silahkan kunjungi http://www.cplusplus.com/reference/clibrary/ctime/