Processing

**Processing** adolah perangkat lunak free grafis library jo IDE nan dibuek untuak komunitas seni elektronik, seni media baru, jo desain visual, dengan tujuannyo manyarahkan kaum nan indak paham pemrograman untuak mangertiah dasar-dasar pemrograman komputer dalam konteks visual.

Processing mamakai bahasa pemrograman Java, jo simplifikasi tambahan sabagai kelas tambahan dan fungsi matematika nan dipermudah jo alias. Iko juo menyediakan antarmuka grafis untuak mempermudah tahap kompilasi jo eksekusi.

Bahaso jo IDE Processing sudah menjadi pendahulu bagi proyek lain, tamasuak *Arduino* jo *Wiring*.

## Sejarah

Proyek iko dimulai pada tahun 2001 oleh Casey Reas jo Ben Fry, nan sarato dahulu di Aesthetics and Computation Group di MIT Media Lab. Pada tahun 2012, mereka mambentuk Processing Foundation bersama Daniel Shiffman, nan gabung sabagai pimpinan proyek ketigo. Johanna Hedva gabung Foundation pada tahun 2014 sabagai Direktur Advokasi.

Awalnya, Processing menggunakan domain proce55ing.net, sabab domain *processing* sudah dipakai; Reas jo Fry akhirnya mambeli domain processing.org jo memindahkan proyek ka domain iko pada tahun 2004. Walaupun nama awal mambuek kombinasi huruf jo angka, proyek iko tetap resmi disebut *processing*, tapi istilah singkat *p5* kadang-kadang dipakai (contoh: *p5.js*) sabagai rujukan ka domain lama.

Pada tahun 2012, Processing Foundation dibentuk jo mendapatkan status nonprofit 501(c)(3), nan mendukung komunitas sabalun teknologi jo ide-ide nan dimulai oleh Proyek Processing. Foundation mendorong orang di seluruh dunia untuak bertemu saban tahun dalam acara lokal nan disebut Processing Community Day.

## Fitur

|-
! colspan=2 | Processing IDE
|-
| colspan=2 |  
|-
| colspan=2 | 
|-
! colspan=2 |
|-
| style="text-align:left;background:#b3b7ff" | **Versi rilis terkini**
| style="text-align:left" | 4.3
|-
| style="text-align:left;background:#b3b7ff" | **Tanggal rilis terkini** 
| style="text-align:left" | 26 Juli 2023
|-
| style="text-align:left;background:#b3b7ff" | **Bahasa pemrograman**
| style="text-align:left" | Java, GLSL, JavaScript
|-
| style="text-align:left;background:#b3b7ff" | **Sistem operasi** 
| style="text-align:left" | lintas platform 
|-
| style="text-align:left;background:#b3b7ff" | **Jenis** 
| style="text-align:left" | Lingkungan Pengembangan Terpadu (IDE)
|-
| style="text-align:left;background:#b3b7ff" | **Bahaso Minangkabau**
| style="background:#fdb3ab" | **Indak**
|-
| style="text-align:left;background:#b3b7ff" | **Situs web** 
| style="text-align:left" | 

Processing mamiliki *sketchbook*, sabagai alternatif minimal untuak IDE untuak manata proyek.

Sabuah sketch Processing sabana subclass dari `PApplet` *Java class* (dahulu subclass dari Applet bawaan Java) nan mamiliki mayoritas fitur bahasa Processing.

Waktu manprogram dalam Processing, semua kelas tambahan nan didefinisikan bakal dianggap sabagai *inner class* waktu kode ditranslasi ka Java murni sebelum dikompilasi. Artinya, penggunaan *static variable* jo *static methods* dalam kelas indak diijinkan kecuali Processing secara eksplisit diarahkan ka mode Java murni.

Processing juo mambuek pengguna dapat membuat kelas sendiri dalam sketch PApplet. Hal iko mambuek tipe data nan komplek nan dapek memuat argumen sebanyak nan diperlukeun jo menghindari keterbatasan penggunaan tipe data standar sajo, tamasuak: *int* (bilangan bulat), *char* (karakter), *float* (bilangan real), jo warna (RGB, RGBA, hex).

## Contoh

Versi paling sederhana dari program "Hello World" dalam Processing adalah:


```arduino
// Ini mencetak "Hello World." ke konsol IDE.
println("Hello World.");
```


Namun, karena Processing bersifat lebih visual, kode berikut merupakan contoh nan lebih baik dari tampilan jo nuansa bahasa ini.


```arduino
// Hello mouse.
void setup() {
  size(400, 400);
  stroke(255);
  background(192, 64, 0);
}

void draw() {
  line(150, 25, mouseX, mouseY);
}
```


## Penghargaan

Pada 2005, Reas jo Fry menang Golden Nica award dari Ars Electronica dalam kategori Net Vision untuk karya mereka pada Processing.

Ben Fry menang National Design Award 2011 nan diberikan oleh Smithsonian Cooper-Hewitt National Design Museum dalam kategori Interaction Design. Pernyataan penghargaan berkata:

"Berdasar latar belakang dalam desain grafis jo ilmu komputer, Ben Fry mengejar minat panjang dalam memvisualisasikan data. Sebagai Principal Fathom Information Design di Boston, Fry mengembangkan piranti lunak, karya cetak, instalasi, jo buku nan mambayangkan dan menjelaskan topik dari genom manusia hingga gaji baseball sampai evolusi dokumen teks. Bersama Casey Reas, ia mendirikan Processing Project, lingkungan pemrograman open-source untuk mengajarkan desain komputasional dan sketching software media interaktif. Ini menyediakan seniman jo desainer cara nan mudah untuak bekerja dengan kode sambil mendorong insinyur dan ilmuwan komputer memikirkan konsep desain."

## Lisensi

Perpustakaan inti Processing, kode nan disertakan dalam aplikasi dan applet nan diekspor, dilisensikan di bawah GNU Lesser General Public License, nan memungkinkan pengguna melepaskan kode asli mereka dengan pilihan lisensi.

IDE dilisensikan di bawah GNU General Public License.

## Proyek terkait

### ''Design By Numbers''
Processing dibangun dari karya awal proyek *Design By Numbers* di MIT. Ia berbagi banyak ide sama dan merupakan turunan langsung dari eksperimen itu.

### p5.js
Di 2013, Lauren McCarthy menciptakan p5.js, alternatif JavaScript asli untuk Processing.js yang mendapat dukungan resmi dari *Processing Foundation*. p5.js telah digunakan lebih dari 1,5 juta pengguna.

Sejak April 2022, p5.js dipimpin oleh Qianqian Ye, seorang *Adjunct Associate Professor Media Arts di USC*.

### ml5.js
ml5.js adalah pustaka p5.js yang dikembangkan oleh NYU's ITP/IMA dengan dana dan dukungan dari *Google Education grant*.

Daniel Shiffman membuat video mendemonstrasikan ml5 dan menjadi kontributor kode penting.

### Processing.js
**Processing.js** adalah port JavaScript yang sudah dihentikan, memungkinkan kode Java Processing berjalan di web.

Awalnya dirilis pada 2008 oleh John Resig. Proyek ini kemudian dijalankan melalui kemitraan antara Mozilla Foundation dan Seneca College, dipimpin oleh David Humphrey, Al MacDonald, dan Corban Brook. Processing.js tetap setara dengan Processing hingga rilis API versi 2.1.

Proyek ini dihentikan pada Desember 2018, dua tahun setelah pengembangan aktif berhenti.

### P5Py
p5 adalah pustaka *Python* yang menyediakan fungsi gambar tingkat tinggi untuk membuat simulasi dan seni interaktif menggunakan Python. Menggabungkan ide inti Processing — belajar pemrograman dalam konteks visual — dengan keterbacaan *Python* agar lebih mudah diakses oleh pemula, pendidik, dan seniman.

### Processing.py
Python Mode untuk Processing, atau Processing.py, adalah antarmuka *Python* untuk toolkit Java di bawahnya. Dikembangkan utama oleh Jonathan Feinberg sejak 2010, dengan kontribusi James Gilles dan Ben Alkov.

### py5
py5 adalah versi Processing untuk Python 3.8+. Membuat jar Processing Java tersedia untuk interpreter CPython menggunakan JPype. Bisa melakukan hampir semua yang Processing bisa, namun dengan kode Python, bukan Java.

### ''Wiring'', Arduino, dan Fritzing
Processing melahirkan proyek lain, Wiring, yang menggunakan IDE Processing dengan koleksi pustaka ditulis dalam bahasa C++ untuk mengajarkan seniman memprogram mikrokontrolers. Kini ada dua proyek perangkat keras terpisah, Wiring dan Arduino, yang menggunakan lingkungan dan bahasa Wiring.
Fritzing adalah lingkungan perangkat lunak sejenis, membantu desainer dan seniman mendokumentasikan prototipe interaktif mereka dan memindahkannya dari prototipe fisik ke produk nyata.

### ''Mobile Processing''
Proyek turunan lain, kini sudah tidak aktif, adalah *Mobile Processing* oleh Francis Li, yang memungkinkan perangkat lunak berbasis Processing berjalan di perangkat mobile berbasis Java. Beberapa fungsi serupa kini disediakan langsung oleh Processing.

### iProcessing
iProcessing dibuat untuk membantu orang mengembangkan aplikasi iPhone asli menggunakan bahasa Processing. Ini merupakan integrasi pustaka Processing.js dan framework aplikasi Javascript untuk iPhone.

### Spde
Spde (*Scala Processing Development Environment*) menggantikan sintaks Java sederhana Processing dan preprocessor khusus dengan bahasa Scala siap pakai, yang juga berjalan di Java platform dan menegakkan beberapa batasan sama seperti melarang metode statis, sambil memungkinkan kode lebih ringkas dan mendukung pemrograman fungsional.

### JRubyArt
JRubyArt (sebelumnya bernama *ruby-processing*) adalah wrapper untuk Processing dalam bahasa Ruby, berjalan di platform Java menggunakan JRuby.

### Quil
Quil adalah pustaka animasi interaktif untuk Clojure dan ClojureScript berbasis Processing.

## Media
Video musik untuak "House of Cards" karajoan Radiohead diciptakan jo Processing dipadukan jo data dari teknologi lidar, samo jo pamakaian kaca akrilik jo cermin untuak mambuek suasano nan gambarnyo tampak barubah, sabagian hilang, atau barantakan seakan-akan dibao angin. Processing juo alah dipakai untuak mambuek ilustrasi di publikasi ciek *[[Nature (journal)|Nature]]* jo *[[The New York Times]]*, untuak mangganti patung untuak pameran galeri, mangontrol dindiang video gadang, malah juo untuak manjaik sweta.

## Lainnyo
  
* Cinder (C++)  
* OpenFrameworks (C++)  
* OpenRNDR (Kotlin)  
* JavaFX  
* Max (software)  
* Codea

## Rujukan