Compiler sudah terpasang, tetapi menulis kode C++ dengan editor teks polos membuat kita kehilangan banyak bantuan: autocomplete, navigasi simbol, go to definition, dan debugging visual. Editor modern menghemat banyak waktu ketika proyek DSA mulai berisi banyak file. Pada Chapter ini kita akan menyiapkan Visual Studio Code sebagai editor utama, lengkap dengan ekstensi C++ dan tiga berkas konfigurasi inti: c_cpp_properties.json, tasks.json, dan launch.json. Konfigurasi ini akan dipakai sepanjang Course.
Pilihan Editor Populer #
Beberapa editor yang umum dipakai untuk C++:
| Editor | Kelebihan | Kekurangan |
|---|---|---|
| VS Code | Ringan, ekstensi kaya, gratis | Perlu konfigurasi awal |
| CLion | IntelliSense canggih, debugger terintegrasi | Berbayar, berat |
| Neovim | Ringan, sangat customizable | Curam untuk pemula |
| Visual Studio | Debugger terbaik di Windows | Berat, hanya Windows |
Course ini akan memakai VS Code sebagai editor referensi karena gratis, lintas platform, dan cukup ringan untuk dijalankan pada mesin dengan sumber daya terbatas.
Memasang Visual Studio Code #
Unduh installer dari https://code.visualstudio.com/ sesuai sistem operasi. Setelah pemasangan, jalankan VS Code dan ikuti langkah berikut:
- Buka Command Palette dengan
Ctrl+Shift+P(Windows/Linux) atauCmd+Shift+P(macOS). - Ketik
shell commandlalu pilihShell Command: Install 'code' command in PATH(opsional, namun berguna untuk membuka VS Code dari terminal). - Buka folder proyek dengan
code .dari terminal di dalam folder tersebut.
Ekstensi Wajib untuk C++ #
Buka tab Extensions di VS Code (Ctrl+Shift+X), lalu pasang dua ekstensi berikut:
- C/C++ oleh Microsoft (
ms-vscode.cpptools) — menyediakan IntelliSense, debugging, dan code browsing. - C/C++ Extension Pack oleh Microsoft — bundel yang mencakup CMake Tools (berguna pada Chapter Penggunaan CMake).
Ekstensi tambahan yang membantu untuk DSA:
- Code Runner (
formulahendry.code-runner) — untuk eksekusi cepat tanpa konfigurasi. - Better C++ Syntax (
jeff-hykin.better-cpp-syntax) — syntax highlighting yang lebih akurat. - CMake (
twxs.cmake) — syntax highlighting untukCMakeLists.txt. - Doxygen Documentation Generator (
cschlosser.doxdocgen) — generate komentar dokumentasi otomatis.
Struktur Folder Proyek #
Sebelum konfigurasi, siapkan struktur folder proyek yang konsisten. Berikut contoh layout yang dipakai Course ini:
dsa-proyek/
├── .vscode/
│ ├── c_cpp_properties.json
│ ├── tasks.json
│ └── launch.json
├── src/
│ └── main.cpp
└── CMakeLists.txt (dibahas pada Chapter terakhir Section 2)Struktur ini memisahkan kode sumber (src/), konfigurasi editor (.vscode/), dan konfigurasi build (CMakeLists.txt).
Konfigurasi c_cpp_properties.json #
Berkas c_cpp_properties.json mengatur IntelliSense: path include, definisi preprocessor, dan standar C++ yang dipakai. Letakkan berkas ini di .vscode/c_cpp_properties.json.
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"compilerPath": "/usr/bin/g++",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}Penjelasan field penting:
includePath: direktori yang dipindai untuk header.${workspaceFolder}/**menyertakan seluruh subfolder proyek.compilerPath: lokasi compiler yang dipakai IntelliSense untuk meniru makro dan path bawaan.cppStandard: standar C++ yang dipakai IntelliSense. Cocokkan dengan flag kompilasi (-std=c++17).intelliSenseMode: target arsitektur dan compiler. Nilailinux-gcc-x64cocok untuk GCC di Linux 64-bit.
Konfigurasi tasks.json untuk Build #
Berkas tasks.json mendefinisikan perintah build yang dapat dipanggil dari VS Code dengan Ctrl+Shift+B. Letakkan di .vscode/tasks.json.
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-std=c++17",
"-O2",
"-Wall",
"-Wextra",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: /usr/bin/g++"
}
]
}Bedah Konfigurasi #
label: nama task yang muncul di menu build. Bebas, tetapi harus unik.command: path absolut compiler. Pakai/usr/bin/g++di Linux GCC, atau/usr/bin/clang++di macOS.args: daftar flag compiler. Variabel${file}akan diganti dengan path file aktif;${fileDirname}/${fileBasenameNoExtension}menghasilkan path binary tanpa ekstensi.-g: menyertakan informasi debug yang dipakai oleh GDB/LLDB saat debugging.problemMatcher:$gccmemetakan pesan error compiler ke lokasi kode sumber sehingga kita bisa klik error untuk loncat ke baris yang bermasalah.group.isDefault: true: task ini menjadi default saat kita menekanCtrl+Shift+B.
Konfigurasi launch.json untuk Debug #
Berkas launch.json mengatur debugger. Pastikan gdb (Linux) atau lldb (macOS) terpasang. Letakkan di .vscode/launch.json.
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug (g++)",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Pretty print untuk STL",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"miDebuggerPath": "/usr/bin/gdb",
"preLaunchTask": "C/C++: g++ build active file"
}
]
}Bedah Konfigurasi #
program: path binary hasil kompilasi. Harus cocok dengan outputtasks.json.MIMode:gdbuntuk Linux/MinGW,lldbuntuk macOS.setupCommandsdengan-enable-pretty-printing: membuat tampilan variabelstd::vector,std::string, dan container STL lain menjadi terbaca di panel Variables.preLaunchTask: nama task yang dipanggil otomatis sebelum debugging dimulai. Harus cocok denganlabelditasks.json. Dengan ini, setiap kali kita tekanF5, VS Code mengompilasi ulang kode lalu menjalankan debugger.
Uji Coba Konfigurasi #
Buat file src/main.cpp dengan kode berikut untuk memverifikasi seluruh konfigurasi bekerja:
#include <iostream>
#include <vector>
int main() {
std::vector<int> data = {5, 10, 15, 20};
int total = 0;
for (int v : data) {
total += v;
}
std::cout << "Total: " << total << "\n";
return 0;
}Lakukan langkah berikut:
- Buka
src/main.cppdi VS Code. - Tekan
Ctrl+Shift+Buntuk build. Output task akan muncul di panel Terminal. - Tekan
F5untuk debugging. Program berhenti di breakpoint jika kita pasang (klik kiri di gutter baris kode). - Periksa panel Variables:
dataseharusnya tampil sebagai[5, 10, 15, 20](bukan alamat mentah) berkat pretty printing.
Output saat dijalankan tanpa debugging:
Total: 50Alternatif Editor: CLion dan Neovim #
Bagi yang lebih nyaman dengan IDE penuh atau editor terminal, dua alternatif berikut layak dipertimbangkan.
CLion #
CLion adalah IDE C++ dari JetBrains. Tidak perlu konfigurasi c_cpp_properties.json manual; CLion otomatis mendeteksi compiler dan CMake. Kelebihan: debugger terintegrasi sangat baik, refactoring canggih, dan integrasi unit testing bawaan. Kekurangan: berbayar (ada lisensi pelajar gratis) dan membutuhkan RAM besar (>4 GB disarankan).
Neovim dengan LSP #
Neovim dipadukan dengan clangd (Language Server Protocol) memberikan pengalaman mendekati VS Code dalam ukuran yang jauh lebih ringkas. Cocok untuk pengguna terminal yang sudah familiar dengan Vim. Konfigurasi minimal: pasang plugin nvim-lspconfig, arahkan ke clangd, dan gunakan :make untuk build.
Ringkasan #
Pada Chapter ini kita telah menyiapkan VS Code sebagai editor utama Course:
- Editor pilihan: VS Code lintas platform dan gratis.
- Ekstensi wajib: C/C++ oleh Microsoft.
- Tiga berkas konfigurasi:
c_cpp_properties.json(IntelliSense),tasks.json(build),launch.json(debug). - Pretty printing: wajib diaktifkan untuk membaca isi STL container saat debugging.
- Alternatif: CLion untuk IDE penuh, Neovim untuk terminal.
Pada Chapter berikutnya kita akan menulis program C++ pertama yang lebih kaya dari sekadar “Hello World”, sekaligus memverifikasi toolchain bekerja end-to-end.