Analisis data jarang selesai dalam satu kali percobaan; kita mencoba satu agregasi, melihat hasilnya, lalu mencoba sudut pandang lain. Untuk siklus kerja seperti itu, file .py yang dijalankan dari atas ke bawah terasa kaku, sedangkan REPL tidak menyimpan apa pun. Jupyter Notebook menjawab kebutuhan di antara keduanya: satu dokumen yang memuat kode, catatan, dan hasil eksekusi, dieksekusi potongan demi potongan. Chapter ini menyiapkan Jupyter di komputer Anda dan menjelaskan cara berpikir di dalamnya.
Mengenal Jupyter Notebook #
Jupyter Notebook adalah aplikasi berbasis web untuk menulis dan mengeksekusi kode secara interaktif dalam satuan yang disebut cell. Arsitekturnya terdiri dari tiga bagian: server Jupyter yang berjalan di komputer kita, kernel yaitu proses Python yang benar-benar mengeksekusi kode, dan antarmuka browser untuk mengedit serta menjalankan cell. Hasil setiap cell muncul tepat di bawahnya, termasuk tabel pandas yang terformat rapi dan grafik Matplotlib yang dirender langsung di halaman (dokumentasi Matplotlib ).
Satu notebook tersimpan sebagai file berekstensi .ipynb yang isinya berformat JSON: kode, hasil eksekusi, dan teks catatan tersimpan bersama. Selain cell kode, Jupyter menyediakan cell markdown untuk penjelasan tertulis, sehingga satu file bisa memuat pertanyaan analisis, kode, dan kesimpulan sekaligus. Format inilah yang menjadi standar pembagian hasil analisis di banyak tim data.
Memasang Jupyter Notebook #
Seperti pandas, Jupyter dipasang lewat pip di dalam virtual environment yang aktif. Paket bernama notebook berisi aplikasi Jupyter Notebook klasik beserta kernelnya; ringkasan opsi instalasi resmi dari proyek Jupyter terkumpul di jupyter.org/install
:
python3 -m pip install notebookProses instalasi mengunduh Jupyter beserta sejumlah dependensinya, dan pip menutup log dengan baris Successfully installed saat selesai. Untuk memeriksa hasil pemasangan, jalankan python3 -m pip show notebook; pip menampilkan metadata paket seperti nomor versi dan lokasi site-packages. Jika show melaporkan paket tidak ditemukan, pastikan virtual environment masih aktif lalu ulangi instalasi.
Meluncurkan dan Menggunakan Notebook #
Notebook diluncurkan dari folder proyek dengan satu perintah:
jupyter notebookServer berjalan di terminal, sedangkan browser terbuka sendiri menuju alamat lokal seperti http://localhost:8888 yang menampilkan dashboard berisi daftar file folder tersebut. Dari dashboard, buat notebook baru lewat tombol New, lalu halaman kosong berisi satu cell siap dipakai. Alur kerja harian di dalam notebook:
- Ketik kode pandas ke dalam cell, misalnya pembacaan file CSV dengan
read_csv. - Jalankan cell dengan
Shift+Enter; kernel mengeksekusi kode dan hasilnya muncul di bawah cell. - Kursor berpindah ke cell berikutnya, dan kita lanjutkan analisis dengan memakai variabel dari cell sebelumnya.
Perilaku pada langkah ketiga adalah inti dari Jupyter: seluruh cell berbagi satu ruang nama di kernel yang sama, sehingga variabel dari cell pertama tetap terpakai di cell kesepuluh selama kernel belum dihidupkan ulang. Untuk membiasakan model ini, skrip berikut memperagakan tiga “cell” versi file .py yang dieksekusi berurutan; Cell 2 dan Cell 3 memakai variabel penjualan tanpa mendefinisikannya ulang:
import pandas as pd
# "Cell 1": variabel yang dibuat di sini tetap hidup untuk cell berikutnya.
penjualan = pd.DataFrame({
"produk": ["Kopi Gayo", "Teh Melati", "Gula Aren"],
"terjual": [12, 30, 25],
})
print("Hasil Cell 1:")
print(penjualan)
# "Cell 2": memakai variabel Cell 1 tanpa mendefinisikan ulang.
penjualan["pendapatan"] = penjualan["terjual"] * 25000
print("\nHasil Cell 2:")
print(penjualan)
# "Cell 3": mengagregasi state gabungan dari Cell 1 dan Cell 2.
print("\nHasil Cell 3:", penjualan["pendapatan"].sum())Output yang Dihasilkan:
Hasil Cell 1:
produk terjual
0 Kopi Gayo 12
1 Teh Melati 30
2 Gula Aren 25
Hasil Cell 2:
produk terjual pendapatan
0 Kopi Gayo 12 300000
1 Teh Melati 30 750000
2 Gula Aren 25 625000
Hasil Cell 3: 1675000Bedah singkatnya: Cell 1 membangun DataFrame penjualan tiga produk, Cell 2 menambahkan kolom pendapatan hasil perkalian kolom terjual dengan 25000, dan Cell 3 menjumlahkan kolom pendapatan menjadi 1675000. Setiap bagian bekerja karena state dari bagian sebelumnya masih tersimpan di kernel, persis seperti cell notebook.
Magic Command dan %matplotlib inline #
Di dalam cell, Jupyter menyediakan magic command: perintah berawalan % yang bukan bagian dari sintaks Python. Yang paling sering kita pakai untuk analisis data adalah %matplotlib inline, yang memerintahkan kernel menampilkan setiap grafik Matplotlib sebagai gambar langsung di bawah cell. Backend inline ini sudah aktif secara bawaan pada Jupyter modern, tetapi menuliskannya di cell pertama tetap menjadi kebiasaan yang baik karena membuat notebook berperilaku sama di lingkungan lebih lama:
%matplotlib inline
import pandas as pd
penjualan = pd.DataFrame({"bulan": ["Jan", "Feb", "Mar"], "terjual": [120, 135, 150]})
penjualan.plot.line(x="bulan", y="terjual")Baris pertama cell di atas adalah magic command-nya; baris-baris berikutnya adalah Python biasa yang membangun DataFrame lalu menggambar grafiknya dengan method .plot.line() ke backend inline. Dua magic command lain yang berguna saat eksplorasi: %run nama_skrip.py mengeksekusi file .py di dalam kernel, dan %who mencantumkan variabel yang sudah ada. Ingat batasannya: magic command hanya dikenal di dalam notebook, bukan di file .py maupun di REPL Python.
Kapan Memakai Notebook, Kapan Memakai Skrip #
Keduanya sah dan saling melengkapi; tabel berikut membantu memilih:
| Aspek | Jupyter Notebook | Skrip .py |
|---|---|---|
| Cocok untuk | Eksplorasi, visualisasi, laporan analisis | Otomasi, modul proyek, kode produksi |
| Hasil eksekusi | Tersimpan di dalam file .ipynb | Hanya muncul saat dijalankan |
| Kontrol versi | Diff JSON sulit dibaca | Diff teks biasa, ramah code review |
| Eksekusi ulang | Rentan urutan cell tidak urut | Selalu berurutan dari atas ke bawah |
Pola yang lazim di lapangan: analisis dimulai di notebook, lalu bagian kode yang stabil dipindahkan ke modul .py yang dipanggil ulang. Sebelum melanjutkan, biasakan satu kebiasaan kecil: selalu tahu versi paket yang sedang dimuat, karena itulah topik Chapter penutup Section ini.