Menu

Apa itu C++? Bahasanya, kecepatannya, dan di mana dipakai

Apa sebenarnya C++ itu, kenapa ia dikompilasi langsung menjadi kode mesin native, dan jenis software berperforma tinggi apa saja yang dibangun dengannya.

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

C++ dalam satu kalimat

C++ adalah bahasa pemrograman yang statically typed dan dikompilasi, yang mengubah kode sumbermu langsung menjadi kode mesin native. Satu keputusan desain itu (tanpa interpreter, tanpa virtual machine di antara programmu dan CPU) adalah alasan C++ menjadi salah satu bahasa tercepat yang bisa kamu tulis, dan alasan ia menjalankan software yang sama sekali tidak boleh lambat.

Berikut program pertama yang wajib ada. Jalankan langsung di sini:

Strukturnya lebih banyak daripada bahasa scripting, dan itu memang disengaja: C++ memberimu kendali yang presisi dengan imbalan kamu harus menulis semuanya secara eksplisit. Kita akan membongkar setiap bagiannya di beberapa halaman berikutnya.

Kenapa C++ cepat

Sebagian besar bahasa scripting menjalankan kodemu lewat interpreter atau virtual machine yang membaca dan mengeksekusi instruksi saat runtime. C++ melewati semua itu:

  1. Compiler (seperti g++ atau clang++) membaca kode sumber .cpp milikmu dan menerjemahkannya menjadi instruksi mesin untuk satu prosesor dan sistem operasi tertentu.
  2. Hasilnya adalah executable yang berdiri sendiri dan dijalankan langsung oleh CPU: tidak ada apa pun di antara kodemu dan hardware.

Karena tidak ada penerjemahan yang terjadi saat program berjalan, program C++ langsung mulai dan berjalan dengan kecepatan penuh prosesor. Kamu juga mendapat kendali yang rinci atas memori dan hardware, yang sengaja disembunyikan oleh bahasa tingkat tinggi.

Gantinya: kode mesin itu dibuat untuk satu platform. Executable yang dikompilasi di Windows tidak akan berjalan di Mac, jadi kamu mengompilasi ulang kode sumbernya untuk setiap target. (Bandingkan dengan Java, yang dikompilasi menjadi bytecode portabel yang bisa berjalan di JVM mana pun.)

Statically typed dan multi-paradigma

Ada dua sifat yang membentuk tampilan dan rasa kode C++.

Statically typed berarti setiap variabel punya tipe yang diketahui saat kompilasi, dan compiler mengecek tipe-tipemu sebelum program dijalankan:

count adalah int sepanjang hidupnya; mencoba menyimpan "hello" ke dalamnya tidak akan bisa dikompilasi. Ini menangkap seluruh jenis kesalahan sejak awal, dengan imbalan kamu harus menulis lebih banyak di depan.

Multi-paradigma berarti C++ tidak memaksakan satu gaya. Kamu bisa menulis kode prosedural biasa, menyusun logika ke dalam class (berorientasi objek), atau memakai template untuk kode generik yang bisa dipakai ulang. Sebagian besar program sungguhan mencampur ketiganya. Fleksibilitas ini sangat kuat, tapi juga berarti C++ punya banyak hal untuk dipelajari, jadi kita akan membahasnya satu konsep demi satu konsep.

C++ dipakai untuk apa

C++ muncul di mana pun performa dan kendali tidak bisa ditawar:

  • Game engine: Unreal Engine, inti Unity, dan sebagian besar kode game AAA.
  • Software sistem: sistem operasi, driver perangkat, dan browser seperti Chrome dan Firefox.
  • Layanan berperforma tinggi: database, sistem trading, dan infrastruktur pencarian yang menghitung setiap mikrodetik.
  • Embedded dan hardware: firmware untuk mobil, drone, perangkat medis, dan IoT.

Kalau sebuah software harus cepat, muat di memori yang terbatas, atau berkomunikasi langsung dengan hardware, besar kemungkinan software itu ditulis dengan C++.

C++ bukan C (tapi berawal dari sana)

C++ tumbuh dari C di tahun 1980-an sebagai "C dengan class", dan sebagian besar masih merupakan superset: banyak kode C yang sah bisa dikompilasi sebagai C++. Tapi bahasanya sudah berkembang jauh sejak saat itu.

C++ menambahkan pemrograman berorientasi objek, template untuk kode generik, reference, exception, dan Standard Library yang kaya, penuh alat siap pakai. Potongan kode ini memakai salah satunya, vector, yaitu array yang ukurannya bisa berubah dan mengelola memorinya sendiri, sesuatu yang harus kamu bangun sendiri di C:

C++ modern (standar C++11, C++17, dan C++20) sangat bergantung pada alat-alat seperti ini untuk membuat bahasanya lebih aman dan ekspresif daripada akarnya di C. Kesalahan pemula yang umum adalah menulis C++ bergaya C, dengan memori manual dan array biasa di mana-mana, padahal Standard Library sudah menyelesaikan masalahnya untukmu. Di seluruh dokumentasi ini kita akan mengutamakan gaya modern.

Pertanyaan yang sering diajukan

C++ dipakai untuk apa?

C++ menjalankan software yang mengutamakan kecepatan dan kendali: game engine (Unreal, inti Unity), sistem operasi, browser (Chrome, Firefox), database, sistem trading, dan perangkat embedded. Kekuatannya adalah berjalan dekat dengan hardware sambil tetap menawarkan fitur tingkat tinggi seperti class, template, dan Standard Library.

Apakah C++ dikompilasi atau diinterpretasi?

C++ dikompilasi. Compiler seperti g++ atau clang++ menerjemahkan kode sumbermu langsung menjadi kode mesin native untuk CPU dan sistem operasi tertentu, lalu menghasilkan file executable yang berdiri sendiri. Tidak ada interpreter atau virtual machine di antara programmu dan prosesor, dan itulah alasan C++ begitu cepat.

Apa perbedaan C dan C++?

C++ berawal sebagai "C dengan class" dan sebagian besar merupakan superset dari C, jadi sebagian besar kode C bisa dikompilasi sebagai C++. Tambahan besarnya adalah pemrograman berorientasi objek (class dan inheritance), template, Standard Library (container seperti vector dan map), reference, exception, serta banyak fitur keamanan dan kemudahan yang tidak dimiliki C.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai