Langsung ke konten utama

Perbandingan Bahasa Pemrograman C, C++, dan C#

Assalamualaikum Wr Wr

Berikut ini saya paparkan mengenai perbandingan bahasa pemrograman C, C++, dan C#.

Bahasa C
Bahasa Pemrograman C adalah sebuah bahasa pemrograman komputer yang bisa digunakan untuk membuat berbagai aplikasi (general-purpose programming language), mulai dari sistem operasi (seperti Windows atau Linux), antivirus, software pengolah gambar (image processing), hingga compiler untuk bahasa pemrograman, dimana C banyak digunakan untuk membuat bahasa pemrograman lain yang salah satunya adalah PHP.
Bahasa pemrograman C dibuat pertama kali oleh Dennis M. Ritchie pada tahun 1972 di Bell Labs, sebuah pusat penelitian yang berlokasi di Murray Hill, New Jersey, Amerika Serikat. Ritchie membuat bahasa pemrograman C untuk mengembangkan sistem operasi UNIX yang sebelumnya mengguankan bahasa assembly. Akan tetapi bahasa assembly sendiri sangat rumit dan susah untuk dikembangkan.
Dengan tujuan yang sama dengan Dennis, peneliti di Bell Labs membuat bahasa pemrograman B. Namun bahasa pemrograman B juga memiliki beberapa kekurangan, yang akhirnya di lengkapi oleh bahasa pemrograman C.
Dengan bahasa C inilah sistem operasi UNIX ditulis ulang. Pada gilirannya, UNIX menjadi dasar dari banyak sistem operasi modern saat ini, termasuk Linux, Mac OS (iOS), hingga sistem operasi Android.
Fungsi dan fitur
C sebagai bahasa pemrograman prosedural

Konsep pemrograman prosedural  adalah sebuah metode pemrograman yang setiap baris perintah diproses secara berurutan dari baris paling atas hingga baris paling bawah. Selain itu bisa terdapat fungsi tambahan (function) yang digunakan untuk menyelesaikan berbagai tugas. Bahasa pemrograman C termasuk ke dalam kelompok ini.

Bahasa C sangat cepat dan efisien

Aplikasi yang dibuat menggunakan bahasa C bisa dieksekusi dengan sangat cepat serta berukuran kecil. Ini karena C bisa langsung berkomunikasi dengan hardware.

C adalah portable language

Maksudnya, bahasa pemrograman C bisa di-compile ulang supaya berjalan di berbagai sistem operasi tanpa perlu mengubah kode-kode yang ada. Aplikasi yang dibuat di Windows dengan bahasa C, bisa dipindahkan ke Linux dengan sedikit atau tanpa modifikasi.

Beberapa kelebihan bahasa C.

Portabilitas yang tinggi. Source code  (sumber kode) yang ditulis dengan bahasa C dapat dengan mudah dipindahkan dan dijalankan di platform  lain tanpa atau dengan sedikit perubahan.
Mudah dipelajari. Karena bahasa C merupakan bahasa prosedural yang terstruktur dan hanya menyediakan 32 keywords/reserve words (kata kunci/kata-kata yang dicadangkan) dalam bahasa inggris sehari-hari, seperti if, else, switch, continue sehingga mudah untuk dimengerti.
Dukungan pustaka-pustaka (libraries) pada bahasa C banyak.

Beberapa kekurangan bahasa C.

Tidak menyediakan runtime error checking. Contoh: jika sebuah nilai bertipe data float (bilangan pecahan) dilewatkan pada parameter sebuah fungsi bertipe int  (bilangan bulat), maka parameter fungsi tersebut akan menerima nilai tersebut dan nilai akan berubah. Program tidak akan memberikan pesan kesalahan.
Tidak menganut konsep Pemrograman Berorientasi Objek/Object Oriented Programming (OOP).
Konsep pointer dan memory management  sangat sulit dimengerti pemula.

Bahasa C++

Bahasa C++ adalah bahasa pemrograman komputer yang merupakan pengembangan dari bahasa C yang disempurnakan oleh Bjarne Stroustrup pada tahun 1980 menjadi C dengan kelas (C With Classes) dan berganti nama pada tahun 1983 menjadi C++. awalnya C++ disebut "a better C" kemudian berganti nama pada tahun 1983 menjadi C++. Symbol ++ merupakan operator C untuk operasi penaikan, muncul untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.
Bahasa C++ diciptakan untuk mendukung Object Oriented Pragramming / OOP yang tidak dimiliki C.  Sebenarnya reputasi C tidak diragukan lagi dalam menghasilkan program .EXE berukuran kecil, eksekusi yang cepat, fleksibilitas pemrograman dan antarmuka yang sederhana. namun 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++, Selain itu dengan adanya standarisasi ANSI pada C++, membuat bahasa C++ akan memiliki "bahasa" yang sama pada setiap compiler.

Fungsi dan fitur
1. Portabel
Sebagai salah satu bahasa yang paling banyak digunakan di dunia dan sebagai bahasa open, C++ mempunyai berbagai compiler yang berjalan di berbagai platform yang mendukungnya. Kode yang secara eksklusif menggunakan library standar C++ dapat berjalan pada banyak platform dengan sedikit atau tanpa adanya perubahan.
2. Memiliki dukungan perpustakaan yang lengkap
Sebuah pencarian untuk "perpustakaan" di website proyek-manajemen yang terkenal seperti SourceForge akan menghasilkan lebih dari 3000 hasil untuk perpustakaan (library) C++. Sehingga dapat dikatakan C++ Memiliki dukungan perpustakaan (library) yang lengkap
3. Bahasa ISO-standar terbuka
Untuk sementara waktu, C++ tidak memiliki standar resmi dan dikelola oleh standar de-facto, namun sejak tahun 1998, C++ distandarisasi oleh sebuah komite dari ISO. Dimana saat itu diterbitkan standar internasional pertama untuk C++ ISO / IEC 14882:1998, Yang secara informal dikenal sebagai C++98.
4. Mendukung Manifest dan disimpulkan dalam pengetikan
Sampai dengan C++ standar terbaru, C++ mendukung manifest dan disimpulkan dalam pengetikan, sehingga memungkinkan fleksibilitas mempersingkat dalam pengetikan code yang diinginkan.
5. Lebih kompatibel dengan C
Bahasa C++, menjadi bahasa yang secara langsung membangun "off C", kompatibel dengan hampir semua kode C. C++ dapat menggunakan library C dengan sedikit atau tidak ada modifikasi dari kode librarynya.
6. Menawarkan banyak pilihan paradigma
Bahasa C++ menawarkan dukungan luar biasa untuk prosedural, generik, dan paradigma pemrograman berorientasi objek, Bagi kebanyakan programmer dengan menggunakan paradigma berorientasi objek maka pembuatan aplikasi lebih mudah dimaintain.
7. Bahasa yang dikompilasi
Bahasa C++ mengkompilasi langsung ke kode asli mesin, yang memungkinkan untuk menjadi salah satu bahasa tercepat di dunia jika dioptimalkan.
8. Mendukung pemeriksaan jenis statis maupun dinamis.
Bahasa C++ memungkinkan konversi tipe diperiksa baik pada saat kompilasi atau run-time, juga menawarkan tingkat fleksibilitas yang lain. Meski begitu, kebanyakan pemeriksaan tipe pada C++ adalah pemeriksaan statis.

Kelebihan
1.Bahasa C++ tersedia hampir di semua jenis computer
2.Proses eksekusinya lebih cepat
3.Menyediakan sedikit kata-kata kunci yaitu hanya terdapat 48 kata kunci
4.Sifatnya yang portable dan fleksibel untuk semua jenis komputer
5.Bahasa C++ pun dapat membuat aplikasi graphic processor yang berkualitas tinggi.
6.Bahasa C++ termasuk bahasa tingkat menengah(middle level language)
7.Kode programnya bersifat reuseable,sehingga bisa digunakan kembali pada project lain
   dengan hanya menggunakan library dan file header
8.Terdapatnya dukungan pustaka fungsi dan kelas yang banyak,dengan hal itulah bahasa
   C++ memungkinkan pembuatan aplikasi makro
9.C++ merupakan bahasa yang terstruktur,sehingga akan mendukung oop
10.Bahasa standarnya ANSI sehingga bisa di pakai di berbagai platform

Kelemahan
1.Untuk pemula biasanya akan kesuliatan dalam menggunakan pointer
2.Implementasi C++ dalam teknologi IT untuk sekarang sangat sedikit sekali
3.membuat sesuatu dengan c++ akan terasa sulit,sehingga peminatnya dalam memperdalam pemrograman akhirnya terhenti.
4.Bahasanya bersifat case sensitive,sehingga dalam penggunaan huruf bersar dan kecil tidak dianggap sama.
5.Terdapatnya banyak operator serta fleksibilitas sehingga dalam penulisan program dapat membingungkan pemakai.


Bahasa C#

Bahasa pemrograman C# adalah bahasa yang dikembangkan dari bahasa pendahulunya, yaitu: C dan C++. C# banyak terinspirasi dari kedua bahasa tersebut. Sehingga, sintaknya hampir mirip. C# Dikembangkan oleh Microsoft serta telah disetujui oleh Asosiasi Eropa Computer Manufacturers (ECMA) dan Organisasi Standar Internasional (ISO). C# dikembangkan oleh Anders Hejlsberg dan timnya selama proses pengembangan .Net Framework.

Fungsi dan fitur

Boolean Conditions
Automatic Garbage Collection
Standard Library
Assembly Versioning
Properties dan Events
Delegates dan Events Management
Easy-to-use Generics
Indexers
Conditional Compilation
Simple Multithreading
LINQ dan Lambda Expressions
Integrasi dengan Windows

Kelebihan:
Flexible: C# program dapat di eksekusi di mesin computer sendiri atau di transmiskan melalu web dan di eksekusi di computer lainnya

Powerful: C# memiliki sekumpulan perintah yang sama dengan C++ yang kaya akan fitur yang lengkap tetapi dengan gaya bahasa yang lebih diperhalus sehingga memudahkan penggunanya

Easier to use: C# memodifikasi perintah yang sepenuhnya sama dengan C++ dan memberitahu dimana letak kesalahan kita bila ada kesalahan dalam aplikasi , hal ini dapat mengurangi waktu kita dalam mencari error

Visually oriented: .NET library code yang digunakan oleh C# menyediakan bantuan yang dibutuhkan untuk membuat tampilan yang complicated dengan frames, dropdown , tabbed windows, group button , scroll bar , background image , dan lainnya

Secure: semua bahasa pemrograman yg digunakan untuk kebutuhan internet mesti memiliki security yang benar-benar aman untuk menghindari aksi kejahatan dari pihak lain seperti hacker , C# memiliki segudang fitur untuk menanganinya

Memory management lebih mudah karena adanya garbage collector, yg membebaskan memory secara otomatis sehingga dapat mencegah memory leak

Type safe, konversi implisit dari tipe data hanya mensupport turunan dan operasi dari tipe data yg melebar (misal dari int ke long, kalau int ke short tidak bisa) dan ini dideteksi pas compile.


Kelemahan
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai
Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

Komentar

Postingan populer dari blog ini

Flow Map: Pengertian, simbol dan contoh kasus

FLOW MAP: PENGERTIAN, SIMBOL DAN CONTOH KASUS Pengertian Flow Map Flow Map adalah sebuah aliran data berbentuk dokumen atau formulir didalam suatu sitem informasi yang merupakan suatu aktivitas yang saling terkait dalam hubungannya dengan kebutuhan data dan informasi. Proses aliran dokumen ini dapat terjadi dengan entitas di luar sistem. Simbol-Simbol Flow Map Contoh kasus Flow Map Prosedur pembayaran di rumah makan - Pembeli memberikan data pesanan ke kasir -Petugas kasir menginputkan pesanan -Petugas kasir menghitung total pembayaran pesanan -Petugas kasir memberikan rincian total pembayaran dari pemesanan kepada pembeli -Pembeli melakukan pembayaran barang kepada kasir -Petugas kasir menginputkan data pembayaran -Petugas kasir melakukan pencetakan bon -Pembeli menerima bon pembayaran dari petugas kasir Flow Map prosedur pembayaran di rumah makan

Arsitektur Perangkat Lunak

A rsitektur Perangkat Lunak             Arsitektur perangkat lunak adalah sekumpulan pernyataan yang menggambarkan komponen perangkat lunak dan fungsi-fungsi yang ada pada komponen tersebut. Ia menggambarkan struktur teknis, batasan-batasan, ciri-ciri, serta antarmuka pada komponen-komponen tersebut. Arsitektur merupakan rancangan fisik sistem dan oleh karena itu membutuhkan rencana yang matang pada saat pembuatannya (Krafzig et al, 2004).           Menurut Erl (2009), ada tiga elemen yang saling berkaitan erat ketika berbicara tentang arsitektur perangkat lunak. Pertama adalah arsitektur teknologi, yaitu desain fisik dari suatu perangkat lunak. Kedua adalah infrastruktur teknologi, yaitu lingkungan pendukung yang termasuk di dalamnya perangkat keras dan perangkat lunak. Ketiga adalah perangkat lunak itu sendiri. Berikut adalah diagram sederhana yang memperlihatkan keterkaitan ketiga elemen tersebut.  Gambar 1.1   Hubungan arsitektur, infrastruktur, dan perangkat l

Software design notation

Software design notation   Notasi desain digunakan untuk perancangan perangkat lunak yang dapat mendeskripsikan tujuan suatu perangkat lunak, dikategorikan ke dalam notasi Structural Descriptions (Statis) dan Behavioral Descriptions (Dinamis) Structural Descriptions Structural Descriptions menggambarkan dan mewakili aspek structural dari perancangan perangkat lunak 1.       Class Diagram: Untuk mewakili sekumpulan kelas (dan objek) dan keterkaitannya AS 2.       Entity-relationship diagrams (ERD) : U ntuk menggambarkan mode l konseptual data yang disimpan dalam sistem informasi 3.       Structure charts : U ntuk menggambarkan struktur pemanggilan program , Menguraikan komponen utama menjadi bagian bagian kecil , Digunakan dalam analisis sistem terstruktur/desain terstruktur , Setiap grafik merupakan suatu proses . Behavioral Descriptions Behavioral Descriptions digunakan untuk menggambarkan perilaku dinamis perangkat lunak dan komponen