Pengantar
PyScript adalah framework untuk menampilkan program Python di browser menggunakan antarmuka HTML. mirip dengan javascript, tetapi ditulis dengan bahasa pemrograman Python.
Sebelum kita mulai, saya akan mengatakan di awal bahwa PyScript tidak akan menggantikan JavaScript.
PyScript tidak memiliki banyak fitur seperti JavaScript. Jika kalian membuka PyScript | Run Python in your HTML, Dapat dilihat bahwa Pyscript masih sangat-sangat alfa dan tidak disarankan untuk production.
Tapi tidak seru jika kita selesai sampai disini. kita akan membahas lebih lanjut tentang PyScript di posting ini.
Fitur PyScript
Berikut ini adalah beberapa fitur PyScript yang dapat digunakan:
- Python di browser: Aktifkan konten drop-in, hosting file eksternal, dan hosting aplikasi tanpa bergantung pada konfigurasi sisi server
- Ekosistem Python: Jalankan banyak package populer Python dan library (seperti numpy, pandas, scikit-learn, dan banyak lagi)
- Python dengan JavaScript: Komunikasi dua arah antara Python dan JavaScript
- Manajemen Environment: Izinkan pengguna untuk menentukan package dan file apa yang akan dimasukkan untuk menjalankan kode.
- Pengembangan aplikasi visual: Dapat menggunakan komponen UI pilihan yang tersedia.
- fleksibel framework: framework yang fleksibel yang dapat dimanfaatkan untuk membuat dan berbagi komponen pluggable dan extensible baru secara langsung dengan Python.
Memulai
Untuk menginstal PyScript sangat mudah. kalian cukup membuka PyScript | Jalankan Python di HTML Kalian dan ikuti petunjuknya.
PyScript membuat lelucon lucu 😂😂😂
Omong-omong, kita tidak perlu menginstal PyScript. kita cukup memasukkan tag berikut ke dalam html.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PyScript Playground</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body></body>
</html>
Setelah itu, kita dapat membuka html dengan ekstensi live server atau membukanya di browser dengan mengklik file html.
Komponen PyScript
Untuk menjalankan PyScript, kita perlu menambahkan tag <py-script>
dan memasukkan kode python yang dapat dijalankan di dalam halaman web.
misalnya, kita ingin print hello world
dan menampilkan pada halaman web. Kita bisa melakukannya seperti ini:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PyScript Playground</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
<py-script> print('hello world') </py-script>
</body>
</html>
PyScript dengan library Populer
Kita juga dapat menggunakan library populer pada PyScript. Misalnya, kita dapat menggunakan pandas untuk membaca file csv.
Karena kita membutuhkan Library eksternal, kita perlu mendeklarasikannya dalam tag <py-env>
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PyScript Playground</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env> - pandas </py-env>
</head>
<body>
.....
</body>
</html>
Setelah itu, kita dapat menggunakan pandas dalam kode PyScript seperti berikut:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PyScript Playground</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env> - pandas </py-env>
</head>
<body>
<py-script>
import pandas as pd
from pyodide.http import open_url
data_training = pd.read_csv(open_url("https://raw.githubusercontent.com/jagadyudha/jagadyudha/main/data_training.csv"))
data_training.head()
</py-script>
</body>
</html>
Tidak hanya itu, kita dapat menggunakan library sklearn untuk membuat machine learning.
Dalam hal ini, saya ingin menggunakan sklearn.naive_bayes
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PyScript Playground</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- pandas
- scikit-learn
- numpy
</py-env>
</head>
<body>
<py-script>
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from pyodide.http import open_url
from sklearn.metrics import classification_report
import numpy as np
data_training = pd.read_csv(open_url("https://raw.githubusercontent.com/jagadyudha/jagadyudha/main/data_training.csv"))
x = data_training.drop(["Jenis Gangguan"], axis=1)
y = data_training["Jenis Gangguan"]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.18, random_state=45)
modelnb = GaussianNB()
nbtrain = modelnb.fit(x_train, y_train)
y_pred = nbtrain.predict(x_test)
print("Predict :", y_pred)
print("Actual :", np.array(y_test))
print(classification_report(y_test, y_pred))
</py-script>
</body>
</html>
Saya tidak akan menunjukkan cara membaca data karena akan memakan banyak waktu. Namun, dapat dilihat bahwa PyScript juga berfungsi untuk menjalankan machine learning.
Komponen PyRepl
<py-repl>
digunakan untuk membuat komponen REPL yang ditampilkan ke halaman sebagai editor kode dan memungkinkan pengguna untuk menulis kode yang dapat dieksekusi.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PyScript Playground</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
<py-repl id="repl" auto-generate="true"></py-repl>
<p style="margin-left: 30px">shift + enter to run</p>
</body>
</html>
Bermain Mario dengan PyScript
PyScript juga dapat digunakan untuk menjalankan game seperti Mario Bros. Cek source code di tautan berikut: pyscript/examples/mario at main pyscript/pyscript (github.com)
Kesimpulan
Terlalu dini bagi PyScript untuk mengalahkan JavaScript. Sejujurnya, menurut saya pribadi hampir tidak mungkin untuk mengalahkan JavaScript.
Apakah menurut kalian PyScript akan mengalahkan Javascript? beri tahu apa yang kalian pikirkan di komentar.