Lingkungan kerja data science bertumpu pada Python dan beberapa pustaka inti,
yaitu NumPy, pandas, Matplotlib, seaborn, dan scikit-learn, dengan Jupyter
sebagai wadah kerja interaktifnya. Topik ini memandang pemasangannya secara
berurutan, menjelaskan fungsi setiap pustaka, dan menutupnya dengan disiplin
pengelolaan lingkungan yang menyelamatkan proyek dari kekacauan versi.
Setelah menyelesaikannya, lingkungan yang terpasang dapat diperiksa dengan
satu skrip kecil dan dapat dibangun ulang oleh orang lain dari satu berkas
requirements.txt.
Memasang Python dan lingkungan maya#
Python 3.12 atau yang lebih baru menjadi dasar yang dianjurkan pada jalur ini. Pemasangannya berbeda antar sistem operasi, tetapi langkah setelahnya sama, yaitu membuat virtual environment, yaitu folder berisi salinan terisolasi dari Python beserta pustakanya. Isolasi ini mencegah proyek satu dengan yang lain berebut versi pustaka, dan inilah disiplin pertama yang harus terbentuk sebelum baris analisis pertama ditulis.
# tidak-dijalankan
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pipPerintah kedua mengaktifkan lingkungan pada sesi terminal yang berjalan,
yang ditandai nama .venv di awal baris perintah. Setiap pemasangan paket
sesudahnya, termasuk peningkatan pip pada perintah ketiga, masuk ke dalam
isolasi tersebut dan tidak menyentuh Python milik
sistem. Apabila terminal ditutup, lingkungan diaktifkan kembali dengan
perintah yang sama.
Pustaka inti dan fungsinya#
Enam pustaka menopang hampir seluruh jalur ini, dan mengetahui batas tugas masing-masing menolong pembaca membaca dokumentasinya dengan tepat.
| Pustaka | Fungsi | Peran pada jalur ini |
|---|---|---|
| NumPy | Array numerik dan operasi tervektorisasi | Fondasi perhitungan di balik pandas |
| pandas | Tabel data (DataFrame) dan operasinya | Pembersihan, agregasi, dan eksplorasi |
| Matplotlib | Grafik tingkat rendah yang fleksibel | Kontrol penuh atas setiap elemen grafik |
| seaborn | Grafik statistik berbasis Matplotlib | Plot distribusi dan kategorikal yang ringkas |
| scikit-learn | Machine learning dengan antarmuka seragam | Baseline, regresi, klasifikasi, evaluasi |
| scipy | Rute statistik dan optimasi | Uji hipotesis dan distribusi probabilitas |
Keenam pustaka ini dipasang dalam satu perintah pip pada lingkungan yang
sudah aktif.
# tidak-dijalankan
pip install numpy pandas matplotlib seaborn scikit-learn scipyVersi yang dipakai sepanjang penulisan jalur ini adalah pandas 2.2 dan scikit-learn 1.5. Perbedaan versi minor biasanya tidak mengubah hasil, tetapi perbedaan versi mayor kadang mengubah nama fungsi, sehingga mencantumkan versi pada setiap proyek adalah kebiasaan yang disiplin.
Jupyter sebagai wadah kerja#
Jupyter menyediakan notebook, yaitu dokumen yang memadukan kode, keluaran, dan catatan prosa dalam satu berkas yang dijalankan per sel. Alur kerjanya cocok untuk eksplorasi karena setiap hasil segera terlihat, dan keadaan variabelnya tetap hidup antar sel.
Pemasangan dan pembukaannya memakai dua perintah berikut.
# tidak-dijalankan
pip install jupyterlab
jupyter labKelebihan notebook adalah jembatan yang baik antara kode dan narasi, sehingga cocok untuk eksplorasi dan komunikasi awal. Kelemahannya adalah urutan eksekusi sel yang sering tidak linear, sehingga notebook yang acak urutan jalannya sulit direproduksi orang lain. Karena itu jalur ini menempatkan notebook pada eksplorasi, sedangkan pekerjaan yang sudah mapan dipindahkan ke skrip Python biasa, sebagaimana dibahas pada modul reproduktibilitas.
Memverifikasi hasil pemasangan#
Cara termudah memeriksa pemasangan adalah mencetak versi setiap pustaka.
Berkas periksa_lingkungan.py melakukan itu dengan satu perulangan, dan
keluarannya sekaligus menjadi bukti bahwa lingkungan siap dipakai.
"""Pemeriksaan cepat lingkungan data science.
Menampilkan versi pustaka inti yang dipakai sepanjang jalur ini.
Jalankan dengan: python3 periksa_lingkungan.py
"""
from importlib.metadata import version
pustaka = [
"numpy",
"pandas",
"matplotlib",
"seaborn",
"scikit-learn",
"scipy",
]
for nama in pustaka:
print(f"{nama:14} {version(nama)}")numpy 2.1.3
pandas 2.2.3
matplotlib 3.9.2
seaborn 0.13.2
scikit-learn 1.5.2
scipy 1.14.1Fungsi version dari importlib.metadata membaca metadata paket yang
terpasang pada lingkungan aktif, sehingga keluarannya selalu mencerminkan
kondisi sesungguhnya. Apabila satu baris gagal dengan error PackageNotFound,
pustaka tersebut belum terpasang pada lingkungan yang sedang aktif, dan
pemeriksaan ini menangkapnya sebelum pekerjaan analisis dimulai.
Mengunci versi dalam requirements.txt#
Lingkungan yang berjalan di satu komputer belum berarti lingkungan yang dapat
dibangun ulang di komputer lain. Jembatannya adalah requirements.txt, yaitu
daftar paket beserta versinya yang dihasilkan dari keadaan lingkungan saat
ini.
# tidak-dijalankan
pip freeze > requirements.txt
pip install -r requirements.txtPerintah pertama mencatat, sedangkan perintah kedua membangun ulang pada mesin atau lingkungan baru. Dua berkas yang dihasilkan proyek pada jalur ini diatur persis dengan pola tersebut pada modul reproduktibilitas, dan kebiasaan ini sejak awal membuat setiap hasil analisis dapat dipertanggungjawabkan versinya.
Kesalahan umum#
Kesalahan pertama adalah memasang semua paket pada lingkungan dasar yang sama untuk semua proyek. Tabrakan versi antar proyek kemudian sulit dilacak karena tidak ada yang tahu lingkungan mana yang dipakai proyek tertentu, sedangkan satu lingkungan maya per proyek membuat pertanyaan itu tidak pernah muncul.
Kesalahan kedua adalah mencatat versi secara ingatan alih-alih melalui
pip freeze. Daftar yang ditulis tangan hampir pasti kurang lengkap karena
paket kecil yang dibawa bergantungannya tidak tercantum, sedangkan hasil
pip freeze merekam seluruh pohon dependensi.
Kesalahan ketiga adalah membiarkan notebook berjalan dengan urutan sel yang acak. Analisis yang hasilnya bergantung pada urutan eksekusi terdahulu akan menghasilkan angka berbeda setiap dijalankan ulang. Kebiasaan penangkalnya sederhana, yaitu menjalankan ulang seluruh notebook dari atas sebelum hasil diserahkan.
Ringkasan#
- Lingkungan maya per proyek mengisolasi pustaka proyek dari Python milik sistem dan dari proyek lain.
- Enam pustaka inti, yaitu NumPy, pandas, Matplotlib, seaborn, scikit-learn, dan scipy, menopang seluruh jalur ini.
- Jupyter cocok untuk eksplorasi, sedangkan pekerjaan mapan dipindahkan ke skrip agar reproduktif.
pip freezedanrequirements.txtmembuat lingkungan dapat dibangun ulang oleh siapa pun dengan versi yang sama.
Referensi#
- venv — Creation of virtual environments — Python documentation
—
dokumentasi resmi modul
venvuntuk lingkungan maya. - Install pandas — pandas documentation — panduan resmi pemasangan pandas dan dependensinya.
- JupyterLab Documentation — Project Jupyter — dokumentasi resmi JupyterLab sebagai wadah kerja notebook.