Menu

Hello World C++: Program Pertamamu, Baris demi Baris

Penjelasan program Hello World C++ baris demi baris: #include <iostream>, int main(), std::cout dan <<, std::endl dibandingkan '\n', return 0, plus cara meng-compile-nya dan memperbaiki error pertama yang biasa ditemui pemula.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Programnya

Berikut program Hello World lengkap dalam C++. Tekan Jalankan untuk meng-compile dan mengeksekusinya di browser:

Program ini mencetak satu baris:

Hello, World!

Lima baris kode, dan masing-masing punya tugas tertentu. Bagian-bagian di bawah membahasnya secara berurutan, lalu menjelaskan cara membangun file yang sama di komputermu sendiri dan apa arti error compiler yang biasanya muncul pertama kali.

Baris demi Baris

#include <iostream>

Baris yang diawali # adalah instruksi untuk preprocessor, yang berjalan sebelum compiler yang sebenarnya. #include <iostream> menempelkan deklarasi dari header standar <iostream> (stream input/output). Di header itulah std::cout dan std::endl dideklarasikan. C++ tidak punya perintah cetak bawaan; mencetak adalah bagian dari standard library, dan kamu memakainya lewat baris ini.

int main() {

Setiap program C++ mulai berjalan dari fungsi bernama main. Harus ada tepat satu, dan namanya harus ditulis dengan huruf kecil. int di depannya menyatakan bahwa main mengembalikan bilangan bulat ke sistem operasi saat selesai. Tanda kurung kosong berarti di sini ia tidak menerima argumen, dan kurung kurawal pembuka { memulai isi fungsinya.

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

Baris inilah yang benar-benar mencetak.

  • std::cout adalah stream output standar, biasanya terminal. Awalan std:: menyatakan bahwa cout berada di namespace std, tempat seluruh standard library disimpan.
  • << adalah operator insertion. Ia mengirim nilai di sebelah kanannya ke stream di sebelah kirinya. Kamu bisa merangkainya, dan setiap << menambahkan potongan berikutnya ke output yang sama.
  • "Hello, World!" adalah string literal: teks di dalam tanda kutip ganda.
  • std::endl mengakhiri baris.
  • Titik koma mengakhiri pernyataan. Setiap pernyataan di C++ membutuhkannya.

return 0;

return mengakhiri main dan mengembalikan sebuah nilai ke sistem operasi. Menurut konvensi, 0 berarti program berhasil, dan angka lain menandakan error. Script dan build tool membaca exit code ini. Di dalam main baris ini bersifat opsional: kalau eksekusi sampai di kurung kurawal penutup, C++ berperilaku seolah kamu menulis return 0;.

Kurung Kurawal Penutup

Kurung kurawal penutup mengakhiri isi main, dan bersamaan dengan itu mengakhiri program.

std::endl vs '\n'

Ada dua cara umum untuk mengakhiri baris, dan keduanya muncul di kode nyata:

Output:

Hello, World!
Hello again!
Line one
Line two

Hasil yang terlihat sama saja. Bedanya, std::endl menulis baris baru lalu melakukan flush pada stream, yang mendorong teks apa pun di buffer langsung ke terminal. '\n' hanya menulis baris baru, dan stream melakukan flush sesuai jadwalnya sendiri (paling lambat saat program berakhir). Di loop yang mencetak ribuan baris, flush tambahan dari std::endl memberi perbedaan yang terukur, jadi banyak programmer C++ memakai '\n' sebagai default dan memakai std::endl hanya kalau teksnya harus muncul saat itu juga. Escape \n juga bisa dipakai di dalam string, seperti yang ditunjukkan baris ketiga. Halaman input dan output membahas cout dan cin lebih mendalam.

Versi using namespace std;

Banyak tutorial menulis Hello World seperti ini:

using namespace std; menyuruh compiler mencari di namespace std untuk nama yang tidak bisa ditemukannya di tempat lain, sehingga cout dan endl berfungsi tanpa awalan. Ini tidak masalah untuk program kecil dan latihan. Di kode yang lebih besar dan di file header, cara ini biasanya dihindari, karena ia menarik ratusan nama standar ke dalam scope dan nama-nama itu bisa bentrok dengan nama milikmu sendiri (misalnya fungsi buatanmu bernama count atau distance). Menulis std::cout hanya butuh lima karakter tambahan dan menghilangkan risiko itu.

Compile dan Jalankan Hello World di Komputermu

Editor di browser meng-compile untukmu. Di komputermu sendiri, kamu melakukan dua langkah yang sama secara manual: compile source file menjadi executable, lalu jalankan executable itu. Kamu perlu memasang compiler C++ terlebih dulu; panduan instalasi menjelaskan cara memasangnya di Windows, macOS, dan Linux.

Simpan programnya sebagai hello.cpp, buka terminal di folder yang sama, lalu compile:

g++ hello.cpp -o hello

Kalau tidak ada yang tercetak, berarti berhasil, dan sekarang ada executable bernama hello (hello.exe di Windows) di samping source file-nya. Jalankan:

./hello

Di Windows, jalankan hello.exe atau cukup hello. Di macOS, clang++ hello.cpp -o hello bekerja dengan cara yang sama, dan g++ di sana biasanya adalah Clang dengan nama lain.

Ada dua flag yang layak ditambahkan sejak awal: -std=c++17 (atau -std=c++20) memilih standar bahasanya, dan -Wall -Wextra menyalakan warning yang menangkap kesalahan sungguhan:

g++ -std=c++17 -Wall -Wextra hello.cpp -o hello

Halaman compile C++ menjelaskan fungsi flag-flag ini, arti -o, dan kenapa kamu mendapat file bernama a.out tanpanya.

Error Pertama yang Umum

Teks error di bawah berasal dari GCC (g++). Clang menyusun pesannya dengan kata-kata berbeda, tetapi menunjuk ke baris yang sama.

Titik koma yang hilang.

hello.cpp:5:5: error: expected ';' before 'return'

Compiler baru menyadari ; yang hilang saat sampai di token berikutnya, jadi nomor barisnya biasanya menunjuk satu baris setelah kesalahan. Periksa akhir baris sebelumnya.

#include <iostream> yang hilang.

error: 'cout' is not a member of 'std'

std::cout dideklarasikan di <iostream>. Tambahkan include itu di bagian atas file.

std:: yang hilang.

error: 'cout' was not declared in this scope; did you mean 'std::cout'?

Tulis std::cout dan std::endl, atau tambahkan using namespace std; setelah include.

Main alih-alih main. C++ membedakan huruf besar dan kecil. Program dengan int Main() berhasil dikompilasi, lalu gagal di tahap linking dengan undefined reference to 'main', karena linker tidak bisa menemukan fungsi tempat program seharusnya dimulai.

Compile dengan gcc alih-alih g++. gcc hello.cpp meng-compile kode C++, tetapi tidak menautkan standard library C++, sehingga kamu mendapat deretan panjang error undefined reference to std::.... Pakai g++ (atau clang++) untuk file C++.

Tanda kutip melengkung. Kode yang disalin dari pengolah kata atau halaman web bisa berisi tanda kutip tipografis (“Hello”) alih-alih tanda kutip lurus ("Hello"). GCC melaporkan stray '\342' in program. Ketik ulang tanda kutipnya di editormu.

Header lama dan void main. Beberapa tutorial yang sangat lama memakai #include <iostream.h> atau void main(). Keduanya bukan C++ standar: header-nya adalah <iostream> tanpa .h, dan main harus mengembalikan int. Compiler modern menolak keduanya.

Mencetak dengan std::println di C++23

C++23 menambahkan cara yang lebih singkat untuk mencetak satu baris, yaitu std::println dari header <print>:

#include <print>

int main() {
    std::println("Hello, World!");
}

Fungsi ini menambahkan baris baru untukmu dan mendukung placeholder {} untuk nilai. Dukungannya hadir di GCC 14, Clang 18 dengan libc++, dan versi terbaru Visual Studio, dan ia membutuhkan -std=c++23. Sebagian besar kode dan tutorial yang ada masih memakai std::cout, jadi ada baiknya kamu fasih dengan keduanya.

Pertanyaan yang sering diajukan

Bagaimana cara menulis Hello World di C++?

Mulailah dengan #include <iostream>, lalu definisikan int main() dan taruh std::cout << "Hello, World!" << std::endl; di dalamnya, diikuti return 0;. Simpan file sebagai hello.cpp, compile dengan g++ hello.cpp -o hello, lalu jalankan ./hello.

Kenapa Hello World C++ butuh #include <iostream>?

std::cout dan std::endl dideklarasikan di header <iostream>, bukan bawaan bahasa. Tanpa include itu, compiler tidak mengenal nama-nama tersebut dan berhenti dengan error seperti 'cout' is not a member of 'std'.

Apa perbedaan std::endl dan '\n'?

Keduanya mengakhiri baris. std::endl juga mengosongkan (flush) buffer output, sehingga teks langsung dipaksa keluar. '\n' hanya menulis baris baru dan membiarkan stream melakukan flush saat sudah siap, yang lebih cepat kalau kamu mencetak banyak baris. Untuk satu baris Hello World tidak ada perbedaan yang terlihat.

Apakah aku butuh return 0 di akhir main di C++?

Tidak. main adalah satu-satunya fungsi tempat C++ membolehkanmu tidak menulis return; sampai di kurung kurawal penutup dianggap sama dengan return 0;, yang memberi tahu sistem operasi bahwa program berhasil. Banyak orang tetap menulisnya supaya status keluarnya jelas.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai