Pembelajaran mekanika klasika, khususnya topik Gerak Lurus, sering kali hanya berfokus pada penghitungan rumus secara manual. Padahal, di era digital ini, kita dapat mengajak siswa untuk mengeksplorasi konsep Gerak Lurus Beraturan (GLB) dan Gerak Lurus Berubah Beraturan (GLBB) melalui pendekatan komputasi dasar.
Artikel ini akan mengulas ringkasan matematis gerak lurus, implementasi pemrosesan datanya menggunakan Python, serta bagaimana membuat alat peraga digital interaktif menggunakan kombinasi HTML dan JavaScript.
1. Pemodelan Matematis Gerak Lurus
Secara umum, gerak lurus dibagi menjadi dua kondisi utama berdasarkan karakteristik kecepatannya:
A. Gerak Lurus Beraturan (GLB)
Pada GLB, benda bergerak pada lintasan lurus dengan kecepatan ($v$) yang konstan atau tetap, yang berarti percepatannya bernilai nol ($a = 0$). Persamaan posisinya dirumuskan sebagai berikut:
$$s = v \cdot t$$B. Gerak Lurus Berubah Beraturan (GLBB)
Pada GLBB, benda mengalami perubahan kecepatan secara teratur karena adanya percepatan ($a$) yang konstan. Tiga persamaan utama yang mengontrol dinamika GLBB adalah:
$$v_t = v_0 + a \cdot t$$ $$s = v_0 \cdot t + \frac{1}{2} a \cdot t^2$$ $$v_t^2 = v_0^2 + 2 \cdot a \cdot s$$Keterangan: $v_0$ adalah kecepatan awal (m/s), $v_t$ adalah kecepatan pada waktu tertentu (m/s), $a$ adalah percepatan ($m/s^2$), $t$ adalah waktu (s), dan $s$ adalah jarak atau perpindahan (m).
2. Implementasi Simulasi Data Menggunakan Python
Untuk membantu siswa memahami perubahan posisi dan kecepatan secara linier terhadap waktu, kita bisa menggunakan bahasa pemrograman Python untuk menghasilkan tabel data pergerakan benda secara otomatis. Skrip ini sangat cocok diperkenalkan dalam sesi pengayaan atau kelas fisika komputasi.
# ====================================================
# SIMULASI GERAK LURUS BERUBAH BERATURAN (GLBB)
# ====================================================
# Deklarasi parameter awal
v0 = 5.0 # Kecepatan awal dalam m/s
a = 2.0 # Percepatan dalam m/s^2
waktu_total = 10 # Durasi simulasi dalam detik
print(f"{'Waktu (s)':<10} | {'Kecepatan (m/s)':<16} | {'Jarak Tempuh (m)':<16}")
print("-" * 50)
# Looping untuk menghitung perubahan setiap detik
for t in range(waktu_total + 1):
# Rumus v_t = v0 + a*t
vt = v0 + (a * t)
# Rumus s = v0*t + 0.5*a*t^2
s = (v0 * t) + (0.5 * a * (t ** 2))
# Menampilkan hasil dengan pembulatan 2 angka di belakang koma
print(f"{t:<10} | {vt:<16.2f} | {s:<16.2f}")
3. Membuat Alat Peraga Interaktif dengan HTML & JS
Selain melakukan pemrosesan data di sisi *backend* menggunakan Python, kita juga bisa membuat media pembelajaran yang langsung dapat diakses oleh siswa di halaman web ini. Kode HTML di bawah ini memuat struktur input dan logika JavaScript untuk menghitung jarak tempuh GLBB secara instan.
<!-- Aplikasi Kalkulator GLBB Sederhana -->
<div style="background: #f8fafc; padding: 20px; border: 1px solid #e2e8f0; border-radius: 8px; margin: 20px 0;">
<h4 style="margin-top:0;">Simulasi Lab Virtual: Hitung Jarak GLBB</h4>
<div style="margin-bottom: 12px;">
<label>Kecepatan Awal (v₀) dalam m/s:</label><br/>
<input type="number" id="input_v0" value="5" style="padding: 6px; width: 100%; max-width: 200px;"/>
</div>
<div style="margin-bottom: 12px;">
<label>Percepatan (a) dalam m/s²:</label><br/>
<input type="number" id="input_a" value="2" style="padding: 6px; width: 100%; max-width: 200px;"/>
</div>
<div style="margin-bottom: 15px;">
<label>Waktu Tempuh (t) dalam detik:</label><br/>
<input type="number" id="input_t" value="10" style="padding: 6px; width: 100%; max-width: 200px;"/>
</div>
<button onclick="prosesKalkulasiGLBB()" style="background: #2980b9; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer;">Jalankan Kalkulasi</button>
<p id="teks_hasil" style="margin-top: 15px; font-weight: bold; color: #2c3e50;">Jarak Tempuh (s): - meter</p>
</div>
<script>
function prosesKalkulasiGLBB() {
// Mengambil data input dari elemen HTML
let v0 = parseFloat(document.getElementById('input_v0').value);
let a = parseFloat(document.getElementById('input_a').value);
let t = parseFloat(document.getElementById('input_t').value);
// Validasi input
if (isNaN(v0) || isNaN(a) || isNaN(t)) {
document.getElementById('teks_hasil').innerText = "Mohon isi semua kolom angka dengan benar.";
return;
}
// Eksekusi rumus s = v0*t + 0.5*a*t^2
let jarak = (v0 * t) + (0.5 * a * t * t);
// Menampilkan hasil ke halaman web
document.getElementById('teks_hasil').innerHTML = "Jarak Tempuh (s): " + jarak.toFixed(2) + " meter";
}
</script>
4. Kesimpulan dan Bahan Diskusi Kelas
Melalui integrasi kode program ke dalam materi fisika, siswa diajak untuk melihat persamaan gerak secara dinamis. Beberapa pertanyaan pemantik yang bisa diberikan kepada siswa setelah mencoba simulasi di atas antara lain:
- Apa yang terjadi pada bentuk grafik jarak terhadap waktu jika nilai percepatan ($a$) diubah menjadi negatif (perlambatan)?
- Bagaimana modifikasi skrip Python di atas jika kita ingin menghentikan simulasi tepat ketika benda berhenti bergerak?
Selamat mencoba mengintegrasikan metode komputasi ini ke dalam rencana pelaksanaan pembelajaran Anda!
