tes 3

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:

  1. Apa yang terjadi pada bentuk grafik jarak terhadap waktu jika nilai percepatan ($a$) diubah menjadi negatif (perlambatan)?
  2. 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!

tes 2

Gerak parabola (proyektil) merupakan salah satu materi esensial dalam pembelajaran Fisika yang sering kali terasa abstrak bagi siswa jika hanya diajarkan di atas kertas. Untuk menjembatani teori dan dunia nyata, kita dapat menerapkan pendekatan Project-Based Learning (PjBL) dengan merancang pelontar proyektil otomatis berbasis mikrokontroler.

Pada artikel kali ini, kita akan membedah secara singkat teori matematis di balik gerak parabola, lalu menerjemahkannya ke dalam logika pemrograman Arduino untuk memprediksi titik jatuh benda.


1. Landasan Teoritis: Mengurai Vektor Kecepatan

Sebuah benda yang ditembakkan dengan kecepatan awal $$v_0$$ pada sudut elevasi $$\theta$$ akan mengalami perpaduan dua gerak: Gerak Lurus Beraturan (GLB) pada sumbu horizontal dan Gerak Lurus Berubah Beraturan (GLBB) pada sumbu vertikal akibat gravitasi $$g$$.

Komponen kecepatan awal dapat diuraikan menjadi:

  • Kecepatan awal sumbu horizontal: $$v_{0x} = v_0 \cos(\theta)$$
  • Kecepatan awal sumbu vertikal: $$v_{0y} = v_0 \sin(\theta)$$

Salah satu parameter paling penting dalam mendesain pelontar adalah menghitung jarak jangkauan terjauh (titik jatuh proyektil) pada lintasan datar. Persamaan yang digunakan adalah:

$$X_{max} = \frac{v_0^2 \sin(2\theta)}{g}$$

Persamaan di atas menunjukkan bahwa jarak tembak maksimal sangat bergantung pada sudut elevasi pelontar. Secara teoritis, jarak terjauh akan dicapai ketika sudut tembak berada tepat pada $$45^\circ$$.

2. Simulasi Perhitungan Menggunakan Arduino

Mari kita terapkan rumus di atas ke dalam perangkat keras. Bayangkan kita memiliki pelontar mekanik yang sudut elevasinya diatur oleh motor servo, dan nilai sudutnya dibaca dari sebuah potensiometer. Arduino akan bertugas membaca sudut tersebut dan memprediksi seberapa jauh proyektil akan mendarat diukur dari titik nol.

Berikut adalah skrip dasar Arduino untuk menghitung jangkauan $$X_{max}$$ secara real-time:


#include <Servo.h>
#include <math.h>

Servo servoPelontar;

// Deklarasi Variabel Fisika
const float v0 = 15.0;      // Kecepatan awal pelontar dalam m/s (asumsi konstan)
const float g = 9.81;       // Percepatan gravitasi bumi dalam m/s^2
int pinPotensio = A0;       // Pin untuk membaca sudut dari potensiometer
int sudutDerajat = 0;
float sudutRadian = 0.0;
float jarakMaksimal = 0.0;

void setup() {
  Serial.begin(9600);
  servoPelontar.attach(9);  // Menghubungkan servo ke pin digital 9
  
  Serial.println("==================================");
  Serial.println("Sistem Prediksi Trajektori Aktif");
  Serial.println("==================================");
}

void loop() {
  // 1. Membaca nilai dari potensiometer (0-1023) 
  // lalu dipetakan ke sudut servo (0-90 derajat)
  int nilaiSensor = analogRead(pinPotensio);
  sudutDerajat = map(nilaiSensor, 0, 1023, 0, 90);
  
  // Menggerakkan servo ke sudut elevasi yang ditentukan
  servoPelontar.write(sudutDerajat);
  
  // 2. Konversi sudut dari Derajat ke Radian (wajib untuk fungsi trigonometri di C++)
  sudutRadian = sudutDerajat * (PI / 180.0);
  
  // 3. Menghitung Jarak Terjauh (X_max) menggunakan persamaan fisika
  // Rumus: X = (v0^2 * sin(2*theta)) / g
  jarakMaksimal = (pow(v0, 2) * sin(2 * sudutRadian)) / g;
  
  // 4. Menampilkan hasil ke Serial Monitor
  Serial.print("Sudut Elevasi: ");
  Serial.print(sudutDerajat);
  Serial.print(" derajat | Estimasi Titik Jatuh: ");
  Serial.print(jarakMaksimal);
  Serial.println(" meter");
  
  delay(1000); // Jeda 1 detik agar pembacaan stabil
}

Pada blok kode di atas, fungsi sin() dalam bahasa C++ membutuhkan argumen dalam bentuk radian, sehingga kita harus melakukan konversi dari derajat ke radian terlebih dahulu. Hal ini sering menjadi poin kritis yang bisa Anda diskusikan bersama siswa di laboratorium.

3. Unduhan Modul dan Rubrik Evaluasi PjBL

Untuk mendukung pelaksanaan proyek ini di kelas, silakan unduh Lembar Kerja Peserta Didik (LKPD) beserta instrumen evaluasinya melalui tabel direktori di bawah ini:

Nama Dokumen Format Aksi
LKPD: Pelontar Proyektil Arduino PDF Unduh
Rubrik Penilaian Proyek & Laporan Docx Unduh

Dengan mengintegrasikan sains murni dan Internet of Things (IoT), peserta didik diharapkan tidak hanya sekadar menghafal rumus, melainkan memahami bagaimana matematika menggerakkan teknologi di dunia nyata.

tes artikel

 tes artikel