Post Detail

September 13, 2026 in Python Lanjutan

Processing Modern di Python 3 Menggunakan py5: Seni Kreatif di VS Code dan Integrasi NumPy

Pemrograman Visual Modern dengan Python 3 dan py5 di VS Code (Ilustrasi AI)
Pengembangan grafis kreatif dan visualisasi data modern menggunakan pustaka py5 di Visual Studio Code (Ilustrasi AI).

Bagi pemrogram yang telah terbiasa bekerja di Visual Studio Code, Jupyter Notebook, atau lingkungan Python 3 modern, menggunakan aplikasi terpisah seperti Processing IDE mungkin terasa membatasi. Di era sekarang, kita ingin menggabungkan kemudahan seni visual Processing dengan kekuatan ekosistem data Python seperti NumPy, Pandas, dan OpenCV.

Di sinilah py5 hadir sebagai jembatan revolusioner. py5 adalah implementasi Processing resmi untuk CPython (Python 3.8+) yang memungkinkanmu membuat sketsa seni visual langsung di teks editor favoritmu!

Artikel ini adalah Bagian 3 (Penutup Serial) dari trilogi panduan Processing di Python:

1. Mengapa Memilih py5? (Evolusi Python 2 ke Python 3)

Modus Python bawaan di Processing IDE lama dibangun menggunakan Jython, yang sayangnya terhenti pada spesifikasi Python 2.7. Akibatnya, kamu tidak bisa memakai fitur modern seperti f-strings, type hinting, maupun pustaka sains data mutakhir.

Dengan py5:

  • Berjalan asli di Python 3 modern (CPython).
  • Bebas menggunakan editor kode apa pun: VS Code, PyCharm, Neovim, atau Terminal.
  • Mendukung interaktivitas langsung di dalam Jupyter Notebook atau Google Colab.
  • Terintegrasi erat dengan NumPy: transfer jutaan piksel dan koordinat vektor dengan kecepatan C/C++.

2. Langkah Instalasi py5

Pemasangan py5 sangat praktis melalui terminal atau command prompt standar Python:

pip install py5 numpy

(Catatan: py5 membutuhkan Java JDK 17 atau yang lebih baru terpasang di komputermu, yang biasanya akan dikonfigurasi secara otomatis).

3. Sketsa Pertama: Halo py5 di VS Code

Buka VS Code, buat berkas baru bernama 01-halo-py5.py, dan tulis kode berikut:

# 01-halo-py5.py
import py5

sudut = 0.0

def setup():
    py5.size(600, 400)
    py5.rect_mode(py5.CENTER)

def draw():
    global sudut
    py5.background(15, 23, 42)
    
    # Pindahkan titik pusat ke tengah kanvas
    py5.translate(py5.width / 2, py5.height / 2)
    py5.rotate(sudut)
    
    # Gambar cincin persegi futuristik
    py5.no_fill()
    py5.stroke_weight(3)
    
    for i in range(8):
        py5.push_matrix()
        py5.rotate(py5.TWO_PI / 8 * i)
        py5.stroke(56, 189, 248, 180)   # Cyan terang
        py5.rect(0, 0, 160, 160)
        py5.stroke(168, 85, 247, 180)  # Ungu neon
        py5.rect(0, 0, 100, 100)
        py5.pop_matrix()
        
    sudut += 0.02

# Menjalankan sketsa py5 langsung dari Python
if __name__ == "__main__":
    py5.run_sketch()
Animasi py5: Struktur dasar sketsa modern di Python 3
Animasi langsung hasil eksekusi kode: Cincin rotasi geometris modern dijalankan secara mandiri melalui pustaka py5 di Python 3.

Cukup jalankan skrip ini dengan perintah python 01-halo-py5.py di terminal. Jendela animasi grafis 60 FPS akan langsung muncul di layarmu!

4. Efek Jejak Pudar (Fading Trail) & Interaksi Mouse

Salah satu trik visual favorit para pemrogram kreatif adalah efek jejak cahaya pudar (*motion blur / trail*). Alih-alih menghapus layar dengan warna pekat, kita melapisi layar dengan persegi hitam semi-transparan:

# 02-interaksi-mouse-trail.py
import py5

def setup():
    py5.size(600, 400)
    py5.no_stroke()
    py5.background(15, 23, 42)

def draw():
    # Kunci efek trail: gambar lapisan gelap semi-transparan (alpha: 25)
    py5.fill(15, 23, 42, 25)
    py5.rect(0, 0, py5.width, py5.height)
    
    # Lingkaran bercahaya di posisi mouse
    py5.fill(56, 189, 248)
    py5.ellipse(py5.mouse_x, py5.mouse_y, 30, 30)
    
    # Pancaran ornamen partikel kecil saat mouse diklik
    if py5.is_mouse_pressed:
        for _ in range(5):
            ox = py5.random_gaussian() * 15
            oy = py5.random_gaussian() * 15
            py5.fill(244, 114, 182, 200)
            py5.ellipse(py5.mouse_x + ox, py5.mouse_y + oy, 8, 8)

if __name__ == "__main__":
    py5.run_sketch()
Animasi py5: Efek jejak pudar (fading trail) dan interaksi kursor
Animasi langsung hasil eksekusi kode: Efek ekor cahaya pudar mengikuti pergerakan kursor mouse dengan teknik alpha-blending.

Nilai alpha 25 pada py5.fill(15, 23, 42, 25) membuat gambar sebelumnya memudar secara perlahan setelah beberapa frame, menghasilkan sensasi pergerakan yang sangat mulus.

5. Kekuatan Super: Integrasi NumPy Berkecepatan Tinggi

Jika kamu mencoba menggerakkan 1.000 partikel menggunakan loop for standar di Python, program seringkali mulai melambat (*lag*). Namun dengan NumPy, seluruh posisi dan pantulan partikel dapat dihitung secara paralel dalam hitungan milidetik:

# 03-partikel-vektor-numpy.py
import py5
import numpy as np

JUMLAH_PARTIKEL = 500
posisi = None
kecepatan = None
warna = None

def setup():
    global posisi, kecepatan, warna
    py5.size(600, 400)
    
    # Inisialisasi matriks posisi & kecepatan NumPy 2D (500 partikel x 2 sumbu)
    posisi = np.random.uniform(low=[0, 0], high=[600, 400], size=(JUMLAH_PARTIKEL, 2))
    kecepatan = np.random.uniform(low=[-2, -2], high=[2, 2], size=(JUMLAH_PARTIKEL, 2))
    warna = np.random.randint(low=100, high=255, size=(JUMLAH_PARTIKEL, 3))

def draw():
    global posisi, kecepatan
    py5.background(15, 23, 42)
    
    # Komputasi NumPy vektor: perbarui SEMUA posisi dalam satu baris operasi array!
    posisi += kecepatan
    
    # Pantulan dinding kanvas secara vektorized (tanpa for-loop!)
    pantul_x = (posisi[:, 0] < 0) | (posisi[:, 0] > py5.width)
    kecepatan[pantul_x, 0] *= -1
    
    pantul_y = (posisi[:, 1] < 0) | (posisi[:, 1] > py5.height)
    kecepatan[pantul_y, 1] *= -1
    
    # Render semua partikel
    py5.no_stroke()
    for i in range(JUMLAH_PARTIKEL):
        py5.fill(warna[i, 0], warna[i, 1], warna[i, 2], 220)
        py5.ellipse(posisi[i, 0], posisi[i, 1], 6, 6)

if __name__ == "__main__":
    py5.run_sketch()
Animasi py5: Komputasi vektor ratusan partikel dengan NumPy
Animasi langsung hasil eksekusi kode: Ratusan partikel bergerak dan memantul cepat memanfaatkan operasi matriks array NumPy tanpa penurunan frame rate.

6. Visualisasi Spektrum Gelombang Audio Futuristik

NumPy menyediakan fungsi matematika array seperti np.linspace() dan np.sin() yang mempermudah perancangan visualisator musik dan gelombang Fourier:

# 04-audio-wave-visualizer.py
import py5
import numpy as np

fase = 0.0

def setup():
    py5.size(600, 400)

def draw():
    global fase
    py5.background(10, 15, 30)
    
    # 60 bar spektrum dihitung sekaligus dengan NumPy
    x_indices = np.linspace(20, py5.width - 20, 50)
    
    # Menghitung amplitudo gelombang interferensi ganda
    sinus_1 = np.sin(x_indices * 0.02 + fase)
    sinus_2 = np.sin(x_indices * 0.05 - fase * 1.5)
    amplitudo = (sinus_1 + sinus_2) * 55 + 70
    
    # Gambar bar spektrum audio dengan palet warna gradasi neon
    py5.stroke_weight(6)
    for i, x in enumerate(x_indices):
        tinggi_bar = amplitudo[i]
        
        # Gradasi warna dari cyan ke magenta
        r = int(56 + (i / 50.0) * 188)
        g = int(189 - (i / 50.0) * 100)
        b = 248
        py5.stroke(r, g, b, 220)
        
        y_tengah = py5.height / 2
        py5.line(x, y_tengah - tinggi_bar, x, y_tengah + tinggi_bar)
        
    fase += 0.05

if __name__ == "__main__":
    py5.run_sketch()
Animasi py5: Spektrum gelombang digital futuristik
Animasi langsung hasil eksekusi kode: Visualisasi bar frekuensi audio futuristik dengan formula sinus ganda NumPy.

Perbandingan: Processing IDE vs py5

KategoriProcessing IDE (Python Mode)py5 (Python 3 Standar Modern)
Versi PythonPython 2.7 (Jython)Python 3.8 – 3.12+ (CPython)
EditorKhusus Processing IDEVS Code, PyCharm, Jupyter, Terminal
Pustaka EksternalTerbatas pada modul Java/JythonSemua paket PyPI (NumPy, SciPy, OpenCV)
Performa DataStandar Python loopSangat kencang dengan komputasi matriks
Target PenggunaPemula & pelajar seni visual dasarDeveloper Python, data artist, desainer profesional

Kesimpulan Trilogi Processing di Python

Selamat! Kamu telah menyelesaikan seluruh rangkaian trilogi pembelajaran Processing di Python:

  1. Dari dasar kanvas, sistem koordinat, dan interaktivitas mouse di Processing IDE…
  2. Meningkat ke seni generatif, pola matematika alami (Perlin noise), fraktal rekursif, dan simulasi gaya gravitasi
  3. Hingga menguasai pemrograman visual modern berkecepatan tinggi dengan py5 dan NumPy di VS Code.

Kini batasnya hanyalah imajinasimu. Mulailah bereksperimen dengan memadukan formula matematikamu sendiri, musik, atau data dunia nyata ke dalam kanvas digital!




Leave a Reply

Your email address will not be published. Required fields are marked *