Bab 2: Pengenalan Package Python
125 Sel • Python 3 (WebAssembly Kernel)Bab 2: Ekosistem Paket & Sains Data Python
Awd Course
Modul Bab 2: Pip, NumPy, Pandas, Matplotlib, Seaborn, Impor/Ekspor CSV, dan Latihan Inventaris.
Memahami Package Python, Pip, dan Virtual Environment
Saat mulai belajar pemrograman, ada satu pertanyaan yang sangat wajar muncul:
"Kenapa kita harus menggunakan package atau library buatan orang lain? Kenapa tidak kita buat sendiri saja semuanya secara manual dari nol?"
Jawabannya sederhana: efisiensi dan fokus pada solusi.
Bayangkan Anda ingin membuat kue bolu. Apakah Anda harus menanam gandum sendiri, menggilingnya jadi tepung, dan membuat oven sendiri dari tanah liat? Tentu tidak. Anda cukup membeli tepung yang sudah jadi di toko, memakai oven yang sudah teruji keamanannya, lalu fokus meracik resep kue yang lezat.
Analogi di Dunia Pemrograman Nyata
Di dunia pemrograman, prinsipnya persis sama:
- Jika Anda ingin mengambil data dari internet (HTTP request), membuat kodenya sendiri secara manual dari nol berarti Anda harus menulis protokol jaringan TCP/IP, negosiasi sertifikat enkripsi SSL/TLS, dan parsing data biner tingkat rendah. Itu butuh ribuan baris kode rumit dan rawan salah.
- Dengan bantuan package seperti
requests, tugas serumit itu bisa selesai hanya dengan dua baris kode yang rapi dan aman.
Komunitas Python adalah salah satu komunitas teknologi terbesar di dunia. Ribuan pengembang dan ilmuwan telah membuat solusi siap pakai untuk hampir semua kebutuhan—mulai dari analisis data, manipulasi spreadsheet, pembuatan grafik, hingga kecerdasan buatan. Pustaka-pustaka ini dikumpulkan di gudang resmi bernama PyPI (Python Package Index).
Tugas kita sebagai pemrogram atau praktisi data bukanlah membuat ulang hal-hal dasar yang sudah ada (reinventing the wheel), melainkan memanfaatkan perkakas yang sudah matang ini untuk menyelesaikan masalah nyata.
1. Mengenal Pip dan Konsep Virtual Environment (venv)
Untuk mengunduh dan memasang package dari PyPI ke komputer kita, Python menyediakan alat bawaan resmi bernama pip (Package Installer for Python).
Namun sebelum mulai menginstal paket ke mana-mana, ada satu konsep penting yang wajib Anda pahami sejak awal: Virtual Environment (venv).
Kenapa Kita Butuh Isolasi Lingkungan?
Bayangkan skenario nyata di laptop Anda:
- Bulan lalu, Anda membuat Proyek A yang membutuhkan library
pandasversi 1.5. - Hari ini, Anda membuat Proyek B yang membutuhkan fitur terbaru di
pandasversi 2.2.
Jika Anda langsung memasang semua package secara global di sistem laptop, proses meng-upgrade pandas ke versi 2.2 demi Proyek B berisiko membuat Proyek A tiba-tiba rusak dan tidak bisa dijalankan (dependency conflict).
Solusinya adalah membuat Virtual Environment (venv). Lingkungan virtual ini ibarat membuat "kamar terpisah" untuk setiap proyek:
- Proyek A memiliki kamar sendiri dengan
pandas 1.5. - Proyek B memiliki kamar sendiri dengan
pandas 2.2.
Keduanya berjalan lancar tanpa saling mengganggu.
Cara Menggunakan venv di Terminal Komputer Anda
Saat membuat proyek Python di komputer lokal (misalnya di VS Code), berikut langkah praktisnya:
- Membuat lingkungan virtual (cukup sekali di folder proyek):
python -m venv env_belajar
- Mengaktifkan lingkungan virtual:
- Di Windows (Command Prompt / PowerShell):
env_belajar\Scripts\activate
- Di macOS atau Linux:
source env_belajar/bin/activate
(Tanda aktif: nama (env_belajar) akan muncul di awal baris prompt terminal Anda).
- Memasang paket di dalam lingkungan tersebut:
pip install requests pandas
- Menonaktifkan jika sudah selesai:
deactivate
Catatan Notebook: Di lingkungan notebook daring (seperti Google Colab atau sesi interaktif ini), sistem sudah mengisolasi lingkungan secara otomatis untuk setiap sesi. Namun, konsep
venvini wajib Anda pahami saat nanti berkarya di komputer lokal Anda sendiri.
2. Memeriksa Versi Pip dan Daftar Paket yang Terpasang
Kita bisa memeriksa versi pip serta melihat daftar paket apa saja yang sudah terpasang menggunakan tanda seru ! di depan perintah terminal.
pip 24.1.2 from /usr/local/lib/python3.13/dist-packages/pip (python 3.13)
Package Version
------------------------------------- ------------------
absl-py 1.4.0
accelerate 1.14.0
access 1.1.10.post3
affine 3.0.1
aiofiles 25.1.0
aiohappyeyeballs 2.7.1
aiohttp 3.14.3
aiosignal 1.4.03. Memasang Paket Baru dengan pip install
Untuk memasang pustaka baru dari PyPI, gunakan perintah pip install <nama_paket>. Sebagai contoh, kita akan memasang pustaka populer requests yang digunakan untuk berkomunikasi dengan web server atau API.
Requirement already satisfied: requests in /usr/local/lib/python3.13/dist-packages (2.32.4)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.13/dist-packages (from requests) (3.4.9)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.13/dist-packages (from requests) (3.19)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.13/dist-packages (from requests) (2.5.0)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.13/dist-packages (from requests) (2026.7.22)4. Menggunakan Paket yang Telah Terpasang
Setelah dipasang, kita cukup memanggil nama paketnya menggunakan kata kunci import dan mulai memanfaatkan fungsinya.
Status Code: 200
Server: github.com5. Memahami Pola Impor di Python (Import Patterns)
Setelah sebuah pustaka terpasang, bagaimana cara terbaik memanggilnya di dalam kode program kita? Python menyediakan beberapa gaya impor yang bisa disesuaikan dengan kebutuhan:
1. Impor Standar: import nama_modul
Memuat seluruh modul ke dalam program. Untuk memanggil fungsinya, kita tulis nama modulnya di depan: math.sqrt() atau requests.get().
- Kelebihan: Sangat jelas dan aman. Kita selalu tahu persis fungsi tersebut berasal dari modul mana, sehingga tidak ada risiko salah panggil.
2. Impor dengan Alias (Nama Panggilan): import nama_modul as alias
Memberikan nama panggilan singkat agar kita tidak capek mengetik berulang-ulang.
- Di dunia analisis data, komunitas sudah menyepakati singkatan standar yang dipakai di seluruh dunia:
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns
3. Impor Fungsi Tertentu Saja: from nama_modul import fungsi
Hanya mengambil fungsi atau kelas spesifik yang kita perlukan langsung ke ruang kerja program.
- Kelebihan: Ringkas karena bisa langsung dipanggil tanpa awalan nama modul, misalnya langsung
sqrt(64)alih-alihmath.sqrt(64).
4. Impor Submodul: from paket.subpaket import modul
Digunakan jika pustaka yang kita gunakan berukuran besar dan memiliki folder atau bagian bertingkat di dalamnya, contohnya from urllib.parse import urlparse.
5. Hindari Impor Wildcard: from nama_modul import *
Mengambil seluruh isi modul sekaligus tanpa awalan nama modul adalah kebiasaan yang sebaiknya dihindari (bad practice).
- Kenapa harus dihindari? Seperti mengundang ratusan orang asing masuk ke dalam rumah Anda sekaligus. Berisiko terjadi tabrakan nama (name collision).
- Misalnya, ada fungsi bawaan Python seperti
sum(),min(), atauopen()yang tidak sengaja tertimpa oleh fungsi dari modul luar, sehingga program Anda menghasilkan error aneh yang sangat sulit dicari penyebabnya.
Standar Rapi Penulisan Impor (PEP 8)
Agar kodingan Anda rapi dan mudah dibaca oleh programmer lain:
- Letakkan seluruh baris
importdi bagian paling atas berkas kode. - Kelompokkan menjadi 3 blok yang dipisahkan oleh satu baris kosong:
- Pustaka Bawaan Python (Standard Library):
os,sys,math,datetime - Pustaka Pihak Ketiga (hasil pasang dari pip):
requests,numpy,pandas - Modul Buatan Sendiri di folder proyek lokal Anda
Akar dari 64 (math.sqrt): 8.0
Pembulatan ke atas (m.ceil): 8
Pemangkatan 2 pangkat 6 (pow): 64.0
FPB dari 48 dan 180 (gcd): 12
Domain URL (urlparse): course.awd.my.id6. Memeriksa Informasi Detail Paket (pip show)
Jika Anda ingin melihat siapa pembuat paket tersebut, versi berapa yang sedang aktif, di mana lokasinya di komputer, dan paket apa saja yang menjadi syaratnya, gunakan perintah pip show <nama_paket>.
Name: requests
Version: 2.32.4
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
License: Apache-2.0
Location: /usr/local/lib/python3.13/dist-packages
Requires: certifi, charset_normalizer, idna, urllib37. Membedah Isi Paket: help(), dir(), dan inspect
Python menyediakan alat bantu bawaan yang sangat berguna untuk mencari tahu fungsi apa saja yang tersedia di dalam sebuah library tanpa harus membuka browser:
help(modul.fungsi): Membaca buku petunjuk resmi (docstring), cara penggunaan, dan penjelasan parameter fungsi.dir(modul): Mengintip daftar seluruh fungsi, kelas, dan variabel yang ada di dalam modul.inspect.signature(fungsi): Cara cepat melihat parameter apa saja yang dibutuhkan fungsi tanpa perlu membaca penjelasan panjang.
Contoh fungsi/kelas yang ada di dalam modul requests:
['ConnectTimeout', 'ConnectionError', 'Response', 'Session', 'get', 'head', 'post', 'put', 'request']
Parameter fungsi requests.get:
(url, params=None, **kwargs)8. Menghapus (Uninstall) Paket
Jika sebuah pustaka sudah tidak lagi digunakan atau ingin diganti dengan versi lain, kita bisa mencopotnya dengan perintah pip uninstall <nama_paket>.
Tambahkan opsi -y agar proses pencopotan langsung dieksekusi tanpa perlu menunggu Anda menekan tombol konfirmasi manual di terminal.
Found existing installation: requests 2.32.4
Uninstalling requests-2.32.4:
Successfully uninstalled requests-2.32.4Memasang Kembali Pustaka
Setelah mencoba proses uninstal, pasang kembali paket requests agar siap digunakan untuk materi-materi praktik berikutnya.
Successfully installed requests-2.32.49. Mengenal Alternatif Manajer Paket Selain Pip
Di dunia industri dan riset data science, Anda mungkin akan sering mendengar alat-alat selain pip. Mengapa orang membuat alternatif lain jika pip sudah ada?
Alasannya adalah setiap alat dirancang untuk memecahkan tantangan yang berbeda:
1. Conda / Mamba (Paling Populer di Sains Data & AI)
piphanya mengurus paket Python murni. Jika Anda butuh pustaka biner non-Python tingkat rendah (seperti driver CUDA untuk kartu grafis GPU, pustaka matematika C++, atau Fortran), mengompilasinya lewat pip di komputer pribadi sering kali gagal karena butuh compiler bawaan sistem.- Conda mengurus semuanya: baik paket Python, pustaka biner sistem, driver GPU, hingga versi interpreter Python itu sendiri. Sangat disukai praktisi Machine Learning, Computer Vision, dan Deep Learning.
- Mamba adalah varian Conda yang ditulis ulang menggunakan bahasa C++ agar proses pencarian paket dan instalasinya jauh lebih cepat.
2. Poetry (Standar Pengembangan Aplikasi & Tim Software Engineer)
- Pada proyek aplikasi berskala besar (seperti membuat backend web dengan FastAPI atau Django), sangat krusial memastikan versi paket yang dipakai di laptop pengembang sama persis hingga ke sub-dependensi terkecil dengan yang ada di server produksi.
- Poetry menggunakan berkas pengunci bernama
poetry.lock. Berkas ini memastikan tidak ada kasus "di laptop saya jalan normal, tapi di server kantor malah error". Poetry juga otomatis membuat dan mengelola lingkungan virtual (venv) tanpa perlu perintah manual.
3. uv (Generasi Terbaru Berkecepatan Sangat Tinggi)
- Dikembangkan menggunakan bahasa pemrograman Rust oleh tim Astral.
- Keunggulan utamanya adalah kecepatan: proses instalasi paket bisa 10 hingga 100 kali lebih cepat dibanding pip biasa.
- Format perintahnya dibuat mirip dengan pip (
uv pip install), sehingga mulai banyak digunakan pada sistem otomatisasi modern (CI/CD).
Panduan Praktis: Kapan Harus Memakai yang Mana?
| Kebutuhan Proyek | Alat Rekomendasi | Alasan Utama |
|---|---|---|
| Belajar Dasar & Scripting | pip | Bawaan resmi Python, langsung pakai tanpa konfigurasi tambahan. |
| Sains Data & AI / GPU | Conda / Mamba | Mengurus driver GPU (CUDA) dan pustaka biner non-Python secara otomatis. |
| Aplikasi Web & Tim Developer | Poetry | Ada poetry.lock, versi paket dijamin konsisten antara laptop dan server. |
| Kecepatan Maksimal (CI/CD) | uv | Berbasis Rust, proses download dan instalasi paket 10-100x lebih cepat. |
Pengenalan & Komputasi Array NumPy
Pernahkah Anda bertanya:
"Python kan sudah punya tipe data List untuk menyimpan banyak data sekaligus. Kenapa kita masih butuh NumPy?"
Jawabannya ada pada kecepatan komputasi dan efisiensi memori.
List bawaan Python dirancang sangat fleksibel—ia bisa menyimpan angka, teks, dan boolean dalam satu wadah. Namun karena terlalu fleksibel, komputer harus menyimpan setiap elemen di lokasi memori yang terpisah-pisah (pointer heap). Ketika data Anda berjumlah jutaan baris, melakukan perhitungan matematika dengan List akan terasa sangat lambat.
Di sinilah NumPy (Numerical Python) hadir. NumPy menyimpan data bertipe seragam (homogeneous) secara berurutan di dalam satu blok memori komputer yang padat (contiguous array). NumPy ditulis menggunakan bahasa C, sehingga kalkulasi matematikanya dijalankan langsung di tingkat perangkat keras (hardware level) dengan kecepatan hingga puluhan kali lebih cepat dibanding List biasa.
1. Memasang Pustaka NumPy
Sebelum menggunakan NumPy, pastikan pustaka ini sudah terpasang. Di Google Colab pustaka ini sudah tersedia, tetapi di laptop lokal Anda bisa memasangnya lewat perintah pip:
Requirement already satisfied: numpy in c:\laragon\bin\python\python-3.10\lib\site-packages (2.2.6)
[notice] A new release of pip available: 22.2.2 -> 26.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip2. Bukti Nyata: Uji Kecepatan (List vs NumPy Array)
Mari kita buktikan klaim kecepatannya dengan mengalikan 1 juta angka menggunakan List biasa dibandingkan dengan NumPy Array:
Waktu Python List : 0.0802 detik
Waktu NumPy Array : 0.0047 detik
Hasil: NumPy sekitar 17.0x lebih cepat!3. Membuat Array 1 Dimensi (Vektor) & 2 Dimensi (Matriks)
Untuk membuat array, kita memasukkan list ke dalam fungsi np.array(). NumPy memiliki beberapa atribut penting untuk memeriksa struktur data kita:
shape: Menampilkan ukuran dimensi (baris, kolom).ndim: Menampilkan jumlah dimensi (1D atau 2D).dtype: Menampilkan tipe data elemen (misalint64ataufloat64).size: Menampilkan total seluruh elemen di dalam array.
Array 1D : [10 20 30 40 50]
Bentuk : (5,)
Tipe data: int64
Matriks 2D:
[[1 2 3]
[4 5 6]
[7 8 9]]
Bentuk (baris, kolom): (3, 3)
Total elemen : 94. Fungsi Pembuat Array Instan
Sering kali kita butuh membuat array berisi angka awal tanpa harus mengetik satu per satu secara manual:
np.zeros((baris, kolom)): Membuat array berisi angka 0 (biasa dipakai sebagai wadah penampung awal).np.ones((baris, kolom)): Membuat array berisi angka 1.np.arange(awal, akhir, langkah): Membuat deret angka urut (mirip fungsirangebawaan Python).np.linspace(awal, akhir, jumlah_titik): Membuat titik-titik angka berjarak sama rata.
Array Nol (2x4):
[[0. 0. 0. 0.]
[0. 0. 0. 0.]]
Deret Genap: [ 0 2 4 6 8 10 12 14 16 18]
Linspace (0 s.d 1): [0. 0.25 0.5 0.75 1. ]5. Mengakses dan Memotong Data (Indexing & Slicing)
Bagaimana cara mengambil baris tertentu, kolom tertentu, atau angka spesifik di dalam matriks? Format standarnya adalah:
Gunakan tanda titik dua : untuk mengambil seluruh data pada baris atau kolom tersebut.
Nilai baris 1, kolom 2 : 85
Baris kedua penuh : [75 70 88]
Kolom ketiga penuh : [90 88 89]6. Operasi Matematika Vektorisasi (Vectorization)
Kelebihan utama NumPy adalah operasi matematika langsung diterapkan ke setiap elemen secara serentak tanpa perlu membuat perulangan for (vectorization):
Harga awal : [10000 25000 50000 75000]
Harga setelah diskon : [ 9000. 22500. 45000. 67500.]
Total bayar (+ ongkir): [11000. 25500. 50000. 71500.]7. Menyaring Data Berdasarkan Kondisi (Boolean Indexing)
Dalam analisis data, kita sangat sering menyaring angka yang memenuhi kriteria tertentu (misalnya nilai di atas batas kelulusan atau penjualan di atas target).
Di NumPy, Anda cukup memasukkan kondisi logika ke dalam kurung siku array[kondisi]. Ini jauh lebih cepat dan bersih daripada membuat percabangan if di dalam loop.
Status kelulusan (Boolean): [False True False True False True True False True]
Daftar skor yang lulus (>= 75): [82 90 88 95 78]
Jumlah peserta yang lulus : 58. Mengubah Dimensi Array (reshape)
Dalam analisis data dan machine learning, kita sering kali perlu mengubah susunan data dari 1 dimensi (deret angka) menjadi tabel 2 dimensi (baris x kolom), misalnya mengubah 12 data bulanan menjadi matriks 3 kuartal x 4 bulan.
Gunakan method .reshape(baris, kolom). Syaratnya: total jumlah elemen awal dan akhir harus sama persis.
Array 1D awal: [ 1 2 3 4 5 6 7 8 9 10 11 12]
Matriks 3 baris x 4 kolom:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
Matriks 4 baris x 3 kolom:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]9. Menghitung Statistik Cepat dengan NumPy
NumPy menyediakan fungsi statistik bawaan berkinerja tinggi untuk meringkas data angka numerik:
Total Keseluruhan (Sum) : 755
Rata-rata (Mean) : 75.5
Nilai Tengah (Median) : 80.0
Standar Deviasi (Std) : 15.31
Penjualan Terendah (Min): 45
Penjualan Tertinggi(Max): 9510. Studi Kasus Nyata: Analisis Penjualan Mingguan 3 Cabang Toko
Mari kita terapkan seluruh konsep yang telah dipelajari ke dalam studi kasus nyata.
Sebuah jaringan toko ritel memiliki 3 cabang (Cabang Jakarta, Surabaya, dan Bandung). Data penjualan produk selama 7 hari (Senin s.d. Minggu) dicatat ke dalam satu matriks 2 dimensi ukuran 3 baris x 7 kolom.
Tugas kita:
- Menghitung total penjualan masing-masing cabang dalam seminggu (
axis=1). - Menghitung rata-rata penjualan harian seluruh cabang gabungan (
axis=0). - Menentukan cabang mana yang memiliki penjualan tertinggi.
=== Laporan Performa Mingguan Toko Ritel ===
Cabang Jakarta : Total = 158 unit | Rata-rata = 22.6 unit/hari
Cabang Surabaya : Total = 101 unit | Rata-rata = 14.4 unit/hari
Cabang Bandung : Total = 200 unit | Rata-rata = 28.6 unit/hari
Cabang dengan performa terbaik: Cabang Bandung (200 unit)
Rata-rata penjualan gabungan per hari:
Sen: 15.0 unit | Sel: 18.0 unit | Rab: 19.0 unit | Kam: 20.3 unit | Jum: 24.3 unit | Sab: 29.3 unit | Min: 27.0 unit |Pengenalan Struktur Data Pandas (Series & DataFrame)
Di dunia analisis data dan sains data, ada satu pustaka yang paling sering digunakan setiap hari: Pandas.
Mungkin Anda bertanya:
"Kalau cuma mengolah data tabel, kenapa kita tidak pakai Microsoft Excel atau database SQL saja?"
Masing-masing alat punya keunggulan, tetapi juga memiliki batasan:
- Microsoft Excel sangat nyaman untuk melihat data secara visual, tetapi terbatas maksimal sekitar 1 juta baris. Jika file Anda berisi puluhan juta transaksi atau formula rumit, Excel akan sangat lambat bahkan crash. Selain itu, alur kerja di Excel sulit diautomasi secara mandiri dalam pipeline sistem.
- SQL sangat andal untuk menyimpan dan mengambil data dari database relasional, tetapi kurang fleksibel untuk transformasi data yang rumit, pembersihan teks yang kotor, rekayasa fitur (feature engineering), dan pemodelan statistik.
Pandas hadir menggabungkan keunggulan keduanya:
Ia memberikan kemudahan memanipulasi tabel seperti di Excel, kecepatan pemfilteran data seperti di SQL, dan fleksibilitas tanpa batas dari bahasa pemrograman Python. Dengan Pandas, kita bisa memuat jutaan data dalam sekejap, membersihkan data yang hilang, menggabungkan tabel, hingga menghitung statistik kompleks hanya dengan beberapa baris kode.
1. Memasang Pustaka Pandas
Pastikan pustaka Pandas sudah terpasang di lingkungan Python Anda sebelum digunakan:
Requirement already satisfied: pandas in c:\laragon\bin\python\python-3.10\lib\site-packages (2.3.1)
Requirement already satisfied: tzdata>=2022.7 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2025.2)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2.9.0.post0)
Requirement already satisfied: numpy>=1.22.4 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2.2.6)
Requirement already satisfied: pytz>=2020.1 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2025.2)
Requirement already satisfied: six>=1.5 in c:\laragon\bin\python\python-3.10\lib\site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)
[notice] A new release of pip available: 22.2.2 -> 26.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip2. Pandas Series: Struktur Data 1 Dimensi Berlabel
Di Pandas ada dua struktur data utama: Series dan DataFrame.
Series adalah array satu dimensi yang memiliki label penunjuk (index). Kalau di list biasa Anda hanya bisa memanggil data lewat angka 0, 1, 2, pada Series Anda bisa memberikan nama indeks sesuka hati (misalnya nama kota, tanggal, atau kode barang).
=== Data Series Populasi ===
Jakarta 10.56
Surabaya 2.93
Bekasi 2.51
Bandung 1.83
Name: Populasi (Juta Jiwa), dtype: float64
Populasi Surabaya : 2.93 juta jiwa
Rata-rata Populasi: 4.46 juta jiwa3. Pandas DataFrame: Struktur Tabel 2 Dimensi
Jika Anda menggabungkan beberapa Series berdampingan, Anda akan mendapatkan DataFrame—yaitu representasi tabel dua dimensi lengkap dengan baris (rows) dan kolom (columns), persis seperti lembar kerja spreadsheet Excel.
Cara termudah membuat DataFrame adalah menggunakan struktur Dictionary Python, di mana key menjadi nama kolom dan value (list) menjadi data isinya:
=== Tabel Data Karyawan ===
Nama Divisi Gaji_Juta Pengalaman_Tahun
0 Andi Engineering 15.5 3
1 Budi Data 18.0 5
2 Citra Data 16.5 4
3 Dewi Design 12.0 2
4 Eko Engineering 14.0 3
5 Fani Marketing 11.5 14. Inspeksi Cepat: Mengenal Bentuk dan Kesehatan Data
Saat pertama kali menerima file data dari rekan kerja atau database, jangan langsung melakukan perhitungan. Lakukan inspeksi awal terlebih dahulu menggunakan 4 fungsi andalan ini:
df.head(n): Melihatnbaris data teratas.df.shape: Mengetahui ukuran tabel (total baris, total kolom).df.info(): Memeriksa tipe data setiap kolom dan mendeteksi apakah ada data yang bolong/kosong.df.describe(): Ringkasan statistik otomatis (rata-rata, standar deviasi, nilai minimum, kuartil, dan maksimum).
Ukuran tabel (baris, kolom): (6, 4)
3 Baris Pertama (head):
Nama Divisi Gaji_Juta Pengalaman_Tahun
0 Andi Engineering 15.5 3
1 Budi Data 18.0 5
2 Citra Data 16.5 4
Ringkasan Statistik Deskriptif:
Gaji_Juta Pengalaman_Tahun
count 6.000000 6.000000
mean 14.583333 3.000000
std 2.557668 1.414214
min 11.500000 1.000000
25% 12.500000 2.250000
50% 14.750000 3.000000
75% 16.250000 3.750000
max 18.000000 5.0000005. Memilih Data: Memahami Perbedaan .loc vs .iloc
Ini adalah materi yang paling sering membingungkan pemula saat belajar Pandas. Bagaimana cara mengambil baris dan kolom tertentu?
Kuncinya adalah mengingat dua method berikut:
.loc(Label-based): Mengambil data berdasarkan nama label teks (nama kolom atau nama indeks)..iloc(Integer-based): Mengambil data murni berdasarkan posisi nomor indeks angka (dimulai dari0, 1, 2, ...).
Menggunakan .loc (berdasarkan nama kolom):
Nama Andi
Gaji_Juta 15.5
Name: 0, dtype: object
Menggunakan .iloc (baris 0 s.d 1, kolom 0 s.d 1):
Nama Divisi
0 Andi Engineering
1 Budi Data6. Menyaring Data (Filtering & Boolean Indexing Multi-Kondisi)
Sering kali kita ingin menyaring data berdasarkan satu atau beberapa kriteria sekaligus, mirip seperti perintah WHERE di SQL.
Aturan penulisan kondisi di Pandas:
- Gunakan tanda kurung
(kondisi_1) & (kondisi_2)untuk logika AND (keduanya harus terpenuhi). - Gunakan tanda kurung
(kondisi_1) | (kondisi_2)untuk logika OR (salah satu terpenuhi).
Karyawan dengan Gaji > 15 Juta:
Nama Divisi Gaji_Juta
0 Andi Engineering 15.5
1 Budi Data 18.0
2 Citra Data 16.5
Karyawan Divisi Data Senior (Pengalaman >= 4 tahun):
Nama Pengalaman_Tahun Gaji_Juta
1 Budi 5 18.0
2 Citra 4 16.57. Menambah dan Memodifikasi Kolom
Di dunia nyata, kita sering perlu membuat kolom baru hasil perhitungan matematis (misalnya menghitung bonus tahunan atau konversi mata uang):
Tabel Karyawan setelah penambahan kolom kompensasi:
Nama Divisi Gaji_Juta Bonus_Akhir_Tahun Total_Tahunan
0 Andi Engineering 15.5 23.25 209.25
1 Budi Data 18.0 27.00 243.00
2 Citra Data 16.5 24.75 222.75
3 Dewi Design 12.0 18.00 162.00
4 Eko Engineering 14.0 21.00 189.00
5 Fani Marketing 11.5 17.25 155.258. Menangani Data Kosong (Missing Values / NaN)
Hampir tidak ada dataset di dunia nyata yang 100% bersih. Pasti ada baris yang nilainya kosong karena pengguna lupa mengisi form, sensor terputus, atau kesalahan sistem. Di Pandas, data kosong ditandai dengan NaN (Not a Number).
Tiga langkah menangani data kosong:
- Cek data kosong:
df.isna().sum()menghitung berapa banyak data kosong di setiap kolom. - Isi data kosong:
df.fillna(nilai)mengisi data kosong dengan nilai tertentu (misalnya nilai rata-rata atau angka 0). - Hapus baris kosong:
df.dropna()membuang baris yang memiliki nilai kosong jika data tersebut tidak bisa diperbaiki.
=== Data Awal Pelanggan ===
Nama Kota Usia Skor_Kepuasan
0 Rian Jakarta 28.0 4.5
1 Siti Surabaya NaN 4.8
2 Agus NaN 35.0 4.2
3 Lina Bandung 24.0 NaN
4 Doni Jakarta 31.0 4.6
Jumlah data kosong per kolom:
Nama 0
Kota 1
Usia 1
Skor_Kepuasan 1
dtype: int64
=== Data Setelah Dibersihkan ===
Nama Kota Usia Skor_Kepuasan
0 Rian Jakarta 28.0 4.5
1 Siti Surabaya 30.0 4.8
2 Agus Tidak Diketahui 35.0 4.2
3 Lina Bandung 24.0 NaN
4 Doni Jakarta 31.0 4.69. Studi Kasus Bisnis Nyata: Analisis Penjualan & Inventaris Toko Retail
Mari kita terapkan kemampuan Pandas untuk menganalisis data inventaris produk e-commerce.
Pertanyaan bisnis yang ingin dijawab oleh manajemen:
- Berapa total omset potensial (Harga dikali Stok Terjual) untuk setiap produk?
- Kategori produk mana yang menyumbang pendapatan total tertinggi?
- Produk apa saja yang terjual lebih dari 25 unit dan memiliki rating kepuasan di atas 4.5?
=== Tabel Penjualan Produk Toko ===
Produk Kategori Terjual Total_Omset_Juta
0 Laptop Asus Komputer 14 119.00
1 Mouse Logitech Aksesoris 85 12.75
2 Keyboard Mechanical Aksesoris 40 18.00
3 Monitor LG Komputer 20 44.00
4 Headset Sony Audio 28 33.60
5 Webcam Razer Aksesoris 32 25.60
=== Peringkat Pendapatan per Kategori (Juta Rupiah) ===
Kategori
Komputer 163.00
Aksesoris 56.35
Audio 33.60
Name: Total_Omset_Juta, dtype: float64
=== Produk Terlaris dengan Rating Tinggi (>= 4.5) ===
Produk Kategori Terjual Rating
1 Mouse Logitech Aksesoris 85 4.5
2 Keyboard Mechanical Aksesoris 40 4.7Visualisasi Data Dasar dengan Matplotlib
Pernahkah Anda mencoba mempresentasikan tabel data yang berisi ribuan baris angka kepada atasan atau klien?
Sebagian besar orang akan kesulitan mencerna pola atau kesimpulan jika hanya melihat deretan angka mentah.
Pepatah kuno mengatakan: "Sebuah gambar bernilai seribu kata". Di dunia sains data, sebuah grafik yang tepat bernilai ribuan baris angka.
Visualisasi data memungkinkan kita:
- Menemukan Pola & Tren: Melihat apakah penjualan sedang naik atau turun dari bulan ke bulan.
- Mendeteksi Anomali / Outlier: Menemukan kesalahan data atau lonjakan transaksi yang tidak wajar dalam sekejap mata.
- Menyampaikan Cerita Data (Data Storytelling): Membantu orang lain memahami wawasan (insight) bisnis dengan mudah tanpa harus membaca rumus matematika.
Di ekosistem Python, Matplotlib adalah pustaka visualisasi data tingkat dasar yang paling matang dan menjadi fondasi bagi pustaka modern lainnya (seperti Seaborn). Matplotlib memberikan kita kendali penuh atas setiap elemen di kanvas—mulai dari warna garis, bentuk penanda titik, label sumbu, hingga tata letak grafik.
1. Memasang Pustaka Matplotlib
Pastikan pustaka Matplotlib sudah terpasang di komputer Anda sebelum memulai pembuatan grafik:
Collecting matplotlib
Downloading matplotlib-3.10.9-cp310-cp310-win_amd64.whl (8.2 MB)
---------------------------------------- 8.2/8.2 MB 4.7 MB/s eta 0:00:00
Requirement already satisfied: python-dateutil>=2.7 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib) (2.9.0.post0)
Requirement already satisfied: numpy>=1.23 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib) (2.2.6)
Collecting cycler>=0.10
Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
Collecting contourpy>=1.0.1
Downloading contourpy-1.3.2-cp310-cp310-win_amd64.whl (221 kB)
-------------------------------------- 221.2/221.2 kB 4.5 MB/s eta 0:00:00
Requirement already satisfied: packaging>=20.0 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib) (25.0)
Requirement already satisfied: pyparsing>=3 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib) (3.3.2)
Collecting fonttools>=4.22.0
Downloading fonttools-4.65.0-cp310-cp310-win_amd64.whl (1.6 MB)
---------------------------------------- 1.6/1.6 MB 3.6 MB/s eta 0:00:00
Requirement already satisfied: pillow>=8 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib) (12.2.0)
Collecting kiwisolver>=1.3.1
Downloading kiwisolver-1.5.1-cp310-cp310-win_amd64.whl (70 kB)
---------------------------------------- 70.6/70.6 kB 3.8 MB/s eta 0:00:00
Requirement already satisfied: six>=1.5 in c:\laragon\bin\python\python-3.10\lib\site-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)
Installing collected packages: kiwisolver, fonttools, cycler, contourpy, matplotlib
Successfully installed contourpy-1.3.2 cycler-0.12.1 fonttools-4.65.0 kiwisolver-1.5.1 matplotlib-3.10.9
[notice] A new release of pip available: 22.2.2 -> 26.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip2. Anatomi Grafik Matplotlib (Figure vs Axes)
Sebelum menggambar, penting memahami dua konsep utama di Matplotlib:
Figure(Kanvas): Papan gambar keseluruhan (jendela atau kertas kosong tempat grafik diletakkan).Axes(Bidang Koordinat): Grafik sesungguhnya yang memiliki sumbu X, sumbu Y, garis kisi (grid), dan judul.
Mari kita buat grafik garis sederhana pertama untuk melihat hubungan anatomi ini:
3. Line Plot: Memantau Tren Berdasarkan Waktu (Time Series)
Diagram garis (Line Plot) adalah pilihan terbaik ketika Anda ingin memantau pergerakan suatu nilai dari waktu ke waktu (harian, bulanan, atau tahunan).
Mari kita visualisasikan tren penjualan e-commerce dari dua produk berbeda sepanjang semester pertama:
4. Bar Plot: Membandingkan Nilai Antar Kategori
Jika data Anda berupa kategori diskrit (seperti nama divisi, jenis produk, atau nama kota), Diagram Batang (Bar Plot) jauh lebih tepat dibanding grafik garis karena data tidak memiliki kesinambungan waktu.
Tips profesional: Selalu tambahkan angka nilai (data labels) di atas setiap batang agar pembaca langsung tahu angka pastinya tanpa harus mengira-ngira ke sumbu Y.
5. Histogram: Melihat Distribusi dan Kepadatan Data
Histogram digunakan untuk melihat sebaran frekuensi dari suatu data angka kontinu. Misalnya, kita ingin tahu bagaimana sebaran skor ujian 200 siswa: apakah sebagian besar siswa dapat nilai sedang, atau condong banyak yang mendapat nilai rendah/tinggi?
6. Scatter Plot: Memeriksa Korelasi Hubungan 2 Variabel
Diagram Tebar (Scatter Plot) menampilkan titik-titik koordinat antara dua variabel numerik. Diagram ini sangat penting untuk menjawab pertanyaan hubungan kausalitas, misalnya:
"Apakah semakin besar biaya iklan digital yang dikeluarkan, jumlah pembeli yang datang juga meningkat sebanding?"
7. Subplots: Menyusun Beberapa Grafik Berdampingan
Sering kali kita perlu membandingkan dua sudut pandang data sekaligus dalam satu laporan tanpa membuat dua file terpisah. Gunakan fungsi plt.subplots(jumlah_baris, jumlah_kolom):
8. Menyimpan Hasil Visualisasi ke File Gambar (plt.savefig)
Setelah membuat grafik yang bagus, Anda tentu ingin memasukkannya ke dalam slide presentasi PowerPoint atau dokumen laporan Word. Anda bisa menyimpannya secara otomatis menggunakan method plt.savefig() dengan resolusi tinggi (dpi=300):
✓ Grafik berhasil disimpan sebagai 'grafik_penjualan_laptop.png'Visualisasi Data Statistik dengan Seaborn
Setelah mempelajari Matplotlib di materi sebelumnya, pertanyaan yang sering muncul adalah:
"Kalau Matplotlib sudah bisa menggambar grafik apa saja, kenapa kita masih butuh Seaborn?"
Perbedaannya terletak pada level abstraksi dan kemudahan integrasi statistik:
- Matplotlib bekerja di tingkat dasar (low-level). Anda harus mengatur setiap detail garis, warna, jarak batang, dan legenda secara manual. Ibaratnya, Anda merakit sepeda motor dari nol menggunakan baut dan obeng.
- Seaborn adalah pustaka visualisasi tingkat tinggi (high-level) yang dibangun tepat di atas Matplotlib. Seaborn dirancang khusus untuk bekerja langsung dengan DataFrame Pandas. Dengan hanya satu baris kode pendek, Seaborn otomatis menerapkan palet warna yang modern, mengelompokkan data berdasarkan kategori, dan menghitung estimasi statistik (seperti rata-rata, distribusi probabilitas, dan interval kepercayaan).
Singkatnya: Matplotlib memberikan kebebasan kendali penuh, sedangkan Seaborn memberikan keindahan visual dan analisis statistik instan.
1. Memasang Pustaka Seaborn
Pastikan pustaka Seaborn sudah terpasang di komputer Anda sebelum memulai:
Collecting seaborn
Downloading seaborn-0.13.2-py3-none-any.whl (294 kB)
-------------------------------------- 294.9/294.9 kB 2.3 MB/s eta 0:00:00
Requirement already satisfied: numpy!=1.24.0,>=1.20 in c:\laragon\bin\python\python-3.10\lib\site-packages (from seaborn) (2.2.6)
Requirement already satisfied: pandas>=1.2 in c:\laragon\bin\python\python-3.10\lib\site-packages (from seaborn) (2.3.1)
Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in c:\laragon\bin\python\python-3.10\lib\site-packages (from seaborn) (3.10.9)
Requirement already satisfied: pyparsing>=3 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.3.2)
Requirement already satisfied: contourpy>=1.0.1 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.3.2)
Requirement already satisfied: pillow>=8 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (12.2.0)
Requirement already satisfied: packaging>=20.0 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (25.0)
Requirement already satisfied: fonttools>=4.22.0 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.65.0)
Requirement already satisfied: cycler>=0.10 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.12.1)
Requirement already satisfied: kiwisolver>=1.3.1 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.5.1)
Requirement already satisfied: python-dateutil>=2.7 in c:\laragon\bin\python\python-3.10\lib\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas>=1.2->seaborn) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas>=1.2->seaborn) (2025.2)
Requirement already satisfied: six>=1.5 in c:\laragon\bin\python\python-3.10\lib\site-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.17.0)
Installing collected packages: seaborn
Successfully installed seaborn-0.13.2
[notice] A new release of pip available: 22.2.2 -> 26.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip2. Setup Tema dan Menyiapkan Dataset Realistis
Seaborn memiliki fungsi sns.set_theme(style="whitegrid") yang otomatis mengubah tampilan grafik menjadi bersih, modern, dan profesional tanpa perlu mengatur font atau garis kisi satu per satu.
Mari kita siapkan contoh dataset transaksi toko daring berisi informasi kategori barang, harga, unit terjual, metode pembayaran, dan rating pembeli:
Tabel Transaksi (5 Baris Pertama):
Kategori Harga_Ribu Terjual Metode_Bayar Rating
0 Komputer 8500 15 Transfer 4.8
1 Komputer 12000 8 QRIS 4.9
2 Aksesoris 150 85 QRIS 4.5
3 Aksesoris 450 40 Cash 4.7
4 Audio 800 30 QRIS 4.33. Kekuatan Parameter hue: Membedah Data Multi-Kategori
Salah satu fitur paling dicintai di Seaborn adalah parameter hue.
Dengan parameter hue, kita bisa memecah grafik batang per kategori berdasarkan dimensi tambahan (misalnya metode pembayaran) hanya dengan mengetik hue='Metode_Bayar'. Seaborn akan otomatis membuat warna berbeda dan menyusun legendanya secara rapi:
4. Histogram & Kurva Kepadatan Probabilitas (kde=True)
Saat menganalisis variabel kontinu (seperti skor rating atau usia pelanggan), kita ingin tahu apakah data tersebut condong ke arah kanan, kiri, atau simetris di tengah.
Dengan menambahkan opsi kde=True (Kernel Density Estimate), Seaborn akan menggambar kurva mulus di atas histogram untuk memperkirakan bentuk sebaran populasinya:
5. Boxplot: Memahami Distribusi Kuartil dan Mendeteksi Outlier
Diagram Kotak Garis (Boxplot) adalah salah satu alat paling penting bagi seorang praktisi data. Dari satu kotak kecil ini, kita bisa langsung membaca lima ringkasan statistik sekaligus:
- Garis tengah di dalam kotak: Nilai Median (Q2 / kuartil tengah).
- Batas bawah & atas kotak: Kuartil 1 (Q1 - 25% data) dan Kuartil 3 (Q3 - 75% data). Kotak ini merangkum 50% data utama Anda.
- Garis kumis (whiskers): Batas rentang data wajar terendah dan tertinggi.
- Titik-titik terisolasi di luar kumis: Outlier (Nilai Pencilan), yaitu data ekstrem yang jauh berbeda dari mayoritas populasi.
C:\Users\iputu\AppData\Local\Temp\ipykernel_16124\4147858169.py:4: FutureWarning:
Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.
sns.boxplot(6. Scatter Plot Multi-Dimensi (Posisi, Warna, dan Ukuran)
Di Seaborn, kita bisa memvisualisasikan hingga 4 variabel sekaligus dalam satu grafik sebar (scatter plot):
- Sumbu X: Harga Barang
- Sumbu Y: Jumlah Unit Terjual
- Warna (
hue): Kategori Produk - Ukuran Titik (
size): Skor Rating
7. Heatmap Korelasi: Peta Panas Hubungan Antar Variabel Numerik
Dalam tahap Analisis Data Eksploratif (EDA) dan pembuatan model Machine Learning, langkah nomor satu yang hampir selalu dilakukan adalah memeriksa matriks korelasi antar seluruh kolom angka.
Korelasi berkisar antara -1 (berbanding terbalik sempurna) hingga +1 (berbanding lurus sempurna). Angka mendekati 0 berarti tidak ada hubungan linear.
Dengan fungsi sns.heatmap(), angka-angka korelasi ini diubah menjadi gradasi warna visual yang langsung menunjukkan variabel mana yang saling mempengaruhi:
Teknik Impor & Ekspor Data (CSV, URL, Git, Google Drive, Excel, JSON)
Dalam proyek sains data di dunia industri, dataset jarang dibuat secara manual menggunakan kode, melainkan dimuat dari berbagai sumber penyimpanan: berkas lokal (CSV/Excel), tautan web langsung (URL), repositori Git, Google Drive (Google Colab), maupun API berbasis JSON. Modul ini membahas seluruh metode impor dan ekspor data paling esensial.
1. Membaca & Menulis Berkas CSV Lokal (pd.read_csv & df.to_csv)
CSV (Comma Separated Values) adalah format pertukaran data tabular yang paling umum digunakan dalam analisis data.
Berkas 'daftar_produk.csv' berhasil disimpan!
Hasil Baca Berkas CSV:
Kode Produk Harga Stok
0 A01 Laptop Pro 14500000 12
1 A02 Mouse Wireless 250000 45
2 A03 Keyboard Mekanikal 850000 28
3 A04 Monitor 4K 4200000 15Parameter Penting pada pd.read_csv:
sepataudelimiter: Menentukan pemisah kolom jika menggunakan titik koma (;) atau tab (\t).usecols: Hanya membaca kolom-kolom tertentu untuk menghemat penggunaan RAM.nrows: Membatasi jumlah baris yang dibaca (sangat berguna untuk mengintip sampel awal berkas raksasa berukuran gigabyte).encoding: Mengatur standar pengkodean karakter, misalnya'utf-8'atau'latin1'.
Baca Spesifik (Kolom Tertentu & Batas Baris):
Produk Harga
0 Laptop Pro 14500000
1 Mouse Wireless 2500002. Membaca Dataset Langsung dari URL Web (Online Dataset)
Fungsi pd.read_csv di Pandas dapat langsung menerima alamat tautan URL HTTP/HTTPS (seperti URL raw file di GitHub atau portal Open Data), sehingga Anda tidak perlu mengunduh berkas secara manual terlebih dahulu ke komputer.
Dataset berhasil dimuat dari URL! Dimensi: 150 baris, 5 kolom.
5 Baris Pertama:
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa3. Mengunduh & Mengimpor Data Menggunakan Git (git clone)
Jika proyek riset atau tim Anda menyimpan kumpulan dataset, gambar, dan skrip pada repositori GitHub/GitLab, Anda dapat menarik seluruh repositori ke lingkungan kerja menggunakan perintah !git clone.
Cloning into 'seaborn-data'...
remote: Enumerating objects: 208, done.[K
remote: Counting objects: 100% (60/60), done.[K
remote: Compressing objects: 100% (22/22), done.[K
remote: Total 208 (delta 46), reused 38 (delta 38), pack-reused 148 (from 2)[K
Receiving objects: 100% (208/208), 7.29 MiB | 26.48 MiB/s, done.
Resolving deltas: 100% (86/86), done.
Dataset berhasil dimuat4. Menghubungkan & Mengakses Data dari Google Drive (Google Colab Workflow)
Pada lingkungan Google Colab, penyimpanan lokal bersifat sementara (ephemeral) dan akan hilang saat runtime di-restart. Untuk menyimpan atau memuat dataset berukuran besar secara persisten, praktisi data mengaitkan (mount) akun Google Drive ke Google Colab.
Langkah-Langkah Integrasi Google Drive di Colab:
- Hubungkan Google Drive dengan modul bawaan
google.colab. - Berikan izin akses saat muncul jendela verifikasi akun Google.
- Seluruh folder dan berkas di Google Drive Anda akan tersedia di jalur direktori
/content/drive/MyDrive/.
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
survived pclass sex age sibsp parch fare embarked deck
0 0 3 male 22.0 1 0 7.2500 S NaN
1 1 1 female 38.0 1 0 71.2833 C C
2 1 3 female 26.0 0 0 7.9250 S NaN
3 1 1 female 35.0 1 0 53.1000 S C
4 0 3 male 35.0 0 0 8.0500 S NaN5. Membaca & Mengekspor Format Microsoft Excel (.xlsx)
Selain CSV, berkas spreadsheet Microsoft Excel (.xlsx) sangat banyak digunakan dalam laporan bisnis. Untuk membaca dan menulis format Excel, Pandas membutuhkan modul pihak ketiga bernama openpyxl (pip install openpyxl).
Gunakan fungsi pd.read_excel() untuk membaca dan method df.to_excel() untuk mengekspor.
Requirement already satisfied: openpyxl in /usr/local/lib/python3.13/dist-packages (3.1.5)
Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.13/dist-packages (from openpyxl) (2.0.0)
Fungsi Ekspor Excel: df.to_excel('laporan.xlsx', sheet_name='Sheet1', index=False)
Fungsi Baca Excel : pd.read_excel('laporan.xlsx', sheet_name='Sheet1')6. Membaca & Mengekspor Format JSON (pd.read_json & df.to_json)
JSON (JavaScript Object Notation) adalah format transmisi standar untuk integrasi API dan aplikasi web modern.
Berkas 'daftar_produk.json' berhasil diekspor!
Hasil Baca Berkas JSON:
Kode Produk Harga Stok
0 A01 Laptop Pro 14500000 12
1 A02 Mouse Wireless 250000 45
2 A03 Keyboard Mekanikal 850000 28
3 A04 Monitor 4K 4200000 157. Rangkuman Tabel Fungsi Impor & Ekspor Data
| Sumber / Format | Fungsi Membaca (Import) | Fungsi Menyimpan (Export) | Kebutuhan Tambahan / Parameter Kunci |
|---|---|---|---|
| CSV Lokal | pd.read_csv('file.csv') | df.to_csv('file.csv', index=False) | sep=';', encoding='utf-8', usecols |
| URL Web / GitHub | pd.read_csv('https://...') | - | Mendukung protokol HTTP/HTTPS langsung |
| Git Clone | !git clone <url_repo> lalu pd.read_csv(...) | git push via CLI | Menarik seluruh folder repositori data |
| Google Drive | from google.colab import drive + drive.mount('/content/drive') | df.to_csv('/content/drive/MyDrive/...') | Khusus Google Colab untuk persistensi cloud |
| Excel (.xlsx) | pd.read_excel('file.xlsx', sheet_name=...) | df.to_excel('file.xlsx', index=False) | Memerlukan pustaka openpyxl |
| JSON | pd.read_json('file.json') | df.to_json('file.json', orient='records') | Format standar API web dan NoSQL |
Tugas Praktik: Mini Proyek Analisis & Visualisasi Produk (Tantangan Mandiri)
Instruksi Tantangan:
Tugas integrasi Bab 2 ini dirancang untuk menguji daya nalar dan pemahaman mandiri Anda setelah mempelajari ekosistem paket Python: Pip, NumPy, Pandas, Matplotlib, dan Seaborn.
🧠 Tantangan Anda: Alih-alih hanya menjalankan kode yang sudah siap pakai, Anda diminta memikirkan logika dan melengkapi bagian-bagian kode yang masih rumpang (
_______).
Silakan klik tombol Buka di Google Colab atau unduh file .ipynb ini untuk mengisi dan menguji langsung program Anda.
Tolok Ukur Hasil (Expected Output)
Sebelum mulai menulis kode, cermati target output teks dan grafik di bawah ini. Kode yang Anda lengkapi harus mampu menghasilkan komputasi dan visualisasi serupa:
=== TARGET OUTPUT SOAL 1 & 2 ===
Kode Produk Harga Stok Total_Nilai
0 A01 Laptop Pro 14500000 12 174000000
1 A02 Mouse Wireless 250000 45 11250000
2 A03 Keyboard Mekanikal 850000 28 23800000
3 A04 Monitor 4K 4200000 15 63000000
=== TARGET RINGKASAN SAINTIFIK (NUMPY) ===
Total Nilai Aset Inventaris : Rp 272,050,000
Rata-rata Harga Produk : Rp 4,950,000
Rata-rata Stok Unit : 25.0 unitSoal 1: Membaca Dataset dengan Pandas
Instruksi: Panggil fungsi Pandas yang tepat untuk membaca file daftar_produk.csv pada bagian kosong _______.
Soal 2: Menghitung Kolom Vektor & Statistik Agregasi NumPy
Instruksi:
- Lengkapi kalkulasi vektor untuk kolom baru
Total_Nilaiyang merupakan perkalianHargadanStok. - Gunakan fungsi statistik NumPy (
np.sumdannp.mean) pada bagian_______untuk menghitung total aset dan rata-rata.
Soal 3: Visualisasi Diagram Batang (Bar Chart)
Instruksi: Masukkan kolom kategori produk untuk sumbu X dan total nilai stok untuk sumbu Y, lalu berikan label sumbu yang informatif pada bagian _______.
Soal 4: Ekspor DataFrame ke File CSV Bersih
Instruksi: Lengkapi method ekspor DataFrame ke file laporan_inventaris_selesai.csv tanpa mengikutsertakan indeks bawaan (index=False).