📝 Artikel ini ditulis dalam Bahasa Indonesia
🔥 Seri Belajar PyTorch Part 1

Tensor, Autograd & Neural Network Pertama Anda

Dari nol sampai bisa bikin neural network sendiri. Part 1 ini membahas fondasi PyTorch: apa itu Tensor (dan bedanya dengan NumPy), bagaimana Autograd menghitung gradient otomatis, dan membuat neural network pertama yang bisa belajar — dalam 50 baris kode.

📅 Maret 2026 ⏱ 18 menit baca 🏷 PyTorch • Deep Learning • Tensor • Autograd • Beginner
📚 Seri Belajar PyTorch:
1 2 3 4 5 6 7 8 9 10

📑 Daftar Isi — Part 1

  1. Kenapa PyTorch? — Mengapa framework ini jadi standar industri
  2. Instalasi — Setup environment dalam 2 menit
  3. Tensor — Fondasi semua operasi di PyTorch
  4. Operasi Tensor — Reshape, indexing, math, GPU
  5. Autograd — Mesin diferensiasi otomatis
  6. Neural Network Pertama — 50 baris kode, bisa belajar sendiri
  7. Ringkasan & Preview Part 2
🔥

1. Kenapa PyTorch?

Framework deep learning #1 — dari riset hingga production

PyTorch adalah framework deep learning open-source dari Meta AI (Facebook) yang menjadi standar de facto di dunia riset dan industri. Hampir semua paper AI terbaru (GPT, LLaMA, Stable Diffusion, dll) ditulis menggunakan PyTorch.

Dua fitur utama PyTorch:

🧮 Tensor Computation

Seperti NumPy, tapi bisa jalan di GPU. Operasi matematika pada array multi-dimensi dengan akselerasi hardware.

⚡ Automatic Differentiation

Autograd: menghitung gradient (turunan) secara otomatis. Ini yang membuat neural network bisa "belajar" — tanpa Anda menulis rumus turunan manual.

💡 Analogi Sederhana

Bayangkan Anda membuat resep kue. Tensor = bahan-bahan (tepung, gula, telur — data dalam bentuk angka). Autograd = mekanisme yang otomatis mencatat setiap langkah memasak, sehingga kalau kue-nya kurang enak, Anda bisa tahu persis langkah mana yang perlu diubah dan seberapa banyak. Itulah yang disebut gradient.

📦

2. Instalasi — 2 Menit Setup

pip install torch — done
Terminal — Install PyTorch
# CPU only (paling simpel, cukup untuk belajar) pip install torch torchvision # Dengan GPU NVIDIA (CUDA 12.4) pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124 # Verifikasi instalasi python -c "import torch; print(torch.__version__)" # Output: 2.7.0 (atau versi terbaru)
💡 Tip: Untuk belajar, CPU sudah cukup. GPU (NVIDIA) hanya diperlukan ketika melatih model besar. Gunakan Google Colab (gratis) jika ingin GPU tanpa beli hardware.
🧮

3. Tensor — Fondasi Semua Operasi

Seperti NumPy array, tapi bisa jalan di GPU dan track gradient

Tensor adalah struktur data fundamental di PyTorch — array multi-dimensi yang bisa menyimpan angka. Jika Anda familiar dengan NumPy, tensor sangat mirip ndarray, tapi dengan dua superpower: bisa jalan di GPU dan bisa di-track oleh Autograd.

01_tensor_basics.py — Membuat Tensor
import torch # =========================== # 1. Membuat Tensor dari data # =========================== # Dari Python list x = torch.tensor([1, 2, 3]) print(x) # tensor([1, 2, 3]) print(x.shape) # torch.Size([3]) # Matrix 2x3 m = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(m.shape) # torch.Size([2, 3]) # =========================== # 2. Tensor generator functions # =========================== zeros = torch.zeros(3, 4) # 3x4 berisi 0 ones = torch.ones(2, 3) # 2x3 berisi 1 rand = torch.rand(2, 3) # 2x3 random [0, 1) randn = torch.randn(2, 3) # 2x3 random normal arange = torch.arange(0, 10, 2) # tensor([0, 2, 4, 6, 8]) eye = torch.eye(3) # Identity matrix 3x3 # =========================== # 3. Data types # =========================== f = torch.tensor([1.0, 2.0]) # float32 (default) i = torch.tensor([1, 2]) # int64 (default) h = torch.tensor([1.0], dtype=torch.float16) # half precision print(f.dtype) # torch.float32 # =========================== # 4. NumPy ↔ Tensor conversion # =========================== import numpy as np np_array = np.array([1, 2, 3]) tensor = torch.from_numpy(np_array) # NumPy → Tensor back = tensor.numpy() # Tensor → NumPy

🎓 Dimensi Tensor

Scalar (0D): satu angka → torch.tensor(42)
Vector (1D): array → torch.tensor([1, 2, 3])
Matrix (2D): tabel → torch.tensor([[1,2],[3,4]])
3D Tensor: batch of matrices → gambar RGB, teks sequences
4D Tensor: batch of gambar → [batch, channels, height, width]

🔧

4. Operasi Tensor — Math, Reshape, GPU

Semua yang perlu Anda tahu untuk manipulasi data
02_tensor_operations.py
import torch a = torch.tensor([[1.0, 2.0], [3.0, 4.0]]) b = torch.tensor([[5.0, 6.0], [7.0, 8.0]]) # =========================== # 1. Operasi Matematika # =========================== c = a + b # Element-wise addition d = a * b # Element-wise multiplication e = a @ b # Matrix multiplication (matmul) f = torch.matmul(a, b) # Sama dengan @ print(a.sum()) # tensor(10.) — jumlah semua element print(a.mean()) # tensor(2.5) — rata-rata print(a.max()) # tensor(4.) — nilai maksimum print(a.argmax()) # tensor(3) — index nilai max # =========================== # 2. Reshape & Indexing # =========================== x = torch.arange(12) # tensor([0,1,2,...,11]) y = x.reshape(3, 4) # Ubah jadi 3x4 z = x.view(4, 3) # Sama, tapi share memory print(y[0]) # Baris pertama: tensor([0,1,2,3]) print(y[:, 1]) # Kolom kedua: tensor([1,5,9]) print(y[0:2, 1:3]) # Slice: 2 baris, kolom 1-2 # =========================== # 3. Pindah ke GPU (jika ada) # =========================== if torch.cuda.is_available(): device = torch.device("cuda") gpu_tensor = a.to(device) # Pindah ke GPU result = gpu_tensor @ gpu_tensor back_cpu = result.to("cpu") # Kembali ke CPU else: print("GPU tidak tersedia, pakai CPU")

5. Autograd — Mesin Ajaib di Balik Deep Learning

Otomatis hitung gradient — Anda tidak perlu tulis rumus turunan

Autograd adalah fitur terpenting PyTorch. Ia mencatat semua operasi yang Anda lakukan pada tensor, lalu menghitung gradient (turunan) secara otomatis. Ini yang membuat neural network bisa "belajar" — menyesuaikan parameter agar error semakin kecil.

🎓 Apa Itu Gradient?

Gradient = arah dan seberapa besar Anda harus mengubah parameter untuk mengurangi error. Bayangkan Anda berdiri di bukit berkabut dan ingin turun ke lembah (error terkecil). Gradient memberi tahu: "langkah ke kiri 2 meter, ke depan 1 meter" — ini yang disebut gradient descent.

03_autograd.py — Autograd Step by Step
import torch # =========================== # 1. Contoh paling sederhana # =========================== # Buat tensor dengan requires_grad=True # → PyTorch akan TRACK semua operasi pada tensor ini x = torch.tensor(3.0, requires_grad=True) # Lakukan operasi: y = x² y = x ** 2 print(y) # tensor(9., grad_fn=<PowBackward0>) # ↑ grad_fn = PyTorch mencatat operasi "pangkat" # Hitung gradient: dy/dx = 2x = 2(3) = 6 y.backward() print(x.grad) # tensor(6.) ← BENAR! Turunan x² = 2x, di x=3 → 6 # =========================== # 2. Contoh lebih kompleks # =========================== a = torch.tensor(2.0, requires_grad=True) b = torch.tensor(3.0, requires_grad=True) # z = a² + 3*b z = a**2 + 3*b z.backward() print(a.grad) # tensor(4.) ← dz/da = 2a = 2(2) = 4 print(b.grad) # tensor(3.) ← dz/db = 3 # =========================== # 3. Penting: Reset gradient! # =========================== # Gradient TERAKUMULASI! Harus di-reset sebelum backward berikutnya a.grad.zero_() # Reset gradient a ke 0 b.grad.zero_() # Reset gradient b ke 0 # =========================== # 4. Matikan tracking (untuk inference) # =========================== with torch.no_grad(): # Di dalam block ini, tidak ada gradient tracking # Lebih cepat, hemat memory — pakai saat prediction result = a * 2

🔄 Bagaimana Autograd Bekerja (DAG)

    [x = 3.0]          ← Leaf tensor (requires_grad=True)
        │
        ▼
    [y = x²]           ← Forward pass: hitung y
        │                  PyTorch CATAT: grad_fn = PowBackward0
        ▼
    y.backward()        ← Backward pass: hitung dy/dx
        │                  Chain rule: dy/dx = 2x = 6
        ▼
    x.grad = 6.0       ← Gradient tersimpan di x.grad
        
🧠

6. Neural Network Pertama — 50 Baris Kode

Dari data → model → training → prediction

Sekarang kita gabungkan semua yang sudah dipelajari. Kita akan membuat neural network sederhana yang belajar menghitung y = 2x + 1 — hanya dari data, tanpa dikasih tahu rumusnya.

04_first_neural_network.py — Neural Network Pertama Anda!
import torch import torch.nn as nn # =========================== # STEP 1: Siapkan Data # Target: model belajar y = 2x + 1 # =========================== X = torch.tensor([[1.0], [2.0], [3.0], [4.0], [5.0]]) y = torch.tensor([[3.0], [5.0], [7.0], [9.0], [11.0]]) # y = 2*X + 1 # =========================== # STEP 2: Definisikan Model # =========================== class SimpleNet(nn.Module): def __init__(self): super().__init__() self.linear = nn.Linear(1, 1) # 1 input → 1 output def forward(self, x): return self.linear(x) model = SimpleNet() # =========================== # STEP 3: Loss Function & Optimizer # =========================== loss_fn = nn.MSELoss() # Mean Squared Error optimizer = torch.optim.SGD( # Stochastic Gradient Descent model.parameters(), lr=0.01 ) # =========================== # STEP 4: Training Loop! 🔥 # =========================== for epoch in range(100): # Forward pass: hitung prediksi pred = model(X) # Hitung loss (seberapa jauh prediksi dari target) loss = loss_fn(pred, y) # Backward pass: hitung gradient (Autograd!) optimizer.zero_grad() # Reset gradient loss.backward() # Hitung gradient optimizer.step() # Update parameter if (epoch + 1) % 20 == 0: print(f"Epoch {epoch+1}, Loss: {loss.item():.4f}") # =========================== # STEP 5: Cek Hasilnya! # =========================== # Lihat parameter yang dipelajari model w = model.linear.weight.item() b = model.linear.bias.item() print(f"\nModel belajar: y = {w:.2f}x + {b:.2f}") # Output: Model belajar: y = 2.00x + 1.00 ← BENAR! # Prediksi nilai baru with torch.no_grad(): test = torch.tensor([[10.0]]) print(f"Prediksi x=10: {model(test).item():.2f}") # Output: Prediksi x=10: 21.00 ← 2(10)+1 = 21 ✓

🎓 Apa yang Terjadi di Training Loop?

1. Forward Pass: Data masuk ke model → model membuat prediksi.
2. Loss: Hitung error — seberapa jauh prediksi dari jawaban benar.
3. Backward Pass: Autograd hitung gradient — "arah mana untuk mengurangi error?"
4. Update: Optimizer menggeser parameter sedikit ke arah yang benar.
Ulangi 100x → model semakin akurat. Ini seluruh inti deep learning.

🎉 Selamat! Anda baru saja membuat neural network yang bisa belajar sendiri dari data. Model ini menemukan rumus y = 2x + 1 tanpa pernah diberitahu — hanya dari contoh input dan output. Inilah kekuatan machine learning.
📝

7. Ringkasan Part 1

Apa yang sudah kita pelajari
KonsepApa ItuKode Kunci
TensorArray multi-dimensi — fondasi semua data di PyTorchtorch.tensor([1, 2, 3])
GPU TransferPindahkan tensor ke GPU untuk komputasi cepattensor.to("cuda")
requires_gradAktifkan tracking gradient pada tensortensor(3.0, requires_grad=True)
backward()Hitung gradient secara otomatisloss.backward()
nn.ModuleBase class untuk membuat neural networkclass MyNet(nn.Module)
nn.LinearFully connected layer (y = Wx + b)nn.Linear(in, out)
Loss FunctionMengukur error prediksi vs targetnn.MSELoss()
OptimizerUpdate parameter berdasarkan gradientoptim.SGD(params, lr=0.01)
Training LoopForward → Loss → Backward → Update → Repeat4 baris di dalam for loop
🔥
Tech Review Desk — Seri Belajar PyTorch
Tutorial hands-on. Sumber: pytorch.org docs, PyTorch Foundation, Red Hat Developer, DeepLearning.AI. PyTorch v2.7+ (2026).
📧 rominur@gmail.com  •  ✈️ t.me/Jekardah_AI — For collaboration & discussion