Analisis Struktur Data dan Algoritma Python (Edisi 2)
Buku ini adalah buku teks klasik yang menjelaskan struktur data dan algoritma menggunakan Python. Meliputi ulasan dasar Python, analisis algoritma (notasi O besar), struktur data dasar (tumpukan, antrian, daftar), rekursi, pencarian dan pengurutan, serta algoritma pohon dan graf. Dengan daftar kode praktis, membantu pembaca memahami bagaimana mengimplementasikan berbagai tipe data abstrak secara efisien menggunakan Python.
Gambaran Umum Kursus
Ringkasan Konten
Buku ini merupakan buku teks klasik yang menjelaskan struktur data dan algoritma menggunakan Python. Meliputi ulangan dasar Python, analisis algoritma (notasi O besar), struktur data dasar (tumpukan, antrian, daftar), rekursi, pencarian dan pengurutan, algoritma pohon serta graf. Dengan daftar kode praktis, buku ini membantu pembaca memahami bagaimana mengimplementasikan berbagai tipe data abstrak secara efisien menggunakan Python.
Hanya dengan memahami struktur data dan algoritma secara mendalam, seseorang benar-benar dapat menguasai Python.
Penulis: Bradley Miller (Profesor Emeritus Ilmu Komputer di Luther College, Amerika Serikat), David Ranum (Insinyur Perangkat Lunak Kognitif IBM Watson)
Ucapan Terima Kasih: Terima kasih kepada rekan kerja Steve Hubbard atas umpan balik yang sangat banyak untuk edisi pertama serta bahan baru untuk edisi terbaru, serta kepada para kolega dari berbagai tempat yang telah mengirim email tentang kesalahan dan memberikan masukan. Terima kasih juga kepada Mary, Bob, dan staf lainnya di kafe Java John's di Decora, yang memperbolehkan kami menjadi "penulis tetap" saat liburan. Selain itu, terima kasih kepada seluruh staf Franklin, Beedle & Associates (terutama Jim Leisy dan Tom Sumner) atas kolaborasi yang menyenangkan. Terakhir, ucapan terima kasih khusus kepada istri kami, Jane Miller dan Brenda Ranum, yang cinta dan dukungan mereka membuat buku ini akhirnya menjadi kenyataan.
Tujuan Pembelajaran
- Memahami hubungan antara ilmu komputer, algoritma, dan pemrograman, serta menguasai konsep tipe data abstrak (ADT) dan penyembunyian informasi.
- Mahir menggunakan tipe data koleksi bawaan Python (daftar, tuple, himpunan, kamus) serta struktur kontrol (perulangan, percabangan, penanganan ekssepsi).
- Menguasai inti pemrograman berbasis objek Python: termasuk definisi kelas, metode konstruktor, overloading operator (seperti penjumlahan pecahan), aplikasi algoritma Euclidean, serta perbedaan antara kesamaan dalam dan luar.
- Perbandingan berbagai solusi algoritma: mampu menjelaskan empat pendekatan deteksi kata anagram (penghitungan, pengurutan, brute force, penghitungan frekuensi) beserta kompleksitas waktu masing-masing.
- Pengukuran performa container Python: menguasai efisiensi notasi O besar pada operasi utama Python list (List) dan dictionary (Dict), serta mampu membedakan perbedaan performa
pop()danpop(i). - Kemampuan verifikasi performa: mampu menggunakan modul
timeituntuk merancang eksperimen yang memverifikasi konsistensi antara kompleksitas teoritis dan waktu eksekusi aktual. - Memahami dan mampu membedakan karakteristik logis struktur data linear (tumpukan, antrian, deque, daftar).
- Mampu menggunakan koleksi dasar Python (seperti daftar) untuk mengimplementasikan tumpukan, antrian, dan deque kustom.
- Memahami penerapan tumpukan dalam pemrosesan ekspresi (konversi infix ke postfix, evaluasi postfix) serta penerapan antrian dalam simulasi sistem (simulasi printer).
- Menguasai prinsip dasar rekursi: mampu mengidentifikasi dan menulis fungsi rekursif yang mencakup kondisi dasar, evolusi status, dan pemanggilan diri sendiri.