Topik ini menyiapkan lingkungan kerja untuk seluruh jalur, mulai dari pemeriksaan Python dan pip, penyiapan lingkungan Python yang terisolasi, instalasi scikit-learn beserta pustaka pendampingnya, hingga pemeriksaan versi dan pemuatan dataset bawaan. Setiap perintah pada topik ini dieksekusi pada terminal, yaitu antarmuka berbasis teks untuk memberi perintah kepada sistem. Setelah semua langkah dijalankan, dua dataset bawaan dapat dimuat dan lingkungan kerja siap digunakan.
Memeriksa Python dan pip#
Pemeriksaan pertama memastikan dua perangkat dasar tersedia, yaitu interpreter Python dan pip. Interpreter adalah program yang menjalankan kode Python, sedangkan pip adalah pengelola paket yang memasang pustaka dari repositori paket resmi Python. scikit-learn membutuhkan versi Python yang relatif baru, dan batas versi minimum resmi selalu tercantum pada halaman instalasi.
Perintah berikut memeriksa keduanya, dan keluarannya berasal dari lingkungan kerja jalur ini. Nomor versi yang berbeda pada mesin pembaca adalah hal yang wajar, sepanjang versi Python masih memenuhi syarat scikit-learn. Bila salah satu perintah gagal, penyiapan ditunda sampai kedua perangkat dasar tersedia.
# memeriksa versi Python yang dipakai
python3 --version
# memeriksa pip yang menyertai interpreter python3
python3 -m pip --versionPython 3.12.16
pip 26.2.2 from /home/kal/.venv/lib/python3.12/site-packages/pip (python 3.12)Bentuk perintah python3 -m pip dipilih daripada perintah pip tunggal karena menjamin pip yang dijalankan adalah pip milik interpreter python3 yang sama. Mesin yang berisi beberapa instalasi Python kerap memiliki pip yang menunjuk ke instalasi lain, dan perbedaan ini menjadi sumber error impor yang membingungkan. Kebiasaan memanggil pip melalui interpreter yang bersangkutan menghilangkan keraguan tersebut.
Virtual environment#
Virtual environment adalah folder Python yang terisolasi, lengkap dengan interpreter dan pemasangan paketnya sendiri, sehingga versi pustaka antarproyek tidak saling mengganggu. Isolasi semacam ini penting karena dua proyek kerap menuntut versi pustaka yang berbeda. Perintah python3 -m venv membuatnya dalam satu langkah, dan demo berikut menempatkan folder demo di /tmp agar mudah dibuang.
# membuat virtual environment untuk demo di folder /tmp
python3 -m venv /tmp/demo-venv
# menampilkan isi folder bin hasil pembuatan
ls /tmp/demo-venv/bin | headActivate.ps1
activate
activate.csh
activate.fish
pip
pip3
pip3.12
python
python3
python3.12Folder bin pada hasil pembuatan memuat interpreter Python terisolasi, pip milik environment tersebut, serta berkas aktivasi untuk beragam jenis terminal. Aktivasi dilakukan dengan perintah source /tmp/demo-venv/bin/activate, dan setelah itu perintah python3 serta pip otomatis menunjuk ke dalam folder yang terisolasi. Environment yang tidak dibutuhkan lagi cukup dihapus bersama foldernya.
Lingkungan kerja jalur ini sudah memasang pustaka yang dibutuhkan secara global, sehingga demo venv di atas dibuat semata untuk pembelajaran. Pada mesin kerja nyata, satu environment per proyek adalah pola yang disarankan agar kebutuhan pustaka tiap proyek tercatat dengan jelas. Demo di atas dapat dibuang begitu konsepnya terserap tanpa menyisakan jejak pada instalasi global.
Instalasi scikit-learn dan pandas#
Instalasi scikit-learn melalui pip otomatis memasang dependensi, yaitu pustaka lain yang dibutuhkan agar pustaka utama berfungsi. Pada proyek ini, scikit-learn membawa NumPy, SciPy, joblib, dan threadpoolctl, sedangkan pandas dipasang terpisah untuk pengolahan data tabel. Blok berikut mengeksekusi kedua pemasangan itu pada lingkungan kerja yang sudah siap.
# menonaktifkan pemeriksaan versi pip agar keluaran ringkas
export PIP_DISABLE_PIP_VERSION_CHECK=1
# memasang scikit-learn beserta seluruh dependensinya
python3 -m pip install scikit-learn
# memasang pandas untuk pengolahan data tabel
python3 -m pip install pandasRequirement already satisfied: scikit-learn in /home/kal/.venv/lib/python3.12/site-packages (1.5.2)
Requirement already satisfied: numpy>=1.19.5 in /home/kal/.venv/lib/python3.12/site-packages (from scikit-learn) (2.1.3)
Requirement already satisfied: scipy>=1.6.0 in /home/kal/.venv/lib/python3.12/site-packages (from scikit-learn) (1.14.1)
Requirement already satisfied: joblib>=1.2.0 in /home/kal/.venv/lib/python3.12/site-packages (from scikit-learn) (1.5.3)
Requirement already satisfied: threadpoolctl>=3.1.0 in /home/kal/.venv/lib/python3.12/site-packages (from scikit-learn) (3.6.0)
Requirement already satisfied: pandas in /home/kal/.venv/lib/python3.12/site-packages (2.2.3)
Requirement already satisfied: numpy>=1.26.0 in /home/kal/.venv/lib/python3.12/site-packages (from pandas) (2.1.3)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/kal/.venv/lib/python3.12/site-packages (from pandas) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /home/kal/.venv/lib/python3.12/site-packages (from pandas) (2026.1.post1)
Requirement already satisfied: tzdata>=2022.7 in /home/kal/.venv/lib/python3.12/site-packages (from pandas) (2026.1)
Requirement already satisfied: six>=1.5 in /home/kal/.venv/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)Kalimat Requirement already satisfied pada keluaran menandakan pustaka beserta seluruh dependensinya sudah terpasang, sehingga pip tidak melakukan apa pun. Pada mesin yang belum memilikinya, perintah yang sama mengunduh dan memasang paket dari repositori resmi. Blok berikut adalah instruksi untuk mesin pembaca yang lingkungannya masih kosong, dan blok ini tidak dieksekusi di lingkungan kerja jalur ini.
# tidak-dijalankan
# perintah untuk mesin pembaca yang belum memuat paket-paket di atas
python3 -m pip install scikit-learn pandas notebookPerintah pada blok terakhir sekaligus memasang Jupyter Notebook agar lingkungan pembaca lengkap sejak awal, dan bahasannya ada pada bagian akhir topik ini. Nama paket yang dipisah spasi dapat digabung dalam satu perintah, sehingga satu pemanggilan pip mengurus semuanya. Pemasangan boleh diulang kapan saja, karena pip membiarkan pustaka yang sudah sesuai tetap terpasang.
Pemeriksaan versi pustaka#
Pemeriksaan versi menutup proses instalasi dengan bukti yang dapat dicatat. Setiap pustaka Python menyimpan nomor versinya pada atribut __version__, sehingga satu berkas kecil cukup untuk memeriksa semuanya. Berkas cek-lingkungan.py berikut dapat disalin ke mesin apa pun yang lingkungannya hendak diperiksa.
"""Pemeriksaan versi pustaka inti di lingkungan kerja."""
import sklearn
import numpy
import pandas
print("scikit-learn:", sklearn.__version__)
print("numpy :", numpy.__version__)
print("pandas :", pandas.__version__)scikit-learn: 1.5.2
numpy : 2.1.3
pandas : 2.2.3Keluaran menegaskan tiga pustaka inti jalur ini, yaitu scikit-learn 1.5.2, NumPy 2.1.3, dan pandas 2.2.3. Catatan versi seperti ini berguna saat membandingkan hasil antarmesin atau saat melaporkan error, karena perilaku pustaka dapat berubah antarversi. Kebiasaan menyertakan nomor versi pada catatan eksperimen dijaga sepanjang jalur ini.
Memuat dataset bawaan#
scikit-learn menyertakan beberapa dataset kecil di dalam paketnya, sehingga pemuatan data tidak membutuhkan jaringan sama sekali. Dua dataset yang paling sering digunakan pada jalur ini adalah iris untuk masalah klasifikasi dan digits untuk pengenalan angka tulisan tangan. Kode berikut memuat keduanya lalu mencetak bentuk datanya beserta baris judul dari deskripsi resminya.
from sklearn.datasets import load_iris, load_digits
iris = load_iris()
digits = load_digits()
print("iris :", iris.data.shape)
print(iris.feature_names)
print(iris.target_names)
print(iris.DESCR.splitlines()[2])
print("digits:", digits.data.shape, digits.images.shape)
print(digits.DESCR.splitlines()[2])iris : (150, 4)
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
['setosa' 'versicolor' 'virginica']
Iris plants dataset
digits: (1797, 64) (1797, 8, 8)
Optical recognition of handwritten digits datasetKeluaran mengonfirmasi dua dataset dengan karakter yang berbeda. Dataset iris memiliki 150 sampel dengan 4 fitur pengukuran bunga dan tiga nama kelas, sedangkan digits memiliki 1797 sampel berupa citra 8 × 8 piksel yang disimpan sebagai 64 fitur hasil perataan grid. Baris Iris plants dataset dan Optical recognition of handwritten digits dataset adalah judul yang diambil dari atribut DESCR, yaitu teks deskripsi resmi yang menyertai setiap dataset bawaan.
Jupyter sebagai lingkungan alternatif#
Jupyter Notebook adalah lingkungan kerja interaktif yang berjalan di browser dan mengeksekusi kode dalam satuan blok yang disebut sel (cell), yaitu kotak kode yang dijalankan satu per satu. Sel dapat berisi kode maupun prosa, sehingga catatan pengamatan dapat ditempel langsung di samping hasil eksekusinya. Lingkungan semacam ini cocok untuk eksplorasi data dan peragaan hasil, dan pemasangannya sudah termasuk pada instruksi blok tidak-dijalankan di atas.
Seluruh kode pada jalur ini tetap ditulis sebagai berkas .py yang dijalankan langsung dengan python3, sehingga tidak ada ketergantungan pada antarmuka tertentu. Berkas semacam itu mudah dipindahkan, mudah dieksekusi ulang secara otomatis, dan tetap dapat disalin ke sel notebook bila pembaca lebih nyaman bekerja dengan Jupyter. Pilihan lingkungan tidak mengubah isi kode apa pun, karena yang penting adalah interpreter yang sama dan versi pustaka yang sama.
Kesalahan umum#
Dua kesalahan berikut paling sering muncul saat penyiapan lingkungan. Keduanya cepat diselesaikan setelah penyebabnya dikenali. Keduanya juga dapat dicegah dengan satu kebiasaan yang sama, yaitu selalu memanggil pip melalui interpreter yang sama dengan skripnya.
ModuleNotFoundError saat mengimpor sklearn#
Pesan ModuleNotFoundError: No module named 'sklearn' muncul bila pustaka scikit-learn tidak terpasang pada interpreter yang menjalankan skrip. Penyebab paling umum adalah pip yang menunjuk instalasi Python berbeda dari perintah python3, atau virtual environment yang belum diaktifkan saat pemasangan. Perbaikannya selalu sama, yaitu memasang pustaka melalui interpreter yang sama dengan skrip, misalnya python3 -m pip install scikit-learn, kemudian mengulang eksekusi programnya.
Lupa mengaktifkan virtual environment#
Environment yang sudah dibuat tetapi belum diaktifkan membuat python3 dan pip tetap menunjuk instalasi global. Paket yang dipasang dalam kondisi ini mendarat di tempat yang tidak diperiksa oleh skrip proyek. Pemeriksaan which python3 sebelum bekerja menunjukkan folder yang sedang aktif, sedangkan tulisan (venv) di awal baris terminal menandakan aktivasi sudah berjalan.
Ringkasan#
- Pemeriksaan
python3 --versiondanpython3 -m pip --versionmemastikan dasar lingkungan sebelum apa pun dipasang. - Virtual environment mengisolasi pustaka per proyek dan cukup dihapus foldernya bila tidak dibutuhkan lagi.
- Perintah
python3 -m pip install scikit-learnmemasang pustaka beserta dependensinya, yaitu NumPy, SciPy, joblib, dan threadpoolctl. - Dataset
load_irisdanload_digitstersedia langsung dari paket tanpa jaringan, dan atributDESCRmenyediakan deskripsi resminya.
Referensi#
- Installing scikit-learn — scikit-learn — Instruksi instalasi resmi beserta catatan dependensi dan batas versi Python.
- venv — Creation of virtual environments — Python — Dokumentasi resmi modul venv yang digunakan untuk membuat environment terisolasi.
- Datasets — scikit-learn — Daftar dataset bawaan scikit-learn, termasuk iris dan digits.
- Dataset load_iris — scikit-learn — Dokumentasi dataset iris yang dimuat pada pemeriksaan akhir.
- Dataset load_digits — scikit-learn — Dokumentasi dataset digits yang dimuat pada pemeriksaan akhir.
- NumPy: the absolute basics for beginners — NumPy — Pengantar resmi NumPy sebagai pustaka array di bawah scikit-learn.