
BYTHON
Python dari Dasar Sampai Profesional
Materi lengkap, contoh kode siap jalan, latihan bertahap, studi kasus, mini project, dan checklist praktik untuk membantu pembaca belajar Python secara mandiri maupun sebagai bahan ajar.
Progres Belajar
Tandai bab yang selesai agar progres tersimpan otomatis di perangkat ini.
Coba kata kunci yang lebih singkat atau berbeda.
Cara Menggunakan E-Book Interaktif Ini
Pahami inti materi sebelum menyalin kode.
Salin contoh kode, jalankan, lalu ubah nilainya.
Tandai latihan yang sudah dikerjakan di versi HTML.
Gabungkan bab-bab menjadi portofolio.
Fitur Interaktif
Sidebar navigasi, pencarian materi, mode gelap, tombol salin kode, checklist latihan, dan panel tanya-jawab.
Tips Belajar Cepat
Jangan hanya membaca. Ketik ulang kode, buat error sengaja, lalu pelajari penyebabnya. Itulah cara paling cepat paham Python.
Daftar Isi Interaktif
E-Book Buku Ajar Lengkap dengan Contoh, Latihan, Studi Kasus, dan Mini Project
Disusun untuk pembelajaran mandiri, perkuliahan, dan praktik implementasi nyata
| Dasar syntax, variabel, tipe data | Logika if, loop, fungsi | Data list, dict, file, database |
|---|---|---|
| Profesional OOP, testing, typing | Aplikasi web, API, data, automation | Project portfolio siap pakai |
Versi pembelajaran: Python 3.14+ | Bahasa Indonesia | Praktis dan mudah diterapkan
Catatan: seluruh contoh kode dapat disalin ke file .py dan dijalankan di terminal/VS Code.
Kata Pengantar
E-book ini dirancang sebagai buku ajar Python yang dapat digunakan oleh pemula, mahasiswa, pengajar, maupun pembaca yang ingin naik ke level profesional. Gaya pembahasan dibuat bertahap: dimulai dari alasan Python populer, instalasi, logika dasar, struktur data, fungsi, OOP, file, database, web, API, data science, automation, testing, typing, hingga cara membangun proyek dan kebiasaan kerja developer profesional.
Setiap bab memuat konsep inti, contoh kode, penjelasan cara kerja, checklist praktik, dan latihan. Tujuannya bukan hanya membuat pembaca hafal sintaks, tetapi mampu berpikir seperti programmer: memecah masalah, membuat solusi, menguji program, memperbaiki error, dan menulis kode yang rapi.
Cara terbaik menggunakan e-book ini: Baca satu bab, ketik ulang contoh kodenya, ubah sedikit nilainya, jalankan, lalu kerjakan latihan. Jangan hanya membaca. Python dipahami paling cepat dengan praktik berulang.Daftar Isi Ringkas
- 1. Mengenal Python dan Cara Belajar yang Benar
- 2. Instalasi, Editor, dan Lingkungan Kerja
- 3. Sintaks Dasar, Variabel, dan Tipe Data
- 4. Input, Output, Operator, dan Formatting
- 5. Percabangan: if, elif, else
- 6. Perulangan: for, while, break, continue
- 7. String dan Manipulasi Teks
- 8. List, Tuple, Set, dan Dictionary
- 9. Fungsi dan Cara Memecah Program
- 10. Scope, Lambda, Comprehension, dan Generator
- 11. Modul, Package, Virtual Environment, dan pip
- 12. File Handling, JSON, CSV, dan pathlib
- 13. Error Handling, Debugging, dan Logging
- 14. Object-Oriented Programming
- 15. Dataclass, Enum, dan Desain Data
- 16. Type Hint, Clean Code, dan Dokumentasi
- 17. Testing dengan unittest dan pytest
- 18. Database SQLite dan Dasar SQL
- 19. Web, HTTP, API, dan FastAPI/Flask Overview
- 20. Data Analysis: NumPy, Pandas, dan Visualisasi
- 21. Automation, Web Scraping Etis, dan Task Scheduler
- 22. Concurrency: Threading, Asyncio, dan Multiprocessing
- 23. Keamanan Dasar, Environment Variable, dan Secret
- 24. Packaging, CLI App, dan Distribusi Project
- 25. Mini Project 1: Kalkulator dan Validasi Input
- 26. Mini Project 2: Aplikasi Catatan CLI + File JSON
- 27. Mini Project 3: Manajemen Data Mahasiswa SQLite
- 28. Mini Project 4: API Sederhana
- 29. Roadmap Profesional dan Portofolio
- 30. Lampiran: Cheat Sheet, Glossary, dan Referensi
Landasan Referensi dan Versi Python
Python adalah bahasa pemrograman yang dirancang agar mudah dibaca, fleksibel, dan dapat digunakan untuk banyak bidang seperti aplikasi web, otomasi, analisis data, kecerdasan buatan, scripting, dan pengembangan perangkat lunak. Dokumentasi resmi Python menyediakan tutorial, library reference, language reference, setup guide, dan HOWTO sebagai rujukan utama.
E-book ini mengikuti pola praktik Python modern. Saat penyusunan, dokumentasi resmi Python menampilkan Python 3.14.5 sebagai dokumentasi aktif. Python 3.14 memperkenalkan beberapa sorotan seperti template string literals, deferred evaluation of annotations, dan dukungan subinterpreters pada standard library. Materi inti di buku ini tetap dapat dipakai pada Python 3.10 ke atas, selama fitur yang sangat baru disesuaikan dengan versi yang digunakan.
Catatan versi: Gunakan Python versi terbaru yang stabil apabila memungkinkan. Untuk tugas kuliah atau server produksi, gunakan versi yang sesuai dengan aturan dosen, kampus, atau tim kerja.1. Mengenal Python dan Cara Belajar yang Benar
Python adalah bahasa pemrograman tingkat tinggi. Artinya, sintaksnya dibuat dekat dengan cara manusia membaca instruksi, bukan dekat dengan bahasa mesin. Python cocok untuk pemula karena struktur kodenya ringkas, tetapi tetap kuat untuk proyek profesional.
Konsep inti
- Python bersifat interpreted: kode dijalankan oleh interpreter Python.
- Python memakai indentation atau spasi menjorok sebagai bagian dari struktur program.
- Python digunakan dalam web development, data analysis, machine learning, automation, scripting, aplikasi desktop, dan backend API.
- Belajar Python sebaiknya dilakukan dengan mengetik kode, menjalankan, membaca error, lalu memperbaikinya.
Program Python pertama
print("Halo, Python!")
print("Saya sedang belajar membuat program.")Penjelasan contoh
- print() digunakan untuk menampilkan teks ke layar.
- Teks ditulis di antara tanda kutip.
- Setiap baris dieksekusi dari atas ke bawah.
- Program kecil seperti ini adalah fondasi sebelum masuk ke logika yang lebih kompleks.
Checklist Praktik: [ ] Sudah menginstal Python.
[ ] Sudah bisa menjalankan file .py.
[ ] Sudah memahami bahwa error adalah bagian normal dari belajar.Latihan Mandiri
1. Jalankan program hello.py di terminal.
2. Ubah teks di dalam print() menjadi nama Anda.
3. Tambahkan 3 baris print() lain yang menjelaskan tujuan belajar Anda.2. Instalasi, Editor, dan Lingkungan Kerja
Sebelum menulis banyak kode, siapkan lingkungan kerja. Lingkungan kerja yang rapi membuat proses belajar lebih mudah, terutama saat proyek mulai memakai banyak file dan package.
Konsep inti
- Gunakan Python dari python.org, Anaconda, atau package manager sesuai sistem operasi.
- Editor yang populer: VS Code, PyCharm, Jupyter Notebook, dan terminal biasa.
- Terminal digunakan untuk menjalankan perintah seperti python main.py, pip install, dan membuat virtual environment.
- Virtual environment memisahkan package antar proyek agar tidak bentrok.
Membuat virtual environment
# Windows
python -m venv .venv
.venv\Scripts\activate
# macOS / Linux
python3 -m venv .venv
source .venv/bin/activate
# Cek versi Python
python --versionPenjelasan contoh
- python -m venv .venv membuat folder lingkungan virtual bernama .venv.
- activate mengaktifkan lingkungan tersebut.
- Setelah aktif, package yang dipasang dengan pip akan masuk ke proyek itu saja.
- Perintah python --version membantu memastikan versi Python yang digunakan.
Checklist Praktik: [ ] Paham fungsi terminal.
[ ] Paham fungsi virtual environment.
[ ] Paham perbedaan file .py dan perintah interaktif Python.1. Buat folder belajar-python.
2. Buat virtual environment di dalamnya.
3. Jalankan file main.py dari terminal.
3. Sintaks Dasar, Variabel, dan Tipe Data
Variabel adalah tempat menyimpan nilai. Dalam Python, kita tidak perlu menuliskan tipe data secara eksplisit saat membuat variabel. Python akan mengenali tipe data dari nilai yang diberikan.
Konsep inti
- int untuk bilangan bulat.
- float untuk bilangan desimal.
- str untuk teks.
- bool untuk nilai True atau False.
- None untuk nilai kosong/tidak ada.
- Nama variabel sebaiknya jelas, huruf kecil, dan memakai underscore jika lebih dari satu kata.
Variabel dan tipe data
nama = "Adi"
umur = 20
tinggi = 169.5
aktif = True
saldo = None
print(nama, type(nama))
print(umur, type(umur))
print(tinggi, type(tinggi))
print(aktif, type(aktif))
print(saldo, type(saldo))Penjelasan contoh
- type() menampilkan tipe data dari suatu nilai.
- Python tidak membutuhkan deklarasi seperti int umur = 20.
- Nilai True dan False harus diawali huruf kapital.
- None sering dipakai ketika data belum tersedia.
Checklist Praktik: [ ] Bisa membuat variabel.
[ ] Bisa membedakan int, float, str, bool, dan None.
[ ] Bisa membaca output type().Latihan Mandiri
1. Buat variabel nama_lengkap, nim, ipk, dan status_mahasiswa.
2. Tampilkan semua variabel dengan print().
3. Coba ganti nilai variabel, lalu jalankan ulang.4. Input, Output, Operator, dan Formatting
Program menjadi lebih berguna ketika dapat menerima input dari pengguna, melakukan proses, lalu menampilkan output yang rapi.
Konsep inti
- input() selalu menghasilkan string.
- Gunakan int() atau float() untuk mengubah input menjadi angka.
- Operator aritmatika: +, -, *, /, //, %, **.
- f-string adalah cara modern untuk menyisipkan variabel ke dalam teks.
Menghitung luas persegi panjang
panjang = float(input("Masukkan panjang: "))
lebar = float(input("Masukkan lebar: "))
luas = panjang * lebar
print(f"Luas persegi panjang = {luas:.2f}")Penjelasan contoh
- float(input(...)) mengubah input teks menjadi bilangan desimal.
- Operator * digunakan untuk perkalian.
- f"...{luas:.2f}" menampilkan angka dengan 2 digit desimal.
- Format output yang rapi membuat program lebih mudah dibaca pengguna.
Checklist Praktik: [ ] Paham input dan konversi tipe.
[ ] Paham operator matematika.
[ ] Paham dasar f-string.1. Buat program menghitung luas segitiga.
2. Buat program konversi Celsius ke Fahrenheit.
3. Tambahkan teks output yang jelas dan informatif.
5. Percabangan: if, elif, else
Percabangan membuat program dapat mengambil keputusan. Program tidak hanya berjalan lurus, tetapi dapat memilih aksi berdasarkan kondisi tertentu.
Konsep inti
- if menjalankan blok kode jika kondisi benar.
- elif memeriksa kondisi tambahan.
- else dijalankan jika semua kondisi sebelumnya salah.
- Operator perbandingan: ==, !=, >, <, >=, <=.
- Operator logika: and, or, not.
Menentukan predikat nilai
nilai = int(input("Masukkan nilai: "))
if nilai >= 85:
predikat = "A"
elif nilai >= 70:
predikat = "B"
elif nilai >= 60:
predikat = "C"
else:
predikat = "D"
print(f"Predikat Anda: {predikat}")Penjelasan contoh
- Kondisi diperiksa dari atas ke bawah.
- Jika nilai 90, program berhenti di kondisi pertama.
- Indentation wajib benar. Baris predikat = "A" adalah bagian dari if karena menjorok.
- elif membuat percabangan lebih rapi dibanding banyak if terpisah.
Checklist Praktik: [ ] Bisa memakai if/elif/else.
[ ] Bisa memakai operator logika.
[ ] Bisa membuat validasi sederhana.1. Buat program menentukan ganjil/genap.
2. Buat program menentukan diskon berdasarkan total belanja.
3. Buat validasi nilai agar tidak boleh kurang dari 0 atau lebih dari 100.
6. Perulangan: for, while, break, continue
Perulangan digunakan untuk menjalankan kode berkali-kali. Ini penting untuk memproses banyak data, membuat menu program, dan mengotomasi tugas.
Konsep inti
- for cocok untuk mengulang item dalam koleksi atau range angka.
- while cocok ketika jumlah pengulangan belum pasti.
- break menghentikan loop.
- continue melompati satu putaran dan lanjut ke putaran berikutnya.
- Hindari infinite loop dengan memastikan kondisi while bisa berubah.
Menjumlahkan angka dalam list
angka = [12, 45, 7, 23, 56, 89, 10]
total = 0
for nilai in angka:
total += nilai
print("Total:", total)Penjelasan contoh
- List menyimpan banyak nilai.
- Variabel total dimulai dari 0.
- Setiap nilai di list ditambahkan ke total.
- Pola ini sering dipakai untuk agregasi data.
Checklist Praktik: [ ] Paham for.
[ ] Paham while.
[ ] Bisa memakai break dan continue dengan tepat.Latihan Mandiri
1. Cari nilai terbesar dari list tanpa max() dan sort().
2. Buat menu while yang berhenti saat user mengetik keluar.
3. Tampilkan angka 1 sampai 100, tetapi lewati angka kelipatan 5.7. String dan Manipulasi Teks
String adalah tipe data untuk teks. Banyak program nyata bekerja dengan teks: nama, email, pesan, file log, data CSV, sampai hasil scraping.
Konsep inti
- String dapat diakses per karakter menggunakan indeks.
- Method string seperti lower(), upper(), strip(), replace(), split(), dan join() sangat sering dipakai.
- String bersifat immutable: perubahan menghasilkan string baru.
- Gunakan in untuk mengecek keberadaan teks.
Membersihkan dan memecah teks
kalimat = " Python,Data,AI,Web "
bersih = kalimat.strip()
items = bersih.split(",")
for item in items:
print(item.lower())Penjelasan contoh
- strip() menghapus spasi di awal dan akhir.
- split(",") memecah teks berdasarkan koma.
- lower() mengubah teks menjadi huruf kecil.
- Loop digunakan untuk memproses setiap potongan teks.
Checklist Praktik: [ ] Paham indeks string.
[ ] Bisa memakai method string umum.
[ ] Bisa membersihkan input pengguna.Latihan Mandiri
1. Buat program menghitung jumlah huruf vokal.
2. Ubah kalimat menjadi format judul dengan title().
3. Validasi email sederhana: harus mengandung @ dan titik.8. List, Tuple, Set, dan Dictionary
Struktur data membuat program mampu menyimpan banyak nilai dengan bentuk yang sesuai. Pemilihan struktur data yang tepat membuat kode lebih sederhana dan cepat dipahami.
Konsep inti
- List: urutan data yang bisa diubah.
- Tuple: urutan data yang tidak sebaiknya diubah.
- Set: kumpulan nilai unik.
- Dictionary: pasangan key-value.
- Dictionary sangat penting untuk data berbentuk objek seperti mahasiswa, produk, atau transaksi.
Menyimpan data mahasiswa
mahasiswa = {
"nama": "Adi",
"nim": "25.83.1198",
"nilai": [85, 90, 88]
}
rata_rata = sum(mahasiswa["nilai"]) / len(mahasiswa["nilai"])
print(f"{mahasiswa['nama']} memiliki rata-rata {rata_rata:.2f}")Penjelasan contoh
- Dictionary memakai key seperti "nama" dan "nilai".
- List di dalam dictionary menyimpan banyak nilai.
- sum() menjumlahkan isi list dan len() menghitung jumlah item.
- Struktur seperti ini sering muncul pada JSON dan API.
Checklist Praktik: [ ] Bisa memilih list/tuple/set/dict.
[ ] Bisa mengakses data nested.
[ ] Bisa mengolah data sederhana.1. Buat list produk berisi beberapa dictionary.
2. Tampilkan hanya produk dengan harga di bawah 100000.
3. Gunakan set untuk menghapus duplikasi kategori.
9. Fungsi dan Cara Memecah Program
Fungsi membantu memecah program besar menjadi bagian kecil. Kode menjadi lebih rapi, mudah diuji, dan mudah digunakan kembali.
Konsep inti
- Fungsi dibuat dengan def.
- Parameter adalah data yang masuk ke fungsi.
- return mengembalikan hasil dari fungsi.
- Fungsi sebaiknya punya satu tanggung jawab utama.
- Nama fungsi memakai kata kerja seperti hitung_total atau validasi_email.
Fungsi menghitung total belanja
def hitung_total(harga, jumlah, diskon=0):
subtotal = harga * jumlah
potongan = subtotal * diskon
return subtotal - potongan
print(hitung_total(10000, 3))
print(hitung_total(10000, 3, 0.1))Penjelasan contoh
- diskon=0 adalah default argument.
- return membuat hasil fungsi bisa disimpan atau dicetak.
- Fungsi dapat dipanggil berkali-kali dengan data berbeda.
- Pemisahan logika memudahkan perubahan di masa depan.
Checklist Praktik: [ ] Bisa membuat fungsi.
[ ] Bisa memakai parameter default.
[ ] Bisa mengembalikan nilai dengan return.Latihan Mandiri
1. Buat fungsi cek_ganjil_genap(angka).
2. Buat fungsi hitung_rata_rata(list_nilai).
3. Buat fungsi validasi_password minimal 8 karakter.10. Scope, Lambda, Comprehension, dan Generator
Bab ini mulai masuk ke gaya Python yang lebih ringkas. Fitur ini membuat kode lebih ekspresif, tetapi harus dipakai dengan bijak agar tetap mudah dibaca.
Konsep inti
- Scope menentukan tempat variabel dapat diakses.
- Lambda adalah fungsi kecil satu baris.
- List comprehension membuat list baru secara ringkas.
- Dictionary comprehension membuat dictionary dari iterable.
- Generator menghasilkan data satu per satu sehingga hemat memori.
Comprehension dan generator
angka = [1, 2, 3, 4, 5]
kuadrat = [x ** 2 for x in angka]
genap = [x for x in angka if x % 2 == 0]
print(kuadrat)
print(genap)
def hitung_mundur(n):
while n > 0:
yield n
n -= 1
for i in hitung_mundur(3):
print(i)Penjelasan contoh
- [x ** 2 for x in angka] membuat list kuadrat.
- Bagian if dalam comprehension berfungsi sebagai filter.
- yield membuat generator, bukan list langsung.
- Generator cocok untuk data besar karena tidak menyimpan semua nilai sekaligus.
Checklist Praktik: [ ] Paham scope dasar.
[ ] Bisa membaca comprehension.
[ ] Tahu kapan generator berguna.Latihan Mandiri
1. Ubah list nama menjadi huruf kapital dengan comprehension.
2. Buat dictionary angka: kuadrat untuk 1 sampai 10.
3. Buat generator bilangan genap sampai n.11. Modul, Package, Virtual Environment, dan pip
Modul adalah file Python yang dapat diimpor. Package adalah kumpulan modul. Dengan modul, proyek dapat dipecah menjadi beberapa file agar lebih terstruktur.
Konsep inti
- import digunakan untuk memakai modul.
- Standard library adalah modul bawaan Python.
- pip digunakan untuk memasang package pihak ketiga.
- requirements.txt menyimpan daftar dependency proyek.
- Struktur folder yang rapi penting untuk proyek profesional.
Membuat modul sendiri
# file: operasi.py
def tambah(a, b):
return a + b
# file: main.py
from operasi import tambah
hasil = tambah(10, 5)
print(hasil)Penjelasan contoh
- File operasi.py berisi fungsi.
- main.py mengimpor fungsi tambah.
- Pemisahan file membuat kode lebih mudah dirawat.
- Untuk proyek besar, gunakan folder package dengan __init__.py jika dibutuhkan.
Checklist Praktik: [ ] Bisa import modul.
[ ] Bisa membuat modul sendiri.
[ ] Bisa memakai pip dan virtual environment.Latihan Mandiri
1. Buat modul konversi_suhu.py.
2. Buat requirements.txt setelah menginstal package.
3. Coba import modul math, random, datetime, dan pathlib.12. File Handling, JSON, CSV, dan pathlib
Program nyata sering membaca dan menulis file. Data bisa disimpan dalam teks biasa, JSON, CSV, atau database. Untuk proyek kecil, JSON dan CSV sangat berguna.
Konsep inti
- Gunakan with open(...) agar file otomatis ditutup.
- Mode r untuk membaca, w untuk menulis, a untuk menambah.
- JSON cocok untuk data dictionary/list.
- CSV cocok untuk data tabel.
- pathlib membuat pengelolaan path lebih bersih dan lintas sistem operasi.
Menyimpan data ke JSON
import json
from pathlib import Path
data = {
"nama": "Adi",
"skill": ["Python", "SQL", "API"]
}
path = Path("profil.json")
path.write_text(json.dumps(data, indent=2), encoding="utf-8")
isi = json.loads(path.read_text(encoding="utf-8"))
print(isi["skill"])Penjelasan contoh
- json.dumps() mengubah dictionary menjadi teks JSON.
- write_text() menulis file.
- read_text() membaca file.
- json.loads() mengubah teks JSON kembali menjadi object Python.
- encoding="utf-8" membantu menangani karakter Indonesia dengan baik.
Checklist Praktik: [ ] Bisa membaca/menulis file.
[ ] Paham JSON.
[ ] Paham fungsi dasar pathlib.1. Buat file catatan.txt dari input user.
2. Simpan daftar produk ke file JSON.
3. Baca file CSV sederhana berisi nama dan nilai.
13. Error Handling, Debugging, dan Logging
Error bukan musuh. Error adalah pesan dari program bahwa ada sesuatu yang perlu diperbaiki. Developer profesional membaca error, mencari sumber masalah, lalu memperbaikinya secara sistematis.
Konsep inti
- SyntaxError: kesalahan penulisan sintaks.
- NameError: nama variabel/fungsi belum dikenali.
- TypeError: operasi tidak cocok dengan tipe data.
- ValueError: nilai tidak valid.
- try/except menangani error agar program tidak langsung berhenti.
- logging lebih baik daripada print untuk aplikasi yang serius.
Try-except untuk input angka
try:
umur = int(input("Masukkan umur: "))
print(f"Umur Anda {umur} tahun")
except ValueError:
print("Input harus berupa angka.")Penjelasan contoh
- int() akan gagal jika user mengetik teks seperti abc.
- except ValueError menangkap kegagalan konversi.
- Pesan error dibuat ramah untuk pengguna.
- Jangan menutup semua error tanpa alasan; tangani error yang benar-benar diprediksi.
Checklist Praktik: [ ] Bisa membaca error dasar.
[ ] Bisa memakai try/except.
[ ] Paham kenapa logging penting.1. Buat program pembagian dengan pengecekan ZeroDivisionError.
2. Tambahkan logging ke program kecil.
3. Coba sengaja membuat error lalu baca traceback-nya.
14. Object-Oriented Programming
OOP membantu memodelkan dunia nyata ke dalam class dan object. Dalam proyek besar, OOP membantu menggabungkan data dan perilaku dalam satu struktur.
Konsep inti
- Class adalah cetakan.
- Object adalah hasil dari class.
- __init__ adalah constructor.
- self mewakili object saat ini.
- Method adalah fungsi di dalam class.
- Encapsulation, inheritance, dan polymorphism adalah konsep penting OOP.
Class Rekening Bank
class RekeningBank:
def __init__(self, nama, saldo=0):
self.nama = nama
self.saldo = saldo
def setor(self, jumlah):
if jumlah <= 0:
raise ValueError("Jumlah harus positif")
self.saldo += jumlah
def tarik(self, jumlah):
if jumlah > self.saldo:
raise ValueError("Saldo tidak cukup")
self.saldo -= jumlah
rekening = RekeningBank("Adi", 100000)
rekening.setor(50000)
rekening.tarik(30000)
print(rekening.saldo)Penjelasan contoh
- RekeningBank adalah class.
- rekening adalah object.
- Method setor dan tarik mengubah saldo.
- raise ValueError digunakan untuk menolak operasi yang tidak valid.
- Class membuat data dan aturan bisnis berada di satu tempat.
Checklist Praktik: [ ] Paham class dan object.
[ ] Bisa membuat method.
[ ] Bisa menambahkan validasi pada class.Latihan Mandiri
1. Buat class Mahasiswa dengan method hitung_ipk.
2. Buat class Produk dengan stok dan harga.
3. Tambahkan validasi agar stok tidak negatif.15. Dataclass, Enum, dan Desain Data
Python modern menyediakan alat untuk membuat struktur data lebih rapi. dataclass cocok untuk class yang fokus menyimpan data, sedangkan Enum cocok untuk pilihan nilai yang terbatas.
Konsep inti
- @dataclass mengurangi boilerplate class.
- Enum mencegah nilai status yang tidak konsisten.
- Desain data yang baik membuat program lebih mudah dikembangkan.
- Pisahkan data, validasi, dan proses agar tidak bercampur secara berlebihan.
Dataclass dan Enum
from dataclasses import dataclass
from enum import Enum
class StatusPesanan(Enum):
BARU = "baru"
DIPROSES = "diproses"
SELESAI = "selesai"
@dataclass
class Pesanan:
kode: str
total: float
status: StatusPesanan = StatusPesanan.BARU
p = Pesanan("INV-001", 150000)
print(p)
print(p.status.value)Penjelasan contoh
- @dataclass otomatis membuat constructor dan representasi object.
- Enum menjaga status agar berasal dari pilihan resmi.
- StatusPesanan.BARU lebih aman daripada string bebas "baru".
- Teknik ini berguna untuk aplikasi bisnis.
Checklist Praktik: [ ] Bisa memakai dataclass.
[ ] Bisa memakai Enum.
[ ] Paham manfaat desain data yang konsisten.Latihan Mandiri
1. Buat dataclass Buku dengan judul, penulis, tahun.
2. Buat Enum RoleUser: ADMIN, USER, GUEST.
3. Gabungkan dataclass dan Enum dalam contoh sederhana.16. Type Hint, Clean Code, dan Dokumentasi
Type hint membantu pembaca, editor, dan alat analisis memahami jenis data yang diharapkan. Python tetap dinamis, tetapi type hint membuat kode profesional lebih mudah dirawat.
Konsep inti
- Type hint ditulis pada parameter dan return value.
- Docstring menjelaskan fungsi/class/module.
- Nama variabel harus jelas.
- Fungsi pendek lebih mudah diuji.
- Komentar menjelaskan alasan, bukan mengulang kode.
- Format kode dapat dirapikan dengan formatter seperti black.
Fungsi dengan type hint dan docstring
def hitung_diskon(total: float, persen: float) -> float:
"""Menghitung total setelah diskon.
total: nilai belanja sebelum diskon
persen: diskon dalam bentuk 0.1 untuk 10%
"""
if total < 0:
raise ValueError("Total tidak boleh negatif")
return total - (total * persen)
print(hitung_diskon(200000, 0.15))Penjelasan contoh
- total: float berarti parameter total diharapkan berupa float.
- > float berarti fungsi mengembalikan float.
- Docstring membantu dokumentasi otomatis dan pembaca kode.
- Validasi tetap diperlukan karena type hint tidak otomatis memaksa tipe saat runtime.
Checklist Praktik: [ ] Bisa membaca type hint.
[ ] Bisa menulis docstring.
[ ] Paham prinsip clean code dasar.1. Tambahkan type hint pada fungsi rata-rata.
2. Tulis docstring untuk 3 fungsi.
3. Ubah nama variabel singkat menjadi lebih jelas.
17. Testing dengan unittest dan pytest
Testing memastikan fungsi berjalan sesuai harapan. Tanpa testing, perubahan kecil bisa merusak fitur lama tanpa disadari.
Konsep inti
- Unit test menguji bagian kecil seperti fungsi.
- Test case berisi input dan output yang diharapkan.
- unittest tersedia di standard library.
- pytest populer karena sintaksnya ringkas.
- Test membantu refactoring dengan lebih aman.
Test sederhana dengan unittest
# file: operasi.py
def tambah(a, b):
return a + b
# file: test_operasi.py
import unittest
from operasi import tambah
class TestOperasi(unittest.TestCase):
def test_tambah(self):
self.assertEqual(tambah(2, 3), 5)
if __name__ == "__main__":
unittest.main()Penjelasan contoh
- assertEqual memeriksa apakah hasil sama dengan nilai yang diharapkan.
- File test biasanya diberi nama test_*.py.
- Testing sangat penting untuk fungsi yang dipakai berulang.
- Mulailah dari fungsi sederhana sebelum menguji aplikasi besar.
Checklist Praktik: [ ] Bisa menulis unit test.
[ ] Bisa menjalankan test.
[ ] Paham manfaat test saat kode berubah.1. Buat test untuk fungsi cek_ganjil_genap.
2. Buat test untuk fungsi hitung_diskon.
3. Tambahkan kasus input negatif.
18. Database SQLite dan Dasar SQL
Database menyimpan data secara terstruktur dan tahan lama. SQLite cocok untuk belajar dan aplikasi kecil karena tidak perlu server terpisah.
Konsep inti
- SQL digunakan untuk membuat tabel, menyimpan, membaca, mengubah, dan menghapus data.
- CRUD: Create, Read, Update, Delete.
- Gunakan parameter query untuk menghindari SQL injection.
- SQLite tersedia di standard library Python melalui modul sqlite3.
Menyimpan data mahasiswa ke SQLite
import sqlite3
conn = sqlite3.connect("kampus.db")
cur = conn.cursor()
cur.execute("""
CREATE TABLE IF NOT EXISTS mahasiswa (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nama TEXT NOT NULL,
nilai INTEGER NOT NULL
)
""")
cur.execute("INSERT INTO mahasiswa (nama, nilai) VALUES (?, ?)", ("Adi", 90))
conn.commit()
cur.execute("SELECT nama, nilai FROM mahasiswa")
for nama, nilai in cur.fetchall():
print(nama, nilai)
conn.close()Penjelasan contoh
- CREATE TABLE membuat tabel jika belum ada.
- INSERT menambah data.
- Tanda ? adalah placeholder yang aman.
- commit() menyimpan perubahan.
- SELECT membaca data dari tabel.
Checklist Praktik: [ ] Paham CRUD.
[ ] Bisa membuat database SQLite.
[ ] Bisa memakai parameter query.1. Tambahkan menu tambah data mahasiswa.
2. Buat fitur tampilkan semua data.
3. Buat fitur hapus data berdasarkan id.
19. Web, HTTP, API, dan FastAPI/Flask Overview
Python sangat sering dipakai untuk backend web dan API. API memungkinkan aplikasi saling bertukar data, misalnya aplikasi mobile meminta data dari server.
Konsep inti
- HTTP memiliki method seperti GET, POST, PUT, DELETE.
- API biasanya mengirim data JSON.
- Flask cocok untuk aplikasi web kecil dan sederhana.
- FastAPI populer untuk API modern karena mendukung type hint dan dokumentasi otomatis.
- Backend profesional perlu validasi, autentikasi, database, logging, dan testing.
Contoh konsep endpoint FastAPI
# install: pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/halo")
def halo():
return {"pesan": "Halo dari API Python"}
# jalankan:
# uvicorn main:app --reloadPenjelasan contoh
- @app.get("/halo") membuat endpoint GET.
- Fungsi mengembalikan dictionary yang otomatis menjadi JSON.
- uvicorn menjalankan server development.
- API dapat diakses browser atau aplikasi lain.
Checklist Praktik: [ ] Paham API dasar.
[ ] Paham JSON sebagai format data.
[ ] Tahu gambaran Flask dan FastAPI.1. Buat endpoint /profil yang mengembalikan nama dan skill.
2. Buat endpoint /produk berisi list produk.
3. Pelajari perbedaan GET dan POST melalui contoh sederhana.
20. Data Analysis: NumPy, Pandas, dan Visualisasi
Python populer di dunia data karena ekosistem library-nya kuat. NumPy digunakan untuk komputasi numerik, Pandas untuk data tabel, dan Matplotlib untuk visualisasi.
Konsep inti
- NumPy bekerja dengan array numerik.
- Pandas bekerja dengan DataFrame seperti tabel.
- Data cleaning adalah proses memperbaiki data kosong, duplikat, atau format yang salah.
- Visualisasi membantu menemukan pola dan menyampaikan insight.
- Analisis data harus memperhatikan sumber, kualitas, dan konteks data.
Pandas DataFrame sederhana
# install: pip install pandas
import pandas as pd
data = {
"nama": ["Adi", "Budi", "Citra"],
"nilai": [90, 75, 88]
}
df = pd.DataFrame(data)
print(df)
print("Rata-rata:", df["nilai"].mean())
print(df[df["nilai"] >= 80])Penjelasan contoh
- DataFrame mirip tabel.
- df["nilai"].mean() menghitung rata-rata kolom nilai.
- df[df["nilai"] >= 80] memfilter baris.
- Pandas sangat berguna untuk CSV, Excel, laporan, dan eksplorasi data.
Checklist Praktik: [ ] Paham DataFrame.
[ ] Bisa filter data.
[ ] Bisa menghitung statistik sederhana.Latihan Mandiri
1. Buat DataFrame produk dan hitung total nilai stok.
2. Baca file CSV dengan pd.read_csv().
3. Buat grafik batang sederhana dengan Matplotlib.21. Automation, Web Scraping Etis, dan Task Scheduler
Automation adalah penggunaan program untuk mengerjakan tugas berulang. Contohnya merapikan file, mengubah nama banyak dokumen, membuat laporan otomatis, atau mengirim ringkasan data.
Konsep inti
- Automasi harus aman dan tidak merusak file asli.
- Gunakan pathlib dan shutil untuk operasi file.
- Web scraping harus mematuhi aturan situs, robots.txt, dan tidak membebani server.
- Gunakan API resmi jika tersedia.
- Catat proses automasi dengan logging.
Mengubah nama file secara otomatis
from pathlib import Path
folder = Path("data")
for index, file in enumerate(folder.glob("*.txt"), start=1):
nama_baru = folder / f"catatan_{index}.txt"
print(f"Rename {file.name} -> {nama_baru.name}")
# file.rename(nama_baru) # aktifkan jika sudah yakinPenjelasan contoh
- glob("*.txt") mencari file txt.
- enumerate memberi nomor urut.
- Baris rename sengaja dikomentari agar aman saat percobaan.
- Selalu tampilkan preview sebelum mengubah banyak file.
Checklist Praktik: [ ] Paham automasi file.
[ ] Paham prinsip aman sebelum rename/delete.
[ ] Paham etika scraping.1. Buat automasi memindahkan file berdasarkan ekstensi.
2. Buat laporan jumlah file dalam folder.
3. Buat script backup folder ke folder lain.
22. Concurrency: Threading, Asyncio, dan Multiprocessing
Concurrency membantu program menangani banyak pekerjaan. Tidak semua tugas perlu concurrency, tetapi konsep ini penting untuk aplikasi jaringan, scraping, data pipeline, dan komputasi berat.
Konsep inti
- Threading cocok untuk tugas I/O-bound seperti menunggu jaringan atau file.
- Asyncio cocok untuk banyak operasi I/O secara efisien dengan async/await.
- Multiprocessing cocok untuk tugas CPU-bound yang berat.
- Concurrency menambah kompleksitas, jadi gunakan hanya ketika diperlukan.
- Ukur performa sebelum mengoptimalkan.
Asyncio sederhana
import asyncio
async def tugas(n):
print(f"Mulai tugas {n}")
await asyncio.sleep(1)
print(f"Selesai tugas {n}")
async def main():
await asyncio.gather(tugas(1), tugas(2), tugas(3))
asyncio.run(main())Penjelasan contoh
- async def membuat coroutine.
- await asyncio.sleep(1) mensimulasikan proses menunggu.
- gather menjalankan beberapa coroutine bersama-sama.
- Contoh ini selesai sekitar 1 detik, bukan 3 detik, karena proses menunggu dilakukan bersamaan.
Checklist Praktik: [ ] Paham gambaran threading/async/multiprocessing.
[ ] Bisa membaca kode async sederhana.
[ ] Tahu bahwa optimasi harus berdasarkan kebutuhan.Latihan Mandiri
1. Buat 5 tugas async dengan waktu tunggu berbeda.
2. Cari contoh tugas I/O-bound dan CPU-bound.
3. Bandingkan loop biasa dan asyncio pada simulasi sleep.23. Keamanan Dasar, Environment Variable, dan Secret
Developer profesional harus memperhatikan keamanan sejak awal. Banyak masalah muncul bukan karena algoritma rumit, tetapi karena secret bocor, input tidak divalidasi, atau error terlalu detail ditampilkan ke pengguna.
Konsep inti
- Jangan menyimpan password/API key langsung di kode.
- Gunakan environment variable atau file .env yang tidak diunggah ke repository publik.
- Validasi input pengguna.
- Gunakan parameter query untuk SQL.
- Jangan menampilkan traceback sensitif ke pengguna akhir.
- Update dependency secara berkala.
Membaca environment variable
import os
api_key = os.getenv("API_KEY")
if not api_key:
raise RuntimeError("API_KEY belum diatur")
print("API key berhasil dibaca, panjang:", len(api_key))Penjelasan contoh
- os.getenv membaca environment variable.
- Program menolak berjalan jika API_KEY belum diatur.
- Jangan mencetak isi secret secara penuh.
- Keamanan dasar harus menjadi kebiasaan, bukan tambahan di akhir.
Checklist Praktik: [ ] Paham secret.
[ ] Bisa memakai environment variable.
[ ] Paham validasi input dan parameter query.Latihan Mandiri
1. Pindahkan konfigurasi program ke environment variable.
2. Buat file .gitignore untuk mengecualikan .env.
3. Periksa program lama: apakah ada password di kode?24. Packaging, CLI App, dan Distribusi Project
Project profesional perlu struktur folder, dependency, dokumentasi, dan cara menjalankan yang jelas. Packaging membuat program mudah dipasang dan digunakan.
Konsep inti
- Struktur project sebaiknya memisahkan source code, test, dokumentasi, dan konfigurasi.
- CLI app memungkinkan program dijalankan dari terminal dengan argumen.
- pyproject.toml adalah format konfigurasi modern untuk banyak tool Python.
- README menjelaskan cara instalasi dan penggunaan.
- Versioning membantu melacak perubahan.
Contoh CLI sederhana dengan argparse
import argparse
parser = argparse.ArgumentParser(description="Sapa pengguna")
parser.add_argument("nama", help="Nama pengguna")
parser.add_argument("--formal", action="store_true", help="Gunakan sapaan formal")
args = parser.parse_args()
if args.formal:
print(f"Selamat datang, {args.nama}.")
else:
print(f"Halo, {args.nama}!")Penjelasan contoh
- argparse membaca argumen dari terminal.
- Argumen nama wajib diisi.
- -formal adalah opsi tambahan.
- CLI cocok untuk automation tool, data tool, dan utility internal.
Checklist Praktik: [ ] Paham struktur project.
[ ] Bisa membuat CLI sederhana.
[ ] Paham fungsi README dan versioning.1. Buat CLI konversi suhu.
2. Buat CLI penghitung kata dalam file.
3. Tulis README berisi cara menjalankan project.
25. Mini Project 1: Kalkulator dan Validasi Input
Mini project ini melatih input, operator, percabangan, loop, fungsi, dan error handling. Targetnya adalah kalkulator terminal yang dapat berjalan berulang sampai pengguna memilih keluar.
Kode lengkap
def ambil_angka(pesan):
while True:
try:
return float(input(pesan))
except ValueError:
print("Input harus berupa angka. Coba lagi.")
def hitung(a, operator, b):
if operator == "+":
return a + b
if operator == "-":
return a - b
if operator == "*":
return a * b
if operator == "/":
if b == 0:
raise ZeroDivisionError("Tidak bisa membagi dengan nol")
return a / b
raise ValueError("Operator tidak dikenal")
while True:
print("\n=== Kalkulator Python ===")
print("Operator: +, -, *, /")
print("Ketik q untuk keluar")
op = input("Pilih operator: ").strip()
if op.lower() == "q":
print("Program selesai.")
break
angka1 = ambil_angka("Angka pertama: ")
angka2 = ambil_angka("Angka kedua: ")
try:
hasil = hitung(angka1, op, angka2)
print(f"Hasil: {hasil}")
except (ValueError, ZeroDivisionError) as error:
print("Error:", error)Apa yang dipelajari
- Fungsi ambil_angka membuat validasi input tidak berulang-ulang.
- Fungsi hitung memisahkan logika operasi.
- while True membuat program berjalan sampai user memilih q.
- try/except membuat program tetap ramah ketika terjadi error.
1. Tambahkan operator pangkat **.
2. Tambahkan riwayat hasil perhitungan.
3. Simpan riwayat ke file JSON.
26. Mini Project 2: Aplikasi Catatan CLI + File JSON
Project ini melatih struktur data, file JSON, fungsi, menu terminal, dan validasi. Aplikasi catatan adalah contoh nyata yang sederhana namun sangat bagus untuk belajar.
import json
from pathlib import Path
FILE = Path("catatan.json")
def muat_catatan():
if FILE.exists():
return json.loads(FILE.read_text(encoding="utf-8"))
return []
def simpan_catatan(catatan):
FILE.write_text(json.dumps(catatan, indent=2, ensure_ascii=False), encoding="utf-8")
def tampilkan(catatan):
if not catatan:
print("Belum ada catatan.")
return
for i, item in enumerate(catatan, start=1):
print(f"{i}. {item['judul']} - {item['isi']}")
def tambah(catatan):
judul = input("Judul: ").strip()
isi = input("Isi: ").strip()
if not judul or not isi:
print("Judul dan isi wajib diisi.")
return
catatan.append({"judul": judul, "isi": isi})
simpan_catatan(catatan)
print("Catatan tersimpan.")
catatan = muat_catatan()
while True:
print("\n1. Lihat catatan")
print("2. Tambah catatan")
print("3. Keluar")
pilih = input("Pilih: ")
if pilih == "1":
tampilkan(catatan)
elif pilih == "2":
tambah(catatan)
elif pilih == "3":
break
else:
print("Menu tidak valid.")- FILE.exists() mengecek apakah file catatan sudah ada.
- Data disimpan sebagai list of dictionary.
- ensure_ascii=False membuat karakter Indonesia tetap terbaca.
- Fungsi tampilkan dan tambah memisahkan tanggung jawab.
1. Tambahkan fitur hapus catatan.
2. Tambahkan fitur cari catatan berdasarkan kata kunci.
3. Tambahkan tanggal pembuatan catatan menggunakan datetime.
27. Mini Project 3: Manajemen Data Mahasiswa SQLite
Project ini menggabungkan Python, SQL, validasi, fungsi, dan menu CLI. Cocok untuk memahami dasar aplikasi database.
import sqlite3
DB = "mahasiswa.db"
def koneksi():
return sqlite3.connect(DB)
def setup():
with koneksi() as conn:
conn.execute("""
CREATE TABLE IF NOT EXISTS mahasiswa (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nama TEXT NOT NULL,
nim TEXT NOT NULL UNIQUE,
nilai INTEGER NOT NULL
)
""")
def tambah_mahasiswa(nama, nim, nilai):
with koneksi() as conn:
conn.execute(
"INSERT INTO mahasiswa (nama, nim, nilai) VALUES (?, ?, ?)",
(nama, nim, nilai)
)
def tampilkan_mahasiswa():
with koneksi() as conn:
rows = conn.execute("SELECT id, nama, nim, nilai FROM mahasiswa").fetchall()
for row in rows:
print(row)
setup()
while True:
print("\n1. Tambah mahasiswa")
print("2. Tampilkan mahasiswa")
print("3. Keluar")
pilih = input("Pilih: ")
if pilih == "1":
nama = input("Nama: ")
nim = input("NIM: ")
nilai = int(input("Nilai: "))
tambah_mahasiswa(nama, nim, nilai)
elif pilih == "2":
tampilkan_mahasiswa()
elif pilih == "3":
break
else:
print("Menu tidak valid")- with koneksi() as conn membuat koneksi otomatis ditutup.
- UNIQUE pada nim mencegah data NIM ganda.
- Parameter query mencegah SQL injection.
- Project ini dapat dikembangkan menjadi aplikasi GUI atau web.
1. Tambahkan fitur update nilai.
2. Tambahkan fitur hapus mahasiswa berdasarkan id.
3. Tambahkan laporan rata-rata nilai.
28. Mini Project 4: API Sederhana
Project API melatih konsep backend. Versi sederhana ini memakai list sebagai database sementara. Untuk produksi, data harus disimpan di database dan ditambah validasi serta autentikasi.
# install: pip install fastapi uvicorn
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI(title="API Produk")
class Produk(BaseModel):
nama: str
harga: float
produk = []
@app.get("/produk")
def semua_produk():
return produk
@app.post("/produk")
def tambah_produk(item: Produk):
if item.harga <= 0:
raise HTTPException(status_code=400, detail="Harga harus positif")
produk.append(item.model_dump())
return {"pesan": "Produk ditambahkan", "data": item}
# jalankan:
# uvicorn main:app --reload- BaseModel membuat struktur data request.
- GET /produk menampilkan data.
- POST /produk menambah data.
- HTTPException memberi response error yang jelas.
- API ini dapat dicoba melalui dokumentasi otomatis /docs.
1. Tambahkan endpoint detail produk berdasarkan indeks.
2. Tambahkan endpoint hapus produk.
3. Sambungkan API ke SQLite.
29. Roadmap Profesional dan Portofolio
Menjadi developer Python profesional bukan hanya soal menghafal sintaks. Anda perlu membangun kebiasaan kerja, memahami alur proyek, menulis dokumentasi, menggunakan Git, membuat test, dan mengerjakan project nyata.
Roadmap bertahap
| Level | Fokus | Output Portofolio |
|---|---|---|
| Pemula | Syntax, variabel, if, loop, fungsi | Kalkulator, program nilai, validasi input |
| Menengah | File, JSON, OOP, SQLite, modul | Aplikasi catatan, manajemen data |
| Lanjut | API, testing, typing, data analysis | REST API, dashboard data |
| Profesional | Clean architecture, deployment, security | Aplikasi lengkap dengan dokumentasi dan test |
Kebiasaan developer profesional
- Menulis kode kecil yang jelas sebelum membuat fitur besar.
- Membaca dokumentasi resmi dan error message.
- Menggunakan Git untuk menyimpan riwayat perubahan.
- Menulis README yang menjelaskan cara menjalankan proyek.
- Membuat test untuk fungsi penting.
- Memisahkan konfigurasi dan secret dari kode.
- Melakukan refactoring setelah kode berjalan.
30. Lampiran A: Cheat Sheet Python
| Topik | Contoh Singkat |
|---|---|
| Variabel | nama = "Adi"; umur = 20 |
| Input | nilai = int(input("Nilai: ")) |
| If | if nilai >= 70: print("Lulus") |
| For | for item in data: print(item) |
| While | while kondisi: ... |
| List | angka = [1, 2, 3] |
| Dict | user = {"nama": "Adi"} |
| Function | def sapa(nama): return "Halo " + nama |
| File | with open("a.txt") as f: isi = f.read() |
| JSON | json.loads(teks); json.dumps(data) |
| Class | class User: ... |
| Exception | try: ... except ValueError: ... |
Lampiran B: Glossary
Interpreter: Program yang menjalankan kode Python.
Variable: Nama yang menyimpan nilai.
Function: Blok kode yang dapat dipanggil ulang.
Module: File Python yang dapat diimpor.
Package: Kumpulan module.
Exception: Kondisi error yang dapat ditangani.
API: Antarmuka agar aplikasi saling bertukar data.
Database: Tempat penyimpanan data terstruktur.
Testing: Proses memeriksa apakah kode berjalan sesuai harapan.
Dependency: Package yang dibutuhkan project.
Virtual Environment: Lingkungan terpisah untuk dependency project.
Refactoring: Merapikan struktur kode tanpa mengubah perilaku utama.
Referensi Utama
- Python Software Foundation. Python 3.14 Documentation. https://docs.python.org/3/
- Python Software Foundation. The Python Tutorial. https://docs.python.org/3/tutorial/
- Python Software Foundation. What's New in Python 3.14. https://docs.python.org/3/whatsnew/3.14.html
- Python Packaging Authority. Python Packaging User Guide. https://packaging.python.org/
- Python Software Foundation. typing - Support for type hints. https://docs.python.org/3/library/typing.html
- PyPI - The Python Package Index. https://pypi.org/
- SQLite Documentation. https://www.sqlite.org/docs.html
- FastAPI Documentation. https://fastapi.tiangolo.com/
- Pandas Documentation. https://pandas.pydata.org/docs/
- NumPy Documentation. https://numpy.org/doc/
- Pytest Documentation. https://docs.pytest.org/
Penutup: Python adalah alat. Nilainya muncul ketika digunakan untuk menyelesaikan masalah nyata. Setelah membaca e-book ini, lanjutkan dengan membuat project sendiri, membaca dokumentasi resmi, dan memperbaiki kode secara bertahap.Ruang Latihan Akhir
Kuis 1: Apa beda list dan tuple?
List dapat diubah setelah dibuat, sedangkan tuple tidak dapat diubah. Gunakan tuple untuk data tetap.
Kuis 2: Kapan memakai try-except?
Gunakan ketika ada kemungkinan error saat runtime, misalnya input tidak valid, file tidak ditemukan, atau koneksi API gagal.
Kuis 3: Mengapa testing penting?
Testing membantu memastikan program tetap benar walaupun kode dikembangkan, diperbaiki, atau ditambah fitur.
Kuis 4: Apa ciri kode profesional?
Rapi, mudah dibaca, modular, punya dokumentasi, diuji, menggunakan virtual environment, dan aman dalam mengelola data sensitif.