Sunday 18 February 2018

C Apa Itu C?

Pada Raspbian sudah terinstall sebuah software yang bernama Geany, yang merupakan Integrated Development Environment (IDE) yang ringan dan relatif cepat, sehingga memudahkan kita untuk membuat program C.

C adalah pemograman yang menggunakan cara compiled (compiled languages), tidak seperti Python, program dibaca langsung sebagai sumber. Python disebut interpreted languages.
Kode-kode yang dicompiled ini disebut source code, yang tidak bekerja secara langsung dengan kode2 yang kita kerjakan. Kode-kode dikonversikan menjadi bahasa mesin yang disebut executable atau binary.

perbedaan C dan C++:
  • C dikembangkan oleh Dennis Ritchie antara tahun 1969 - 1973 di perusahaan AT&T Bell Labs
    C++ dikembangkan oleh Bjarne Stroustrup pada tahun 1979
  • C merupakan bagian C++, karena C++ dapat meng-compiled sebagian besar code-code dari C
  • C adalah program yang prosedural sedangkan C++ mensupport prosedural dan object oriented programming
  • C tidak mensupport object oriented programming, polymorphism, encapsulation dan inheritance. C++ support
  • C, data dan fungsi terpisah. C++ data dan fungsi dibungkus menjadi sebuah object.
  • dan lain-lain
C merupakan bahasa programming yang general purpose, digunakan luas pada applikasi-aplikasi dari Operating system (seperti Windows dan iOS, bayangkan OS aja bikinnya pake C) sampai software yang digunakan untuk membuat 3D (video, modeling, dan lain-lain)

Hasil dari progam dengan C sangatlah effisien, dengan alasan tersebut, C masi bisa bertahan hidup dan masih digunakan selama lebih dari 40 tahun hampir 50 tahun (pernah dengar bahasa basic, paskal? pada kemana yah?)

C itu sangat bahasa yang prosedural, langkah demi langkah harus ditulis satu-satu (awal dari kegilaan C) sehingga suatu sebuah tugas yang simple dapat ditulis sampai berbaris-baris. Walupun begitu, bila dibandingkan dengan bahasa program lain yang memiliki sebuah atau lebih sedikit perintah dari C, kemungkinan besar program yang dibuat oleh C bekerja lebih cepat (karena kemampuan prosesor saat ini sangat besar, kecepatan ini mungkin tak berasa). Kekurangan ini diperbaiki dan dikembangkan oleh C++ dengan feature OOP (object oriented program).

Bahasa C mengizinkan kita memanipulasi hardware yang ada pada komputer (keren ga tuh). Jadi tidak salah bila kita memulai belajar program dengan C (awal dari sebuah penderitaan yang panjang).

Dengan motto "write once, compile everywhere", sehingga pembuatan program diperlukan sekali, dan bisa digunakan di Operating systems mana saja asalkan di-compile di Operating systems tersebut tanpa mengubah kode-kode yg kita buat sebelumnya. Ya motto ini kalah galak dengan mottonya Java "write once, run everywhere" tapi java bukan compiled language, melainkan interpreted language, dimana virtual java machine yg membaca kode-kode yang kita buat lalu menjalankanya.

Dengan C kita bisa menyimpan kode sebagai library yang kita akan gunakan nanti, konsep ini disebut modularity.

Bila kita menggunakan bahasa C apa adanya, kita tidak bisa berbuat banyak, tapi C memiliki banyak libraries yang dapat kita gunakan.

Dengan belajar C kita bisa mengetahui bagaimana komputer itu bekerja, tapi kita tidak tahu bagaimana program yang kita buat bekerja (aneh banget kan, bisa ngerti cara kerja komputer, tapi kode-kode yang kita buat tidak tahu bagaimana bisa bekerja di komputer).

Dengan mengerti C kita bisa membuat program yang impact nya sangat luas. Program-program berbahasa tinggi seperti python, java, bisa diinterface dengan C ini.

Bila kita ingin membuat program untuk smartphone, kita menggunakan Java, Swift (taylor swift 😱) atau Objective C, dan banyak program untuk applicasi di web.

Python bisa membuat applikasi, dan banyak applikasi yang dibuat menggunakan python, dan python dibuat oleh C. Jadi kita bisa ikut mengkontribusi python. Juga open source yang lain yang banyak digunakan pada linux kernel, database.

Dan apabila kita bisa C dan C++ dampak yang bisa kita buat sangatlah luas, dengan membuat progam yang lebih baik. Pada kenyatannya tidak semua orang mau berkontribusi atau berkemampuan untuk membuat program yang lebih baik.

No comments:

Post a Comment