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.

Standard Library vs. Library Pihak Ketiga
PythoncoreStandard librarymath / json / os…Library pihak ketigapandas / requests…dibundelpip install
Standard library datang bersama Python itu sendiri, jadi tidak butuh instalasi tambahan. Library pihak ketiga memerlukan pip install terpisah.
TipePemasanganContoh
Standard librarySudah dibundel dengan Python (tanpa instalasi)math / os / sys / json / datetime / re / asyncio
Library pihak ketigaTambahkan via pip installpandas / 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.

7 Kategori Standard Library
StandardlibraryA Runtime& fileB Angka / tanggalrandomC String& teksD DataI / OE Struktur datayang diperluasF ManajemenresourceG Concurrency& parallelism
Node standard library di tengah dipecah ke 7 kategori berdasarkan tujuan. Seri ini membahas semua 7 secara berurutan, A sampai G. Kategori G memiliki warna berbeda karena keterbatasan runtime browser (dibahas di bagian berikutnya).
KategoriModul perwakilanApa yang bisa dilakukan
A Runtime dan filesys / os / pathlib / shutilMemeriksa runtime, bekerja dengan file dan folder
B Angka, tanggal, randommath / statistics / decimal / datetime / randomKerja numerik, perhitungan uang dengan kesalahan rendah, aritmetika tanggal, pembuatan angka acak
C String dan teksre / string / textwrap / pprintEkstraksi dengan regex, substitusi template, pembungkus baris, pretty-print
D Data I/Ojson / csv / pickle / base64 / hashlibKonversi objek dari dan ke teks atau byte stream
E Struktur data yang diperluascollections / itertools / functools / dataclassesLebih dari sekadar list dan dict biasa — struktur data yang lebih kaya
F Manajemen resourcecontextlib / loggingBangun blok with sendiri dan kirim log untuk kode yang mudah dioperasikan
G Concurrency dan parallelismasyncio / threading / multiprocessingMenjalankan 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.

BentukContoh pemanggilanKapan cocok
import mathmath.sqrt(2)Default. Siapa pun yang membaca kode bisa langsung tahu fungsi datang dari mana
import json as JJ.dumps(data)Saat kamu ingin alias pendek di dalam satu file (sama untuk yang konvensional seperti np / pd)
from datetime import datetimedatetime(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.

Apa yang Berjalan di Browser, Apa yang Tidak
Berjalanmath / json / redatetime / asyncioTerbatasthreading(tanpa thread asli)Tidak berjalanmultiprocessingsubprocessPendekatan kamipraktik langsungfokus diagramdiagram saja
Pyodide / MicroPython tidak punya proses OS atau socket jaringan, jadi library seperti multiprocessing dan subprocess yang meluncurkan sesuatu di luar tidak berjalan. Seri ini membahasnya hanya dengan diagram.
PenangananModul yang dibahasAlasan
Praktik langsungmath / re / datetime / json / collections / asyncio dan banyak lagiBerjalan apa adanya di Pyodide / MicroPython
Fokus diagram + kuisthreading / concurrent.futuresThread asli tidak jalan di browser, tapi konsepnya penting di pekerjaan dunia nyata
Diagram sajamultiprocessing / subprocessTanpa 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.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Manakah yang dengan tepat menggambarkan perbedaan antara standard library dan library pihak ketiga?

Soal 2Manakah dari bentuk import berikut yang secara umum sebaiknya kamu hindari?