Java Tutorial - Animasi Bandul Matematis dengan Metode Verlet Kecepatan
Friday 6 January 2017
Sebelum kita membuat "Animasi Bandul Matematis dengan Metode Verlet Kecepatan" maka kita terlebih dahulu memahami metode verlet kecepatan. Metode Verlet adalah salah satu metode yang digunakan untuk melakukan pendekatan atau metode pendekan untuk menetukan posisi seuatu benda jika di ketahui percepatan atau persamaan gerak benda.
Metode Verlet kecepatan adalah salah satu metode numerik yang digunakan untuk mengintegrasikan persamaan Newton. yang paling penting dari metode ini adalh persamaan gerak benda atau partikel. untuk menentukan persamaan gerak benda, dapat digunakan Hukum 2 Newton yaitu percepatan benda berbanding lurus dengan jumlah gaya yang bekerja dan berbanding tebalik dengan Massa. Atau bisa di kenal dengan Sigma F = m*a.
Sebelum kita mengunakan Algoritma Verlet Kecepatan, Terlebih dahulu kita mencarai persamaan gerak bandul dengan mengunakan persamaan Newton. Dimana gaya yang berkerja pada bandul matematis adalah gaya berat atau gaya yang di pengaruhi oleh gravitasi bumi.
Kita tahu bahwa bandul matematis adalah salah satu contoh gerak secara periodik atau gerak bolak balik terhabap titik keseimbangan. Secara ideal gerak bandul matematis pada sudut kurang dari 15 drajat akan terus menerus bergerak secara periodik, dan taakan berhenti. Namun pada kenyataan nya adalah Bandul lama kelamaan akan diam, ini dikarenakan bandul mendapat gaya hambat oleh gesekan udara. sehingga lama kelaman bandul akan diam.
Algoritma Verlet Posisi Satu dimensi ( Arah Sumbu x )
Xnp1 = 2*Xn - Xnm1 + axn*dt^2;
Algoritma Verlet Kecepatan Satu dimensi ( Arah Sumbu x )
Xnp1 = Xn + Vxn*dt + (1/2*axn*dt^2);
Vxnp1 = Vxn + 1/2*(axnp1 + axn)*dt;
dimana Xnp1 = X(n + 1) , Xnm1 = X(n - 1) dan Vxnp1= Vx(n + 1)
Mencari Persanmaan Gerak Bandul Dengan Menggunakan Hukum II Newton
Disini kita mengunakan percepatan sudut sebagai persamaan gerak bandul, Ini akan mempermudah kita dari pada kita mengunakan percepatan tangensial percepatan ax dan ay. Percepatan sudut merupakan turunan kedua dari posisi sudut terhadap waktu.
Dari situ kita peroleh a = -g/l * sin(theta).
Setelah kita peroleh persamaan gerak, maka kita menggunakan Metode Verlet Kecepatan Untuk menentukan posisi partikel setelah selang waktu dt.
Berikut adalah program Bandul.java
/*
Nama : Mozaik Al Qharomi
Nim : G1B014027
Program : Bandul.java
*/
/*Program Bandul
Persamaan yang digunakan
thetha_np1 = thetha_n + omega*dt + 0.5*an+dt^2
omega_np1 = omega_n + 0.5*(an+anp1)*dt
an = (-g/L)*sin(thetha)
Variable yang di perlukan
Xn, Yn, thetha, omega, an, dt, L
*/
public class Bandul{
public static void main(String[] args){
// Membuat Ukuran windows
StdDraw.setXscale(-10.0, 10.0);
StdDraw.setYscale(-10.0, 10.0);
// input untuk menggambar poligon
double[] x = { -1.0, 1.0, 1.0, -1.0 };
double[] y = { 5.5, 5.5, 5.0, 5.0 };
// deklarasi variabel
double omega = 0.0;
double thetha, an, t;
double Xn, Yn;
double g = -9.8;
double L = 5;
double dt = 0.01;
double dt2 = dt*dt;
long i;
//sudut awal
thetha = 10;
// Percepatan awal
an = (-g/L)*Math.sin(thetha);
for(i=1; i<=100000; i++){
t = i*dt;
// Metode Verlet
// Posisi Sudut -> thetha(t)
thetha = thetha + omega*dt + (0.5*an*dt2); // thetha_np1 = thetha_n + omega*dt + 0.5*an+dt^2
// Kecepatan Sudut -> omega(t)
omega = omega + (0.5*an*dt); // omega_np1 = omega_n + 0.5*(an)*dt
// Percepatan(t)
an = (-g/L)*Math.sin(thetha); // anp1
omega = omega + (0.5*an*dt); //omega_np1 = omega_n + 0.5*(anp1)*dt
// Posisi Benda pada Koordinat X,Y
Xn = L*Math.sin(thetha);
Yn = L*Math.cos(thetha);
System.out.println("Xn = " + Xn + " Yn = " + Yn); // Menampilkan Output program berupa nilai Xn,Yn
StdDraw.clear(); // Menghapus Object Lama
StdDraw.line(0,5,Xn,Yn); // Mengambar Garis
StdDraw.filledCircle(Xn, Yn, 1); // Menggambar Benda lingkaran
StdDraw.filledPolygon(x, y); // Membuat Tempat gantung Tali
StdDraw.show(5); // delay program
}
}
}
Output Program :
Itulah sekilas tentang Membuat animasi Bandul Matematis dengan mengunakan bahasa pemrograman Java. Semoga artilel ini dapat memeberikan menfaat bagi kita semua. Jika ada kesalahan kata saya mohon maaf, Semoga teman teman tidak bosan untuk mengunjungi blog saya, saya ucapkan terimakasi. Jangan Lupa kembali lagi, karena masih banyak ilmu yang akan saya bagikan disini.
Jika ada Pertanyaan dari teman teman silahkan tuliskan dikolom komentar saya dengan senang hati akan membalas komentar teman teman atau jika ada yang ingin memberikan saran atau teman teman ingin me-request judul artikel silahkan Moggo, saya dengan senang hati akan mencoba menuliskannya.
Sekian, Wassalam.