19 Perbedaan Bahasa C dengan Bahasa C++
Tuesday, June 19, 2018
C
CPP
Pemrograman
Dalam sejarah materi C++, kita mengetahui bahwa C++ adalah bahasa turunan dari bahasa pendahulunya yaitu bahasa C. Karena bahasa C++ ini diciptakan pasti memiliki pebedaan yang membuat bahasa C++ menjadi bahasa turunan dari bahasa C. Pembahasan kali ini mengenai pebedaan Bahasa C++ dengan Bahasa C yang menjadi pendahulunya.
Bahasa Pemrograman C++ dan C dapat dikelompokkan sebagai bahasa pemrograman tingkat tinggi. Bahasa C dikembangkan pada tahun 1972 oleh Dennis Ritchiie di Bell Telephone Laboratories, Bahasa C adalah bahasa pengembangan dari Bahasa B. Bahasa B sendiri dikembangkan pada tahun 1970 dan diciptakan oleh Ken Thomposon. Bahasa B juga adalah Bahasa turunan dari bahasa BCL. Dan Bahasa C++ merupakan pengembangan dari Bahasa C yang dikembangkan oleh BJane Stroustrup pada tahun 1980 di AT&T.
Baca juga: Sejarah Bahasa dan Penciptaan Bahasa C++
Bahasa C++ adalah bahasa pemrograman yang berbasis (OOP) Object Oriented Programming. Sedangkan Bahasa C merupakan bahasa pemrograman yang berbasis prosedural, dimana penyelesaian masalah dengan cara membagi bagi suatu problem/masalah ke dalam sub - sub masalah yang lebih kecil/ringkas. Bahasa Pemrograman C++ dalam melakukan penyelesaian masalah yang dilakukan pertama kali dengan cara mendefinisikan ke dalam class- class yang merupakan a.-class yang sebelumnya dibuat sebagai abstraksi dari objek Fisik. Objek adalah isi dari Class, Objek ini mempunyai kemampuan dan anggota anggotanya. Setelah kita buat menjadi beberapa class, maslaah akan terpecahkan menggunakan metode class tersebut. Kedua bahasa tersebut dapat kita lihat dari strukturnya.
Tapi jika suatu Bahasa C++ bukan OOP (Object Oriented Programming) maka perbedaan tersebut dapat kita lihat secara langsung karena hanya berebeda dalam penulisan code dan librarynya saja.
Program Menghitung Luas Segitiga Menggunakan Bahasa C
Untuk melihat perbedaannya lihat kode program menggunakan Bahasa C berikut ini..
#include <stdio.h>int main (){float alas, tinggi, luas;;printf("=====================================\n");printf("===Program Luas Segitiga Siku Siku===\n");printf("=====================================\n");printf("\nRUmus Untuk Menghitung Segitiga = (Alas x Tinggi):2");printf("\nMasukkan Panjang Alas : ");scanf("%f",&alas);printf("\nMasukkan Panjang Tinggi : ");scanf("%f",&tinggi);luas = (alas * tinggi)/2;printf("Luas Segitiga : = %f", luas);return 0;}
Program Menghitung Luas Segitiga Menggunakan Bahasa C
#include <iostream>using namespace std;int main (){float alas, tinggi, luas;cout << "=====================================\n";cout << "===Program Luas Segitiga Siku Siku===\n";cout << "=====================================\n";cout << "\nRUmus Untuk Menghitung Segitiga = (Alas x Tinggi):2";cout << "\nMasukkan Panjang Alas : ";cin >> alas;cout << "\nMasukkan Panjang Tinggi : ";cin >> tinggi;luas = (alas * tinggi)/2;cout << "Luas Segitiga : " << luas <<endl;return 0;}
Dapat dilihat dari kode program kedua bahasa tersebut menunjukan kodingan yang hampir sama. Jika kita mencompile keduanya menggunakan Dev C++ akan terlihat hasil yang sama karena kode program tersebut sama. Karena Bahasa Pemrograman C++ merupakan evolusi dari Bahasa C maka kita dapat melakukan compile dengan Dev C++ untuk kedua bahasa tersebut.
Baca juga: Mengenal Apa itu Kompilator atau Compiler
19 Perbedaan Bahasa Pemrograman C dan C++
1. Dari Segi Cakupan
Bahasa C
Bahasa C merupakan bahasa bagian dari C++, tapi tidak bisa dikatakan sebaliknya karena perbedaan tersebut.
Bahasa C++
Sebagian besar Bahasa C dapat dijalankan di Bahasa C++ tetapi tidak untuk sebalinya. Untuk lebih jelasnya mari lihat dibawah ini.
Untuk penjelasannya saya mengambil contoh mengenai Program Menghitung Luas Segitiga. Dalam bahasa C kita tidak bisa menggunakan perintah "cout", karena perintah cout kita perlu memanggil Library / File Header "iostream". Jika kita memanggil iostream dalam program tersebut maka yang terjadi program tersebut akan eror. Karena Library iostream hanya bisa digunakan di C++.
Sedangkan jika kita menggunakan Bahasa Pemrograman C++ kita dapat menggunakan perintah yang ada di dalam bahasa C. Kita tidak perlu menggunakan Library stdio.h kita menggunakan library iostream karena Bahasa C++ merupakan evolusi dari Bahasa C. Sebagian besar kode program C dapat dijalankan pada compiler C++.
2. Dari Segi Paradigma Pemrograman (Object Oriented VS Prosedural)
Bahasa C
Bahasa C hanya mendukung paradigma pemrograman prosedural sebagai pengembangan kode, dan tidak bisa sebagai OOP.
Bahasa C++
Bahasa C++ mendukung paradigma Pemrograman Prosedural dan tentunya prosedural berbasis Objek. Oleh karena Bahasa C++ juga dikenal dengan bahasa hybrid.
3. Dari Segi Penemu/ Pencipta/ Pendiri/ Pengembang.
Bahasa C
Bahasa C dikembangkan pada tahun 1972 di Bell Telephone Laboratories oleh Dennis Ritchie, dan dikembangkan kembali lagi oleh dua orang, Brian W. Kernighan dan Dennis Ritchie.
Bahasa C++
Bahasa C++ merupakan bahasa yang diciptakan oleh BJarne Stroustrup Bahasa C++ juga dikenal dengan C With Classes (C dengan kelas) dan diciptakan bersifat OOP (Object Oriented Programming).
4. Manipulasi Data Oleh Kode Luar
Bahasa C
Bahasa C, data varibel bisa dimanipulasi oleh kode luar. Karena Bahasa C tidak didukung dengan informasi yang sembunyi atau biasa dikenal dengan privat /terjaga/protected.
Bahasa C++
Bahasa C++ meruakan bahasa yang dapat menyembunyiakan data dan dapat memastikan bahwa struktur data dan operaor hanya digunakan orang tertentu. Atau biasa dikenal dengan Encapsulation.
5. Melihat Dari Sudut Pandah Terhada Data, Fungsi, dan Prosedur
Bahasa C
Bahasa C data, prosedur,fungsi terpisah bebas karena merupakan bahasa pemrograman prosedural.
Bahasa C++
Bahasa C++ data, prosedur, fungsi dapat dikemas bersama dalam satu bentuk objek. Karena merupakan Bahasa Pemrograman yang bersifat Objek.
6. Dukungan Terhadap Inheritance, Enkapsulasi, Polymorphisme
Bahasa C
Tidak memiliki dukungan terhadap Inheritance, Enkapsulasi, Polymorphisme. Karena Pemrograman berdifat prosedural
Bahasa C++
Memiliki dukungan terhadap Inheritance, Enkapsulasi, Polymorphisme. Karena pemrograman bersifat objek programming.
7. Fungsi dan Opertor Overloading
Bahasa C
Bahasa C tidak dapat digunakan untuk fungsi dan operator Overloading
Bahasa C++
Bahas C++ dapat digunakan untuk fungsi dan operator overloading karena telah didukung.
8. Penulisan using namespace std;
Bahasa C
Bahasa C, tidak menggunakan using namespace std;
Bahasa C++
Untuk memperpendek sebuah program kita perlu menggunakan using namespace std; jika tidak menggunakan kata tersebut kita harus menggunakan std:: setiap kita membuat sebuah program.
9. Fungsi dan Struktur
Bahasa C
Dalam bahasa C kita perlu mendefinisikan ke dalam struktur.
Bahasa C++
Dalam Bhasa C++ kita dapat menggunakan di dalam struktur.
10. Dukungan terhadap Fungsi Virtual
Bahasa C
Bahasa tidak mempunyai dukungan terhadap fungsi virtual. Jika kalian belum tahu Fungsi Virtual merpakan fungsi yang mendukungnya adanya polymorphic function, yang aritnya fungsi dapat diguankan untuk mendefinisikan ulang kelas turunanna.
Bahasa C++
Bahasa C++ telah didukung Fungsi Virtual. Penjelasan diatas.
11. Tipe Data Boolean
Bahasa C
Bahasa C mendefiniskan boolean dengan angka yakni 1 untuk mengatakan benar atau true sedangkan angka 0 untuk mengatakan salah atau false.
Bahasa C++
Bahasa C++ mendifinisikan tipe boolean dengan menampung true untuk nilai benar dan false untuk nilai salah.
12. Library isotream di C++ dengan C
Bahasa C
Bahasa C tidak dapat menggunakan library iostream. maka dari itu library untuk Bahasa C stdio.h
yang dapat menuliskan perintah printf dan scanf
Bahasa C++
Bahasa C++ dapat menggunakan library iostream, dan isotream sendiri telah mengandung stdio.h maka dari itu jika kita menulis printf dan scanf tidak perlu menggunakan stdio.h
13. Dukungan Terdapa Variabel Referensi
Bahasa C
Tidak didukung variabel referensi
Bahasa C++
Didukung dengan adanya Variabel Referensi
14. New VS Malloc
Bahasa C
Dalam pembahasan mengenai Pointer kita pasti tidak terlepas dari alokasi dan dealokasi memori. Malloc yang mempunyai fungsi sebagai pengatur alokasi memory pada heap (heap merupakan area memori yang kita gunakan untuk mengalokasikan secara dinamis). Bahasa C menggunakan ini, yakni menggunakan malloc.
Bahasa C++
C++ menggunakan alokasi memory pada ruang kosong menggunakan kata kunci "new". Kata kunci ini biasanya diikuti dengan tipe data.
15. Exception Handling
Bahasa C
Teknik menjecbak error atau penanganan terhadap kesalahan biasa disebuut dengan Exception Handling, Bahasa C tidak mendukung Exception Handling. Maka dari itu jika kita menulis menggunakan Bahasa C dan jika penulisan terjadi eror maka kita perlu menelusuri alur program tersebut dan menguji satu persatu penyebab perkiraan errornya
Bahasa C++
Bahasa C++ telah mendukung Exception handling ini, maka jika terdapat error program program akan berhenti proses dan mencari kesalahnyya dan menangani kesalah dengan tepat sesuai keaslahan yang terjadi. biasa juga disebut dengan tehnik try, catch and throw)
16. Standar Template Library
Standar Template library adalah kumpulan fungsi dan data khusus yang digunakan untuk struktur data. Misalkan saja Queue, tree, map, dan vector yang digunakan dalam struktur data. Dengan STL programmer dimudahkan karena tidak perlu menggunakan coding dari awal atau nol. Maka dari tugas utama programmer hanya perlu menganalisis dan memilih mana yang paling sesuai untuk programnya.
Bahasa C
Tidak Didukung
Bahasa C++
Didukung Standar Template Library (STL)
17. Tipe data String
Bahasa C
Tidak adanya STRING maka dari itu kita perlu mendefinisikan string dengan array of char yang notabene kurang ringkas.
Sources Code :
#include <stdio.h>int main (){float alas, tinggi, luas;//tidak bisa digunakan//string name="My Name Wegig"//bisa digunakanchar nama[]="My Name Wegig";printf(nama);printf("\n=====================================\n");printf("===Program Luas Segitiga Siku Siku===\n");printf("=====================================\n");printf("\nRUmus Untuk Menghitung Segitiga = (Alas x Tinggi):2");printf("\nMasukkan Panjang Alas : ");scanf("%f",&alas);printf("\nMasukkan Panjang Tinggi : ");scanf("%f",&tinggi);luas = (alas * tinggi)/2;printf("Luas Segitiga : = %f", luas);return 0;}
Bahasa C++
Kita bisa menggunakan string maka dari itu kita tidak perlu menggunakan array of char.
#include <iostream>using namespace std;int main (){float alas, tinggi, luas;string name="My Love Name Wegig";cout << name<<endl;cout << "=====================================\n";cout << "===Program Luas Segitiga Siku Siku===\n";cout << "=====================================\n";cout << "\nRUmus Untuk Menghitung Segitiga = (Alas x Tinggi):2";cout << "\nMasukkan Panjang Alas : ";cin >> alas;cout << "\nMasukkan Panjang Tinggi : ";cin >> tinggi;luas = (alas * tinggi)/2;cout << "Luas Segitiga : " << luas <<endl;return 0;}
18. Metode Pendekatan
Bahasa C
Bahasa C menggunakan Pendekatan Top-Down
Baasa C++
Bahasa C++ menggunakan Pedekatan Down-Top
19. Keamanan
Bahasa C
Bahasa C kurang aman
Bahasa C++
Bahasa C++ bersifat hidden maka cenderung aman.
Itulah 19 Perbedaan Bahasa C dengan Bahasa C++. Karena Bahasa C++ adalah bahasa turunan dari bahasa C, maka lebih banyak library yang dimiliki bahasa C++ daripada library yang dimiliki bahasa C.
Berkomentarlah secara bijak.
EmoticonEmoticon