Pendahuluan
Setiap programmer memiliki cerita tentang bagaimana mereka belajar membuat program. Penulis mulai belajar pemrograman sejak kecil, ketika ayah penulis bekerja di Digital Equipment Corporation, salah satu perusahaan pelopor di era awal komputasi modern. Penulis menulis program pertamanya di sebuah komputer rakitan (kit computer) yang dirakit oleh sang ayah di ruang basement.
Komputer tersebut tidak lebih dari sebuah motherboard polos yang terhubung ke keyboard tanpa casing, dan monitornya hanyalah sebuah tabung sinar katoda tanpa pelindung. Program pertama penulis adalah sebuah permainan tebak angka yang sangat sederhana, yang kira-kira terlihat seperti ini:
I'm thinking of a number! Try to guess the number I'm thinking of: 25
Too low! Guess again: 50
Too high! Guess again: 42
That's it! Would you like to play again? (yes/no) no
Thanks for playing!
Masih teringat rasa puas yang dirasakan saat melihat keluarga penulis memainkan sebuah permainan yang penulis buat sendiri dan yang berjalan persis seperti yang penulis inginkan.
Pengalaman awal tersebut memberikan dampak yang bertahan lama. Ada kepuasan nyata dalam membangun sesuatu yang memiliki tujuan dan mampu menyelesaikan sebuah masalah. Perangkat lunak yang penulis buat sekarang memang memenuhi kebutuhan yang jauh lebih besar dibandingkan dengan karya penulis saat kecil, tetapi rasa puas yang penulis dapatkan dari menciptakan sebuah program yang berfungsi dengan baik pada dasarnya masih sama.
Untuk Siapa Buku Ini Ditulis?
Tujuan buku ini adalah membawa kamu menguasai Python secepat mungkin sehingga kamu dapat membangun program yang benar-benar berfungsi, mulai dari game, visualisasi data, hingga aplikasi web, sembari mengembangkan fondasi pemrograman yang akan berguna sepanjang hidup kamu. Python Crash Course ditulis untuk pembaca dari segala usia yang belum pernah memprogram dengan Python, atau bahkan belum pernah melakukan pemrograman sama sekali.
Buku ini ditujukan bagi mereka yang ingin mempelajari dasar-dasar pemrograman dengan cepat agar bisa segera berfokus pada aplikasi yang menarik, serta bagi mereka yang suka menguji pemahaman terhadap konsep-konsep baru dengan menyelesaikan masalah yang bermakna. Python Crash Course juga sangat cocok bagi para pengajar di semua jenjang yang ingin memberikan pengantar pemrograman berbasis praktik kepada para siswanya.
Jika kamu sedang mengikuti perkuliahan dan menginginkan pengantar Python yang lebih ramah dibandingkan buku teks yang diwajibkan, buku ini juga dapat membantu mempermudah kelas yang kamu ikuti. Jika kamu ingin beralih karier, Python Crash Course dapat membantu kamu melakukan transisi menuju jalur karier yang lebih memuaskan. Buku ini telah terbukti efektif untuk beragam pembaca dengan latar belakang dan tujuan yang sangat luas.
Apa yang Akan Kamu Pelajari?
Tujuan buku ini adalah menjadikan kamu seorang programmer yang baik secara umum, dan seorang programmer Python yang andal secara khusus. Kamu akan belajar secara efisien dan membangun kebiasaan yang baik sambil memperoleh fondasi yang kuat dalam konsep-konsep dasar pemrograman. Setelah menyelesaikan Python Crash Course, kamu seharusnya siap untuk melangkah ke teknik Python yang lebih lanjut, dan bahasa pemrograman berikutnya akan terasa jauh lebih mudah untuk dipelajari.
Pada Bagian I buku ini, kamu akan mempelajari konsep-konsep dasar pemrograman yang perlu kamu ketahui untuk menulis program Python. Konsep-konsep ini sama dengan yang akan kamu pelajari ketika memulai hampir semua bahasa pemrograman. Kamu akan belajar tentang berbagai jenis data dan cara menyimpan data tersebut di dalam program. Kamu akan membangun kumpulan data, seperti list dan dictionary, serta memproses kumpulan data tersebut dengan cara yang efisien.
Kamu akan belajar menggunakan while loop dan if statement untuk menguji kondisi tertentu, sehingga kamu dapat menjalankan bagian kode tertentu selama kondisi tersebut terpenuhi, dan menjalankan bagian lainnya ketika kondisi tersebut tidak terpenuhi—sebuah teknik yang membantu mengotomatiskan banyak proses.
Kamu juga akan belajar menerima input dari pengguna agar program yang kamu buat menjadi interaktif, serta menjaga program tetap berjalan selama pengguna menginginkannya. Kamu akan mempelajari cara menulis function yang membuat bagian-bagian program dapat digunakan kembali, sehingga kamu hanya perlu menulis blok kode yang melakukan suatu tindakan sekali saja, lalu menggunakannya sebanyak yang kamu butuhkan. Konsep ini kemudian akan diperluas ke perilaku yang lebih kompleks dengan class, sehingga program yang relatif sederhana dapat merespons berbagai situasi.
Kamu akan belajar menulis program yang menangani error dengan cara yang baik. Setelah mempelajari masing-masing konsep dasar ini, kamu akan menulis sejumlah program yang tingkat kompleksitasnya semakin meningkat dengan memanfaatkan apa yang telah kamu pelajari. Terakhir, kamu akan mengambil langkah awal menuju pemrograman tingkat menengah dengan mempelajari cara menulis test untuk kode kamu, sehingga kamu dapat terus mengembangkan program tanpa khawatir memperkenalkan bug baru. Seluruh materi di Bagian I akan mempersiapkan kamu untuk menghadapi proyek-proyek yang lebih besar dan lebih kompleks.
Pada Bagian II, kamu akan menerapkan apa yang telah kamu pelajari di Bagian I ke dalam tiga contoh aplikasi. Kamu bisa mengerjakan satu, dua, atau ketiganya dalam urutan apa pun yang paling sesuai untuk kamu.
Pada aplikasi pertama, di Bab 12–14, kamu akan membuat sebuah game bergaya Space Invaders yang bernama Alien Invasion, yang mencakup beberapa level permainan dengan tingkat kesulitan yang terus meningkat. Setelah menyelesaikan aplikasi ini, kamu seharusnya sudah berada di jalur yang tepat untuk mampu mengembangkan game 2D buatanmu sendiri. Bahkan jika kamu tidak bercita-cita menjadi game programmer, mengerjakan proyek ini merupakan cara yang menyenangkan untuk mengaplikasikan banyak hal yang telah kamu pelajari di Bagian I.
Contoh kedua, di Bab 15–17, memperkenalkan kamu pada visualisasi data. Para data scientist menggunakan berbagai teknik visualisasi untuk membantu memahami jumlah informasi yang sangat besar. Kamu akan bekerja dengan dataset yang kamu hasilkan melalui kode, dataset yang kamu unduh dari sumber online, serta dataset yang diunduh secara otomatis oleh program kamu. Setelah menyelesaikan aplikasi ini, kamu akan mampu menulis program yang menyaring dataset berukuran besar dan membuat representasi visual dari berbagai jenis informasi.
Pada proyek ketiga, di Bab 18–20, kamu akan membangun sebuah aplikasi web kecil bernama Learning Log. Proyek ini memungkinkan kamu menyimpan catatan terstruktur tentang informasi yang telah kamu pelajari mengenai topik tertentu. Kamu dapat membuat catatan terpisah untuk berbagai topik, serta memungkinkan orang lain membuat akun dan mulai menulis catatan mereka sendiri. Kamu juga akan belajar cara melakukan deployment proyek agar dapat diakses oleh siapa saja secara online, dari mana pun di dunia.
Mengapa Python?
Setiap tahun, penulis mempertimbangkan apakah akan terus menggunakan Python atau beralih ke bahasa lain yang lebih baru. Namun, penulis terus memilih untuk berfokus pada Python karena banyak alasan. Python adalah bahasa yang sangat efisien: program yang kamu tulis dapat melakukan lebih banyak hal dengan jumlah baris kode yang lebih sedikit dibandingkan banyak bahasa lainnya. Sintaks Python juga membantu kamu menulis kode yang rapi. Kode kamu akan lebih mudah dibaca, lebih mudah di-debug, serta lebih mudah dikembangkan dan diperluas dibandingkan dengan bahasa lain.
Banyak orang menggunakan Python untuk berbagai keperluan: membuat game, membangun aplikasi web, menyelesaikan masalah bisnis, serta mengembangkan tools internal di berbagai perusahaan yang menarik. Python juga banyak digunakan di bidang ilmiah, baik untuk riset akademis maupun pekerjaan terapan.
Salah satu alasan terpenting penulis terus menggunakan Python adalah komunitasnya, yang terdiri dari kelompok orang yang sangat beragam dan terbuka. Komunitas sangat penting bagi para programmer karena pemrograman bukanlah aktivitas yang dilakukan sendirian. Sebagian besar dari kita, bahkan programmer yang paling berpengalaman sekalipun, perlu meminta saran dari orang lain yang telah menyelesaikan masalah serupa sebelumnya. Memiliki komunitas yang terhubung dengan baik dan saling mendukung sangat krusial untuk membantu kamu memecahkan masalah, dan komunitas Python sepenuhnya mendukung orang-orang yang mempelajari Python sebagai bahasa pemrograman pertama mereka maupun yang datang ke Python dengan latar belakang bahasa lain.
Python adalah bahasa yang sangat baik untuk dipelajari, jadi mari kita mulai!