Sedang dibacaSampul dan pengantar
0%
Logo resmi Bython
BYTHON • E-BOOK BELAJAR PYTHON INTERAKTIF

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.

Mulai belajar
30+Bab & lampiran
100+Contoh & latihan
4Mini project
Piko, maskot mentor belajar Python
0%

Progres Belajar

Tandai bab yang selesai agar progres tersimpan otomatis di perangkat ini.

0Bab selesai
0Total materi
Materi tidak ditemukan.
Coba kata kunci yang lebih singkat atau berbeda.

Cara Menggunakan E-Book Interaktif Ini

1Baca Konsep

Pahami inti materi sebelum menyalin kode.

2Jalankan Kode

Salin contoh kode, jalankan, lalu ubah nilainya.

3Isi Checklist

Tandai latihan yang sudah dikerjakan di versi HTML.

4Buat Project

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

Kata PengantarBuka babDaftar Isi RingkasBuka babLandasan Referensi dan Versi PythonBuka bab1. Mengenal Python dan Cara Belajar yang BenarBuka bab2. Instalasi, Editor, dan Lingkungan KerjaBuka bab3. Sintaks Dasar, Variabel, dan Tipe DataBuka bab4. Input, Output, Operator, dan FormattingBuka bab5. Percabangan: if, elif, elseBuka bab6. Perulangan: for, while, break, continueBuka bab7. String dan Manipulasi TeksBuka bab8. List, Tuple, Set, dan DictionaryBuka bab9. Fungsi dan Cara Memecah ProgramBuka bab10. Scope, Lambda, Comprehension, dan GeneratorBuka bab11. Modul, Package, Virtual Environment, dan pipBuka bab12. File Handling, JSON, CSV, dan pathlibBuka bab13. Error Handling, Debugging, dan LoggingBuka bab14. Object-Oriented ProgrammingBuka bab15. Dataclass, Enum, dan Desain DataBuka bab16. Type Hint, Clean Code, dan DokumentasiBuka bab17. Testing dengan unittest dan pytestBuka bab18. Database SQLite dan Dasar SQLBuka bab19. Web, HTTP, API, dan FastAPI/Flask OverviewBuka bab20. Data Analysis: NumPy, Pandas, dan VisualisasiBuka bab21. Automation, Web Scraping Etis, dan Task SchedulerBuka bab22. Concurrency: Threading, Asyncio, dan MultiprocessingBuka bab23. Keamanan Dasar, Environment Variable, dan SecretBuka bab24. Packaging, CLI App, dan Distribusi ProjectBuka bab25. Mini Project 1: Kalkulator dan Validasi InputBuka bab26. Mini Project 2: Aplikasi Catatan CLI + File JSONBuka bab27. Mini Project 3: Manajemen Data Mahasiswa SQLiteBuka bab28. Mini Project 4: API SederhanaBuka bab29. Roadmap Profesional dan PortofolioBuka bab30. Lampiran A: Cheat Sheet PythonBuka babLampiran B: GlossaryBuka babReferensi UtamaBuka bab

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.

BAB

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.

Contoh Kode
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.
BAB

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
BAB

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.

Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Sudah menginstal Python.
[ ] Sudah bisa menjalankan file .py.
[ ] Sudah memahami bahwa error adalah bagian normal dari belajar.
Contoh Kode
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.
BAB

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

Contoh Kode
# Windows
python -m venv .venv
.venv\Scripts\activate

# macOS / Linux
python3 -m venv .venv
source .venv/bin/activate

# Cek versi Python
python --version

Penjelasan 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.
Contoh Kode
Checklist Praktik: [ ] Paham fungsi terminal.
[ ] Paham fungsi virtual environment.
[ ] Paham perbedaan file .py dan perintah interaktif Python.
Latihan Mandiri

1. Buat folder belajar-python.
2. Buat virtual environment di dalamnya.
3. Jalankan file main.py dari terminal.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa membuat variabel.
[ ] Bisa membedakan int, float, str, bool, dan None.
[ ] Bisa membaca output type().
Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham input dan konversi tipe.
[ ] Paham operator matematika.
[ ] Paham dasar f-string.
Latihan Mandiri

1. Buat program menghitung luas segitiga.
2. Buat program konversi Celsius ke Fahrenheit.
3. Tambahkan teks output yang jelas dan informatif.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa memakai if/elif/else.
[ ] Bisa memakai operator logika.
[ ] Bisa membuat validasi sederhana.
Latihan Mandiri

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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham for.
[ ] Paham while.
[ ] Bisa memakai break dan continue dengan tepat.
Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham indeks string.
[ ] Bisa memakai method string umum.
[ ] Bisa membersihkan input pengguna.
Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa memilih list/tuple/set/dict.
[ ] Bisa mengakses data nested.
[ ] Bisa mengolah data sederhana.
Latihan Mandiri

1. Buat list produk berisi beberapa dictionary.
2. Tampilkan hanya produk dengan harga di bawah 100000.
3. Gunakan set untuk menghapus duplikasi kategori.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa membuat fungsi.
[ ] Bisa memakai parameter default.
[ ] Bisa mengembalikan nilai dengan return.
Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham scope dasar.
[ ] Bisa membaca comprehension.
[ ] Tahu kapan generator berguna.
Contoh Kode
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.
BAB

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

Contoh Kode
# 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.
Contoh Kode
Checklist Praktik: [ ] Bisa import modul.
[ ] Bisa membuat modul sendiri.
[ ] Bisa memakai pip dan virtual environment.
Contoh Kode
Latihan Mandiri

1. Buat modul konversi_suhu.py.
2. Buat requirements.txt setelah menginstal package.
3. Coba import modul math, random, datetime, dan pathlib.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa membaca/menulis file.
[ ] Paham JSON.
[ ] Paham fungsi dasar pathlib.
Latihan Mandiri

1. Buat file catatan.txt dari input user.
2. Simpan daftar produk ke file JSON.
3. Baca file CSV sederhana berisi nama dan nilai.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa membaca error dasar.
[ ] Bisa memakai try/except.
[ ] Paham kenapa logging penting.
Latihan Mandiri

1. Buat program pembagian dengan pengecekan ZeroDivisionError.
2. Tambahkan logging ke program kecil.
3. Coba sengaja membuat error lalu baca traceback-nya.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham class dan object.
[ ] Bisa membuat method.
[ ] Bisa menambahkan validasi pada class.
Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa memakai dataclass.
[ ] Bisa memakai Enum.
[ ] Paham manfaat desain data yang konsisten.
Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Bisa membaca type hint.
[ ] Bisa menulis docstring.
[ ] Paham prinsip clean code dasar.
Latihan Mandiri

1. Tambahkan type hint pada fungsi rata-rata.
2. Tulis docstring untuk 3 fungsi.
3. Ubah nama variabel singkat menjadi lebih jelas.
BAB

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

Contoh Kode
# 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.
Contoh Kode
Checklist Praktik: [ ] Bisa menulis unit test.
[ ] Bisa menjalankan test.
[ ] Paham manfaat test saat kode berubah.
Latihan Mandiri

1. Buat test untuk fungsi cek_ganjil_genap.
2. Buat test untuk fungsi hitung_diskon.
3. Tambahkan kasus input negatif.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham CRUD.
[ ] Bisa membuat database SQLite.
[ ] Bisa memakai parameter query.
Latihan Mandiri

1. Tambahkan menu tambah data mahasiswa.
2. Buat fitur tampilkan semua data.
3. Buat fitur hapus data berdasarkan id.
BAB

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

Contoh Kode
# 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 --reload

Penjelasan 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.
Contoh Kode
Checklist Praktik: [ ] Paham API dasar.
[ ] Paham JSON sebagai format data.
[ ] Tahu gambaran Flask dan FastAPI.
Latihan Mandiri

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.
BAB

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

Contoh Kode
# 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.
Contoh Kode
Checklist Praktik: [ ] Paham DataFrame.
[ ] Bisa filter data.
[ ] Bisa menghitung statistik sederhana.
Contoh Kode
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.
BAB

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

Contoh Kode
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 yakin

Penjelasan 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.
Contoh Kode
Checklist Praktik: [ ] Paham automasi file.
[ ] Paham prinsip aman sebelum rename/delete.
[ ] Paham etika scraping.
Latihan Mandiri

1. Buat automasi memindahkan file berdasarkan ekstensi.
2. Buat laporan jumlah file dalam folder.
3. Buat script backup folder ke folder lain.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham gambaran threading/async/multiprocessing.
[ ] Bisa membaca kode async sederhana.
[ ] Tahu bahwa optimasi harus berdasarkan kebutuhan.
Contoh Kode
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.
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham secret.
[ ] Bisa memakai environment variable.
[ ] Paham validasi input dan parameter query.
Contoh Kode
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?
BAB

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

Contoh Kode
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.
Contoh Kode
Checklist Praktik: [ ] Paham struktur project.
[ ] Bisa membuat CLI sederhana.
[ ] Paham fungsi README dan versioning.
Latihan Mandiri

1. Buat CLI konversi suhu.
2. Buat CLI penghitung kata dalam file.
3. Tulis README berisi cara menjalankan project.
BAB

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

Contoh Kode
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.
Latihan Mandiri

1. Tambahkan operator pangkat **.
2. Tambahkan riwayat hasil perhitungan.
3. Simpan riwayat ke file JSON.
BAB

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.

Contoh Kode
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.
Latihan Mandiri

1. Tambahkan fitur hapus catatan.
2. Tambahkan fitur cari catatan berdasarkan kata kunci.
3. Tambahkan tanggal pembuatan catatan menggunakan datetime.
BAB

27. Mini Project 3: Manajemen Data Mahasiswa SQLite

Project ini menggabungkan Python, SQL, validasi, fungsi, dan menu CLI. Cocok untuk memahami dasar aplikasi database.

Contoh Kode
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.
Latihan Mandiri

1. Tambahkan fitur update nilai.
2. Tambahkan fitur hapus mahasiswa berdasarkan id.
3. Tambahkan laporan rata-rata nilai.
BAB

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.

Contoh Kode
# 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.
Latihan Mandiri

1. Tambahkan endpoint detail produk berdasarkan indeks.
2. Tambahkan endpoint hapus produk.
3. Sambungkan API ke SQLite.
BAB

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

LevelFokusOutput Portofolio
PemulaSyntax, variabel, if, loop, fungsiKalkulator, program nilai, validasi input
MenengahFile, JSON, OOP, SQLite, modulAplikasi catatan, manajemen data
LanjutAPI, testing, typing, data analysisREST API, dashboard data
ProfesionalClean architecture, deployment, securityAplikasi 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.
Target 30 hari: Selesaikan 4 mini project dalam e-book ini, lalu unggah ke GitHub dengan README, screenshot terminal, cara instalasi, dan penjelasan fitur. Ini sudah menjadi portofolio awal yang kuat.
BAB

30. Lampiran A: Cheat Sheet Python

TopikContoh Singkat
Variabelnama = "Adi"; umur = 20
Inputnilai = int(input("Nilai: "))
Ifif nilai >= 70: print("Lulus")
Forfor item in data: print(item)
Whilewhile kondisi: ...
Listangka = [1, 2, 3]
Dictuser = {"nama": "Adi"}
Functiondef sapa(nama): return "Halo " + nama
Filewith open("a.txt") as f: isi = f.read()
JSONjson.loads(teks); json.dumps(data)
Classclass User: ...
Exceptiontry: ... except ValueError: ...
BAB

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.

BAB

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/
Contoh Kode
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.

!
Tetap semangat!Setiap percobaan membuat pemahamanmu semakin kuat.