Simulasi Pendulum Sederhana Menggunakan HTML5 Canvas
Simulasi pendulum yang termasuk dalam contoh gerakan osilator harmonik sederhana, dapat divisualisasikan menggunakan teknologi HTML5 Canvas.
Gambar di atas adalah tampilan percobaan penulis memvisualisasikan gerak pendulum, dengan kode sebagaimana terlampir di bawah.
Sebelumnya, penulis sudah membuat simulasi ini dalam bentuk aplikasi Android, yang dapat di download pada link di sini.
Di mana simulasi yang penulis buat, adalah dengan kondisi gerakan pendulum yang mengabaikan gesekan dengan udara, dengan gerakan ayunan pendulum mengabaikan redaman, dan simpangan maksimum yang sama tiap framenya.
Karena jika simpangan pendulum tidak sama, maka dapat dipastikan konsep atau kode program yang penulis masukkan untuk membuat simulasi adalah keliru.
Sedangkan persamaan yang penulis gunakan adalah persamaan gerak pendulum turunan dari gaya (Wikipedia, 2019), yang mana penulis dengan menggunakan metode finite difference untuk menyelesaikan perhitungan numeriknya.
Berikut ini adalah kode lengkap HTML5 Canvas simulasi pendulum yang penulis maksud di atas:
<html> <head> <title>Frekuensi Kata</title> </head> <body> <div> <div> <h1>Masukkan kata:</h1> <textarea id="inputText" style="width:600px;height:300px;"></textarea><br/> <button onclick="calculate()">Click me</button> </div> <div id="pilihan" style="margin:10px;"></div> </div> <hr/> <div id="hasil"></div> <script> function calculate() { document.getElementById("hasil").innerHTML=""; document.getElementById("pilihan").innerHTML=""; var myText=document.getElementById("inputText").value; myText=myText.trim().split(/\s+/); var kata=[]; var num=[]; for(i=0;i<myText.length;i++){ var ketemu=false; myText[i]=myText[i].toLowerCase(); for(j=0;j<kata.length;j++){ if(kata[j]==myText[i]){ num[j]++; ketemu=true; break; } } if(!ketemu){ kata[kata.length]=myText[i]; num[num.length]=1; } } for(i=0;i<kata.length;i++){ for(j=i+1;j<kata.length;j++){ if(num[j]>num[i]){ var tmp1=kata[i]; kata[i]=kata[j]; kata[j]=tmp1; var tmp2=num[i]; num[i]=num[j]; num[j]=tmp2; } } } for(i=0;i<kata.length;i++){ var persen=Math.round(num[i]*100/num[0]); document.getElementById("hasil").innerHTML+="<div style='margin:10px;background-color:#dbdbff;width:"+persen+"%;overflow:visible;'><div style='display:inline;'>"+num[i]+":</div> <div onclick='myFunction(this,"+persen+")' style='display:inline;'>"+kata[i]+"</div></div>"; } } function myFunction(x,s) { if(s<15)s=15; document.getElementById("pilihan").innerHTML+="<span style='font-size:"+s+"'>"+x.innerHTML+"</span> "; } </script> </body> </html>
Penulis sebenarnya juga mencoba menurunkan sesuai konsep kekelan energi, namun karena pengetahuan matematika penulis yang masih minim, penulis belum bisa menurunkannya.
Jika ada pertanyaan, saran atau kerjasama dapat di layangkan kepada penulis melalui email di uboiz@yahoo.com.
Referensi
- Wikipedia. 2019. Pendulum (mathematics). https://en.wikipedia.org/wiki/Pendulum_(mathematics). Diakses tanggal 2 Oktober 2019.
Komentar
Posting Komentar