Soal 1Manakah yang dengan tepat menggambarkan perbedaan antara standard library dan library pihak ketiga?
Kategori Standard Library — Kapan Memakai Apa
Dapatkan pandangan menyeluruh atas standard library Python lewat 7 kategori. Penanganan tanggal, kerja numerik, I/O data, concurrency — pahami apa yang harus diimpor untuk tiap situasi.
Standard library Python adalah kumpulan ratusan modul yang bisa kamu pakai cukup dengan import — tidak perlu pip install. Artikel ini mengelompokkan keseluruhannya menjadi 7 kategori supaya kamu bisa melihat strukturnya sekilas.
Apa Itu Standard Library — Modul yang Datang Bersama Python
Standard library adalah kumpulan modul yang langsung bisa dipakai begitu kamu memasang Python. Modul seperti math, os, dan json tersedia hanya dengan import — kamu tidak perlu menjalankan pip install untuk memakainya.
pip install terpisah.| Tipe | Pemasangan | Contoh |
|---|---|---|
| Standard library | Sudah dibundel dengan Python (tanpa instalasi) | math / os / sys / json / datetime / re / asyncio |
| Library pihak ketiga | Tambahkan via pip install | pandas / numpy / requests / fastapi |
Ada situasi di mana standard library saja tidak cukup, tapi mencoba yang standar dulu biasanya menguntungkan dalam jangka panjang. Berikut alasannya.
- Tanpa instalasi tambahan, jadi berjalan di mana saja — server internal, CI, kontainer Docker, bahkan runtime browser yang dipakai seri ini
- Manajemen versi mudah — begitu kamu memilih versi Python, versi standard library juga otomatis terkunci
- Battle-tested dan stabil — standard library berkembang sambil tetap menjaga kompatibilitas mundur dengan ketat, jadi kode yang kamu tulis bertahun lalu masih jalan
7 Kategori Berdasarkan Use Case
Standard library memiliki ratusan modul, tapi mengelompokkannya menjadi 7 kategori berdasarkan tujuan membuatnya jauh lebih mudah untuk tahu di mana harus mencari. Seri ini mengikuti urutan yang sama, menelusuri setiap kategori satu per satu dari atas ke bawah.
| Kategori | Modul perwakilan | Apa yang bisa dilakukan |
|---|---|---|
| A Runtime dan file | sys / os / pathlib / shutil | Memeriksa runtime, bekerja dengan file dan folder |
| B Angka, tanggal, random | math / statistics / decimal / datetime / random | Kerja numerik, perhitungan uang dengan kesalahan rendah, aritmetika tanggal, pembuatan angka acak |
| C String dan teks | re / string / textwrap / pprint | Ekstraksi dengan regex, substitusi template, pembungkus baris, pretty-print |
| D Data I/O | json / csv / pickle / base64 / hashlib | Konversi objek dari dan ke teks atau byte stream |
| E Struktur data yang diperluas | collections / itertools / functools / dataclasses | Lebih dari sekadar list dan dict biasa — struktur data yang lebih kaya |
| F Manajemen resource | contextlib / logging | Bangun blok with sendiri dan kirim log untuk kode yang mudah dioperasikan |
| G Concurrency dan parallelism | asyncio / threading / multiprocessing | Menjalankan pekerjaan secara paralel |
Setiap kategori mencantumkan beberapa modul karena tujuannya sama tapi sudut pandangnya berbeda. Misalnya di kategori B, baik random maupun secrets menghasilkan angka acak, tapi random untuk game dan data tes, sedangkan secrets mengembalikan angka acak yang kuat dan cocok untuk use case keamanan seperti token reset password. Seri ini menelusuri setiap kategori dan memilah modul-modul mirip-tapi-berbeda ini supaya kamu tahu mana yang harus dipakai.
Cara Menulis import — Konvensi yang Menghindari Bentrokan Nama
Ada beberapa cara menulis import saat memanggil standard library (dibahas detail di artikel sebelumnya). Masing-masing punya kelebihan dan kekurangan, jadi kamu memilih sesuai situasi. Berikut empat pola yang umum.
| Bentuk | Contoh pemanggilan | Kapan cocok |
|---|---|---|
| import math | math.sqrt(2) | Default. Siapa pun yang membaca kode bisa langsung tahu fungsi datang dari mana |
| import json as J | J.dumps(data) | Saat kamu ingin alias pendek di dalam satu file (sama untuk yang konvensional seperti np / pd) |
| from datetime import datetime | datetime(2024, 1, 1) | Saat kamu hanya memakai 1 atau 2 nama dari modul |
| from os import * | getcwd() | Hindari ini secara umum. Sumber bentrokan nama |
Bentuk import math menunjukkan dari mana setiap nama berasal di tempat pemanggilan, jadi kamu tidak tersesat saat membaca kode lagi nanti. Sebaliknya, bentuk from package import function menghilangkan prefiks nama-modul (bagian yang ditempel di depan nama fungsi, seperti math. di math.sqrt), yang membuatmu bisa menulis ringkas seperti datetime(2024, 1, 1).
Hindari from x import * sebagai aturan
Menulis from os import * untuk menarik semua nama bisa diam-diam menimpa fungsi bernama sama yang didefinisikan di tempat lain. Misalnya, os.open() dan open() bawaan adalah hal yang berbeda, tapi menulis from os import * mengganti open bawaan dengan os.open dan merusak pembacaan dan penulisan file. Hindari untuk modul buatanmu sendiri maupun yang dari standard library — itu langkah yang aman.
Standard Library yang Tidak Berjalan di Browser — Bagaimana Seri Ini Menanganinya
Latihan di seri ini berjalan di runtime Python berbasis browser (MicroPython atau Pyodide). Sebagian besar standard library berfungsi baik, tapi apa pun yang membutuhkan thread atau proses OS tidak bisa dipaksakan untuk berjalan — sandbox browser tidak mengizinkannya. sys.argv (mekanisme untuk menerima argumen dari command line) juga jalan di mesin nyata tapi tidak jalan di browser, karena tidak ada cara mengoper argumen ke dalamnya. Untuk hal-hal ini, kami membahas konsepnya dengan diagram supaya kamu bisa mengingatnya cepat saat menulis kodenya di mesin nyata.
multiprocessing dan subprocess yang meluncurkan sesuatu di luar tidak berjalan. Seri ini membahasnya hanya dengan diagram.| Penanganan | Modul yang dibahas | Alasan |
|---|---|---|
| Praktik langsung | math / re / datetime / json / collections / asyncio dan banyak lagi | Berjalan apa adanya di Pyodide / MicroPython |
| Fokus diagram + kuis | threading / concurrent.futures | Thread asli tidak jalan di browser, tapi konsepnya penting di pekerjaan dunia nyata |
| Diagram saja | multiprocessing / subprocess | Tanpa proses OS berarti latihan praktis tidak mungkin |
Mengapa kami tetap membahas topik diagram-saja
Di pekerjaan nyata, kamu pasti akan menjalankan kode di OS asli pada satu titik. Saat itu terjadi, mengetahui konsep di balik threading vs. multiprocessing atau menjalankan command via subprocess membuat perbedaan besar pada seberapa mudah kamu bisa mengambil langkah pertama. Seri ini tidak melompati topik hanya karena mereka tidak jalan di browser — sebaliknya, kami mendiagramkan bagian yang tidak bisa berjalan, supaya kamu bisa mengingatnya saat benar-benar perlu menulis kodenya.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Manakah dari bentuk import berikut yang secara umum sebaiknya kamu hindari?