Dokumentasi menjelaskan fungsi, buku merangkai konsep, sedangkan tutorial melatih tangan kita: materi berorientasi tugas yang bisa dijalankan sambil dibaca. Setelah course ini, tutorial yang baik berperan sebagai tempat latihan mandiri — kita mengulang konsep dalam konteks berbeda sampai terasa milik sendiri.

Bab ini memetakan tutorial resmi yang layak dijadikan tujuan berikutnya, lalu membekali kita dengan satu keterampilan yang sama pentingnya: menilai kesegaran (freshness) sebuah tutorial, karena materi di internet terbit pada era NumPy yang berbeda-beda.

Tutorial Resmi numpy.org #

Dua alamat resmi berikut menjadi titik awal terbaik. Portal numpy.org/learn mengumpulkan tautan tutorial terkurasi dari pemula hingga lanjutan, dan NumPy: the absolute basics for beginners adalah tutorial dasar resmi yang membaca seperti ringkasan course ini. Untuk latihan terpandu per topik, quickstart memadukan penjelasan singkat dengan latihan di akhir setiap bagian.

SumberFormatTopik yang diangkat
Learn portalKumpulan tautan tutorial terkurasiJalur belajar dari pemula hingga lanjutan
absolute basics for beginnersTutorial panjang satu dokumenMembuat array, indexing, operasi dasar, random
QuickstartTutorial bertahap per bagianndarray, shape manipulation, copying, latihan

Tutorial Standar Python yang Relevan #

NumPy berdiri di atas bahasa Python, sehingga beberapa bagian tutorial resmi Python melengkapi fondasi kita:

  • Data structures (list, tuple, dict) — bahan mentah yang sering dikonversi menjadi array seperti pada bab Array dari Python List.
  • Modul math — fungsi matematika untuk satu angka; pembanding yang tepat untuk ufunc yang bekerja per elemen array.
  • Modul random — pembangkit acak Python; halaman resminya sendiri menyarankan modul berbasis NumPy untuk kebutuhan array.

Bab NumPy vs Python List sudah mengurai perbedaan karakter keduanya; tutorial resmi Python melengkapi sisi yang tidak disentuh NumPy.

Menilai Kesegaran Tutorial #

Tutorial konsep jarang basi, tetapi detail API-nya bisa bergeser seiring versi. Empat langkah cepat untuk menilai sebuah tutorial:

  1. Cek versi yang dipakai tutorial. Materi yang baik menyebut versi NumPy-nya; bandingkan dengan np.__version__ milik kita.
  2. Waspadai pola pra-2.x. Nama seperti np.float_, np.NaN, np.in1d, np.row_stack, dan API acak lama np.random.seed adalah penanda usia — pengganti modernnya np.float64, np.nan, np.isin, np.vstack, dan default_rng (lihat bab default_rng dan Generator).
  3. Perhatikan tanggal terbit dan revisi. Konsep dari artikel lama tetap valid, tetapi contoh kodenya perlu disesuaikan.
  4. Uji ulang kodenya sendiri. Tutorial yang baik menampilkan output yang bisa kita reproduksi; blok yang gagal jalan adalah sinyal versi, bukan sinyal salah konsep.

Blok berikut memeriksa status nama-nama tersebut pada versi terpasang — celah kecil untuk menyaring usia sebuah tutorial:

python
import numpy as np

print("Versi terpasang:", np.__version__)
for nama in ("float_", "NaN", "in1d", "row_stack", "isin", "trapezoid"):
    print(f"np.{nama:<10}", hasattr(np, nama))

Output yang Dihasilkan:

text
Versi terpasang: 2.1.3
np.float_     False
np.NaN        False
np.in1d       True
np.row_stack  True
np.isin       True
np.trapezoid  True

Hasilnya membagi nama lama menjadi dua kelompok. np.float_ dan np.NaN sudah dihapus sehingga kode yang memakainya langsung gagal. Sebaliknya np.in1d dan np.row_stack masih tersedia namun deprecated — kode tetap berjalan, tetapi sebaiknya diganti. Perbedaan itu penting: tutorial usang yang gagal keras mudah terdeteksi, sedangkan tutorial usang yang masih berjalan bisa lewat tanpa kita sadari.

Nama deprecated berperilaku seperti ini:

python
import numpy as np
import warnings

y = np.array([0.0, 2.0, 4.0, 6.0])
with warnings.catch_warnings(record=True) as terekam:
    warnings.simplefilter("always")
    print(np.trapz(y, dx=1.0))
print("Kategori:", terekam[0].category.__name__)
print("Pesan   :", str(terekam[0].message))
print("Nama baru:", np.trapezoid(y, dx=1.0))

Output yang Dihasilkan:

text
9.0
Kategori: DeprecationWarning
Pesan   : `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`.
Nama baru: 9.0

Mari kita bedah baris demi baris:

  1. Baris 6-8 (with warnings.catch_warnings(...)): alat warnings dari pustaka standar mengaktifkan perekaman peringatan ke list tererekam alih-alih membiarkannya lewat diam-diam.
  2. Baris 9 (np.trapz(y, dx=1.0)): fungsi lama tetap menghitung hasilnya (9.0) sekaligus memancarkan DeprecationWarning.
  3. Baris 10-11: kategori dan isi peringatan dicetak — pesan dari tim pengembang NumPy menunjuk langsung ke np.trapezoid.
  4. Baris 12 (np.trapezoid(...)): nama baru menghasilkan angka yang persis sama; migrasinya hanya pindah nama.

Artikel dan Sumber Komunitas #

Artikel blog praktisi, kanal video, dan forum tanya-jawab melimpah dan sering memberi wawasan yang tidak dimiliki dokumen resmi — misalnya catatan perjalanan migrasi NumPy 2.0 atau studi kasus optimasi. Karena itu kita tidak menautkannya di sini: materi komunitas mudah kedaluwarsa dan tautannya cepat berubah. Dua kebiasaan membuat kita tetap aman memakainya: selalu cocokkan versi NumPy yang dipakai penulis, dan jalankan ulang setiap blok kode di interpreter sendiri sebelum menganggapnya benar.

Untuk pertanyaan spesifik, kekuatan terbesar tetap pada kombinasi yang sudah kita rangkai sepanjang course ini: docstring di interpreter, API reference di situs resmi, dan release notes saat versi berubah.