Lompat ke isi

C (bahasa pemrograman): Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
Flohsuchtliebe (bicara | kontrib)
perbaikan kosmetik kode sumber, penghapusan berkas ( salah lokasi) , dan perapian pranala luar
Athayahisyam (bicara | kontrib)
+wkf, perubahan redaksi
 
(129 revisi perantara oleh 67 pengguna tidak ditampilkan)
Baris 1: Baris 1:
{{Infobox programming language
'''Bahasa pemrograman C''' merupakan salah satu [[bahasa pemrograman]] [[komputer]]. Dibuat pada tahun 1972 oleh Dennis Ritchie untuk [[Sistem Operasi]] [[Unix]] di Bell Telephone Laboratories.
| name = C
| logo = File:The C Programming Language logo.svg
| logo size = 140px
| logo alt = Teks dalam huruf kapital serif biru muda dengan latar belakang putih dan huruf sans-serif biru muda yang sangat besar C.
| logo caption = ''[[The C Programming Language]]'' <ref name="k&r1e">{{cite book |last1=Kernighan |first1=Brian W. |author-link1=Brian Kernighan |last2=Ritchie |first2=Dennis M. |author-link2=Dennis Ritchie | title=The C Programming Language | edition=1st |publisher=[[Prentice Hall]] |date=February 1978 |location=[[Englewood Cliffs, NJ]] |isbn=978-0-13-110163-0|title-link=The C Programming Language (book)}}</ref>
| paradigm = [[Bahasa pemrograman multiparadigma|Multiparadigma]]: [[Pemrograman imperatif|imperatif]] ([[Pemrograman prosedural|prosedural]]), [[pemrograman terstruktur|terstruktur]]
| designer = [[Dennis Ritchie]]
| developer = ANSI X3J11 ([[ANSI C]]); [[ISO/IEC JTC 1/SC 22|ISO/IEC JTC 1 (Joint Technical Committee 1) / SC 22 (Subcommittee 22)]] / WG 14 (Working Group 14) (ISO C)
| latest release version = [[C17 (C revisi standar)|C17]]
| latest release date = {{start date and age|2018|06}}
| latest preview version = [[C2x]] ([https://open-std.org/JTC1/SC22/WG14/www/docs/n2912.pdf N2912])
| latest preview date = {{start date and age|2022|09|03}}<ref name="dReNK">{{cite web |url=https://en.cppreference.com/w/c/language/history |title=History of C |last=Fruderica |date=13 December 2020 |work=The cppreference.com |access-date=24 October 2020 |archive-date=October 24, 2020 |archive-url=https://web.archive.org/web/20201024212333/https://en.cppreference.com/w/c/language/history |url-status=live }}</ref>
| typing = [[Sistem tipe|Statis]], [[Pengetikan kuat dan lemah|lemah]], [[pengetikan manifes|manifes]], [[Sistem tipe nominal|nominal]]
| implementations = [[Portable C Compiler|pcc]], [[GNU Compiler Collection|GCC]], [[Clang]], {{nowrap|[[Intel C++ Compiler|Intel C]],}} [[C++Builder]], {{nowrap|[[Microsoft Visual C++]],}} {{nowrap|[[Watcom C/C++|Watcom C]]}}
| dialects = [[Cyclone (bahasa pemrograman)|Cyclone]], [[Unified Parallel C]], [[Split-C]], [[Cilk]], [[C*]]
| influenced = [[:Katerogi:keluarga bahasa pemrograman C|Beragam]]: [[AMPL]], [[AWK]], [[C shell|csh]], [[C++]], [[C--]], [[C Sharp (bahasa pemrograman)|C#]], [[Objective-C]], [[D (bahasa pemrograman)|D]], [[Go (bahasa pemrograman)|Go]], [[Java (bahasa pemrograman)|Java]], [[JavaScript]], [[JS++]], [[Julia (bahasa pemrograman)|Julia]], [[Limbo (bahasa pemrograman)|Limbo]], [[LPC (bahasa pemrograman)|LPC]], [[Perl]], [[PHP]], [[Pike (bahasa pemrograman)|Pike]], [[Processing (bahasa pemrograman)|Processing]], [[Python (bahasa pemrograman)|Python]], [[Rust (bahasa pemrograman)|Rust]], [[Seed7]], [[Vala (bahasa pemrograman)|Vala]], [[Verilog]] (HDL),<ref name="vinsp">{{cite web|title=Verilog HDL (and C)|url=http://cs.anu.edu.au/courses/ENGN3213/lectures/lecture6_VERILOG_2010.pdf|date=June 3, 2010|access-date=August 19, 2013|publisher=The Research School of Computer Science at the Australian National University|quote=1980s: ; Verilog first introduced ; Verilog inspired by the C programming language|url-status=dead|archive-url=https://web.archive.org/web/20131106064022/http://cs.anu.edu.au/courses/ENGN3213/lectures/lecture6_VERILOG_2010.pdf|archive-date=November 6, 2013}}</ref> [[Nim (bahasa pemrograman)|Nim]], [[Zig (bahasa pemrograman)|Zig]]
| operating system = [[Lintas platform]]
| year = {{start date and age|1972}}<ref name="dottcl_2">{{harvtxt|Ritchie|1993}}: "Thompson had made a brief attempt to produce a system coded in an early version of C—before structures—in 1972, but gave up the effort."</ref>
| influenced by = [[B (bahasa pemrograman)|B]] ([[BCPL]], [[CPL (bahasa pemrograman)|CPL]]), [[ALGOL 68]],<ref name="dottcl_1">{{harvtxt|Ritchie|1993}}: "The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of."</ref> [[assembly language|assembly]], [[PL/I]], [[FORTRAN]]
| file ext = .c, .h
| website = {{URL|https://www.iso.org/standard/74528.html}}<br /> {{URL|http://www.open-std.org/jtc1/sc22/wg14/}}
| wikibooks = C Programming
}}
'''Bahasa pemrograman C''' adalah [[bahasa pemrograman]] komputer [[Bahasa pemrograman tujuan umum|bertujuan umum]] yang dibuat pada tahun 1972 oleh [[Dennis Ritchie]] untuk [[Sistem Operasi]] [[Unix]] di Bell Telephone Laboratories. Dengan desain, fitur C dengan jelas mencerminkan kemampuan CPU yang ditargetkan.


Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa mempengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.
Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa memengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.<ref>{{Cite book|date=1989|url=http://dx.doi.org/10.7551/mitpress/5485.003.0033|title=Dennis Ritchie and Kenneth Thompson|publisher=The MIT Press|isbn=978-0-262-29142-2}}</ref>


Sejak 2000, C secara konsisten menempati peringkat di antara dua bahasa teratas di [[TIOBE index|indeks TIOBE]], suatu indeks mengenai popularitas bahasa pemrograman.<ref name="TIOBE-2021">{{cite web|title=TIOBE Index for October 2021|url=https://www.tiobe.com/tiobe-index/|access-date=2021-10-07}}</ref>


== Filosofi ==
== Sejarah ==

=== Perkembangan awal ===
Asal usul C terkait erat dengan pengembangan sistem operasi [[:en:Unix|Unix]], yang awalnya diimplementasikan dalam [[Bahasa rakitan|bahasa assembly]] pada [[:en:PDP-7|PDP-7]] oleh [[Dennis Ritchie]] dan [[Ken Thompson]], menggabungkan beberapa ide dari rekan-rekannya. Akhirnya, mereka memutuskan untuk mem-porting sistem operasi ke PDP-11. Versi asli Unix [[:en:PDP-11|PDP-11]] juga dikembangkan dalam bahasa assembly.

=== '''B''' ===
Artikel utama: ''[[:en:B (programming language)|B (bahasa pemrograman)]]''

Thompson menginginkan bahasa pemrograman untuk mengembangkan utilitas untuk platform baru. Pada awalnya, dia mencoba menulis kompiler Fortran, tetapi segera menyerah. Sebaliknya, ia menciptakan versi sederhana dari bahasa pemrograman sistem yang baru dikembangkan yang disebut BCPL. Deskripsi resmi BCPL belum tersedia pada saat itu[14] dan Thompson memodifikasi sintaksisnya agar tidak terlalu bertele-tele, dan mirip dengan ALGOL sederhana yang dikenal sebagai SMALGOL.[15] Thompson menyebut hasilnya B.[8] Dia menggambarkan B sebagai "semantik BCPL dengan banyak sintaksis SMALGOL". Seperti BCPL, B memiliki kompiler bootstrapping untuk memfasilitasi porting ke mesin baru.[15] Namun, hanya sedikit utilitas yang akhirnya ditulis dalam B karena terlalu lambat, dan tidak dapat memanfaatkan fitur PDP-11 seperti kemampuan pengalamatan byte.

=== B dan C pertama Rilis ===
Pada tahun 1971, Ritchie mulai menyempurnakan B, untuk memanfaatkan fitur PDP-11 yang lebih bertenaga. Tambahan yang signifikan adalah tipe data karakter. Dia menyebutnya B Baru (NB).[15] Thompson mulai menggunakan NB untuk menulis kernel Unix, dan persyaratannya membentuk arah pengembangan bahasa.[15][16] Hingga tahun 1972, tipe yang lebih kaya ditambahkan ke bahasa NB: NB memiliki array int dan char. Pointer, kemampuan untuk menghasilkan pointer ke tipe lain, semua tipe array, dan tipe yang akan dikembalikan dari fungsi semuanya juga ditambahkan. Array dalam ekspresi menjadi pointer. Kompiler baru telah ditulis, dan bahasanya diganti namanya menjadi C.[8]

Kompiler C dan beberapa utilitas yang dibuat dengannya disertakan dalam Unix Versi 2, yang juga dikenal sebagai Research Unix.

=== '''Struktur dan penulisan ulang kernel Unix''' ===
Pada Versi 4 Unix, dirilis pada bulan November 1973, kernel Unix diimplementasikan kembali secara ekstensif di C.[8] Pada saat ini, bahasa C telah memperoleh beberapa fitur canggih seperti tipe struct.

Praprosesor diperkenalkan sekitar tahun 1973 atas desakan Alan Snyder dan juga sebagai pengakuan atas kegunaan mekanisme penyertaan file yang tersedia di BCPL dan PL/I. Versi aslinya hanya menyediakan file yang disertakan dan penggantian string sederhana: #include dan #define makro tanpa parameter. Segera setelah itu, diperluas, sebagian besar oleh Mike Lesk dan kemudian oleh John Reiser, untuk menggabungkan makro dengan argumen dan kompilasi bersyarat.[8]

Unix adalah salah satu kernel sistem operasi pertama yang diimplementasikan dalam bahasa selain bahasa assembly. Contoh sebelumnya termasuk sistem Multics (yang ditulis dalam PL/I) dan Master Control Program (MCP) untuk Burroughs B5000 (yang ditulis dalam ALGOL) pada tahun 1961. Sekitar tahun 1977, Ritchie dan Stephen C. Johnson membuat perubahan lebih lanjut pada bahasa untuk memfasilitasi portabilitas sistem operasi Unix. Kompiler C Portabel Johnson menjadi dasar untuk beberapa implementasi C pada platform baru.


== Versi Bahasa C ==
=== C K&R ===
=== C K&R ===
Pada tahun 1978, ''Dennis Ritchie'' dan ''Brian Kernighan'' menerbitkan edisi pertama dari buku yang berjudul ''The C Programming Language''. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini.
Pada tahun 1978, ''Dennis Ritchie'' dan ''Brian Kernighan'' menerbitkan edisi pertama dari buku yang berjudul ''The C Programming Language''. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini.
Baris 13: Baris 57:


=== ANSI C & ISO C ===
=== ANSI C & ISO C ===
Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American National Standards Institute ([[ANSI]]) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini seringkali dinamakan ANSI C, atau kadang-kadang C89.
Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American National Standards Institute ([[ANSI]]) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini sering kali dinamakan ANSI C, atau kadang-kadang C89.


Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization ([[ISO]]) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini seringkali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama.
Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization ([[ISO]]) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini sering kali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama.


=== C99 ===
=== C99 ===
Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelah [[C++]], yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram
Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelah [[C++]], yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram yang banyak di cari

== Sintaks ==
C89 memiliki 32 kata, juga dikenal sebagai ''keyword'', yang merupakan kata-kata yang tidak dapat digunakan untuk tujuan apa pun selain yang telah ditentukan sebelumnya:
{{div col|colwidth=13em}}
* <code>auto</code>
* <code>break</code>
* <code>case</code>
* <code>char</code>
* <code>[[const (pemrograman komputer)|const]]</code>
* <code>continue</code>
* <code>default</code>
* <code>do</code>
* <code>[[double precision|double]]</code>
* <code>else</code>
* <code>[[Pengetikan enumerated|enum]]</code>
* <code>[[Variabel external|extern]]</code>
* <code>[[Arimatika floating-point|float]]</code>
* <code>[[for loop|for]]</code>
* <code>[[goto (ilmu komputer)|goto]]</code>
* <code>if</code>
* <code>int</code>
* <code>[[long integer|long]]</code>
* <code>[[register (bahasa pemrograman C)|register]]</code>
* <code>return</code>
* <code>[[interger (ilmu komputer)#short interger|short]]</code>
* <code>signed</code>
* <code>[[sizeof]]</code>
* <code>[[Static (keyword)|static]]</code>
* <code>[[struct (bahasa pemrograman C)|struct]]</code>
* <code>[[switch statement|switch]]</code>
* <code>typedef</code>
* <code>union</code>
* <code>unsigned</code>
* <code>[[Pengetikan void|void]]</code>
* <code>[[Variabel volatile|volatile]]</code>
* <code>[[while loop|while]]</code>
{{div col end}}

C99 memiliki lima kata lagi:

{{div col|colwidth=13em}}
* <code>_Bool</code>
* <code>_Complex</code>
* <code>_Imaginary</code>
* <code>[[Fungsi Inline|inline]]</code>
* <code>[[restrict]]</code>
{{div col end}}

C11 memiliki tujuh kata lagi:<ref name="ISOIEC 9899">{{Cite web|title=ISO/IEC 9899:201x (ISO C11) Committee Draft|url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf|archive-url=https://web.archive.org/web/20171222215122/http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf|archive-date=December 22, 2017|access-date=September 16, 2011|url-status=live}}</ref>
{{div col|colwidth=13em}}
* <code>_Alignas</code>
* <code>_Alignof</code>
* <code>_Atomic</code>
* <code>_Generic</code>
* <code>_Noreturn</code>
* <code>_Static_assert</code>
* <code>_Thread_local</code>
{{div col end}}


== Pustaka ==
== Pustaka ==
Pustaka (seringkali dirujuk sebagai ''library''), adalah kumpulan fungsi-fungsi yang terkandung dalam satu file, Setiap file pustaka mempunyai satu ''Header file'' yang menyimpan cetak biru dari fungsi-fungsi yang terkandung dalam file pustaka.
Bahasa pemrograman C sering menggunakan [[Pustaka (perangkat lunak)|pustaka]] sebagai metode utama dari ekstensinya. Dalam C, sebuah pustaka adalah seperangkat fungsi yang terkandung dalam satu file "arsip". Setiap pustaka mempunyai sebuah [[Arahan include|file header]], yang berisi prototipe fungsi yang terkandung di dalam perpustakaan yang dapat digunakan oleh suatu program, dan deklarasi tipe data khusus dan simbol makro yang digunakan dengan fungsi ini.


Bahasa C seringkali dipakai untuk membuat file-file pustaka yang menyimpan fungsi-fungsi tertentu, dikarenakan C dapat dikompile menjadi bahasa mesin yang sangat cepat dan kecil ukurannya, kemudian bahasa pemrograman lain seperti [[Python (bahasa pemrograman)|Python]] yang akan menciptakan antar-muka dari fungsi-fungsi yang dikandungnya.
Bahasa C sering kali dipakai untuk membuat file-file pustaka yang menyimpan fungsi-fungsi tertentu, dikarenakan C dapat dikompile menjadi bahasa mesin yang sangat cepat dan kecil ukurannya, kemudian bahasa pemrograman lain seperti [[Python (bahasa pemrograman)|Python]] yang akan menciptakan antar-muka dari fungsi-fungsi yang dikandungnya.


Pustaka yang paling sering dipakai adalah Pustaka Standar C, yang berisi fungsi-fungsi standar yang berasal dari ANSI C. Pustaka standar ini sekarang telah terkandung dalam hampir setiap kompiler C yang dipakai.
Pustaka yang paling sering dipakai adalah Pustaka Standar C, yang berisi fungsi-fungsi standar yang berasal dari ANSI C. Pustaka standar ini sekarang telah terkandung dalam hampir setiap kompiler C yang dipakai.


== Hello, World! ==
== Contoh Hello, World! ==
[[Berkas:Hello_World_Brian_Kernighan_1974.jpg|jmpl|Program "Hello, World!" oleh [[Brian Kernighan]] (1978)]]
Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!" dengan menggunakan pustaka stdio.h (ANSI C):
{{See also|Hello, world}}
<source lang="c">
Contoh "[["Hello, World!" program|hello, world]]", yang muncul pada edisi pertama dari ''[[The C Programming Language|K&R]]'', telah menjadi model untuk program pengantar di sebagian besar buku teks pemrograman. Programnya mem-print "hello, world" ke [[Aliran standard#Standard output (stdout)|output standar]], yang biasanya berupa terminal atau tampilan layar.

Versi aslinya adalah:{{sfnp|Kernighan|Ritchie|1978|p=6}}<syntaxhighlight lang="c">
main()
{
printf("hello, world\n");
}
</syntaxhighlight>Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!" dengan menggunakan pustaka stdio.h (ANSI C):
<syntaxhighlight lang="c" line="1">
#include <stdio.h>
#include <stdio.h>
#include <conio.h>
int main(void)
int main(void) {
{
printf("Hello, World!\n");
printf("Hello, World!\n");
return 0;
return 0;
}
}
</syntaxhighlight>Baris pertama program berisi [[Praprosesor|arahan preprocessing]], ditunjukkan oleh <code>#include</code>. Ini menyebabkan kompiler mengganti baris itu dengan seluruh teks dari standard header <code>[[Input/output file C|stdio.h]]</code>, yang berisi deklarasi untuk fungsi input dan output standar seperti <code>printf</code> dan <code>scanf</code>. Tanda kurung sudut di sekitar <code>stdio.h</code> mengindikasikan bahwa <code>stdio.h</code> terletak menggunakan strategi pencarian yang lebih memilih header yang disediakan dengan kompiler ke header yang lain memiliki nama yang sama, sebagai lawan dari tanda kutip ganda yang biasanya menyertakan file header lokal atau khusus proyek.
</source>


== Pranala luar ==
== Penggunaan ==
[[Berkas:The_C_Programming_Language.png|jmpl|Bahasa pemrograman C]]
C digunakan luar untuk [[pemrograman sistem]] dalam mengimplementasikan [[sistem operasi]] dan pengaplikasian [[sistem tertanam]].<ref name="Zh3CW">{{Cite book|last1=Dale|first1=Nell B.|last2=Weems|first2=Chip|date=2014|title=Programming and problem solving with C++|url=https://archive.org/details/programmingprobl0000dale_e1p0|location=Burlington, MA|publisher=Jones & Bartlett Learning|isbn=978-1449694289|edition=6th|oclc=894992484}}</ref> Ini untuk beberapa alasan:


* Kode yang dihasilkan setelah kompilasi tidak menuntut banyak fitur sistem, dan dapat dipanggil dari beberapa kode boot secara langsung - itu sederhana untuk dijalankan.
* {{id}} [http://www.pecollege.net/ Tutorial Gratis Dalam Bentuk Video Untuk Pemrograman Bahasa C]
* Pernyataan dan ekspresi bahasa C biasanya memetakan dengan baik ke urutan instruksi untuk prosesor target, dan akibatnya ada permintaan [[Runtime (fase siklus hidup program)|run-time]] yang rendah pada sumber daya sistem - ini cepat untuk dijalankan.
* {{en}} [http://en.wikibooks.org/wiki/Programming:C ''Programming C''] di ''[[:w:Wikibooks|Wikibooks]]''
* Bahasanya membuatnya mudah untuk melapisi struktur ke blok data biner, memungkinkan data untuk dipahami, dinavigasi dan dimodifikasi - ini dapat menulis struktur data, bahkan file sistem.
* {{id}} [http://achmatim.net/2009/12/10/buku-gratis-pemrograman-bahasa-c-dengan-turbo-c/ Buku Gratis Pemrograman Bahasa C dengan Turbo C]
* Tergantung pada penghubung dan lingkungan, kode C juga dapat memanggil perpustakaan yang ditulis dalam [[bahasa rakitan]], dan dapat dipanggil dari bahasa rakitan - ini beroperasi dengan baik dengan kode lain.
* {{id}} [http://saung.igoscenter.org/Pemrograman_C Tutorial Pemrograman C]
* C memiliki ekosistem yang sangat matang dan luas, termasuk kompiler sumber terbuka, debugger dan utilitas, dan merupakan standar de facto. Kemungkinan driver sudah ada di C, atau ada arsitektur CPU yang mirip dengan back-end kompiler C, jadi ada pengurangan insentif untuk memilih bahasa lain.

== Perbandingan dengan C++ ==

[[C++]] pada awalnya disebut sebagai "C dengan Kelas" (C With Classes) dan diciptakan untuk memiliki fitur [[pemrograman berorientasi objek]]. Karena C++ berdasarkan dari C, maka kebanyakan kode C bisa dirakit di kompilator C++ dengan mudah. Perbedaan kecil contohnya kata "new" dan "delete" yang terdapat di kode C tidak bisa dirakit di C++ karena kata-kata ini adalah kata dipesan C++. Pustaka C biasanya bisa diimpor ke pustaka C++, tapi karena kompilator C dan C++ memiliki "name mangling" yang berbeda, maka perubahan kecil di kode C perlu dilakukan.<ref name="NameMangling">[http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.7 parashift.com - Menggunakan pustaka C di proyek C++]</ref>

== Referensi ==
{{reflist}}

== Sumber ==

* {{cite journal|last1=Ritchie|first1=Dennis M.|author-link=Dennis Ritchie|date=March 1993|title=The Development of the C Language|journal=ACM SIGPLAN Notices|publisher=ACM|volume=28|issue=3|pages=201–208|doi=10.1145/155360.155580}}
** By courtesy of the author, also at {{cite web|last1=Ritchie|first1=Dennis M|title=Chistory|url=https://www.bell-labs.com/usr/dmr/www/chist.html|website=www.bell-labs.com|access-date=2022-03-29}}
* {{cite conference|ref=none|last1=Ritchie|first1=Dennis M.|year=1993|title=The Development of the C Language|pages=201–208|doi=10.1145/154766.155580|url=http://www.bell-labs.com/usr/dmr/www/chist.html|book-title=The Second ACM SIGPLAN Conference on History of Programming Languages (HOPL-II)|publisher=[[Association for Computing Machinery|ACM]]|isbn=0-89791-570-4|access-date=November 4, 2014}}
* {{cite book|last1=Kernighan|first1=Brian W.|last2=Ritchie|first2=Dennis M.|year=1988|title=The C Programming Language|publisher=[[Prentice Hall]]|isbn=0-13-110362-8|edition=2nd|author-link=Brian Kernighan|author-link2=Dennis Ritchie}}

== Bacaan lanjutan ==

* {{cite book|last1=Kernighan|first1=Brian|last2=Ritchie|first2=Dennis|year=1988|title=The C Programming Language|title-link=The C Programming Language|publisher=Prentice Hall|isbn=978-0131103627|edition=2nd|author1-link=Brian Kernighan|author2-link=Dennis Ritchie}} <small>[[iarchive:the c programming language 2 20181213|''(archive)'']]</small>
* {{cite book|last1=Plauger|first1=P.J.|year=1992|title=The Standard C Library|publisher=Prentice Hall|isbn=978-0131315099|edition=1|author-link=P. J. Plauger}} <small>[https://github.com/wuzhouhui/c_standard_lib ''(source)'']</small>
* {{cite book|last1=Banahan|first1=M.|last2=Brady|first2=D.|last3=Doran|first3=M.|year=1991|title=The C Book: Featuring the ANSI C Standard|publisher=Addison-Wesley|isbn=978-0201544336|edition=2}} <small>[https://github.com/wardvanwanrooij/thecbook ''(free)'']</small>
* {{cite book|last1=Harbison|first1=Samuel|last2=Steele Jr|first2=Guy|year=2002|title=C: A Reference Manual|publisher=Pearson|isbn=978-0130895929|edition=5}} <small>[[iarchive:creferencemanual00harb|''(archive)'']]</small>
* {{cite book|last1=King|first1=K.N.|date=2008|title=C Programming: A Modern Approach|publisher=W. W. Norton|isbn=978-0393979503|edition=2}} <small>[[iarchive:cprogrammingmode0000king|''(archive)'']]</small>
* {{cite book|last1=Griffiths|first1=David|last2=Griffiths|first2=Dawn|date=2012|title=Head First C|publisher=O'Reilly|isbn=978-1449399917|edition=1}}
* {{cite book|last1=Perry|first1=Greg|last2=Miller|first2=Dean|date=2013|title=C Programming: Absolute Beginner's Guide|publisher=Que|isbn=978-0789751980|edition=3}}
* {{cite book|last1=Deitel|first1=Paul|last2=Deitel|first2=Harvey|date=2015|title=C: How to Program|publisher=Pearson|isbn=978-0133976892|edition=8}}
* {{cite book|last1=Gustedt|first1=Jens|date=2019|title=Modern C|publisher=Manning|isbn=978-1617295812|edition=2}} <small>[https://modernc.gforge.inria.fr/ ''(free)''] {{Webarchive|url=https://web.archive.org/web/20210801070116/https://modernc.gforge.inria.fr/ |date=2021-08-01 }}</small>

== Pranala luar ==
* [http://www.open-std.org/jtc1/sc22/wg14/ Situs web resmi ISO C Working Group]
** [http://www.open-std.org/JTC1/SC22/WG14/www/standards ISO/IEC 9899], dokumen resmi C, termasuk C99 Rationale
** {{cite web|url= http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf |title=C99 with Technical corrigenda TC1, TC2, and TC3 included }}&nbsp;{{small|(3.61&nbsp;MB)}}
* [http://www.c-faq.com/ comp.lang.c Frequently Asked Questions]
* [http://csapp.cs.cmu.edu/3e/docs/chistory.html A History of C], oleh Dennis Ritchie
* [http://en.wikibooks.org/wiki/Programming:C ''Programming C''] di ''[[:w:Wikibooks|Wikibooks]]''


{{Daftar bahasa pemrograman}}
{{Daftar bahasa pemrograman}}
{{Authority control}}
{{computer-stub}}


[[Kategori:Bahasa pemrograman C| ]]
[[Kategori:Bahasa pemrograman C| ]]
[[Kategori:Bahasa pemrograman|C]]
[[Kategori:Bahasa pemrograman|C]]
[[Kategori:Bahasa pemrograman prosedural]]
[[Kategori:Bahasa pemrograman prosedural]]
[[Kategori:Artikel kelas awal bertopik teknologi informasi]]

[[af:C (programmeertaal)]]
[[als:C (Programmiersprache)]]
[[am:ሲ (የኮምፒዩተር ፍርገማ ቋንቋ)]]
[[an:Luengache de programación C]]
[[ar:سي (لغة برمجة)]]
[[ast:Llinguaxe de programación C]]
[[az:C (proqramlaşdırma dili)]]
[[bat-smg:C (kalba)]]
[[be:C, мова праграмавання]]
[[be-x-old:C (мова праграмаваньня)]]
[[bg:C (език за програмиране)]]
[[bn:সি (প্রোগ্রামিং ভাষা)]]
[[br:Areg C]]
[[bs:C programski jezik]]
[[bug:C (basa maprogram)]]
[[ca:Llenguatge C]]
[[cdo:C ngṳ̄-ngiòng]]
[[co:C (linguagiu di prugrammazione)]]
[[cs:C (programovací jazyk)]]
[[cv:Си (компьютер чĕлхи)]]
[[cy:C (cyfrifiadureg)]]
[[da:C (programmeringssprog)]]
[[de:C (Programmiersprache)]]
[[el:C (γλώσσα προγραμματισμού)]]
[[en:C (programming language)]]
[[eo:C (programlingvo)]]
[[es:C (lenguaje de programación)]]
[[et:C (programmeerimiskeel)]]
[[eu:C (programazio lengoaia)]]
[[fa:زبان برنامه‌نویسی سی]]
[[fi:C (ohjelmointikieli)]]
[[fr:C (langage)]]
[[ga:C (Teanga ríomhchlárúcháin)]]
[[gl:C (programación)]]
[[he:C (שפת תכנות)]]
[[hi:सी (प्रोग्रामिंग भाषा)]]
[[hr:C (programski jezik)]]
[[hu:C (programozási nyelv)]]
[[hy:C (ծրագրավորման լեզու)]]
[[ia:C (linguage de programmation)]]
[[is:C (forritunarmál)]]
[[it:C (linguaggio)]]
[[ja:C言語]]
[[jv:C (basa pamrograman)]]
[[ka:C (პროგრამირების ენა)]]
[[kab:C (tameslayt)]]
[[km:ភាសា C]]
[[ko:C (프로그래밍 언어)]]
[[ku:C (zimanê bernamekirinê)]]
[[la:C (lingua programmandi)]]
[[lt:C (kalba)]]
[[lv:C (programmēšanas valoda)]]
[[mg:Fiteny C]]
[[mk:C (програмски јазик)]]
[[ml:സി (പ്രോഗ്രാമിങ് ഭാഷ)]]
[[mn:Си хэл]]
[[mr:सी प्रोग्रॅमिंग लँग्वेज]]
[[ms:C (bahasa pengaturcaraan)]]
[[nl:C (programmeertaal)]]
[[nn:Programmeringsspråket C]]
[[no:C (programmeringsspråk)]]
[[oc:C (lengatge)]]
[[pl:C (język programowania)]]
[[pt:C (linguagem de programação)]]
[[ro:C (limbaj de programare)]]
[[ru:Си (язык программирования)]]
[[sah:C (программалааhын тыла)]]
[[sh:C (programski jezik)]]
[[simple:C (programming language)]]
[[sk:C (programovací jazyk)]]
[[sl:Programski jezik C]]
[[sq:C (gjuhë programimi)]]
[[sr:C (програмски језик)]]
[[sv:C (programspråk)]]
[[ta:சி-நிரலாக்க மொழி]]
[[te:సీ]]
[[th:ภาษาซี]]
[[tr:C (programlama dili)]]
[[tt:Си (программалау теле)]]
[[uk:C (мова програмування)]]
[[vi:C (ngôn ngữ lập trình)]]
[[wuu:C (程式编制个言话)]]
[[yi:C (פראגראם שפראך)]]
[[zh:C语言]]
[[zh-min-nan:C (thêng-sek gí-giân)]]
[[zh-yue:C程式語言]]

Revisi terkini sejak 22 September 2024 05.08

C
Edit nilai pada Wikidata
ParadigmaMultiparadigma: imperatif (prosedural), terstruktur
Dirancang olehDennis Ritchie
PengembangANSI X3J11 (ANSI C); ISO/IEC JTC 1 (Joint Technical Committee 1) / SC 22 (Subcommittee 22) / WG 14 (Working Group 14) (ISO C)
Rilis perdana1972; 52 tahun lalu (1972)[1]
Rilis stabil
C17 / Juni 2018; 6 tahun lalu (2018-06)
Rilis pratayang
C2x (N2912) / 3 September 2022; 2 tahun lalu (2022-09-03)[2]
Tipe sistemStatis, lemah, manifes, nominal
Sistem operasiLintas platform
Ekstensi nama berkas.c, .h
Situs webwww.iso.org/standard/74528.html
www.open-std.org/jtc1/sc22/wg14/
Repositorihttps://www.iso.org/standard/74528.html, https://www.open-std.org/jtc1/sc22/wg14/
Implementasi utama
Dialek
Cyclone, Unified Parallel C, Split-C, Cilk, C*
Terpengaruh oleh
B (BCPL, CPL), ALGOL 68,[3] assembly, PL/I, FORTRAN
Mempengaruhi
Beragam: AMPL, AWK, csh, C++, C--, C#, Objective-C, D, Go, Java, JavaScript, JS++, Julia, Limbo, LPC, Perl, PHP, Pike, Processing, Python, Rust, Seed7, Vala, Verilog (HDL),[4] Nim, Zig
Sunting kotak info
Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini

Bahasa pemrograman C adalah bahasa pemrograman komputer bertujuan umum yang dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories. Dengan desain, fitur C dengan jelas mencerminkan kemampuan CPU yang ditargetkan.

Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa memengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.[5]

Sejak 2000, C secara konsisten menempati peringkat di antara dua bahasa teratas di indeks TIOBE, suatu indeks mengenai popularitas bahasa pemrograman.[6]

Perkembangan awal

[sunting | sunting sumber]

Asal usul C terkait erat dengan pengembangan sistem operasi Unix, yang awalnya diimplementasikan dalam bahasa assembly pada PDP-7 oleh Dennis Ritchie dan Ken Thompson, menggabungkan beberapa ide dari rekan-rekannya. Akhirnya, mereka memutuskan untuk mem-porting sistem operasi ke PDP-11. Versi asli Unix PDP-11 juga dikembangkan dalam bahasa assembly.

Artikel utama: B (bahasa pemrograman)

Thompson menginginkan bahasa pemrograman untuk mengembangkan utilitas untuk platform baru. Pada awalnya, dia mencoba menulis kompiler Fortran, tetapi segera menyerah. Sebaliknya, ia menciptakan versi sederhana dari bahasa pemrograman sistem yang baru dikembangkan yang disebut BCPL. Deskripsi resmi BCPL belum tersedia pada saat itu[14] dan Thompson memodifikasi sintaksisnya agar tidak terlalu bertele-tele, dan mirip dengan ALGOL sederhana yang dikenal sebagai SMALGOL.[15] Thompson menyebut hasilnya B.[8] Dia menggambarkan B sebagai "semantik BCPL dengan banyak sintaksis SMALGOL". Seperti BCPL, B memiliki kompiler bootstrapping untuk memfasilitasi porting ke mesin baru.[15] Namun, hanya sedikit utilitas yang akhirnya ditulis dalam B karena terlalu lambat, dan tidak dapat memanfaatkan fitur PDP-11 seperti kemampuan pengalamatan byte.

B dan C pertama Rilis

[sunting | sunting sumber]

Pada tahun 1971, Ritchie mulai menyempurnakan B, untuk memanfaatkan fitur PDP-11 yang lebih bertenaga. Tambahan yang signifikan adalah tipe data karakter. Dia menyebutnya B Baru (NB).[15] Thompson mulai menggunakan NB untuk menulis kernel Unix, dan persyaratannya membentuk arah pengembangan bahasa.[15][16] Hingga tahun 1972, tipe yang lebih kaya ditambahkan ke bahasa NB: NB memiliki array int dan char. Pointer, kemampuan untuk menghasilkan pointer ke tipe lain, semua tipe array, dan tipe yang akan dikembalikan dari fungsi semuanya juga ditambahkan. Array dalam ekspresi menjadi pointer. Kompiler baru telah ditulis, dan bahasanya diganti namanya menjadi C.[8]

Kompiler C dan beberapa utilitas yang dibuat dengannya disertakan dalam Unix Versi 2, yang juga dikenal sebagai Research Unix.

Struktur dan penulisan ulang kernel Unix

[sunting | sunting sumber]

Pada Versi 4 Unix, dirilis pada bulan November 1973, kernel Unix diimplementasikan kembali secara ekstensif di C.[8] Pada saat ini, bahasa C telah memperoleh beberapa fitur canggih seperti tipe struct.

Praprosesor diperkenalkan sekitar tahun 1973 atas desakan Alan Snyder dan juga sebagai pengakuan atas kegunaan mekanisme penyertaan file yang tersedia di BCPL dan PL/I. Versi aslinya hanya menyediakan file yang disertakan dan penggantian string sederhana: #include dan #define makro tanpa parameter. Segera setelah itu, diperluas, sebagian besar oleh Mike Lesk dan kemudian oleh John Reiser, untuk menggabungkan makro dengan argumen dan kompilasi bersyarat.[8]

Unix adalah salah satu kernel sistem operasi pertama yang diimplementasikan dalam bahasa selain bahasa assembly. Contoh sebelumnya termasuk sistem Multics (yang ditulis dalam PL/I) dan Master Control Program (MCP) untuk Burroughs B5000 (yang ditulis dalam ALGOL) pada tahun 1961. Sekitar tahun 1977, Ritchie dan Stephen C. Johnson membuat perubahan lebih lanjut pada bahasa untuk memfasilitasi portabilitas sistem operasi Unix. Kompiler C Portabel Johnson menjadi dasar untuk beberapa implementasi C pada platform baru.

Pada tahun 1978, Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama dari buku yang berjudul The C Programming Language. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini.

Versi bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan pemrogram sebagai C K&R. Pada buku The C Programming Language edisi kedua kemudian melingkupi ANSI C yang diperkenalkan belakangan.

ANSI C & ISO C

[sunting | sunting sumber]

Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American National Standards Institute (ANSI) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini sering kali dinamakan ANSI C, atau kadang-kadang C89.

Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization (ISO) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini sering kali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama.

Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelah C++, yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram yang banyak di cari

C89 memiliki 32 kata, juga dikenal sebagai keyword, yang merupakan kata-kata yang tidak dapat digunakan untuk tujuan apa pun selain yang telah ditentukan sebelumnya:

C99 memiliki lima kata lagi:

C11 memiliki tujuh kata lagi:[7]

  • _Alignas
  • _Alignof
  • _Atomic
  • _Generic
  • _Noreturn
  • _Static_assert
  • _Thread_local

Bahasa pemrograman C sering menggunakan pustaka sebagai metode utama dari ekstensinya. Dalam C, sebuah pustaka adalah seperangkat fungsi yang terkandung dalam satu file "arsip". Setiap pustaka mempunyai sebuah file header, yang berisi prototipe fungsi yang terkandung di dalam perpustakaan yang dapat digunakan oleh suatu program, dan deklarasi tipe data khusus dan simbol makro yang digunakan dengan fungsi ini.

Bahasa C sering kali dipakai untuk membuat file-file pustaka yang menyimpan fungsi-fungsi tertentu, dikarenakan C dapat dikompile menjadi bahasa mesin yang sangat cepat dan kecil ukurannya, kemudian bahasa pemrograman lain seperti Python yang akan menciptakan antar-muka dari fungsi-fungsi yang dikandungnya.

Pustaka yang paling sering dipakai adalah Pustaka Standar C, yang berisi fungsi-fungsi standar yang berasal dari ANSI C. Pustaka standar ini sekarang telah terkandung dalam hampir setiap kompiler C yang dipakai.

Contoh Hello, World!

[sunting | sunting sumber]
Program "Hello, World!" oleh Brian Kernighan (1978)

Contoh "hello, world", yang muncul pada edisi pertama dari K&R, telah menjadi model untuk program pengantar di sebagian besar buku teks pemrograman. Programnya mem-print "hello, world" ke output standar, yang biasanya berupa terminal atau tampilan layar.

Versi aslinya adalah:[8]

main()
{
    printf("hello, world\n");
}

Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!" dengan menggunakan pustaka stdio.h (ANSI C):

     #include <stdio.h>
     int main(void) 
     {
         printf("Hello, World!\n");
         return 0;
     }

Baris pertama program berisi arahan preprocessing, ditunjukkan oleh #include. Ini menyebabkan kompiler mengganti baris itu dengan seluruh teks dari standard header stdio.h, yang berisi deklarasi untuk fungsi input dan output standar seperti printf dan scanf. Tanda kurung sudut di sekitar stdio.h mengindikasikan bahwa stdio.h terletak menggunakan strategi pencarian yang lebih memilih header yang disediakan dengan kompiler ke header yang lain memiliki nama yang sama, sebagai lawan dari tanda kutip ganda yang biasanya menyertakan file header lokal atau khusus proyek.

Penggunaan

[sunting | sunting sumber]
Bahasa pemrograman C

C digunakan luar untuk pemrograman sistem dalam mengimplementasikan sistem operasi dan pengaplikasian sistem tertanam.[9] Ini untuk beberapa alasan:

  • Kode yang dihasilkan setelah kompilasi tidak menuntut banyak fitur sistem, dan dapat dipanggil dari beberapa kode boot secara langsung - itu sederhana untuk dijalankan.
  • Pernyataan dan ekspresi bahasa C biasanya memetakan dengan baik ke urutan instruksi untuk prosesor target, dan akibatnya ada permintaan run-time yang rendah pada sumber daya sistem - ini cepat untuk dijalankan.
  • Bahasanya membuatnya mudah untuk melapisi struktur ke blok data biner, memungkinkan data untuk dipahami, dinavigasi dan dimodifikasi - ini dapat menulis struktur data, bahkan file sistem.
  • Tergantung pada penghubung dan lingkungan, kode C juga dapat memanggil perpustakaan yang ditulis dalam bahasa rakitan, dan dapat dipanggil dari bahasa rakitan - ini beroperasi dengan baik dengan kode lain.
  • C memiliki ekosistem yang sangat matang dan luas, termasuk kompiler sumber terbuka, debugger dan utilitas, dan merupakan standar de facto. Kemungkinan driver sudah ada di C, atau ada arsitektur CPU yang mirip dengan back-end kompiler C, jadi ada pengurangan insentif untuk memilih bahasa lain.

Perbandingan dengan C++

[sunting | sunting sumber]

C++ pada awalnya disebut sebagai "C dengan Kelas" (C With Classes) dan diciptakan untuk memiliki fitur pemrograman berorientasi objek. Karena C++ berdasarkan dari C, maka kebanyakan kode C bisa dirakit di kompilator C++ dengan mudah. Perbedaan kecil contohnya kata "new" dan "delete" yang terdapat di kode C tidak bisa dirakit di C++ karena kata-kata ini adalah kata dipesan C++. Pustaka C biasanya bisa diimpor ke pustaka C++, tapi karena kompilator C dan C++ memiliki "name mangling" yang berbeda, maka perubahan kecil di kode C perlu dilakukan.[10]

Referensi

[sunting | sunting sumber]
  1. ^ (Ritchie 1993): "Thompson had made a brief attempt to produce a system coded in an early version of C—before structures—in 1972, but gave up the effort."
  2. ^ Fruderica (13 December 2020). "History of C". The cppreference.com. Diarsipkan dari versi asli tanggal October 24, 2020. Diakses tanggal 24 October 2020. 
  3. ^ (Ritchie 1993): "The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of."
  4. ^ "Verilog HDL (and C)" (PDF). The Research School of Computer Science at the Australian National University. June 3, 2010. Diarsipkan dari versi asli (PDF) tanggal November 6, 2013. Diakses tanggal August 19, 2013. 1980s: ; Verilog first introduced ; Verilog inspired by the C programming language 
  5. ^ Dennis Ritchie and Kenneth Thompson. The MIT Press. 1989. ISBN 978-0-262-29142-2. 
  6. ^ "TIOBE Index for October 2021". Diakses tanggal 2021-10-07. 
  7. ^ "ISO/IEC 9899:201x (ISO C11) Committee Draft" (PDF). Diarsipkan dari versi asli (PDF) tanggal December 22, 2017. Diakses tanggal September 16, 2011. 
  8. ^ Kernighan & Ritchie (1978), hlm. 6.
  9. ^ Dale, Nell B.; Weems, Chip (2014). Programming and problem solving with C++ (edisi ke-6th). Burlington, MA: Jones & Bartlett Learning. ISBN 978-1449694289. OCLC 894992484. 
  10. ^ parashift.com - Menggunakan pustaka C di proyek C++

Bacaan lanjutan

[sunting | sunting sumber]

Pranala luar

[sunting | sunting sumber]