Prasyarat
- Emscripten SDK (emsdk) : Rangkaian alat kompiler untuk WebAssembly.
- Node.js dan npm (opsional tetapi disarankan untuk menjalankan server lokal).
- Editor teks apa pun, dan peramban web apa pun.
![]() |
sumber: linkedin.com |
Langkah 1: Instal Emscripten
git clone https://github.com/emscripten-core/emsdk.git
2. Arahkan ke direktori Kloning:
cd emsdk
3. Instal dan Aktifkan Versi Terbaru:
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh # On Linux/macOS
emsdk_env.bat # On Windows (use Command Prompt)
Langkah 2: Membuat Aplikasi C Dasar
Langkah pertama adalah membuat file baru bernama hello.c, dan tambahkan kode C berikut ke dalamnya:
#include <stdio.h>
int main() {
printf("Hello, WebAssembly!\n");
return 0;
}
Halo, WebAssembly! Program dasar ini akan dicetak ke konsol.
Langkah 3: Membangun Kode C ke dalam WebAssembly
Kompilasi dengan kompiler Emscripten untuk menghasilkan keluaran WebAssembly:
emcc hello.c -o hello.html
Perintah ini mengkompilasi hello. c menjadi tiga file:
- hello. wasm (WebAssembly biner)
- hello. js (kode lem JavaScript)
- hello. html (halaman web sederhana untuk menjalankan modul Wasm)
Langkah 4: Jalankan Aplikasi WebAssembly
python3 -m http.server 8000
npx http-server . -p 8000
Memahami File yang Dihasilkan
- halo. wasm: Modul WebAssembly yang telah dikompilasi.
- hello. js: Kode JavaScript yang digunakan untuk memuat dan menjalankan modul WebAssembly yang dihasilkan.
- hello. Wasmtime: halaman web sederhana yang menginisialisasi modul Wasm dan menjalankannya.
Mengubah Program WebAssembly
#include <emscripten.h>EMSCRIPTEN_KEEPALIVEint add(int a, int b) {return a + b;}
emcc hello.c -o hello.js -sEXPORTED_FUNCTIONS='["_add"]' -sEXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]'
const wasmModule = Module();wasmModule.onRuntimeInitialized = () => {const add = wasmModule.cwrap('add', 'number', ['number', 'number']);console.log('Result:', add(5, 10));};
Kesimpulan
Selamat! Anda baru saja membuat program WebAssembly pertama Anda. WebAssembly membuka kemungkinan baru untuk aplikasi web berkinerja tinggi dan mengintegrasikan bahasa non-JavaScript ke dalam pengembangan web. Teruslah bereksplorasi, dan cobalah program WebAssembly yang lebih kompleks!
Kembali ke>>>> Memulai dengan WebAssembly: Apa yang Perlu Anda Ketahui