Siswa VLab
V-Lab Fisika
Selamat datang di aplikasi simulasi interaktif V-Lab Fisika untuk materi Listrik Statis. Eksplorasi konsep fisika dengan visualisasi, eksperimen virtual, dan fitur pembelajaran modern!
Silahkan Akses V-Lab
pengembang : Ujang Miftahurrahman | Versi 5.0.1 | Tahun 2025

Panduan Singkat

  1. Klik + untuk menambah muatan
  2. Drag muatan untuk memposisikan
  3. Gunakan slider untuk mengatur nilai
Langkah Praktikum
1: [ '1. Tambahkan dua muatan titik dengan klik tombol +.\n', '2. Posisikan kedua muatan dengan drag ke area simulasi.', '3. Atur besar dan tanda muatan menggunakan slider.', '4. Amati arah gaya interaksi antara kedua muatan.', '5. Simpulkan bagaimana interaksi terjadi berdasarkan tanda muatan.' ], 2: [ '1. Tambahkan satu muatan tetap dan satu muatan uji.', '2. Dekatkan muatan uji ke muatan tetap, amati perubahan gaya.', '3. Aktifkan visualisasi medan listrik.', '4. Amati perubahan medan saat posisi muatan diubah.', '5. Simpulkan konsep induksi listrik dari hasil pengamatan.' ], 3: [ '1. Tambahkan dua muatan titik.', '2. Ukur jarak antara kedua muatan (gunakan fitur penggaris/jarak).', '3. Catat besar masing-masing muatan.', '4. Hitung gaya Coulomb menggunakan rumus F = k.q₁.q₂/r².', '5. Bandingkan hasil perhitungan dengan gaya yang muncul di simulasi.' ] }; let currentPraktikum = null; function showPraktikumOverlay() { document.getElementById('praktikumOverlay').style.display = 'flex'; } function hidePraktikumOverlay() { document.getElementById('praktikumOverlay').style.display = 'none'; } function showStepPanel(praktikumId) { window.currentPraktikum = praktikumId; window.currentStep = 0; document.getElementById('praktikumOverlay').style.display = 'none'; document.getElementById('stepPanel').style.display = 'block'; document.getElementById('restoreStepPanel').style.display = 'none'; renderStepContent(); } function hideStepPanel() { var panel = document.getElementById('stepPanel'); var restoreBtn = document.getElementById('restoreStepPanel'); if(panel && panel.style.display !== 'none'){ panel.classList.add('minimized'); setTimeout(() => { panel.style.display = 'none'; restoreBtn.style.display = 'block'; restoreBtn.focus(); }, 280); } } function restoreStepPanel() { var panel = document.getElementById('stepPanel'); var restoreBtn = document.getElementById('restoreStepPanel'); panel.classList.remove('minimized'); panel.style.display = 'block'; // Tampilkan kembali semua box langkah praktikum dan elemen terkait var idsToShow = [ 'stepContent','stepChecklist','stepTable','stepGraph','stepReflect', 'stepProgressLabel','stepProgressBar','stepPanelTitle','prevStepBtn','nextStepBtn' ]; idsToShow.forEach(function(id){ var el = document.getElementById(id); if(el) el.style.display = ''; }); var footer = document.querySelector('.step-panel-footer'); if(footer) footer.style.display = ''; restoreBtn.style.display = 'none'; setTimeout(()=>{panel.focus&&panel.focus();},100); renderStepContent(); } function renderStepContent() { if(!window.currentPraktikum) return; const steps = window.praktikumSteps[window.currentPraktikum]; document.getElementById('stepPanelTitle').innerText = 'Langkah Praktikum ' + window.currentPraktikum + ' - ' + (window.currentStep+1) + ' dari ' + steps.length; document.getElementById('stepContent').innerHTML = steps[window.currentStep].instruksi; document.getElementById('prevStepBtn').disabled = (window.currentStep === 0); document.getElementById('nextStepBtn').innerText = (window.currentStep === steps.length-1) ? 'Selesai' : 'Berikutnya'; } document.addEventListener('DOMContentLoaded',function(){ // Inisialisasi default agar panel langkah tidak kosong saat awal if(window.currentPraktikum === null) { window.currentPraktikum = 1; window.currentStep = 0; if(typeof renderStepContent === 'function') renderStepContent(); } // Integrasi tombol "Mulai" pada overlay utama const mulaiBtn = document.getElementById('mulaiBtn'); if(mulaiBtn){ mulaiBtn.addEventListener('click', function(){ showPraktikumOverlay(); }); } // Pilihan praktikum document.querySelectorAll('.praktikum-btn').forEach(btn=>{ btn.onclick = function(){ const id = this.getAttribute('data-praktikum'); hidePraktikumOverlay(); showStepPanel(id); // Reset simulasi jika perlu: panggil resetState() jika ada if(typeof resetState==='function'){resetState();} }; }); // Navigasi step document.getElementById('prevStepBtn').onclick = function(){ if(currentStep>0){currentStep--;renderStepContent();} }; document.getElementById('nextStepBtn').onclick = function(){ const steps = praktikumSteps[currentPraktikum]; if(currentStep{panel.focus&&panel.focus();},100); if(typeof renderStepContent === 'function') renderStepContent(); }; } });