{"id":1845,"date":"2024-03-01T05:53:35","date_gmt":"2024-03-01T05:53:35","guid":{"rendered":"https:\/\/blog.uts.ac.id\/jul\/?p=1845"},"modified":"2024-03-01T06:14:37","modified_gmt":"2024-03-01T06:14:37","slug":"mengenal-bahasa-pemrograman-c","status":"publish","type":"post","link":"https:\/\/blog.uts.ac.id\/jul\/2024\/03\/01\/mengenal-bahasa-pemrograman-c\/","title":{"rendered":"Mengenal Bahasa Pemrograman C++"},"content":{"rendered":"\n<h2 id=\"apa-itu-c\">Apa itu C++?<\/h2>\n\n\n\n<p>C++ adalah bahasa pemrograman yang dibuat oleh&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Bjarne_Stroustrup\" target=\"_blank\" rel=\"noreferrer noopener\">Bjarne Stroustrup<\/a>.&nbsp;<sup><a href=\"https:\/\/www.petanikode.com\/cpp-untuk-pemula\/#fn:1\">1<\/a><\/sup><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/d\/da\/BjarneStroustrup.jpg\" alt=\"Bjarne Stroustrup, creator bahasa C++\" title=\"Bjarne Stroustrup, creator bahasa C++\" \/><figcaption class=\"wp-element-caption\">Bjarne Stroustrup, creator bahasa C++<\/figcaption><\/figure>\n\n\n\n<p>Seperti namanya, Simbol \u201c<code>++<\/code>\u201d pada huruf C berarti&nbsp;<em>increment<\/em>&nbsp;dari C.<\/p>\n\n\n\n<p>Sebenarnya C++ sama seperti bahasa C, tapi memiliki fitur yang lebih banyak dibandingkan C.<\/p>\n\n\n\n<p>Karena itulah dinamakan C++ (dibaca&nbsp;<em>si plus plus<\/em>).<\/p>\n\n\n\n<p>Lalu apa bedanya dengan C#?<\/p>\n\n\n\n<p><a href=\"https:\/\/www.petanikode.com\/topik\/csharp\/\">Bahasa C#<\/a>&nbsp;dibuat oleh Microsoft dan berjalan di atas mesin virtual .Net. Sedangkan C++ berjalan secara&nbsp;<em>native<\/em>&nbsp;seperti C.<\/p>\n\n\n\n<p>Dari segi sintaks, C++ dengan C# cukup berbeda. Menurut saya, C++ lebih mirip C dan C# lebih mirip&nbsp;<a href=\"https:\/\/www.petanikode.com\/tutorial\/java\/\">Java<\/a>.<\/p>\n\n\n\n<p>Ada juga yang beranggapan kalau C# adalah peningkatan dari C++.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/pemula\/cpp-cs.png\" alt=\"Transisi C++ menjadi C#\" title=\"\" \/><\/figure>\n\n\n\n<p>Itu bisa saja benar, karena ekosistem C#\u2013menurut saya\u2013lebih baik dibandingkan C++.<\/p>\n\n\n\n<p>Tapi tenang saja, tidak ada bahasa yang paling baik dan buruk kok. Semua bahasa punya kelebihan dan kekurangan masing-masing.<\/p>\n\n\n\n<p>C# memang bagus, tapi C++ lebih cepat karena berjalan secara&nbsp;<em>native<\/em>.<\/p>\n\n\n\n<p>Bahasa C++ sendiri banyak terinspirasi dari&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Simula\" target=\"_blank\" rel=\"noreferrer noopener\">bahasa Simula<\/a>.<\/p>\n\n\n\n<p>Mengapa bisa begitu?<\/p>\n\n\n\n<p>Mari kita lihat sejarahnya\u2026<\/p>\n\n\n\n<h2 id=\"sejarah-c\">Sejarah C++<\/h2>\n\n\n\n<p><strong>Pada tahun 1979<\/strong>, seorang ilmuan komputer asal Denmark bernama Bjarne Stroustrup mulai membuat bahasa pemrograman C++.<\/p>\n\n\n\n<p>Motivasi awalnya sih, karena pengalaman beliau saat tesis dulu.<\/p>\n\n\n\n<p>Waktu itu, saat mengerjakan tesis..<\/p>\n\n\n\n<p>Beliau memiliki temuan.. kalau fitur bahasa Simula sangat membantu untuk membuat aplikasi dalam sekala besar.<\/p>\n\n\n\n<p>Tapi bahasa Simula sangat lambat.<\/p>\n\n\n\n<p>Cerita berikutnya dimulai saat ia bekerja di AT&amp;T Bell Labs.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/pemula\/bjarne.jpg\" alt=\"Bjarne Stroustrup\" title=\"\" \/><\/figure>\n\n\n\n<p>Ia mendapatkan masalah saat menganalisis kernel Unix yang berhubungan dengan komputasi terdistirbusi.<\/p>\n\n\n\n<p>Sejak saat itu, ia mengingat kembali pengalaman waktu mengerjakan tesis.<\/p>\n\n\n\n<p>Akhirnya ia membuat bahasa baru dengan mengembangkan bahasa C dan memiliki fitur seperti Simula.<\/p>\n\n\n\n<p>Selain Simula, bahasa C juga terinspirasi dari bahasa ALGOL 86, Ada, CLU, dan ML.<\/p>\n\n\n\n<p><strong>Pada Tahun 1982<\/strong>, bahasa baru ciptaan Bjarne ini diberi nama C++ dan juga ditambahkan beberapa fitur seperti&nbsp;<em>class<\/em>,&nbsp;<em>virtual function<\/em>,&nbsp;<em>operator overloading<\/em>,&nbsp;<em>references<\/em>,&nbsp;<em>constants<\/em>, dll.<\/p>\n\n\n\n<p><strong>Pada tahun 1985<\/strong>, Buku&nbsp;<em>The C++ Programming Language<\/em>&nbsp;diterbitkan dan menjadi satu-satunya referensi bahasa C++ saat itu.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/pemula\/buku-cpp.jpg\" alt=\"Buku The C++ Programming Language\" title=\"Buku The C++ Programming Language\" \/><figcaption class=\"wp-element-caption\">Buku The C++ Programming Language<\/figcaption><\/figure>\n\n\n\n<p><strong>Pada tahun 1989<\/strong>, C++ versi 2.0 dirilis dan diikuti rilis buku&nbsp;<em>The C++ Prigramming Language Second Edition<\/em>. Beberapa fitur juga ditambahkan pada versi ini, seperti&nbsp;<em>abstract<\/em>&nbsp;dan&nbsp;<em>protected member<\/em>.<\/p>\n\n\n\n<p><strong>Pada tahun 1998<\/strong>, C++ memiliki standar bahasa yang dinamakan C++98.<\/p>\n\n\n\n<h2 id=\"versi-bahasa-c\">Versi Bahasa C++<\/h2>\n\n\n\n<p>Versi bahasa C++ akan mengikuti standarisasi yang digunakan. Contoh, untuk C++98 artinya versi bahasa C++ yang menggunakan standarisasi tahun 98.<\/p>\n\n\n\n<p>Standarisasi bahasa C++ dilakukan oleh ISO&nbsp;<em>(International Organization for Standardization)<\/em>.<\/p>\n\n\n\n<p>Mengapa sih harus ada standarisasi?<\/p>\n\n\n\n<p>Ini agar bahasa C++ tidak diimplementasikan seenaknya. Soalnya banyak yang membuat&nbsp;<em>compiler<\/em>&nbsp;bahasa C++.<\/p>\n\n\n\n<p>Tujuan dari standarisasi ini agar semua&nbsp;<em>compiler<\/em>&nbsp;tersebut sama.<\/p>\n\n\n\n<p>Bayangkan aja.. ada&nbsp;<em>compiler<\/em>&nbsp;C++ buatan IBM lalu ada juga buatan komunitas GNU.<\/p>\n\n\n\n<p>Kalau implementasi mereka berbeda, kita bisa repot nantinya.<\/p>\n\n\n\n<p>Harus belajar bahasa C++ versinya IBM dan versinya GNU.<\/p>\n\n\n\n<p>Karena itulah, standarisasi diperlukan.<\/p>\n\n\n\n<p>Saat ini C++ sudah memiliki beberapa stadar:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Tahun<\/th><th>Nama Standar C++<\/th><th>Nama Sebutan<\/th><\/tr><\/thead><tbody><tr><td>1998<\/td><td>ISO\/IEC 14882:1998[23]<\/td><td>C++98<\/td><\/tr><tr><td>2003<\/td><td>ISO\/IEC 14882:2003[24]<\/td><td>C++03<\/td><\/tr><tr><td>2011<\/td><td>ISO\/IEC 14882:2011[25]<\/td><td>C++11, C++0x<\/td><\/tr><tr><td>2014<\/td><td>ISO\/IEC 14882:2014[26]<\/td><td>C++14, C++1y<\/td><\/tr><tr><td>2017<\/td><td>ISO\/IEC 14882:2017[9]<\/td><td>C++17, C++1z<\/td><\/tr><tr><td>2020<\/td><td>Sedang dibuat<\/td><td>C++20,[17] C++2a<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Setiap ada fitur baru, maka pada versi tersebut akan dibuat standarisasinya.<\/p>\n\n\n\n<p>Terus, kita akan pakai versi yang mana?<\/p>\n\n\n\n<p>Jika kita baru belajar, sebenarnya kita tidak perlu pusing memikirkan ini.<\/p>\n\n\n\n<p>Karena di setiap versi, basic-nya akan sama saja.<\/p>\n\n\n\n<p>Yang berbeda adalah fitur-fiturnya. Ada fungsi yang ditambahkan dan ada juga yang dihapus. Untuk dasar seperti variabel, if, loop, fungsi dan lain-lain.. di semua versi akan sama.<\/p>\n\n\n\n<h2 id=\"contoh-aplikasi-yang-dibuat-dengan-c\">Contoh aplikasi yang dibuat dengan C++<\/h2>\n\n\n\n<p>Ada banyak sekali aplikasi yang dibuat dengan C++, saya akan sebutkan beberapa yang saya tahu saja ya..<\/p>\n\n\n\n<p>Pertama ada&nbsp;<a href=\"https:\/\/inkscape.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Inkscape<\/strong><\/a>, inkscape adalah aplikasi untuk desain vektor seperti CorelDraw dan Adobe Illustrator. Inkscape dibuat dengan C++ dan&nbsp;<a href=\"https:\/\/www.petanikode.com\/topik\/gtk\/\">GTK+ 3<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/pemula\/inkscape.png\" alt=\"Inkscape\" title=\"\" \/><\/figure>\n\n\n\n<p>Kedua ada&nbsp;<a href=\"https:\/\/krita.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Krita<\/strong><\/a>, aplikasi ini merupakan aplikasi untuk menggambar dan melukis. Krita dibuat dengan C++ dan&nbsp;<a href=\"https:\/\/www.petanikode.com\/topik\/qt\/\">Qt 5<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/pemula\/krita.jpeg\" alt=\"Krita\" title=\"\" \/><\/figure>\n\n\n\n<p>Selain kedua aplikasi keren di atas, masih banyak lagi aplikasi yang dibuat dengan C++:<\/p>\n\n\n\n<ul>\n<li>Winamp Media Player;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.petanikode.com\/topik\/mysql\/\">MySQL Server<\/a>;<\/li>\n\n\n\n<li>Mozilla Firefox;<\/li>\n\n\n\n<li>Thunderbird;<\/li>\n\n\n\n<li>Google Chrome;<\/li>\n\n\n\n<li>Microsoft Office;<\/li>\n\n\n\n<li>Adobe Photoshop;<\/li>\n\n\n\n<li>Adobe Illustrator;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.petanikode.com\/tutorial\/java\/\">Java Virtual Machine (JVM)<\/a>;<\/li>\n\n\n\n<li>Desktop Environment: KDE;<\/li>\n\n\n\n<li>Desktop Environment: Apple MacOS UI (Aqua);<\/li>\n\n\n\n<li>dan masih banyak lagi..<\/li>\n<\/ul>\n\n\n\n<p>Keren \u2018kan C++ \ud83d\ude0d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apa itu C++? C++ adalah bahasa pemrograman yang dibuat oleh&nbsp;Bjarne Stroustrup.&nbsp;1 Seperti namanya, Simbol \u201c++\u201d pada huruf C berarti&nbsp;increment&nbsp;dari C. Sebenarnya C++ sama seperti bahasa C, tapi memiliki fitur yang lebih banyak dibandingkan C. Karena itulah dinamakan C++ (dibaca&nbsp;si plus plus). Lalu apa bedanya dengan C#? Bahasa C#&nbsp;dibuat oleh Microsoft dan berjalan di atas mesin [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":1846,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1845"}],"collection":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/comments?post=1845"}],"version-history":[{"count":3,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1845\/revisions"}],"predecessor-version":[{"id":1855,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1845\/revisions\/1855"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/media\/1846"}],"wp:attachment":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/media?parent=1845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/categories?post=1845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/tags?post=1845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}