1 poin oleh GN⁺ 2024-04-20 | 1 komentar | Bagikan ke WhatsApp

Programming -- Principles and Practice Using C++ (3rd Edition)

  • "Programming -- Principles and Practice Using C++ (3rd Edition)" yang diterbitkan oleh Addison-Wesley dijadwalkan terbit pada April 2024
    • ISBN: 978-0-13-830868-1
    • Bisa dibeli langsung dari situs web penerbit

Tentang buku ini

  • Buku ini akan membantu siapa pun yang mau berusaha keras mempelajari prinsip dasar pemrograman dan mengembangkan keterampilan praktis yang dibutuhkan untuk pemrograman nyata
    • Edisi sebelumnya telah berhasil digunakan oleh ribuan mahasiswa
  • Edisi revisi ini memiliki karakteristik berikut:
    • Mengasumsikan bahwa tujuan pembaca adalah menulis program yang cukup baik untuk digunakan dan dipelihara oleh orang lain
    • Berfokus pada konsep dan teknik dasar, bukan detail teknis bahasa yang samar
    • Bukan pengantar bahasa pemrograman, melainkan pengantar pemrograman secara umum, termasuk pemrograman prosedural, berorientasi objek, dan generik
    • Mencakup baik teknik tingkat rendah yang diperlukan untuk menggunakan perangkat keras secara efisien maupun teknik modern tingkat tinggi
    • Memberikan dasar yang kuat untuk menggunakan tipe yang berguna, akurat, dan aman, serta menulis kode yang dapat dipelihara dan efisien
    • Terutama dirancang bagi orang yang belum memiliki pengalaman pemrograman, tetapi programmer berpengalaman juga menganggap edisi sebelumnya berguna sebagai pengantar konsep dan teknik yang lebih efektif
    • Mencakup secara luas konsep penting, desain dan teknik pemrograman, fitur bahasa, serta library
    • Menggunakan C++ terbaru (C++20 dan C++23)
    • Mencakup desain dan penggunaan tipe bawaan serta tipe buatan pengguna, bersama input, output, komputasi, dan grafik/GUI sederhana
    • Memberikan pengantar tentang container dan algoritma di C++ standard library

Tentang penulis

  • Bjarne Stroustrup adalah perancang dan implementator asli C++, serta penulis "The C++ Programming Language", "A Tour of C++", dan banyak publikasi populer maupun akademis
  • Ia adalah profesor ilmu komputer di Columbia University, New York City
  • Dr. Stroustrup adalah anggota U.S. National Academy of Engineering serta fellow IEEE, ACM, dan CHM
  • Ia menerima Charles Stark Draper Prize 2018, Computer Pioneer Award 2018 dari IEEE Computer Society, dan IET Faraday Medal 2017

Tentang PPP3

  • "Programming: Principles and Practice using C++ (3rd Edition)" (PPP3) adalah buku pengantar pemrograman untuk orang yang belum memiliki pengalaman pemrograman
  • Buku ini juga akan berguna bagi mereka yang punya sedikit pengalaman pemrograman dan ingin meningkatkan gaya serta teknik, atau sekadar mempelajari C++ terbaru
  • Dirancang untuk digunakan di kelas, tetapi ditulis dari sudut pandang buku belajar mandiri
  • Versi sebelumnya dari buku ini telah digunakan di Texas A&M University dan banyak tempat lain sebagai dasar kelas pemrograman pertama untuk mahasiswa teknik elektro, teknik komputer, dan ilmu komputer
  • Mereka yang pernah melihat PPP2 akan menyadari bahwa ukuran PPP3 kira-kira setengahnya. Hal-hal yang dilakukan untuk menguranginya adalah sebagai berikut:
    • Memperkuat bab-bab dasar yang biasanya dibahas dalam satu semester dengan memanfaatkan bagian inti C++20 dan C++23, serta menulis ulang kode bab grafik/GUI berbasis Qt demi portabilitas (misalnya browser dan ponsel)
    • Bab yang lebih khusus (dikenal sebagai "widening the view" di PPP2) dipindahkan ke web agar bisa digunakan sesuai kebutuhan
    • Menghapus materi referensi murni. Kini lebih banyak materi yang lebih mutakhir tersedia di web (misalnya cppreference.com)
  • Materi pendukung PPP2 masih tetap tersedia (slide kuliah, kode, dan lain-lain)

Sampel PPP3

  • Kata pengantar: apa yang dijanjikan dan tidak dijanjikan buku ini
  • Daftar isi
  • Bab 0: Sepatah kata untuk pembaca. Beberapa catatan tentang pendekatan yang diambil dalam buku ini
  • Bab 10: Model tampilan. Bab contoh. Jika Anda benar-benar pemula, jangan baca bab ini sekarang. Bab ini dipublikasikan untuk menunjukkan kepada pengajar dan pembaca berpengalaman sejauh mana isi buku ini mencapai sekitar 5 minggu pembelajaran (dengan asumsi dua bab per minggu). Sekaligus untuk sedikit memamerkan C++ modern

Informasi dukungan

  • Tautan ke implementasi C++ dan lingkungan pengembangan perangkat lunak (serta sedikit saran untuk memulai)
  • Cara menggunakan modul (termasuk penjelasan cara membangun modul PPP menggunakan PPP_support.h)
  • Modul PPP untuk saat modul sudah bisa digunakan
  • Header "PPP.h" untuk menggunakan modul std dan PPP dengan cara termudah
  • Header "PPPheaders.h" untuk saat harus kembali menggunakan file header
  • Dukungan GUI termasuk library antarmuka pengguna grafik/GUI PPP3 (di Bab 10-14). Untuk menjalankan kode ini, Anda harus memasang Qt. Lihat manual pengguna
  • Kode contoh dari beberapa bab (TBD)
  • Errata
  • Slide kuliah yang diperbarui untuk PPP3 berbasis PPP
  • Panduan gaya penulisan kode PPP
  • Materi soal latihan (TBD)

Bab-bab PPP2

  • Bab-bab ini ditulis menggunakan C++14, bukan C++23, tetapi tetap benar dan memperkenalkan topiknya dengan cara yang masuk akal
    • Bab 1: Komputer, manusia, dan pemrograman
    • Bab 11: Kustomisasi input/output
    • Bab 22: Idealisme dan sejarah
    • Bab 23: Pemrosesan teks
    • Bab 24: Komputasi numerik
    • Bab 25: Pemrograman sistem embedded
    • Bab 26: Pengujian
    • Bab 27: Bahasa pemrograman C
  • Glosarium

Terjemahan

  • Belum ada. Untuk terjemahan edisi sebelumnya, lihat halaman sampul buku penulis

Pendapat GN⁺

  • PPP adalah buku terkenal untuk pemula pemrograman, dan kini edisi ke-3 hadir dengan pemanfaatan C++20/23 serta perombakan/penyederhanaan besar pada isinya. Ini kabar yang menggembirakan.
  • Khususnya, perombakan total bagian GUI berbasis Qt dapat dilihat sebagai contoh bahwa Qt telah menjadi framework GUI de facto di ekosistem C++.
  • Tampaknya teknologi C++ modern seperti modularisasi diadopsi secara aktif dan keterkaitan dengan web juga diperkuat. Terutama, adanya versi yang bisa langsung dijalankan di browser web terasa sangat cocok untuk pendidikan.
  • Namun, karena menggunakan C++ terbaru, ada kemungkinan pemula justru merasa bingung. Untuk pemula, memulai dengan C++ bergaya C mungkin masih bisa jadi pilihan yang lebih baik.
  • Penulisnya, Bjarne, adalah pencipta C++ dan telah memimpin standardisasinya, jadi ini tampaknya akan menjadi buku yang paling otoritatif. Bukan hanya pemula, para profesional pun bisa mempelajari best practice dan tips pemakaian yang dipilih oleh Bjarne.

1 komentar

 
GN⁺ 2024-04-20
Opini Hacker News
  • Muncul kekhawatiran bahwa karena fitur modul C++20 masih belum didukung penuh oleh sebagian besar compiler, "import std;" tidak berfungsi. Hal ini bisa membingungkan pemula.

  • Penggunaan Qt alih-alih FLTK pada bab GUI merupakan perubahan besar, dan diperkirakan akan mendapat respons positif karena Qt banyak digunakan di industri. Namun, belum jelas bagaimana pengaruhnya terhadap kurva pembelajaran.

  • Dalam kode Stroustrup, "using namespace std;" digunakan sehingga prefiks std:: bisa dihilangkan, yang meningkatkan keterbacaan kode.

  • Muncul pertanyaan tentang ketidakkonsistenan penggunaan spasi setelah #include dalam kode Stroustrup.

  • Di masa lalu, hampir semua hal seperti UI dan parsing API ditangani menggunakan C++, tetapi sekarang posisi C++ dalam stack pengembangan telah turun ke lapisan yang lebih bawah.

  • Ada pengalaman mempelajari edisi sebelumnya dari buku ini secara mendalam, dan itu sangat membantu meningkatkan pemahaman tentang C++. Namun, banyak juga orang yang menulis kode C++ tanpa membaca buku semacam ini.

  • Diperkenalkan sebuah buku berjudul "C++ Annotations" yang memuat informasi terbaru tentang C++.

  • Jumlah halaman dan bobot edisi ke-3 berkurang hingga sekitar setengah dibandingkan edisi ke-2.

  • Panjang buku berkurang karena bagian Part IV: Broadening the View dari edisi ke-2 dihapus, dan isi tersebut bisa dilihat secara online. Topik-topik yang memanfaatkan C++11/14 masih tetap relevan.

  • Sedang mencari saran terkait masalah sulitnya menemukan IDE atau compiler yang mendukung C++20 sehingga "import std;" bisa berfungsi.