Fisika

  • Uploaded by: Achmad Zajid
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Fisika as PDF for free.

More details

  • Words: 1,550
  • Pages: 7
Fisika : Tumbukan Elastis Melanjutkan artikel tentang Kecepatan dan Kelajuan, kali ini saya akan menjelaskan pembuatan animasi tumbukan sebuah bola dengan dinding dengan memasukkan besaran gravitasi, elastisitas, selain kecepatan dan percepatan. Kalo Anda belum membaca artikel sebelumnya, silakan baca dulu. Kunci dari pembuatan animasi yang realistis ( ingat ya, realistis belum tentu akurat ) adalah pengetahuan tentang Vektor. Jadi kalo mau tahu sebih detil, silaken baca lagi buku-buku matematika Anda.

Tumbukan & Energi Kinetik Dalam tulisan ini, saya hanya membahas tumbukan antara sebuah bola dengan dinding atau objek statis. Kalo Anda ingin tahu cara membuat animasi tumbukan antara 2 atau lebih objek yang bergerak ( bola dengan bola ), sabar … tunggu tulisan yang akan datang mengenai impuls dan momentum. Dari apa yang saya baca di buku “Kartun Fisika”1, ada 3 jenis tumbukan, yaitu Elastis, Semi-elastis, dan tidak elastis. Elastisitas tumbukan banyak dipengaruhi oleh besarnya Energi Kinetik yang terkonversi menjadi panas pada saat bola menumbuk dinding. Dalam ActionScript, Energi Kinetik sebuah benda yang bergerak dapat dihitung dengan: EK = 0.5 * m * v * v Untuk sementara, kita nggak memasukkan unsur massa bola ke dalam animasi kita, yang akan kita “hilangkan” adalah sebagian dari v. Dan kita juga tidak perlu tahu berapa tepatnya Energi Kinetik bola. Yang kita ingin tahu adalah berapa besar perubahan kecepatan sebagai akibat hilangnya Energi Kinetik. Sebagai contoh, bola yang kehilangan sebagian energi kinetiknya pada saat menumbuk lantai kecepatan vertikalnya akan berubah dan dapat dihitung dengan cara : vy *= (1 – lostEK) lostEK adalah banyaknya EK yg hilang, nilainya bisa bervariasi dari 0 – 1. Jika lostEK = 0, maka yg terjadi adalah tumbukan Elastis sempurna. Jika lostEK = 1, tumbukan tidak elastis. Untuk nilai lostEK yg lain, tumbukan semi-elastis. Rumus ini bukan rumus yg akurat namun hasilnya cukup realistis.

Dalam gambar di atas, pada saat terjadi tumbukan, sebagian EK bola hilang, karena massa bola kita abaikan maka bisa kita anggap hilangnya EK sebagai hilangnya vy ( vektor hijau, lost EK ). Jika tidak ada EK yg hilang, vy sesaat setelah tumbukan besarnya sama dengan vy sebelum tumbukan ( vektor vy0 ) hanya arahnya yg terbalik. Namun jika ada EK yg hilang, vy berkurang ( vektor vy1 ). Jadi secara sederhana, vy1 = – ( vy0 – lostVy ) Komponen X tidak ada yg berubah, kecuali jika kita menentukan sebuah besaran lain yaitu “friksi” pada bidang yang ditumbuk oleh bola. Untuk sementara, kita anggap bidang/dinding tidak mempunyai friksi. Catatan – [1] Buku ini berjudul “Kartun Fisika”, terbitan Kepustakaan Populer Gramedia, 2001. Saya beli di toko buku Togamas, Malang. Isinya bagus dan mudah dipahami karena konsep-konsep fisika dijelaskan dengan gambar-gambar lucu. Kata pengantar ditulis oleh Yohanes Surya, Ph.d, pembina Tim Olimpiade Fisika Indonesia. 99% materi tulisan saya di website ini juga berdasarkan apa yg ada di buku itu selain dari sumber yg lain.

Vektor Kembali ke vektor. Seperti yg kita tahu, kecepatan & percepatan adalah vektor dan untuk melakukan operasi matematik terhadap sebuah vektor kita perlu tahu komponenkomponennya. Tentu sesuai dengan sistem koordinat yang kita gunakan. Karena Flash menggunakan sistem koordinat Kartesian, maka kita perlu tahu komponen X dan Y dari vektor tersebut. Gambar A di bawah ini menunjukkan vektor kecepatan (v) dan komponen-komponennya ( vx , vy ). Jika kita ingin menggunakan/menambahkan percepatan, maka gambarnya kurang lebih seperti yg ditunjukkan dalam Gambar B.

Kita lihat Gambar B. Vektor vx dipengaruhi oleh komponen ax. Sedangkan vy dipengaruhi oleh ay. Ingat bahwa percepatan adalah nilai perubahan kecepatan yang terjadi setiap (satuan) waktu. Jadi kecepatan sesaat sebuah objek dapat dihitung dengan menambahkan kecepatan inisialnya dengan percepatan. Dalam ActionScript dapat kita gunakan rumus : vx += ax vy += ay Dan besarnya kecepatan, kita hitung dengan menggunakan rumus Phytagoras, yaitu : v = Math.sqrt(vx*vx + vy*vy); Dengan arah sudut: sudut = Math.atan2(vx,vy); Ok, let’s get to work.

Deteksi tumbukan dan reaksi bola Buat sebuah MovieClip berbentuk lingkaran, beri nama ball_mc. Ingat, registration point MovieClip ini harus di tengah. Buat juga sebuah MovieClip berbentuk persegi empat, beri stroke 1 px. Beri nama walls_mc. Buat layer baru, beri nama “script”, klik frame 1, dan buka panel ActionScript (tekan F9). Pertama, kita buat inisialisasi variabel ax, ay, vx, dan vy. Saya memberi nilai 0.1 untuk ax dan ay. Sementara vy & vx saya beri nilai 0. Anda bisa memberi nilai berapa saja, tapi sebaiknya gunakan nilai yg kecil supaya animasi tidak terlalu cepat.

Actionscript: 1. 2. 3. 4.

var var var var

ax:Number ay:Number vx:Number vy:Number

= = = =

.1; .1; 0; 0;

Kita juga perlu menentukan boundaries atau batas-batas pergerakan bola. Karena kita ingin walls_mc berlaku seperti dinding, maka kita buat variabel dengan memperhitungkan posisi relatif bola terhadap dinding dan jari-jari bola. Actionscript: 1. var top:Number = walls_mc._y + ball_mc._height/2; 2. var bottom:Number = walls_mc._y + walls_mc._heightball_mc._height/2; 3. var left:Number = walls_mc._x + ball_mc._width/2; 4. var right:Number = walls_mc._width-ball_mc._width/2; Variabel-variabel di atas akan kita gunakan untuk mengecek apakah terjadi tumbukan. Kita ambil contoh, tumbukan dengan dinding sebelah kanan. Tumbukan terjadi jika koordinat bola kurang dari atau sama dengan koordinat dinding dikurangi dengan jari-jari bola. Ada 4 skenario reaksi bola terhadap tumbukan dengan dinding : 1. 2. 3. 4.

tumbukan dengan dinding kiri, arah vx menjadi positif tumbukan dengan dinding kanan, arah vx menjadi negatif tumbukan dengan atap, arah vy menjadi positif tumbukan dengan lantai, arah vy menjadi negatif

Untuk mengecek apakah terjadi tumbukan atau tidak sekaligus membuat reaksi bola jika terjadi tumbukan, kita buat sebuah function tersendiri yaitu checkBoundaries() . Untuk membalik arah vektor horisontal & vertikal, kita cukup mengalikannya dengan -1. Actionscript: 1. function checkBoundaries() { 2. if (ball_mc._x > right) { 3. ball_mc._x = right; 4. vx *= -1; 5. }else if(ball_mc._x < left){ 6. ball_mc._x = left; 7. vx *= -1; 8. }

9. if (ball_mc._y > bottom ) { 10. ball_mc._y = bottom; 11. vy *= -1; 12. }else if(ball_mc._y < top){ 13. ball_mc._y = top; 14. vy *= -1; 15. } 16. }; Lihat gambar di bawah ini. Gambar A, terjadi tumbukan di mana ball_mc._x < right. Sebelum kita membalik arah vx, kita perlu memposisikan ball_mc, lihat Gambar B. Jika tidak kita posisikan seperti ini, maka bola bisa hilang dari Stage sesaat setelah tumbukan dan muncul kembali setelah sepersekian detik. Tentu animasi akan jadi aneh.

Sekarang kita buat function untuk menjalankan animasi, seperti biasa, function ini saya panggil dari setInterval() untuk menghasilkan animasi yg tidak tergantung pada FPS. Function ini juga terus menerus mengeksekusi checkBoundaries(). Actionscript: 1. var intID:Number = setInterval("animate",60); 2. function animate() { 3. vx += ax; 4. ball_mc._x += vx; 5. vy += ay; 6. ball_mc._y += vy; 7. vx_txt.text = vx; 8. vy_txt.text = vy;

9. 10. }

checkBoundaries();

Jalankan movie dan lihat hasilnya. Bola tidak akan pernah bergerak dalam garis lurus karena efek ax dan ay. Coba Anda ubah nilai ax & ay. Lihat perbedaan yg terjadi. Coba juga ubah nilai awal vx dan vy. Berikut ini swf yg saya buat dengan skrip yg sama dengan di atas, ditambah sebuah tombol utk play & pause. Nilai ax,ay, vx, dan vy dapat dilihat juga. Perhatikan bahwa nilai vx & vy bertambah jika searah dengan ax & ay, berkurang jika berlawanan arah dengan ax & ay. Jika menumbuk dinding, nilainya akan berubah tanda dari positif ke negatif atau sebaliknya. Silakan donlod sourcenya di sini.

Gravitasi & Tumbukan tidak elastis Sekarang kita coba masukkan gravitasi dan kita buat bola kehilangan sebagian energi kinetiknya pada saat terjadi tumbukan ( tumbukan tidak elastis ). Untuk itu kita buat 2 buah variabel baru yaitu gravity dan lostEK. var lostEK:Number = .3; var gravity:Number = .1; Gravitasi searah dengan sumbu Y, jadi seperti halnya ay, gravity akan mengubah nilai vy. vy += gravity; vy += ay; lostEK, seperti yg saya jelaskan di awal artikel ini, adalah besar EK bola yang berubah menjadi panas pada saat terjadi tumbukan. Dalam hal ini, tumbukan dengan lantai. Karena kita mengabaikan massa bola, maka hilangnya EK bisa dianggap sebagai vektor yang berlawanan arah dengan vy. Besar vektor ini dari 0 – 1. Vektor ini kita masukkan pada function checkBoundaries() sehingga function ini sekarang menjadi : Actionscript: 1. function checkBoundaries() { 2. if (ball_mc._x > right) { 3. ball_mc._x=right; 4. vx*=-1; 5. }else if(ball_mc._x < left){ 6. ball_mc._x=left; 7. vx*=-1; 8. }

9. if (ball_mc._y > bottom ) { 10. ball_mc._y = bottom; 11. if(vy>lostEK) { 12. // vy setelah tumbukan 13. vy *= - (1-lostEK); 14. }else{ 15. vy=0; 16. } 17. }else if(ball_mc._y < top){ 18. ball_mc._y = top; 19. vy *= -1; 20. } 21. }; Jalankan Movie dan lihat hasilnya. Coba ubah nilai gravity & lostEK. Semakin besar lostEK, makin rendah pantulan bola bahkan bisa jadi tidak memantul sama sekali.

Selanjutnya … Rumus/kode di atas bisa Anda gunakan untuk membuat animasi yang ciamik dengan memanfaatkan rumus Fisika sederhana. Tentu dengan sedikit improvisasi. Berikut ini animasi yg saya buat dengan rumus-rumus diatas plus sedikit tambahan untuk input dan output dinamis. Silakan coba ubah nilai gravitasi & lost EK, menggunakan numeric stepper. Anda juga bisa mengubah nilai ax & ay dgn menggunakan tombol a, s, w, & d. Kalau animasi berjalan terlalu cepat, klik tombol “reset”. Bola akan mulai bergerak jika minimal salah satu dari ay, ax, atau gravitasi bernilai lebih besar dari 0. Mungkin bisa dipake untuk belajar Fisika … hehe Bola warna-warni! Klik bola untuk melontarkannya dengan vy & vx acak. Klik Reset untuk mengembalikan ke posisi semula.

Related Documents

Fisika
June 2020 20
Fisika
May 2020 34
Fisika
May 2020 33
Fisika
July 2020 20
Fisika
June 2020 18
Fisika
November 2019 35

More Documents from ""

Tumbukan
November 2019 21
Momentum Dan Impuls
November 2019 36
Fisika
November 2019 39
Tugas Fisika Rombel 01
November 2019 35