Perbedaan bahasa C dan C++
Perbedaan Bahasa C dan C++
1. Dari Segi Penemu / Pendiri
Bahasa C
Bahasa C dikembangken di Bell Telephone Laboratories pada tahun 1972 ditulis pertama kali oleh Dennis Ritchie, kemudian dikembangkan oleh Dennis Ritchie dan Brian W. Kernighan
Bahasa C++
C++ diciptakan oleh Bjarne Stroustrup, Awalnya prototype C++ muncul sebagai C yang dipercanggih dengan fasilitas kelas. Bahasa tersebut disebut C With Classes (C dengan kelas) dan diciptakan untuk memiliki fitur pemrograman berorientasi objek.
2. Dari Segi Cakupan
Bahasa C
Bila dibandingkan dengan C ++ , C dapat dikatakan sebagai bagian dari C ++ .
Bahasa C++
C++ merupakan Superset dari C, dimana C++ bisa menjalankan sebagian besar (File Header / library) dari C, sedangkan C tidak bisa menjalankan / memanggil code (File Header / library) dari C++, amati source code dibawah ini untuk memahami perbedaannya:
Program dibawah ini merupakan program menghitung luas persegi yang ditulis menggunakan bahasa C (lihat ekstensi file ".c" bukan ".cpp"), karena program ditulis menggunakan bahasa C kita tidak bisa menggunakan perintah "cout", ini disebabkan karena saat kita akan menggunakan perintah "cout" kita harus memanggil File Header / Library "iostream" dan saat kita memanggil Library tersebut program akan error saat dijalankan. Hal tersebut karena Library iostream adalah library yang hanya bisa digunakan pada bahasa C++, sehingga saat kita membuat program menggunakan bahasa C kita tidak bisa menggunakan perintah "cout" (karena untuk menggunakan "cout" harus memanggil file header "iostream", sedangkan iostream tidak bisa dijalankan di bahasa C)
Program dibawah ini merupakan program menghitung luas persegi yang ditulis menggunakan bahasa C (lihat ekstensi file ".c" bukan ".cpp"), karena program ditulis menggunakan bahasa C kita tidak bisa menggunakan perintah "cout", ini disebabkan karena saat kita akan menggunakan perintah "cout" kita harus memanggil File Header / Library "iostream" dan saat kita memanggil Library tersebut program akan error saat dijalankan. Hal tersebut karena Library iostream adalah library yang hanya bisa digunakan pada bahasa C++, sehingga saat kita membuat program menggunakan bahasa C kita tidak bisa menggunakan perintah "cout" (karena untuk menggunakan "cout" harus memanggil file header "iostream", sedangkan iostream tidak bisa dijalankan di bahasa C)
![]() |
Program Menghitung Luas Persegi Pada Bahasa C |
Sedangkan program dibawah ini merupakan program menghitung luas persegi yang ditulis menggunakan bahasa C++ (lihat ekstensi file ".cpp"), karena program ditulis menggunakan bahasa C++ kita bisa menggunakan perintah "printf", ini disebabkan karena C++ bisa menjalankan sebagian besar (File Header / library) dari C, dimana perintah "printf" berada di library "stdio.h" yang merupakan library milik bahasa C.
Sehingga untuk program menghitung luas persegi yang ditulis menggunakan bahasa C++ dibawah ini dapat menggunakan library stdio.h (library milik bahasa C), namun untuk program menghitung luas persegi yang ditulis menggunakan bahasa C diatas tidak dapat menggunakan library iostream (library milih bahasa C++)
Seperti itulah perbedaan Bahasa C dan C++ dilihat dari segi Cakupan.
Sehingga untuk program menghitung luas persegi yang ditulis menggunakan bahasa C++ dibawah ini dapat menggunakan library stdio.h (library milik bahasa C), namun untuk program menghitung luas persegi yang ditulis menggunakan bahasa C diatas tidak dapat menggunakan library iostream (library milih bahasa C++)
![]() |
Program Menghitung Luas Persegi Pada Bahasa C++ |
Seperti itulah perbedaan Bahasa C dan C++ dilihat dari segi Cakupan.
3. Dari Segi Paradigma Pemrograman (Prosedural VS Object Oriented)
Bahasa C
Bahasa C hanya mendukung paradigma pemrograman prosedural untuk pengembangan kode.
Bahasa C++
Bahasa C++ mendukung paradigma pemrograman prosedural dan paradigma pemrograman berorientasi objek, Oleh karena itu C ++ juga disebut bahasa hybrid.
4. Sudut pandang terhadap Data, Prosedur dan Fungsi
Bahasa C
Pada Bahasa C (karena merupakan bahasa pemrograman prosedural), data, prosedur dan fungsi adalah entitas yang terpisah dan bebas.
Pada Bahasa C (karena merupakan bahasa pemrograman prosedural), data, prosedur dan fungsi adalah entitas yang terpisah dan bebas.
Bahasa C++
Pada Bahasa C++ (seandainya digunakan sebagai bahasa pemrograman berorientasi objek), data, prosedur dan fungsi dikemas bersama dalam bentuk sebuah objek.
dalam Bahasa C++ (seandainya digunakan sebagai bahasa pemrograman berorientasi objek) sebuah kelas digunakan untuk menentukan bentuk suatu objek dan menggabungkan representasi data, fungsi dan prosedur untuk memanipulasi data yang menjadi satu paket rapi. Data, fungsi dan prosedur dalam sebuah kelas disebut sebagai anggota kelas.
dalam Bahasa C++ (seandainya digunakan sebagai bahasa pemrograman berorientasi objek) sebuah kelas digunakan untuk menentukan bentuk suatu objek dan menggabungkan representasi data, fungsi dan prosedur untuk memanipulasi data yang menjadi satu paket rapi. Data, fungsi dan prosedur dalam sebuah kelas disebut sebagai anggota kelas.
5. Dukungan Terhadap Polymorphisme, Inheritance dan Enkapsulasi
Bahasa C
Bahasa C tidak mendukung pemrograman berorientasi objek, oleh karena itu Bahasa C tidak memiliki dukungan untuk melakukan Polymorphisme, Inheritance dan Enkapsulasi.
Bahasa C++
Bahasa C++
Bahasa C++ mendukung pemrograman berorientasi objek, oleh karena itu Bahasa C++ memiliki dukungan untuk melakukan Polymorphisme, Inheritance dan Enkapsulasi.
6. Manipulasi data oleh Kode Luar
Bahasa C
Dalam Bahasa C, data entitas atau variabel dapat dimanipulasi oleh kode luar. Hal tersebut karena C tidak mendukung informasi bersembunyi (private / protected).
Dalam Bahasa C, data entitas atau variabel dapat dimanipulasi oleh kode luar. Hal tersebut karena C tidak mendukung informasi bersembunyi (private / protected).
Bahasa C++
Dalam Bahasa C++, Penggunaan Encapsulation untuk menyembunyikan data dapat memastikan bahwa struktur data dan operator hanya digunakan sebagaimana dimaksud.
7. Fungsi dan Operator Overloading
Bahasa C
Bahasa C tidak mendukung fungsi dan operator overloading.
Bahasa C tidak mendukung fungsi dan operator overloading.
Bahasa C++
Bahasa C ++ mendukung fungsi dan operator overloading.
8. Fungsi dalam Struktur
Bahasa C
Bahasa C tidak memungkinkan fungsi yang harus didefinisikan di dalam struktur.
Bahasa C tidak memungkinkan fungsi yang harus didefinisikan di dalam struktur.
Bahasa C++
Dalam Bahasa C ++, fungsi dapat digunakan di dalam struktur.
9. Penulisan namespace
Bahasa C
Bahasa C tidak menggunakan namespace.
Bahasa C tidak menggunakan namespace.
Bahasa C++
Dalam Bahasa C++ kita perlu menggunakan namespace untuk memperpendek code program.
10. stdio.h vs iostream
Bahasa C
Bahasa C menggunakan scanf dan printf untuk fungsi input / output, dimana fungsi tersebut berada di library (file header) stdio.h
Bahasa C menggunakan scanf dan printf untuk fungsi input / output, dimana fungsi tersebut berada di library (file header) stdio.h
Bahasa C++
Bahasa C ++ menggunakan objek untuk input output. Misalnya cin dan cout, dimana fungsi tersebut (cin dan cout) berada di library iostream
11. Dukungan terhadap Variabel Referensi
Bahasa C
Bahasa C tidak mendukung variabel referensi.
Bahasa C tidak mendukung variabel referensi.
Bahasa C++
Bahasa C++ mendukung adanya variabel referensi.
12. Dukungan terhadap Fungsi Virtual
Bahasa C
Bahasa C tidak memiliki dukungan terhadap fungsi virtual. fungsi virtual sendiri ialah fungsi yang mendukung adanya polymorphic function, artinya fungsi tersebut dapat di definisikan ulang pada kelas turunanya. Fungsi virtual biasanya terdapat pada kelas dasar. Meskipun demikian juga dapat di deklarasikan di kelas-kelas turunan yang akan di jadikan sebagai kelas dasar bagi kelas kelas lainya.
Bahasa C tidak memiliki dukungan terhadap fungsi virtual. fungsi virtual sendiri ialah fungsi yang mendukung adanya polymorphic function, artinya fungsi tersebut dapat di definisikan ulang pada kelas turunanya. Fungsi virtual biasanya terdapat pada kelas dasar. Meskipun demikian juga dapat di deklarasikan di kelas-kelas turunan yang akan di jadikan sebagai kelas dasar bagi kelas kelas lainya.
Bahasa C++
Bahasa C++ memiliki dukungan terhadap fungsi virtual.
13. Tipe Data Boolean
Bahasa C
Tipe boolean atau logika adalah tipe data yang merepresentasikan nilai benar (true) dan salah (false). Bahasa C tidak mendefinisikan tipe khusus untuk menampung nilai-nilai tersebut. Oleh karenanya saat menggunakan bahasa C seorang programmer biasanya merepresentasikan nilai true dengan nilai selain 0 (biasanya dengan nilai 1), sedangkan nilai false direpresentasikan dengan nilai 0. Pada umumnya para programmer C mendefinisikan tipe logika melalui pembuatan makro maupun tipe enumerasi.
Bahasa C++
Bahasa pemrograman C++ mendefinisikan tipe boolean untuk menampung nilai true (benar) atau false (salah).
Bahasa C++
Bahasa pemrograman C++ mendefinisikan tipe boolean untuk menampung nilai true (benar) atau false (salah).
14. Tipe Data String
Bahasa C
Bahasa C tidak memiliki tipe data string, sehingga string didefinisikan sebagai array of char (array dari sebuah char), untuk lebih jelasnya perhatikan contoh dibawah ini.
Bahasa C++
Sedangkan pada bahasa pemrograman C++ kita dapat menggunakan tipe data string, untuk lebih jelasnya perhatikan contoh dibawah ini dan bandingkan dengan contoh array of char pada gambar diatas.
Bahasa C tidak memiliki tipe data string, sehingga string didefinisikan sebagai array of char (array dari sebuah char), untuk lebih jelasnya perhatikan contoh dibawah ini.
![]() |
Tipe Data String pada Bahasa C |
Bahasa C++
Sedangkan pada bahasa pemrograman C++ kita dapat menggunakan tipe data string, untuk lebih jelasnya perhatikan contoh dibawah ini dan bandingkan dengan contoh array of char pada gambar diatas.
15. malloc vs new
Bahasa C
Berbicara mengenai pointer dan data maka kita tidak akan lepas dari alokasi dan dealokasi memori. Dalam Bahasa C untuk memesan alamat memori kita dapat menggunakan "malloc", malloc sendiri digunakan untuk mengatur alokasi memory pada heap (heap adalah area memori yang digunakan untuk alokasi secara dinamis).
Bahasa C++
Dalam Bahasa C++, jika kita ingin mengalokasikan memori pada ruang yang masih kosong maka kita dapat menggunakan kata kunci "new". Kata kunci ini akan diikuti oleh tipe data yang akan dialokasikan sehingga compiler akan mengetahui seberapa besar ruang memori yang dibutuhkan untuk proses pengalokasian tersebut.
Berbicara mengenai pointer dan data maka kita tidak akan lepas dari alokasi dan dealokasi memori. Dalam Bahasa C untuk memesan alamat memori kita dapat menggunakan "malloc", malloc sendiri digunakan untuk mengatur alokasi memory pada heap (heap adalah area memori yang digunakan untuk alokasi secara dinamis).
Bahasa C++
Dalam Bahasa C++, jika kita ingin mengalokasikan memori pada ruang yang masih kosong maka kita dapat menggunakan kata kunci "new". Kata kunci ini akan diikuti oleh tipe data yang akan dialokasikan sehingga compiler akan mengetahui seberapa besar ruang memori yang dibutuhkan untuk proses pengalokasian tersebut.
16. Exception handling
Bahasa CException handling adalah teknik menjebak error atau penanganan kesalahan, Pemrograman dalam bahasa c sendiri belum mendukung teknik ini, jadi seandainya kita menulis kode dalam bahasa c dan terdapat error pada kode kita maka kita harus menelusuri alur program dan menguji satu per satu fungsi yang diperkirakan menyebabkan error.
Bahasa C++
Bahasa C++ merupakan bahasa pemrograman pertama yang menggunakan sistem exception handling, sehingga manakala terjadi error program akan menghentikan proses dan mencari penanganan kesalahan yang tepat sesuai kesalahan yang terjadi (menggunakan teknik try, catch dan throw).
17. Standard Template Library
Bahasa C
Bahasa C tidak mendukung penggunaan Standard Template Library (STL)
Bahasa C++
STL (Standard Template Library) merupakan kumpulan fungsi-fungsi dan data-data khusus yang banyak digunakan untuk struktur data. Misalkan vector, queue, tree dan map yang banyak digunakan dalam struktur data. Dengan adanya STL seorang programmer tidak perlu lagi coding dari nol. Namun cukup memanfaatkan template yang sudah dijadikan library tersebut. Tugas programmer tinggal menganalisa dan memilih template mana yang paling sesuai dengan kebutuhan programnya. Di dalam template sudah disediakan container class lengkap dengan fungsi-fungsinya.
Bahasa C tidak mendukung penggunaan Standard Template Library (STL)
Bahasa C++
STL (Standard Template Library) merupakan kumpulan fungsi-fungsi dan data-data khusus yang banyak digunakan untuk struktur data. Misalkan vector, queue, tree dan map yang banyak digunakan dalam struktur data. Dengan adanya STL seorang programmer tidak perlu lagi coding dari nol. Namun cukup memanfaatkan template yang sudah dijadikan library tersebut. Tugas programmer tinggal menganalisa dan memilih template mana yang paling sesuai dengan kebutuhan programnya. Di dalam template sudah disediakan container class lengkap dengan fungsi-fungsinya.
Sumber diatas di http://www.materidosen.com/2016/11/17-perbedaan-bahasa-c-dan-c.html?m=1
Komentar
Posting Komentar