Anda di halaman 1dari 131

TUGAS AKHIR

FISIKA KOMPUTASI

Oleh :
Winda Kusuma Dewi
4211412048

JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN
ALAM
UNIVERSITAS NEGERI SEMARANG
2012

DAFTAR ISI
Daftar isi

BAB I
1.1 Kecepatan Bola Jatuh Dalam Udara dengan Hambatan..... 10
1.2 Gerak Jatuh Bebas Tanpa Hambatan...... 15

BAB II
2.1 Nilai Percepatan Tanpa Redaman Pada Hukum Hooke..

22

2.2 Grafik Analitik Pada Kasus Hukum Hooke

25

2.3 Ruang Phase

28

BAB III
3.1 Gerak Proyektil 39
3.2 Gerak Bumi Mengelilingi Matahari. 46
3.3 Lintasan Orbit dengan Variasi Vy..

52

3.4 Atom Bohr..

55

BAB IV
4.1 Rangkaian RC (Pengisian).

65

4.2 Rangkaian RC (Pengosongan) 68


4.3 Rangkaian RL (Analitik) 73
4.4 Rangkaian RL. 76
4.5 Rangkaian RLC (Teredam Kritis).. 85
4.6 Rangkaian RLC Tanpa Redaman... 88

BAB V
5.1 Lintasan Ion Hidrogen 1.

98

5.2 Lintasan Ion Hidrogen 2.

102

BAB VI
6.1 Hamburan Rutherford. 113

1. GERAK SATU DIMENSI

1.1 Gerak Jatuh Bebas Tanpa Hambatan


Sebuah benda dijatuhkan dari ketinggian tertentu dengan besar kecepatan awal

vo

Apabila diasumsikan tidak ada gaya yang menghambat laju benda saat jatuh, maka gaya yang
bekerja pada benda tersebut hanyalah gaya berat akibat gravitasi bumi (W). Dengan demikian
sesuai dengan Hukum II Newton, percepatan gerak benda pada waktu t adalah
F = ma
(mg)=ma
a = g
Dari persamaan di atas, nyatalah bahwa percepatan benda hanya dipengaruhi oleh percepatan
gravitasi bumi.Dengan konsep ini, maka kecepatan gerak benda yang dijatuhkan dari

ketinggian tertentu akan semakin besar.Jika

waktu t sebesarv(t) =

vo

+ at atau v (t)=

dv
=a
, maka kecepatan gerak benda pada
dt
vo

gt. Hal yang sama dapat diperoleh jika

dx
=v
,maka posisi benda pada waktu t dapat dihitung dengan x(t) =
dt

1 2
x o+ v o t g t .
2

1.2 Gerak Jatuh Bebas dengan Hambatan


Analog dengan persoalan benda yang dijatuhkan dari ketinggian tertentu dengan kecepatan
awal

vo

dan dengan memperhatikan gaya hambat fluida (drag force), maka gaya yang

bekerja pada benda tersebut selain gaya berat juga gaya hambat udara itu sendiri (

Fd

yang arahnya berlawanan arah dengan arah gerak benda.

Jika a adalah percepatan gerak benda jatuh, maka dari Gambar tampak bahwa sesuai dengan
Hukum II Newton
F=ma
Fd

W=ma

Fd

mg = ma

Besarnya gaya hambat

Fd

bergantung pada bentuk benda, kecepatan benda, luas

penampang melintang benda, dan kerapatan fluida dimana benda bergerak.Besarnya gaya

hambat fluida adalah

1
Fd = v 2 Cd A
2

dengan

Fd

adalah gaya hambat (N), adalah

kerapatan fluida (kg/m3), v adalah kecepatan benda ( ms -1),

Cd

adalah koefisien hambatan

(tak berdimensi), dan A adalah luas penampang melintang benda yang dijatuhkan ( m2).
Besarnya percepatan benda yang bergerak dalam suatu fluida dan mengalami gaya hambat
Fd

ma =

adalah
Fd

mg

a=

Fd
m

a=

v2 C d A
2m

a=

K v2
g ; dengan K =
m

-g

C d A
2

Untuk mengetahui kecepatan benda pada waktu t (secara analitik) dapat ditentukan dengan
cara melihat hubungan antara percepatan dengan kecepatan pada persamaan di atas.

Jikadiketahui

a=

dv K v 2
=
g
dt
m

dv
,
dt maka

dv
=dt
K v2
g
m
dengan mengintegralkan persamaan di atas dan menggunakan konsep
dx

ax 2+ b+c =

4 acb

tan

2 ax +b
4 acb 2

maka

dv
K 2
( v g)
m

= dt

2
tan 1
4 Kg
m

Kv
m

( )
2

g
4 K
m

=t atau

K
mg
v

m 1
t=
tan
Kg

dengan demikian kecepatan benda pada saat t dapat dihitung dengan dengan menggunakan
persamaan berikut :

g
m
t

m
v ( t )= g tanh
K
K

Dengan tanda negatif (-) menunjukkan bahwa benda bergerak denganarah ke bawah.
Kecepatan Terminal
Kecepatan terminal dicapai saat gaya hambat sama dengan gaya yang mendorong benda
tersebut atau saat percepatan benda sama dengan nol. Dari persamaan gerak benda di atas
dapat diketahui bahwa kecepatan terminal benda adalah
v terminal =

2 mg
Cd A

Solusi Numerik
Jika

dv
=a
aka kecepatan pada saat t+t dapat dihitung jika percepatan pada saat t telah
dt

diketahui.
v ( t+ t )v (t)
dv
=a=
atauv ( t+ t )=v ( t ) +a(t ) t
dt
t
Jika persamaan ditulis dalam bentuk indeks maka
v n +1=v n + an t dimana an=

K v n2
g
m

1.2 Soal
Sebuah bola dengan radius 7.5 mm dan massa 3.9 g dijatuhkan tanpa kecepatan awal dari
sebuah ketinggian tertentu. Jika koefisien hambatan bola di udara adalah 0,46, kerapatan
udara adalah 1,2 kgm-3, dan percepatan gravitasi bumi 9,8 ms -2, maka dengan menggunakan
metode Euler:(a) hitunglah kecepatan benda sebagai fungsi dari waktu (t) dari t=0 s sampai
dengan 15 s. Gunakan perubahan selang waktu t = 0.01 s (b) Apakah kecepatan bola akan
terus membesar? Jelaskan! (c) Bandingkan hasil perhitungan kecepatan bola dengan
menggunakan metode Euler dan perhitungan secara analitik. Apakah terjadi perbedaan yang
cukup signifikan?
Dengan menggunakan bantuan Microsoft Excel, kita dapat membandingkan secara
numerik dan analitik, berikut tampilannya :

Algoritma : Menentukan Kecepatan Bola Jatuh dalam Udara dengan Hambatan


STEP 1 :

Pilih nilai h

STEP 2 :

Pilih kondisi awal, v

STEP 3 :

Mulai Loop

STEP 4 :

Hitung a

a=

v2 C d r2
2m

STEP 5 :

Cetak t dan v

STEP 6 :

Update v:

vv+ha
STEP 7 :

Increment t
tt+h

STEP 8 :

Loop hingga t >

STEP 9 :

Selesai

t max

Flowchart : Menentukan Kecepatan Bola Jatuh dalam Udara dengan Hambatan


Mulai

Inisialisasi awal
H dan v(0)

Hitung
a = F/m

Cetak
V(t)

V(t+h) = v(t) + h a (t)

t=t+h

Tidak
t >=

t max

Y
A
Selesai

10

Kode Program Kecepatan Bola Jatuh dalam Udara dengan Hambatan


<html>
<center><B>
<bodybgcolor="ffccaa"></body>
<fontsize="6"face="hobo std"color=00AADD>Gerak Jatuh Bebas<br/></font>
<fontsize="4"face="hobo

std"color=00cccc>(Winda

KusumaDewi/4211412048)<br/><br/></font>
<?php
ini_set('display_errors',0);
//initial condition
define('G',9.8);
define('h',0.01);
$r=7.5e-3;
$m=3.9e-3;
$C=0.46;
$rho=1.2;
$v=0;
$v_anal=$v;
$K=0.5*$C*$rho*pi()*$r*$r;
$vter=sqrt(($m*G)/$K);
echo"<h2>

Tabel

Perhitungan

Nilai

Kecepatan

Gerak

Bola

Jatuh

dengan

Hambatan";
echo"<br><br>Kecepatan terminal ".round($vter,4);
echo"<table

border='1'><tr><th>t

2</sup>)</th><th>v
2</sup>)</th><th>v

(sekon)</th><th>a

(ms<sup>-1</sup>)</th><th>a
analitik

analitik

(ms<sup>(ms<sup>-

(ms<sup>-1</sup>)</th><th>Error

(relatif)</th></tr>";
for($t=0;$t<=15;$t=round($t+h,3)){
$F=($m*G)-(0.5*$C*$rho*pi()*$r*$r*$v*$v);
$a=$F/$m;
$F_anal=($m*G)-(0.5*$C*$rho*pi()*$r*$r*$v_anal*$v_anal);
$a_anal=$F_anal/$m;
$v_anal=1*sqrt(G*$m/$K)*tanh($t*sqrt($K*G/$m));
$selisih=abs(($v-$v_anal)/$v_anal);
echo"<tr><td>$t</td><td>".round($a,4)."</td><td>".round($v,4)."</td><td>".r
ound($a_anal,4)."</td><td>".round($v_anal,4)."<td>".$selisih."</td></tr>";

11

$v+=$a*h;
}
echo"</table>";
?>
</center></B>
</html>

12

Hasilnya :

13

Kode Program Grafik Gerak Benda Jatuh


<?php
//membuat ukuran kanvas
$a=800;
$b=400;
$xmin=-1;
$xmax=15;
$ymin=0;
$ymax=30;
function transformx ($x)
{
$xmin=-1;
$xmax=15;
$a=800;
$k1=$a/($xmax-$xmin);
$k2=$a*$xmin/($xmin-$xmax);
$px=$k1*$x+$k2;
return$px;
}
function transformy ($y)
{
$ymin=0;
$ymax=30;
$b=400;
$k3=$b/($ymin-$ymax);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;
}
$img=imagecreate($a+50,$b+50);
//warna
$hitam=imagecolorallocate($img,0,0,0);
$hijau=imagecolorallocate($img,0,255,0);
$putih=imagecolorallocate($img,255,255,255);
$biru=imageColorallocate($img,0,0,255);
$merah=imagecolorallocate($img,255,0,0);
$kuning=imagecolorallocate($img,255,255,0);
//sumbu
imagestring($img,200,200,200,"Grafik Posisi (s), Kecepatan (v), dan
Percepatan GJB(a)",$merah);

14

imageline($img,
transformx($xmin+1),transformy(0),transformx($xmax),transformy(0),$kuning);
imageline($img,
transformx(0),transformy($ymin),transformx(0),transformy($ymax),$kuning);
//skala x
$dx=($xmax-($xmin+1))/15;
$x=$xmin+1;
while($x<=$xmax)
{
imageline($img,transformx($x),transformy(0)2,transformx($x),transformy(0)+2,$merah);
imagestring($img,3,transformx($x)-8,transformy(0)+1,"$x",$kuning);
$x=$x+$dx;
imagestring($img,5,770,410,"t(sekon)",$kuning);
}
//skala y
$dy=($ymax-$ymin)/3;
$y=$ymin;
while($y<=$ymax)
{
imageline($img,transformx(0)2,transformy($y),transformx(0)+2,transformy($y),$merah);
imagestring($img,3,transformx(0)-15,transformy($y),"$y",$kuning);
$y+=$dy;
imagestring($img,5,10,5,"V(m/s)",$kuning);
}
//keterangan
imagestring($img,5,700,5,"v(t)",$merah);
imagestring($img,5,700,380,"a(t)",$putih);
imagestring($img,5,180,3,"s(t)",$hijau);
//grafik
$r=7.5e-3;
$m=3.9e-3;
$t=0;
$s=0;
$g=9.8;
$C=0.46;
$rho=1.2;
$v=0;
$h=0.01;
do{

15

$a=$g-0.5*$C*$rho*pi()*$r*$r*pow($v,2)/$m;
imagesetpixel($img,transformx($t),transformy($a),$putih);
imagesetpixel($img,transformx($t),transformy($v),$merah);
imagesetpixel($img,transformx($t),transformy($s),$hijau);
$v=$v+$a*$h;
$t=$t+$h;
$s=($v+$a*$h)+$t;
}
while($t<=15);
Header("Content-Type:image/png");
imagepng($img);
imagedestroy($img);
?>

Hasilnya :

16

2. DINAMIKA SATU DIMENSI PADA HUKUM HOOKE


Pada bab ini akan diungkap bagaimana computer dapat digunakan untuk memperoleh
solusi numerik dari masalah-masalah sederhana dan nyata dengan mengilustrasikannya dalam
bentuk grafik. Masalah yang dimaksud adalah tentang solusi numerik dari konsep gerak
benda dengan pegas.dalam bab ini ,pembahasan dibatasi pada gerak benda pada pegas dalam
satu dimensi.

Benda pada pegas yang tertekan


Gambar 3.1 mengilustrasikan benda bermassa m yang diam pada permukaan ideal dengan
gesekan yang dihubungkan dengan pegas dan dapat diekspresikan :
F = - kx
Dimana tanda minus(-) berarti gaya pegas berlawanan dengan perpindahan. Jika
diaaplikasikan hukum kedua Newton pada sistem tersebut maka akan diperoleh:
-

kx = ma

Percepatan a dapat ditulis sebagai :


a(t) = -

k
m

x(t)

dimana fungsi tersebut tergantung pada waktu .


Dengan cara yang sama ,definisi percepatan menjadi :
a(t)

v ( t +h ) v (t )
h

17

atau v (t+h) v(t) + h a(t)


dengan kata lain kecepatan pada t + h adalah kecepatan v pada waktu sebelumnya t ditambah
percepatan dikali dengan beda waktu h .untuk itu harus tau kondisi mula-mula pegas saat t
v0

=0, v =

,x=

x0

, sedangkan percepatan awal adalah

k x 0
dan dengan itu dapat
m

diketahui kecepatan pada beda waktu h berikutnya.


Didalam algoritma , sistem mendapatkan hambatan udara yang proporsional dengan negatif
dari kecepatan,sesuai dengan hukum kedua Newton :
F = m a = - k x- cv
Yang dapat ditulis menjadi :
a=

k
m

x-

Persamaan diatas merupakan persamaan osilasi dengan bagian redaman cv


RUANG PHASE
Kadang kadang perangai sistem ,sebagaimana sistem benda pegas mungkin lebih
mudah dipahami dengan grafik kecepatan (v) vs perpindahan(x) ,dibanding grafik
perpindahan(x) vs waktu (t) .sistem koordinat x-v ini disebut sebagai ruang phase (phase
space). Lintasan dalam ruang phase dengan mudah dapat memberikan persfektif yang lain
terhadap permasalah. Kadang- kadang hal ini menjadi lebih berarti daripada sekedar lintasan
x(t) dalam ruang waktu.
Lintasan akan berbentuk spiral dalam ruang phase,sebagaimana sistem yang
kehilangan energi keudara disekitarnya .pada sistem benda pegas ini , titik (0,0) disebut
stable attractor . berapapun kondisi awal sitem, tidak akan menjadi masalah ,osilasi tetap
akan menuju ke titik yang sama dalam ruang phase yaitu titik (0,0).
PERBAIKAN ALGORITMA

18

Sebagaimana

nampak

pada

algoritma

penyelesaiaan

dinamika

,mula-mula

menggunakan interval h untuk mendapatkan v diakhir interval h kemudian menggunakan v


diakhir interval h untuk mendapatkan x pada akhir interval h .kita dapat meningkatkan
akurasi dengan menghitung x di akhir interval denan menggunakan v ditengah-tengah dari
interval h .
Secara simbolik adalah:
Xn +

1
2

1
= Xn + hVn + 2

1
Vn + 2 merupakan kecepatan setengah jalan pada interval h
Sehingga untuk mendapatkanVn +

1
2

= Vn -

1
2

+ h an

Dan bila perhitungan dimulai dari t = 0 maka persamaannya menjadi:


1
V 2

=V-

1
a
2 +h 0

Berarti harus mengetahui v saat t = 1


V 2

V0

h
2

daripada saat t = 0, sehingga diperoleh

h
a
2 0

19

ALGORITMA : PENGGUNAAN METODE FEYNMAN NEWTON PADA


PENYELESAIAN DINAMIKA
STEP 1

Cari total gaya yang bekerja pada benda lalu tentukan percepatan a=F/m

STEP 2

Pilih harga interval waktu h dan kondisi awal v0 dan x0

STEP 3

Dengan menggunakan kondisi awal hitung percepatan pada t=0

STEP 4

Hitung
1
V 2

STEP 5

V0

h
a
2 0

Mulai loop hingga t>tmax

STEP 6

plot x(t), v(t) dan a(t)

STEP 7

update nilai :
x x + hv

STEP 8

Dengan menggunakan nilai nilai x dan v,


hitung a dari hukum Newton kedua

STEP 9

Update nilai v
v v + ha

STEP 10

Increment t
t t+h

20

FLOWCHART PENYELESAIAN DINAMIKA SATU DIMENSI

MULAI

Inisialisasi awal h,

x 0 , dan v 0

Hitung a = F/m

Hitung a pada t =0

1
V 2

V0

TIDAK

Cetak x(t), v(t), a(t)

x=x+hv

v = v + ha

t=t+h
21

t >= tmax?

YA

SELESAI

22

Kode program Menentukan Nilai Percepatan Tanpa Redaman Pada Kasus Hukum
Hooke
<html>
<bodybgcolor="99bbdd">
<center>
<formaction="4211412048_hooke tnpa hambatan.php"method="POST">
<fontsize="8"face="britannic bold">TABEL PERHITUNGAN PEGAS TIDAK
TEREDAM</font><br/>
<br></br>
<fontsize="5"face="kristen itc">Masukkan data</font>
<tablebgcolor="aaffdd">
<tr>
<td>Delta x awal :</td>
<td><inputtype="text"name="awal"></td>
</tr>
<tr>
<td> Delta x akhir :</td>
<td><inputtype="text"name="akhir"><br></td>
</tr>
<tr>
<td><inputtype="submit"name="Input"value="hitung"></td><br><br>
</tr>
<br><tableborder="3"><br/>
<tr><center>
<tdbgcolor="6677ff">massa (m)</td>
<tdbgcolor="6677ff">konstanta (N/m)</td>
<tdbgcolor="6677ff">delta x (m)</td>
<tdbgcolor="6677ff">percepatan (m/s<sup>2</sup>)</td></center>
</tr>
</center>
<?php
ini_set('display_errors',0);
$awal=$_POST['awal'];
$akhir=$_POST['akhir'];
define('G',9.8);
define('h',0.1);
$k=1;
$m=2;

23

for($x=$awal;$x<=$akhir;$x+=0.01)
{
$a=(-$k*$x)/$m;
echo"<tr>
<td>$m</td>
<td>$k</td>
<td>$x</td>
<td>$a</td>
</tr>";
}
?>
</table>
</body>
</html>

24

Hasilnya

25

26

Kode Program Grafik Analitik Pada Kasus Hukum Hooke


<?php
//nilai besaran
$h=0.01;
$m=1;
$k=1;
$c=0.2;
$t=0;
$v=0;
$x=1;
//membuat kanvas bidang gambar :
//ukuran panjang, lebar
$aa=800;
$bb=600;
$xmin=0;
$xmax=30*pi ();
$ymin=-1;
$ymax=1;
$k1=$aa/($xmax-$xmin);
$k2=-$aa*$xmin/($xmax-$xmin);
$k3=$bb/($ymin-$ymax);
$k4=-$bb*$ymax/($ymin-$ymax);
//menampilkan kanvas
$gb=ImageCreate ($aa,$bb);
//membuat warna
$hitam = ImageColorAllocate ($gb, 0, 0, 0);
$putih=ImageColorAllocate($gb,255,255,255);
$warna1=ImageColorAllocate($gb,200,200,200);
$warna2=ImageColorAllocate($gb,255,0,0);
$biru=ImageColorAllocate($gb,0,0,255);
$kuning=ImageColorAllocate($gb,255,255,0);
//perumusan

27

for ($t=0;$t<=30*pi();$t+=$h){
ini_set('display error','0');
$a=-($k/$m*$x)-($c/$m*$v);
//menampilkan grafik
ImageSetPixel($gb,$t*$k1+$k2,$x*$k3+$k4,$putih);
Imageline($gb,($xmin+1)*$k1+$k2,0*$k3+$k4,$xmax*$k1+$k2,0*$k3+$k4,$hitam);
ImageLine($gb,0*$k1+$k2,($ymin+5)*$k3+$k4,3+$k1+$k2,($ymax-50)*$k3+
$k4,$hitam);
//menampilkan tulisan
imagestring($gb,5,46*$k1+$k2,-1.2*$k3+$k2,'t(s)',$warna2);
imagestring($gb,5,-1.1*$k1+$k2,1.1*$k3+$k4,'x(m)',$warna2);
imagestring($gb,15,11*$k1+$k2,1.3*$k3+$k4,'Grafik hubungan Posisi (x) thdp
Waktu (t)',$warna2);
//perulangan skala & angka pada sumbu-x
for($aa=0;$aa<=30*pi();$aa+=10){
//angka
imagestring($gb,3,$aa*$k1+$k2,-0.05*$k3+$k4,$aa,$biru);
//skala
imagestring($gb,3,$aa*$k1+$k2,0.03*$k3+$k4,"|",$biru);
}
//perulangan skala & angka pada sumbu-y
for($bb=-1;$bb<=1;$bb+=0.2){
//angka
imagestring($gb,3,0.01*$k1*$k2,$bb*$k3+$k4,$bb,$biru);
//skala
imagestring($gb,3,-0.04*$k1+$k2,$bb*$k3+$k4,"-",$biru);
}
$v=$v+$a*$h;
$x=$x+$v*$h;
}
//kaki
Header("Content-Type:Image/Jpeg");
ImageJPEG($gb);
ImageDestroy($gb);
?>

28

Hasilnya :

29

Kode Program Ruang Phase (Grafik Simpangan vs Kecepatan Osilasi Teredam)


<?php
header("content-type: image/jpeg");
$image = imagecreate(800,800);
// warna
$biru = imagecolorallocate ($image, 0, 0, 255);
$putih = imagecolorallocate ($image, 255, 255, 255);
$merah = imagecolorallocate($image, 255, 0, 0);
$hijau = imagecolorallocate ($image, 20, 255, 20);
$hitam = imagecolorallocate ($image, 0, 0, 0);
$kuning = imagecolorallocate ($image, 200, 200, 0 );
imagefilledrectangle ($image, 0, 0, 800, 800, $hijau);
//konfersi ke koordinat kartesian
$a1 = 800;
$b1 = 800;
$xmin = -1;
$xmax = 1;
$ymin = -1;
$ymax = 1;
$k1 = $a1/($xmax-$xmin);
$k2 = $a1*$xmin/($xmin-$xmax);
$k3 = $b1/($ymin-$ymax);
$k4 = $b1*$ymax/($ymax-$ymin);
//box
$px1 = $k1*$xmin+$k2;
$px2 = $k1*$xmax+$k2;
$py1 = $k3*$ymin+$k4;
$py2 = $k3*$ymax+$k4;
//kotak
//imagerectangle($image, ceil($px1), ceil($py1), ceil($px2),
ceil($py2),$hitam);
// Judul Grafik

30

Imagestring($image,4,$k1*($xmin+0.01)+$k2,($k3*($ymax-0.05)+
$k4),"Grafik Simpangan Vs Kecepatan Osilasi Teredam",$merah);
//sumbu x
$px1 = $k1*$xmin+$k2;
$px2 = $k1*$xmax+$k2;
$py1 = $k3*0.0+$k4;
imageline($image, ceil($px1), ceil($py1), ceil($px2), ceil($py1),
$hitam);
// menamai sumbu x
for($x=$xmin;$x<=$xmax; $x += 0.1)
{
imageline ($image,$k1*$x+$k2,$k3*(-0.01)+$k4,$k1*$x+$k2,$k3*0.01+
$k4, $hitam);
if ($x<=-0.1 or $x>=0)
{
imagestring($image,2,$k1*$x+$k2,($k3*-0.01+$k4),$x,$merah);
}
}
imagestring($image,3,$k1*($xmax-0.15)+$k2,($k3*0.05+$k4),"V(m/s)",
$merah);
//sumbu y
$py1 = $k3*$ymin+$k4;
$py2 = $k3*$ymax+$k4;
$px1 = $k1*0+$k2;
imageline($image, ceil($px1), ceil($py1), ceil($px1), ceil($py2),
$hitam);
for($y=$ymin;$y<=$ymax; $y += 0.1)
{
imageline ($image,$k1*(-0.01)+$k2,$k3*$y+$k4,$k1*(0.01)+$k2,$k3*$y+
$k4, $hitam);
if ($y<=-0.1 or $y>=0)
{
imagestring($image,2,$k1*(-0.01)+$k2,($k3*($y)+$k4),round($y,2),
$merah);
}
}

31

imagestring($image,3,$k1*(0.01)+$k2,($k3*($ymax-0.05)+
$k4),"X(meter)",$merah);
// membuat grafik ayunan teredam X vs V
define('G',9.8);//membuat konstanta G
define('h',0.0005);//h dalam hal ini adalah delta t
$m=0.5;
$k=8;
$b=0.23;
$e=2.72;
$v0=0;
$A=0.2;
$w=sqrt(($k/$m)-pow(($b/(2*$m)),2));
$t0=0;
$x0=$A;
for ($t=0;$t<=30;$t=$t+h)
{
//untuk numeriknya
$Vi=$v0-((($b/$m)*$v0*$t0)+(($k/$m)*$x0*$t0));
$xi=$x0+$Vi*h;
//untuk analitiknya
$Van=-$A*$w* pow($e,-$b/(2*$m)*$t)*sin($w*$t);
$xan=$A* pow($e,-$b/(2*$m)*$t)*cos($w*$t);
//transformasi X dan V numerik
$px1=$k1*$Vi+$k2;
$py1=$k3*$xi+$k4;
//transformasi X dan V analitik
$px2=$k1*$Van+$k2;
$py2=$k3*$xan+$k4;
//grafik numerik
imagesetpixel ($image,$px1,$py1,$biru);
// grafik analitik
imagesetpixel ($image,$px2,$py2,$merah);
$t0=h;
$v0=$Vi;
$x0=$xi;
}

32

imagestring($image,3,$k1*(0.1)+$k2,$k3*(-0.63)+$k4,"Keterangan :",
$hitam);
imageline ($image,$k1*(0.1)+$k2,$k3*(-0.7)+$k4,$k1*(0.3)+$k2,$k3*(0.7)+$k4, $merah);
imagestring($image,2,$k1*(0.3)+$k2,$k3*(-0.68)+$k4,"Grafik X terhadap V
Analitik", $hitam);
imageline ($image,$k1*(0.1)+$k2,$k3*(-0.8)+$k4,$k1*(0.3)+$k2,$k3*(0.8)+$k4, $biru);
imagestring($image,2,$k1*(0.3)+$k2,$k3*(-0.78)+$k4,"Grafik X terhadap V
Numerik", $hitam);
imagejpeg($image);
imagedestroy($image);
?>

Hasilnya

33

3. DINAMIKA DALAM DUA DIMENSI


Pada bab ini akan dibahas tentang digunakannya komputer untuk memperoleh solusi
numerik dari masalah-masalah nyata namun lebih kompleks. Agar mudah dipahami tetap
akan digunakan ilustrasi atau gambaran grafik.maslah yang dibahas masi terbatas pada
penggunaan solusi numerik sederhana untuk mendapatkan solusi gerak sebuah benda. Dalam
hal ini akan dibahas tentang gerak benda dalam dua dimensi.
Gerak proyektil

34

Pada bab yang terdahulu elah dibahas penggunaan metode Euler atau metode
Feynman Newton dalam teknik numerik untuk persoalan yang meliputi hukum kedua
newton. Pada bab ini akan diperluas untuk masalah dua dimensi ,yaitu tentang geak proyektil
dengan hambatan udara dan gerak orbital.
Gambar 5.1 menunjukkan kuantitas penting yang diasosiasikan sebagai gerak sebagai
gerak dalam dua dimensi. Sebuah benda dengan massa m ,dengan perpindahan r ,yang
mungkin bervariasi terhadap waktu dan dikenal gaya eksternal F. Vector r mempunyai
komponen x dan y, yaitu koordinat dari massa m. Vektor F mempunyai komponen Fx dan Fy.
ax

Fx
m

dan

ay

Fy
m

Sehingga kita dapat menyelesaikan maslah gerak dalam dua dimensi dengan satu set
persamaan pada masing-masing koordinat.

Gambar 5.1 Gaya dan vektor perpindahan dalam Dua dimensi


Gerak proyektil dengan hambatan udara
Besar gaya hambat udara adalah :Fa =

1
2

cA A

Dari gambar 5.2 diketahui bahwa :


Cos =

vx
v

sin =

vy
v

Dimana besarnya v dapat dihitung dengan :

35

v=

vx 2 +vy 2

dengan mengikuti hokum kedua Newton :


ax

1
2

A / m v cos
2

=-

Dan
ay

= -g -

1
2

A / m v sin
2

Gambar 5.2 Hubungan antara Fa dan v


Persamaan diatas dapat disederhanakan menjadi :
ax

= - kvvx

dan

ay

= - kvvy

Dimana
k=

1
2

A
m

36

Gambar 5.4 Penembakan proyektil dari puncak gunung pada sebuah planet
Kita asumsikan planet kita tidak berotasi dan massanya M ,sedemikian hingga GM = 1. Dari
puncak gunung pada planet tersebut kita tembakkan meriam secara horisontal dengan
kecepatan awal v0.
Gaya gravitasi F yang bekerja pada proyektil mengarah kepusat planet. Jika massa gunung
kita abaikan dan jarak proyektil dari pusat planet r serta massa proyektil m.maka gaya yang
bekerja adalah:
GMm
r^
r2

F=-

Dengan adalah vector satuan sepanjang r dan tanda minus meperlihatkan gaya F berarah
kepusat planet. Menurut hukum kedua newton kita dapatkan :
a=

F
m

=-

GM
r^
r2

percepatan relative dari proyektil dengan massa m terhadap bumi dengan massa M, jika
mM dapat dihitung sebagai berikut:
dengan asumsi GM =1 dan komponen-komponen dalam arah x dan y dari percepatan adalah:
ax

=-

cos
r2

ax

=-

sin
r2

37

Dimana
cos =

x
x + y2

sin =

y
x + y2

Atau ditulis juga bahwa :


r2 =

x 2+ y 2

jadi kita peroleh:

ax

x 2+ y 2

Dan

ay

x 2+ y 2

Dimana ax dan ay adalah percepatan proyektil yang mengelilingi planet yang lebih kompleks
dibanding bumi yang datar.
Adanya variasi kecepatan satelit akan menempuh lintasan yang berbeda- beda,
Lintasan orbit lingkaran adalah kasus paling sederhana pada gerak satelit. Namun hal ini
merupakan kasus paling penting,.bila sebuah gaya yang bekerja pada satelit yang orbitnya
lingkaran mengelilingi bumi dalam gaya tarik bumi. Yang mana arah gaya tarik tersebut
kepusat bumi sebagai pusat orbit. Ini berarti bahwa satelit bergerak melingkar beraturan
dengan kecepatan konstan.
Menurut model atom Bohr ,atom hydrogen terdiri dari orbit electron yang
mengelilingi proton dalam bentuk lingkaran. Untuk mem-plot orbit dari electron dalam atom
hydrogen,kita gunakan hukum Coloumb:
F=k

Q1 Q2
r2

38

Gaya tersebut adalah gaya atraksi diantara proton dan electron dalam orbit pada jarak r dari
proton .kuantitas k = 8.99 109 N m2C -2.untuk lebih sederhananya kita asumsikan orbit
lingkaran dengan proton pada titik pusat koordinat. Gaya coulomb menghasilkan gaya
sentripetal yang mempertahankan electron dalam orbit lingkaran. Electron dalam atom
hydrogen mengitari sebuah proton sebagai inti , keduanya bermuatan sebesar 1.602 10-19 C.
dengan demikian menurut hukum kedua Newton akan diperoleh:
a=-

k e2
2
r

dengan mengganti parameter

k e2
m

ALGORITMAsolusi numerik dari persoalan dinamika 2D

STEP 1

Tentukan interval h

STEP 2

Berikan koordinat awal untuk t = 0, x =


vy

dan

v0

x0

,y =

y 0, v x

v0

cos

sin dimana adalah sudut elevasi

Tentukan semua parameter gerak, koefisien gesekan udara, massa, percepatan


gravitasi dll.
STEP 3

Hitung

ax

= - kv

vx

dan

ay

= - g - kv

vy

dimana k =

1
2

A
m

STEP 4

Hitung half interval kecepatan untuk setiap komponen


vx

1
2

=v

x0

h
a
2 x

vy

1
2

=v

y0

h
a
2 y

39

STEP 5

Mulai loop untuk y<0

STEP 6

Plot posisi (x,y)

STEP 7

Update koordinat x dan y


x

x+h

vx

y+h

vy

STEP 8

Hitung percepatan ax dan ay dengan rumus diatas

STEP 9

Update komponen komponen kecepatan

STEP 10
t

v x vx

+h

ax

vy v y

+h

ay

Increment waktu
t+h

STEP 11

Akhir loop dari STEP 5

STEP 12

Selesai

FLOWCHART PENYELESAIAN DINAMIKA DUA DIMENSI


MULAI

Inisialisasi

t = 0, x =

x0

,y =

y 0,

v x = v 0 cos

40

a x = - kv v x
a y = - g - kv v y

vx

1
2

=v

x0 +

h
a
2 x

TIDA
K

Plot posisi (x,y)

x=x+h

vx

y=y+h

vy

ax dan ay

Xx=v x + h a x
Vy=v y + h a y

t=t+h

X > = x max ?

41

YA
SELESAI

42

Kode Program Gerak Proyektil


<?php
Header("Content-Type:image/jpeg");
$a=600;
$b=400;
$img=ImageCreate($a,$b);
$kuning=imagecolorallocate($img,255,255,0);
$putih=imagecolorallocate($img,255,255,255);
$hijau=imagecolorallocate($img,55,228,10);
$biru=imagecolorallocate($img,0,0,255);
$merah=imagecolorallocate($img,255,0,0);
$hitam=imagecolorallocate($img,0,0,0);
$putih=ImagecolorAllocate($img,255,255,255);
$xmin=-10;
$xmax=40;
$ymin=-5;
$ymax=10;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
function transformx ($x)
{
$xmin=-10;
$xmax=40;
$a=600;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;
}
function transformy ($y)
{
$ymin=-5;
$ymax=10;
$b=400;

43

$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;
}
//sumbu
imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$hitam);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$hitam);
//skala x
$dx=($xmax-($xmin))/10;
$x=$xmin+$dx;
while($x<=$xmax)
{
imageline($img,transformx($x),transformy(0)2,transformx($x),transformy(0)+2,$hitam);
imagestring($img,3,transformx($x)-8,transformy(0)+1,$x,$biru);
$x=$x+$dx;
}
//skala y brooo...,,,
$dy=($ymax-$ymin)/10;
$y=$ymin+$dy;
while($y<=$ymax)
{
imageline($img,transformx(0)1,transformy($y),transformx(0)+1,transformy($y),$hitam);
imagestring($img,3,transformx(0)-15,transformy($y),$y,$hitam);
$y=$y+$dy;
}
imagestring($img,30,-5*$k1+$k2,9*$k3+$k4,'y(m)',$merah);
imagestring($img,30,35*$k1+$k2,-1*$k3+$k4,'x(m)',$merah);
$x=0.0;

44

$y=0.0;
$g=9.8;
$h=0.01;
$c=0.46;
$m=0.19;
$theta=M_PI/180*37;
$v=25;
$vx=$v*cos($theta);
$vy=$v*sin($theta);
$ro=1.2;
$r=0.06;
$luas=M_PI*POW($r,2);
$k=0.5*$c*$ro*$luas/$m;
$n=0;
$t=0;
$ax=-$k*$v*$vx;
$ay=-$g-$k*$v*$vy;
imagesetpixel($img,transformx ($x),transformy ($y),$biru);
$n++;
$t=$t+$h;
$vx=$vx+$h/2*$ax;
$vy=$vy+$h/2*$ay;
$x=$x+$h*$vx;
$y=$y+$h*$vy;
$ax=-$k*$v*$vx;
$ay=-$g-$k*$v*$vy;
imagesetpixel($img,transformx ($x),transformy ($y),$biru);
for($t=$t+$h;$t<=10;$t+=$h)
{
$n++;
$vx=$vx+$h*$ax;
$vy=$vy+$h*$ay;
$x=$x+$h*$vx;
$y=$y+$h*$vy;
$ax=-$k*$v*$vx;
$ay=-$g-$k*$v*$vy;

45

imagesetpixel($img,transformx ($x),transformy ($y),$biru);


}
imagestring($img,50,150,10,"grafik gerak proyektil",$merah);
ImageJPEG($img);
?>

Hasilnya :

46

ALGORITMA : GERAK BUMI MENGITARI MATAHARI


STEP 1

Tentukan h = 864000s

STEP 2

Pilih kondisi awal seperti contoh

STEP 3

Hitung

STEP 4

= GM = 1.328. 1020 N m 2 kg1

ax = -

x/ (x 2+ y 2)3 /2

ay = -

y/ (x 2+ y 2)3 /2

Hitung half step velocity komponen dengan rumus

STEP 5

1
vx 2

= vx +

h
2 ax

1
vy 2

= vy +

h
2 ay

Mulai loop hingga koordinat y bergant dari ke +


STEP 6

Plot (x,y)

STEP 7

Hitung koordinat baru dengan rumus

STEP 8

x+h

vx

y+h

vy

Hitung komponen x dan y dari percepatan dengan persamaan yang


diberikan di atas (STEP 3)

STEP 9

Update komponen-komponen kecepatan:

STEP 10

vx

vx

+h

ax

vy

vy

+h

ay

Increment waktu
t

t+h

STEP 11

Akhir loop dari STEP 5

STEP 12

Selesai

47

FLOWCHART PENYELESAIAN GERAK SATELIT


mulai

inisialisasi awal h
t0,x,y,vx,vy

= GM = 1.328. 1020
2

N m kg

ax = -

x/ (x 2+ y 2)3 /2

ay = -

y/ (x 2+ y 2)3 /2

1
vx 2

=vx+

h
2 ax

1
vy 2

= vy +

h
2 ay

TIDAK

plot posisi ( x,y )

x=x + h

vx

48

ax dan ay

v x vx + h ax
v y =v y

+h

ay

t=t+h

t >= tmax?

YA
selesai

49

Kode Program Gerak Bumi Mengelilingi Matahari


<?php
header("content-type: image/jpeg");
//frame
$gb=imagecreate(800,800);
//vaariabel warna
$orange=ImageColorAllocate($gb,255,150,40);
$abu2=Imagecolorallocate($gb,128,128,128);
$ungu=Imagecolorallocate($gb,136,0,221);
$coklatmuda=ImageColorAllocate($gb,128,64,0);
$biru=Imagecolorallocate($gb,0,0,255);
$merah=Imagecolorallocate($gb,255,0,0);
$hijau=Imagecolorallocate($gb,0,255,0);
$hitam=Imagecolorallocate($gb,0,0,0);
$putih=Imagecolorallocate($gb,255,255,255);
$kuning=Imagecolorallocate($gb,255,255,0);
//imagefilledrectangle
imagefilledrectangle($gb,0,0,800,800,$orange);
//konfersi ke koordinat kartesian
$a1=800;
$b1=800;
$xmin=-2.25e+11;
$xmax=2.25e+11;
$ymin=-2.25e+11;
$ymax=2.25e+11;
$k1=$a1/($xmax-$xmin);
$k2=$a1*$xmin/($xmin-$xmax);
$k3=$b1/($ymin-$ymax);
$k4=$b1*$ymax/($ymax-$ymin);

50

//box
$px1=$k1*$xmin+$k2;
$px2=$k1*$xmax+$k2;
$py1=$k3*$ymin+$k4;
$py2=$k3*$ymax+$k4;
//kotak
//imagerectangle($gb, ceil($px1), ceil($py1), ceil($px2), ceil($py2),
$hitam);
//sumbu x
$px1=$k1*$xmin+$k2;
$px2=$k1*$xmax+$k2;
$py1=$k3*0.0+$k4;
imageline($gb, ceil($px1), ceil($py1), ceil($px2), ceil($py1),$ungu);
//sumbu y
$py1=$k3*$ymin+$k4;
$py2=$k3*$ymax+$k4;
$px1=$k1*0+$k2;

imageline($gb, ceil($px1), ceil($py1), ceil($px1), ceil($py2),$ungu);


/*

$x = 0;

define ('g', 9.8);


define ('dt', 0.01);
define ('c', 0.46);
define ('pi', 3.14);
$r = 0.06;
$A = 4*pi*pow($r,2);
$p = 1.2;
$m = 0.1;
$K=$p*c*$A/2;
$th=37*pi/180; // sudut 37 derajat dalam radian
$vo=25;
$vy=$vo*sin($th);

51

$vx=$vo*cos($th);
$ax=-$K*pow($vo,2)*cos($th);
$ay=-g-$K*pow($vo,2)*sin($th);
$y=0;
$xa=$ya=$x_s=$y_s=0; // posisi analitik awal
$vxa=$vya=25; // kecepatan analitik awal

$vx_s=$vo+($ax*dt)/2; //
$vy_s=$vo+($ay*dt)/2; // (Metode Feyman-Newton)
$x_s=$x_s+$vx_s*dt;

//

$y_s=$y_s+$vy_s*dt;

//

Metode Setengah Jalan

for ($t=0; $t<=40 ; $t=$t+dt)


{
$y=$vo*$t-((g+$K*$vo*$vo*sin($th))*$t*$t/2);
$x=$vo*$t-(($K*$vo*$vo*cos($th))*$t*$t/2);
$py1 = $k3*$y+$k4;
$px1 = $k1*$x+$k2;
imagesetpixel ($gb, $px1, $py1, $biru);
// Metode Analitik Euler (awal)
$py2 = $k3*$ya+$k4;
$px2 = $k1*$xa+$k2;
imagesetpixel ($gb, $px2, $py2, $hitam);
$vxa=$vxa+dt*$ax;
$xa=$xa+dt*$vxa;
$vya=$vya+dt*$ay;
$ya=$ya+dt*$vya;
$ax=-$K*pow($vo,2)*cos($th);
$ay=-g-$K*pow($vo,2)*sin($th);
// Metode Analitik Euler (akhir)
// Metode Feyman-Newton (awal)
$py3 = $k3*$y_s+$k4;
$px3 = $k1*$x_s+$k2;

52

imagesetpixel ($gb, $px3, $py3, $biru);


$vx_s=$vx_s+($ax*dt);
$vy_s=$vy_s+($ay*dt);
$x_s=$x_s+$vx_s*dt;
$y_s=$y_s+$vy_s*dt;
$ax=-$K*pow($vo,2)*cos($th);
$ay=-g-$K*pow($vo,2)*sin($th);
// Metode Feyman-Newton (akhir)
} */
// Gerak Revolusi Bumi
$h=86400;
$x=1.496e+11;
$y=0;
$vx=0;
$vy=2.94e+4;
$G=6.672e-11;
$M=1.99e+30;
$t=0;
$p=$G*$M;
$r=pow($x,2)+pow($y,2);
$tmax=365*24*3600;// setahun
$ax=-$p*$x/pow($r,1.5);
$ay=-$p*$y/pow($r,1.5);
$vx=$vx+$h/2*$ax;
$vy=$vy+$h/2*$ay;
for($t=0;$t<=$tmax;$t+=$h)
{
$y=$y+$vy*$h;
$x=$x+$vx*$h;
$ax=-$p*$x/pow($r,1.5);
$ay=-$p*$y/pow($r,1.5);
$py1=$k3*$y+$k4;

53

$px1=$k1*$x+$k2;
imagesetpixel($gb,$px1,$py1,$merah);
$vx=$vx+$h*$ax;
$vy=$vy+$h*$ay;
}
for($a=-2.25e+11;$a<=2.25e+11;$a+=0.5e+11){// label sumbu y
imageline($gb,$k1*-0.05e+11+$k2,$k3*$a+$k4,$k1*0.05e+11+$k2,$k3*$a+
$k4,$hitam);
imagestring($gb,5,$k1*-0.5+$k2,$k3*$a+$k4,$a/1e+9,$hitam);
}
for($a=-2.25e+11;$a<=2.25e+11;$a+=0.5e+11){// label sumbu x
imageline($gb,$k1*$a+$k2,$k3*-0.05e+11+$k4,$k1*$a+$k2,$k3*0.05e+11+
$k4,$hitam);
imagestring($gb,5,$k1*$a+$k2,$k3*-0.5+$k4,$a/1e+9,$hitam);
}
imagestring($gb,5,$k1*0.25e+11+$k2,$k3*2.25e+11+$k4,"y (10^6 km)",$ungu);
imagestring($gb,5,$k1*1.875e+11+$k2,$k3*0.125e+11+$k4,"x (10^6 km)",$ungu);
imagestring($gb,5,$k1*-2e+11+$k2,$k3*2.25e+11+$k4,"Gerak Bumi Mengitari
Matahari",$ungu);
imagestring($gb,5,$k1*-1.5e+11+$k2,$k3*2.175e+11+$k4,"Grafik y vs x",
$ungu);
imagestring($gb,5,$k1*0.5e+11+$k2,$k3*-2e+11+$k4,"Winda Kusuma Dewi
(4211412048)",$merah);
// Menampilkan gambar ke browser
imagejpeg($gb);
// Mendealokasikan memory
imagedestroy($gb);
?>

54

Hasilnya :

55

Kode Program Lintasan Berbagai Orbit dengan Variasi Vy


<?php
$a=800;
$b=600;
$im=ImageCreate($a,$b);
$xmin=-75;
$xmax=75;
$ymin=-50;
$ymax=50;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$k3=$b/($ymin-$ymax);
$k4=-$b*$ymax/($ymin-$ymax);
$coklattua=imagecolorAllocate($im,100,72,63);
$hitam=ImageColorAllocate($im,0,0,0);
$merah=imagecolorallocate($im,255,0,0);
$putih=ImageColorAllocate($im,255,255,255);
$biru=imagecolorallocate($im,0,0,255);
$hijau=Imagecolorallocate($im,0,225,0);
imageline($im,($k1*$xmin+$k2),($k3*0+$k4),($k1*$xmax+$k2),($k3*0+$k4),
$biru);
$sb_x=($xmax-$xmin)/5;
for($x=$xmin;$x<=$xmax;$x+=$sb_x){
imagestring($im,4,($k1*$x+$k2)+5,($k3*0+$k4)+5,$x,$merah);
imagestring($im,50,100,20,"GRAFIK GERAK SATELIT VARIASI Vy",$putih);
}
imageline($im,($k1*0+$k2),($k3*$ymax+$k4),($k1*0+$k2),($k3*$ymin+$k4),
$biru);

56

$sb_y=($ymax-$ymin)/4;
for($y=$ymin;$y<=$ymax;$y+=$sb_y){
imagestring($im,4,($k1*0+$k2)+5,($k3*$y+$k4)+5,$y,$merah);
imagestring($im,50,500,500,"Winda Kusuma Dewi_4211412048",$putih);
}
$vy0=0;
do{
$x=25;
$y=0;
$h=0.05;
$t=0;
$vx=0;
$vy0=$vy0+0.04;
$vy=$vy0;
$GM=1;
$tmax=2000;
//$r=pow($x,2)+pow($y,2);
$ax=-$GM*$x/pow((pow(($x),2)+pow($y,2)),1.5);
$ay=-$GM*$y/pow((pow(($x),2)+pow($y,2)),1.5);
//$ax=-$GM*$x/pow($r,1.5);
//$ay=-$GM*$y/pow($r,1.5);
$vx=$vx+($h/2)*$ax;
$vy=$vy+($h/2)*$ay;
//mulai loop
for($t=0;$t<=$tmax;$t=($t+$h)){

$x=$x+$h*$vx;
$y=$y+$h*$vy;
//$ax=-$GM*$x/pow($r,1.5);
//$ay=-$GM*$y/pow($r,1.5);
$ax=-$GM*$x/pow((pow(($x),2)+pow($y,2)),1.5);
$ay=-$GM*$y/pow((pow(($x),2)+pow($y,2)),1.5);
$vx=$vx+$h*$ax;

57

$vy=$vy+$h*$ay;
$lx=$k1*$x+$k2;
$ly=$k3*$y+$k4;
imagesetpixel($im,$lx,$ly,$hijau);
}
}
while($vy<=0.32);
Header("Content-Type:image/PNG");
ImagePNG($im);
ImageDestroy($im);
?>

Hasilnya :

58

Kode Program Atom Bohr


<?php
ini_set('display_errors',0);
$a=1000;
$b=1000;
$im=ImageCreate($a,$b);
$xmin=-9.9e-10;
$xmax=9.9e-10;
$ymin=-6.6e-10;
$ymax=6.6e-10;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$k3=$b/($ymin-$ymax);
$k4=-$b*$ymax/($ymin-$ymax);
$putih =Imagecolorallocate ($im, 255, 255, 255);
$orange=Imagecolorallocate($im,255,150,40);
$ungu=Imagecolorallocate($im,136,0,221);
$biru =Imagecolorallocate ($im, 0, 0, 255);
$hijau =Imagecolorallocate ($im, 0, 255, 0);
$kuning =Imagecolorallocate ($im, 255, 255, 0 );
$abu2=Imagecolorallocate($im,128,128,128);
$coklatmuda=Imagecolorallocate($im,128,64,0);
$hitam =Imagecolorallocate ($im, 0, 0, 0);
$merah =Imagecolorallocate($im, 255, 0, 0);

//gambar

59

imageline ($im,($k1*$xmin+$k2),($k3*0+$k4),($k1*$xmax+$k2),($k3*0+$k4),
$merah);//sumbu x
$sb_x=($xmax-$xmin)/5;
for ($x=$xmin;$x<=$xmax;$x+=$sb_x)
{
imagestring($im,5,($k1*$x+$k2)+5,($k3*0+$k4)+5,$x,$hitam);
//imagestring($im,30,0.003625*$k1+$k2,0.00875*$k3+$k4,'t(sekon)',
$hitam);
}
imageline ($im,($k1*0+$k2),($k3*$ymax+$k4),($k1*0+$k2),($k3*$ymin+$k4),
$merah);//sumbu y
$sb_y= ($ymax-$ymin)/10;
for ($y=$ymin;$y<=$ymax;$y+=$sb_y)
{
imagestring($im,5,($k1*0+$k2)+5,($k3*$y+$k4)+5,$y,$hitam);
imagestring($im,5,-9.6e-10*$k1+$k2,5.6e-10*$k3+$k4,'GRAFIK MODEL
ATOM BOHR',$ungu);
}
ini_set('display_errors',0);
$x=5.3e-10;
$y=0;
$vy=2.19e+5;
$vx=0;
$h=1e-19;
$t=0;
$tmax=2e-14;
$e=1.6e-19;
$d=0.535e-10;
$m=9.11e-31;
$k=8.99e+9;
$c=$k*$e*$e/$m;
$ax=-$c*((($x-$d)/pow((($x-$d)*($x-$d)+($y*$y)),1.5))+(($x+$d)/pow((($x+
$d)*($x+$d)+($y*$y)),1.5)));
$ay=-$c*((($y)/pow((($x-$d)*($x-$d)+($y*$y)),1.5))+(($y)/pow((($x+$d)*($x+
$d)+($y*$y)),1.5)));
$vx=$vx+$h/2*$ax;
$vy=$vy+$h/2*$ay;

60

do

{
$lx=($k1*$x)+$k2;
$ly=($k3*$y)+$k4;
imagesetpixel ($im,$lx,$ly,$hijau);
$x=$x+$h*$vx;
$y=$y+$h*$vy;
$ax=-$c*((($x-$d)/pow((($x-$d)*($x-$d)+($y*$y)),1.5))+(($x+

$d)/pow((($x+$d)*($x+$d)+($y*$y)),1.5)));
$ay=-$c*((($y)/pow((($x-$d)*($x-$d)+($y*$y)),1.5))+(($y)/pow((($x+
$d)*($x+$d)+($y*$y)),1.5)));
$vx=$vx+$h*$ax;
$vy=$vy+$h*$ay;
$t=$t+$h;
}
while($t<=$tmax);
Header("Content-Type:image/jpeg");
ImageJPEG($im);
imagedestroy ($im);
?>

61

Hasilnya :

62

4. RANGKAIAN RC, RL, DAN RLC


Pada bab berikut ini kembali akan dibahas peranan computer dalam menjelaskan
masalah-masalah nyata dan sederhana khususnya pada topic rangkaian listrik. Pembahasan
rangkaian listrik dalam hal ini terbatas pada rangkaiaan RC,RL,dan RLC dalam arus
searah.Untuk mempermudah pembahasan,dalam hal ini mencari solusi numeric masih
digunakan metode numeric sederhana dengan dilengkapi ilustrasi grafik.
4.1 Rangkaian RC

Rangkaian RC terdiri dari batere dengan betere dengan beda potensial Vyang diserikan
dengan resistor dengan resistansi R dan kapasitor dengan kapasistansi C.Rangkaian tersebut
diperlihatkan pada gambar di atas pada saat t = 0 saklar ditutup. Arus pada rangkaian i(t) dan
muatan pada kapasitor q(t).bagaimana arus pada rangkaian berubah berubah terhadap waktu
setelah itu?
Bagaimana muatan pada berubah terhadap waktu?
Sesuai dengan hukum kirchoff pada suatu rangkaian tertutup, jumlah potensialnya adalah 0.
q
V IR =0
c

63

Tegangan pada resistor menurun sesuai dengan hukum ohm IR dan tegangan yang turun pada
capasitor adalah q/C. Muatan q(t) dan arus i(t)saling berhubungan. Muatan pada capasitor
naik sebab ada muatan yang mengalir melalui kawat ke C.
dq
=i
dt

Jadi semakin besar arus semakin cepat kenaikan q, subtitusikan hubungan ini pada persamaan
pertama hingga diperoleh:
dq V
q
=
dt R RC

Kita asumsikan tidak ada muatan saat t = 0, jadi kondisi awalnya t = 0, q = 0, dan i =

q
t .

Analogi antara i dengan a dan q dengan v


Percepatan pada benda jatuh
Definisi percepatan
a ( t )=

v ( t+ h )v (t)
dv
=lim
dt h 0
h

Diselesaikan dengan hukum II Newton

Arus pada rangkaian RC


Definisi arus
i ( t )=

q ( t+ h )q (t)
dq
=lim
dt h 0
h

Diselesaikan dengan hukum kirchoff pada


rangkaian tertutup

1
r 2
a=g C
v
2
m

i=

V
q

R RC

Kita gunakan definisi turunan untuk

Kita gunakan definisi turunan untuk

aproksimasi percepatan(metode Euler)

aproksimasi arus listrik (metode Euler)

a (t )

v ( t +h ) v (t )
h

v ( t+ h ) v ( t )+ ha(t)

i(t )

q ( t+ h )q (t)
h

q ( t+ h ) q ( t ) +hi(t)

Kondisi awalnya t = 0, v = 0, dan a = g


64

Kondisi awalnya t=0, q=0, dan i =

V
R

4.2 Rangkaian RL

Rangkaian LR terdiri dari batere, resistor dan induktor.Tujuan kita yaitu mencari perubahan
arus terhadap waktu setelah saklar ditutup. Kita asumsikan beda potensial dari baterai adalah
V, resistansi R dan induksi dari induksi adalah L. Tegangan VL yang melalui inductor dapat
diekspresikan sebagai:
V L =L

di
dt

Hubungan diatas memperlihatkan bahwa arus akan naik secara perlahan lahan dari nilai awal
nol.
Kemudian kita aplikasikan aturan kirchoff untuk rangkaian tertutup dengan saklar yang
tertutup akan diperoleh:
V iRL

di
=0
dt
atau

di
=0
dt

di V
R
= i
dt L
L

65

Untuk mendapatkan solusi numeric i(t), analog dengan rangkaian RC diperoleh rumus iterasi
sebagai:
i n+1=i n +h i n '
dimana
'

i n=

V
R
i
L
L

4.3 Rangkaian RLC


Anggaplah saklar dalam rangkaian LR terhubung dan arus dapat mengalir. Apa yang terjadi

bila saklar dibuka ?membuka saklar akan menimbulkan

di
dt yang sangat besar, berarti akan

menghasilkan beda potensial yang sangat besar yang melalui inductor. Hal ini akan
menimbulkan percikan api pada saklar. Ada beberapa cara untuk menghindari hal tersebut.
Cara pertama dengan menaruh kapasitor diantara terminal saklar. Cara ini akan menjadikan
inductor diusahakan dialiri arus listrik yang konstan. Akan tetpi sebaliknya percikan api pada

saklar akan mengisi kapasitor. Sebelum t= 0,saklar tertutup dan arus

i=

V
R

mengalir dalam

rangkaian. Saat t=0 saklar dibuka, dengan menerapkan hukum kirchoff pada rangkaian
tersebut akan diperoleh persamaan :

V L

di q
Ri=0
dt C

66

Pada kasus dimana kondisi awal t = 0 dan q =0 , akan terdapat arus yang mengalir dalam
rangkaian bila saklar telah dibuka. Kita tahu bahwa:
i=

dq
=q ' (t)
dt

Dan
di d 2 q
=
=q (t)
dt dt 2
Dengan mensubtitusikan kedua persamaan diatas akan diperoleh :
q (t)=- {1} over {L} [ {q} over {C} +Rq'(t)-V]

Perbandingan solusi rangkaian RLC dan Hukum II Newton :


RUMUS LOOP KIRCHOFF
HUKUM II NEWTON
q (t)=- {1} over {L} [ {q} over {C} +Rq'(t)-V]x (t)=- {1} over {m} [kx+cx'(t)]
Dengan kondisi awal

q0

dan

q0

Dengan kondisi awal x0 dan x0(v0) dapat


ditulis:

i0

x } rsub {0}

) dapat

h
x ' 1/ 2=v 1 /2=v 0 +
2

ditulis:
q } rsub {0}
h
q ' 1/2 =i1 /2 =i0 +
2
Mulai loop

Mulai loop

q q + h i atau q q + h q

x x + h v atau x x + h x

hitung q dari rumus loop kirchoff

hitung x dari rumus Hukum II NEWTON

i i + h q

v v+ h x

t t+ht

t t+ht

akhir loop

akhir loop

ALGORITMA Muatan pada kapasitor pada rangkaian RC


STEP 1

Tentukan R,C,dan interval h

67

q 0=0 dan i 0=

STEP 2

Pilih kondisi awal

STEP 3

Mulai loop hingga t > tmax

STEP 4

V
R

Hitung i(t) dengan rumus :

q (t )
1
i ( t )= (V ( t )
)
R
C

STEP 5

Plot q(t) dan i(t)

STEP 6

Update muatan
q q + ht

STEP 7

Increment waktu
t t + h

STEP 8

Akhir loop dari STEP 3

STEP 9

Selesai

FLOWCHART MUATAN PADA KAPASITOR PADA RANGKAIAN RC


MULAI

Inisialisasi awal
R, C, dan h

V
q 0=0 dan i 0=
R

TIDA
K

68

Hitung
q (t )
1
i ( t )= (V ( t )
)
R
C

Plot q(t) dan i(t)

q q + ht

t t + h

t >=

t max

YA
Selesai
Kode Program Rangkaian RC (Pengisian)
<?php
//ukuran kanvas
$a=1100;
$b=600;
//transformasi koordinat
$xmin=-1;
$xmax=5;
$ymin=-0.0001;
$ymax=0.001;

69

$k1=$a/($xmax-$xmin);
$k2=$a*$xmin/($xmin-$xmax);
$k3=$b/($ymin-$ymax);
$k4=$b*$ymax/($ymax-$ymin);
//membuat kanvas
//$gbr= Imagecreate(panjang,lebar);
$gbr=Imagecreate($a,$b);
//mengeset warna
//ImageColorAllocate (kanvas,komposisi R, G, B);
$hijaumuda=ImageColorAllocate($gbr,120,240,100);
$putih=ImageColorAllocate($gbr,255,255,255);
$RosyBrown=ImageColorAllocate($gbr,188,143,143);
$hitam=ImageColorAllocate($gbr,0,0,0);
$biru=ImageColorAllocate($gbr,0,0,255);
$merah=ImageColorAllocate($gbr,225,0,0);
//membuat garis
//ImageLine (kanvas, x1, y1, x2, y2, warna);
ImageLine($gbr,$xmin*$k1+$k2,0*$k3+$k4,$xmax*$k1+$k2,0*$k3+$k4,$hitam);
ImageLine($gbr,0*$k1+$k2,$ymin*$k3+$k4,0*$k1+$k2,$ymax*$k3+$k4,$hitam);

//membuat skala sumbu x


for($xskala=$xmin;$xskala<=$xmax;$xskala+=1){
ImageLine($gbr,$xskala*$k1+$k2,1E-5*$k3+$k4,$xskala*$k1+$k2,-1E-5*$k3+
$k4,$merah);
ImageString($gbr,2,$xskala*$k1+$k2,-2.5E-5*$k3+$k4,$xskala,$merah);
}
//membuat skala sumbu y
for($yskala=$ymin;$yskala<=$ymax;$yskala+=1E-4){
ImageLine($gbr,-1E-4*$k1+$k2,$yskala*$k3+$k4,1E-4*$k1+$k2,$yskala*$k3+
$k4,$merah);
ImageString($gbr,2,-0.3*$k1+$k2,$yskala*$k3+$k4,$yskala,$merah);
}
//Menulis Judul Grafik
//ImageString(Kanvas,ukuran tulisan,x,y,'tulisan', warna);
ImageString($gbr,80,600,80,' Grafik RC Pengisian',$hitam);

70

/*
//menulis sumbu X
ImageString ($gbr,3,990,480,'t',$hitam);
//menulis sumbu Y
Imagestring($gbr,3,510,40,'v',$hitam);
*/
//membuat grafik
//ImageSetPixel (kanvas,x,y,warna);
for($R=1000;$R<=3000;$R+=300)
{
$V=10;
$C=0.0001;
$i=0;
$q=0;
$h=0.0005;
$t=0;
$tmax=5;
for($t=0;$t<=$tmax;$t+=$h)
{
$i=($V/$R)-($q/$R/$C);
ImageSetPixel($gbr,$t*$k1+$k2,$q*$k3+$k4,$biru);
$q=$q+$h*$i;
$t=$t+$h;
}
}
//output ke browser
header ("Content-type: image/jpeg");
ImageJpeg($gbr);
ImageDestroy($gbr);
?>

Hasilnya :

71

Kode Program RangkaianRC (Pengosongan)


<?php
//ukuran kanvas
$a=1100;
$b=600;
//transformasi koordinat
$xmin=-1;
$xmax=5;
$ymin=-10;
$ymax=60;

72

$k1=$a/($xmax-$xmin);
$k2=$a*$xmin/($xmin-$xmax);
$k3=$b/($ymin-$ymax);
$k4=$b*$ymax/($ymax-$ymin);
//membuat kanvas
//$gbr= Imagecreate(panjang,lebar);
$gbr=Imagecreate($a,$b);
//mengeset warna
//ImageColorAllocate (kanvas,komposisi R, G, B);
$hijaumuda=ImageColorAllocate($gbr,120,240,100);
$hitam=ImageColorAllocate($gbr,0,0,0);
$orange=ImageColorAllocate($gbr,255,150,40);
$putih=ImageColorAllocate($gbr,255,255,255);
$biru=ImageColorAllocate($gbr,0,0,255);
$merah=ImageColorAllocate($gbr,255,0,0);
$hitam=ImageColorAllocate($gbr,0,0,0);
$hijau=ImageColorAllocate($gbr,55,228,10);
//membuat garis
//ImageLine (kanvas, x1, y1, x2, y2, warna);
ImageLine($gbr,$xmin*$k1+$k2,0*$k3+$k4,$xmax*$k1+$k2,0*$k3+$k4,$hitam);
ImageLine($gbr,0*$k1+$k2,$ymin*$k3+$k4,0*$k1+$k2,$ymax*$k3+$k4,$hitam);

//membuat skala sumbu x


for($xskala=$xmin;$xskala<=$xmax;$xskala+=1){
ImageLine($gbr,$xskala*$k1+$k2,0.05*$k3+$k4,$xskala*$k1+$k2,-0.05*$k3+
$k4,$merah);
ImageString($gbr,3,$xskala*$k1+$k2,-2.5E-5*$k3+$k4,$xskala,$merah);
}
//membuat skala sumbu y
for($yskala=$ymin;$yskala<=$ymax;$yskala+=10){
ImageLine($gbr,-0.05*$k1+$k2,$yskala*$k3+$k4,0.05*$k1+$k2,$yskala*$k3+
$k4,$merah);
ImageString($gbr,3,-0.15*$k1+$k2,$yskala*$k3+$k4,$yskala,$merah);
}
//Menulis Judul Grafik

73

//ImageString(Kanvas,ukuran tulisan,x,y,'tulisan', warna);


ImageString($gbr,50,400,20,' Grafik RC PENGOSONGAN',$merah);
/*
//menulis sumbu X
ImageString ($gbr,3,990,480,'t',$hitam);
//menulis sumbu Y
Imagestring($gbr,3,510,40,'v',$hitam);
*/
//membuat grafik
//ImageSetPixel (kanvas,x,y,warna);
for($R=1000;$R<=3000;$R+=300)
{
$V=10;
$C=1E-4;
$i=0;
$q=60;
$h=0.0005;
$t=0;
$tmax=10;
for($t=0;$t<=$tmax;$t+=$h)
{
$i=($V/$R)-($q/$R/$C);
ImageSetPixel($gbr,$t*$k1+$k2,$q*$k3+$k4,$biru);
$q=$q+$h*$i;
$t=$t+$h;
}
}

//output ke browser
header ("Content-type: image/PNG");
ImagePNG($gbr);
ImageDestroy($gbr);
?>

74

Hasilnya :

75

ALGORITMA Muatan pada kapasitor pada rangkaian RL


STEP 1

Tentukan R, L,dan interval h

STEP 2

Pilih kondisi awal

STEP 3

Mulai loop hingga t > tmax

STEP 4

Hitung

in '

q 0=0 dan i=0, dengan V L =L

di
dt

dengan rumus :

V R
i' = i
L L
STEP 5

Plot q(t) dan i(t)

STEP 6

Update arus
i i + hi

STEP 7

Increment waktu
t t + h

STEP 8

Akhir loop dari STEP 3

STEP 9

Selesai

76

FLOWCHART Muatan pada kapasitor pada rangkaian RL


MULAI

Inisialisasi awal
R, L, dan h

q 0=0 dan i=0, dengan V L =L

di
dt

TIDA
K

Hitung
V R
i' = i
L L

Plot q(t) dan i(t)

i i + hi

t t + h

t >=

t max

YA
Selesai

77

Kode Program Rangkaian RL (analitik)


<?php
Header("Content-Type:image/jpeg");
$a=700;
$b=300;
$img=ImageCreate($a+50,$b+50);
$xmin=-0.0001;
$xmax=0.005;
$ymin=-0;
$ymax=0.05;
function transformx ($x)
{
$xmin=-0.0001;
$xmax=0.005;
$a=700;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;
}
function transformy ($y)
{
$ymin=-0;
$ymax=0.05;
$b=300;
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;
}
//warna
$hitam=ImageColorAllocate($img,0,0,0);
$biru=ImageColorAllocate($img,0,0,255);
$putih=ImageColorAllocate($img,255,255,255);
$merah=ImageColorAllocate($img,255,0,0);
$hijau=ImageColorAllocate($img,55,228,10);

78

//sumbu
imagerectangle($img,0,0,$a+40,$b+40,$putih);
imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$putih);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$putih);
//skala x
$dx=($xmax-$xmin)/5;
$x=$xmin;
while($x<=$xmax)
{
imageline($img,transformx($x),transformy(0),transformx($x),transformy(0),
$putih);
imagestring($img,3,transformx($x),transformy(0),"$x",$putih);
$x=$x+$dx;
imagestring($img,5,650,310,"t(sekon)",$putih);
}
//skala y
$dy=($ymax-$ymin)/2;
$y=$ymin;
while($y<=$ymax)
{
imageline($img,transformx(0),transformy($y),transformx(0),transformy($y),
$putih);
imagestring($img,3,transformx(0),transformy($y),"$y",$putih);
$y+=$dy;
imagestring($img,5,5,10,"i(A)",$putih);
}
imagestring($img,430,500,20,"Grafik Rangkaian R-L",$hijau);
//grafik
for($r=2e3;$r<=4e3;$r+=1e3){
$v=10;
$l=0.1;
$h=1e-6;
$i=0;

79

$tmax=0.005;
for($t=0;$t<=0.005;$t=$t+$h)
{
do{
$di=($v/$l)-$i*($r/1);
imagesetpixel($img,transformx($t),transformy($i),$merah);
$i=$i+$h*$di;
$t=$t+$h;
}while($t<=$tmax);
}
}
ImageJPEG($img);
?>

Hasilnya :

Kode Program Rangkaian RL


80

<?php
$xmin=-0.005;
$xmax=0.005;
$ymin=-0.05;
$ymax=0.5;
function transformx ($x)
{
$xmin=-0.0005;
$xmax=0.005;
$a=800;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;
}
function transformy ($y)
{
$ymin=-0.05;
$ymax=0.5;
$b=350;
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;
}
Header("Content-Type:image/jpeg");
$a=700;
$b=300;
$img=ImageCreate($a+50,$b+50);
//warna
$putih=ImageColorAllocate($img,255,255,255);
$merah=ImageColorAllocate($img,255,0,0);
$hijau=ImageColorAllocate($img,55,228,10);
$hitam=ImageColorAllocate($img,0,0,0);
$biru=ImageColorAllocate($img,0,0,255);
//sumbu
imagerectangle($img,0,0,$a+40,$b+40,$hitam);

81

imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$hitam);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$hitam);
//skala x
$dx=($xmax-$xmin)/4;
$x=$xmin;
while($x<=$xmax)
{
imageline($img,transformx($x),transformy(0),transformx($x),transformy(0),
$merah);
imagestring($img,3,transformx($x),transformy(0),"$x",$hitam);
$x=$x+$dx;
imagestring($img,5,670,290,"t(sekon)",$hitam);
}
//skala y
$dy=($ymax-$ymin)/4;
$y=$ymin;
while($y<=$ymax)
{
imageline($img,transformx(0),transformy($y),transformx(0),transformy($y),
$hitam);
imagestring($img,3,transformx(0),transformy($y),"$y",$hitam);
$y+=$dy;
imagestring($img,5,10,10,"i(A)",$hitam);
}
imagestring($img,400,320,100,"Grafik RL",$hitam);
//grafik
for($r=200;$r<=1000;$r=$r+100)
{
$L=0.1;
$t=0;
$v=10;
$q=0;
$h=1e-6;
$tmax=0.0005;

82

$i=0;
do{
$di=$v/$L-($i*$r/$L);
$vL=-$L*$di;
imagesetpixel($img,transformx($t*5),transformy($i*50),$biru);
$i=$i+$h*$di;
$t=$t+$h;
}while($t<=$tmax);
};
ImageJPEG($img);
?>

Hasilnya :

ALGORITMA Rangkaian RLC dengan menggunakan metode Feynman - Newton


83

STEP 1

Tentukan R, L, C, dan V berikan nilai interval h dan kondisi awal

q0

dan

t0
STEP 2

Hitung turunan kedua saat t=0

q } rsub {0} =- {1} over {L} [ {q} over {C} +Rq']

STEP 3
t=

Dari turunan kedua, dapatkan turunan pertamanya saat

h
2

h
'
q =q ' 0 + q } rsub {0} atau i= {i} rsub {0} + {h} over {2} {q 0
2
STEP 4

Mulai loop hingga t >

t max

STEP 5

Plot q(t) dan atau i(t)

STEP 6

Update muatan
q q + h i

STEP 7

Hitung harga baru untuk turunan kedua q dimana

q } rsub {0} =- {1} over {L} [ {q} over {C} +Rq']

STEP 8

Update turunan dari muatan


q q + h q atau i i + h q

STEP 9

Increment waktu
t t + h

STEP 10

Akhir dari loop STEP 4

STEP 11

Selesai

84

FLOWCHART RANGKAIAN RLC


MULAI

Inisialisasi awal R, L, C, dan V

q } rsub {0} =- {1} over {L} [ {q} over {C} +Rq']


q0=0 dant 0=0,hitung

t=

TIDA
K

h
2

h
'
q =q ' 0 + q } rsub {0} atau i= {i} rsub {0} + {h} over {2} {q 0
2

Plot q(t) dan i(t)

Hitung
q } rsub {0} =- {1} over {L} [ {q} over {C} +Rq']

q q + h q dan i i + h q

t t + h
85

t >=

t max

YA
Selesai

Kode Program Rangkaian RLC dengan redaman


<?php
Header("Content-Type:image/jpeg");
$a=700;
$b=300;
$img=ImageCreate($a+50,$b+50);
$xmin=-0.0001;
$xmax=0.001;
$ymin=-6;
$ymax=6;
function transformx ($x)
{
$xmin=-0.0001;
$xmax=0.001;
$a=700;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;
}
function transformy ($y)
{
$ymin=-6;
$ymax=6;
$b=300;
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);

86

$py=$k3*$y+$k4;
return$py;
}
//warna
$putih=ImageColorAllocate($img,255,255,255);
$kuning=ImageColorAllocate($img,255,255,0);
$merah=ImageColorAllocate($img,255,0,0);
$hijau=ImageColorAllocate($img,55,228,10);
$hitam=ImageColorAllocate($img,0,0,0);
$biru=ImageColorAllocate($img,0,0,255);

//sumbu
imagerectangle($img,0,0,$a+40,$b+40,$hitam);
imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$hitam);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$hitam);
//skala x
$dx=($xmax-$xmin)/5;
$x=$xmin;
while($x<=$xmax)
{
imageline($img,transformx($x),transformy(0),transformx($x),transformy(0),
$hitam);
imagestring($img,3,transformx($x),transformy(0),"$x",$hitam);
$x=$x+$dx;
imagestring($img,5,650,180,"t(sekon)",$hitam);
}
//skala y
$dy=($ymax-$ymin)/6;
$y=$ymin;
while($y<=$ymax)
{
imageline($img,transformx(0),transformy($y),transformx(0),transformy($y),
$hitam);
imagestring($img,3,transformx(0),transformy($y),"$y",$hitam);

87

$y+=$dy;
imagestring($img,5,5,10,"i(A)",$hitam);
}
imagestring($img,5,300,10,"Grafik LRC (teredam)",$hitam);
//grafik
$v=0;
$r=5;
$h=1e-7;
$l=0.001;
$c=1e-6;
$t=0;
$i=0.2;
$q=0;
$di=-($q/$c+$i*$r-$v)/$l;
$i=$i+$di*$h/2;
for($t=0;$t<=0.001;$t+0.0001){

$q=$q+$i*$h;
$di=-($q/$c+$i*$r-$v)/$l;
$i=$i+$h*$di;
$t=$t+$h;
imagesetpixel($img,transformx($t),transformy($i*20),$biru
);
}
ImageJPEG($img);
?>

88

Hasilnya :

89

Kode Program Rangkaian RLC (teredam kritis)


<?php
$a=800;
$b=500;
$gb=ImageCreate($a,$b);
$xmin=-0.0001;
$xmax=0.0012;
$ymin=-8;
$ymax=8;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$k3=$b/($ymin-$ymax);
$k4=-$b*$ymax/($ymin-$ymax);
$hitam=ImageColorAllocate($gb,0,0,0);
$putih=imagecolorallocate($gb,255,255,255);
$hijau=imagecolorallocate($gb,55,228,10);
$kuning=imagecolorallocate($gb,225,225,0);
$merah=Imagecolorallocate($gb,225,0,0);
$biru=ImageColorAllocate($gb,0,0,255);
//axis
imageline($gb,($k1*$xmin+$k2),($k3*0+$k4),($k1*$xmax+$k2),($k3*0+$k4),
$kuning);
for($x=0.0004;$x<=$xmax;$x+=0.0004){
imagestring($gb,4,($k1*$x+$k2),($k3*0+$k4),$x,$kuning);
}
//ordinat
imageline($gb,($k1*0+$k2),($k3*$ymax+$k4),($k1*0+$k2),($k3*$ymin+$k4),
$kuning);
for($y=$ymin;$y<=$ymax;$y+=2){
imagestring($gb,4,($k1*-0.00005+$k2),($k3*$y+$k4),$y,$putih);
}

$v=10;
$r=63;

90

$h=1e-7;
$l=1e-3;
$c=1e-6;
$t=0;
$i=0.2;
$q=0;
$di=-($q/$c+$i*$r-$v)/$l;

$i=$i+$di*$h/2;
for($t=0;$t<=$xmax;$t+=$h){
$q=$q+$i*$h;
$di=-($q/$c+$i*$r-$v)/$l;
$i=$i+$di*$h/2;
imagesetpixel($gb,$k1*$t+$k2,$k3*$i*20+$k4,$merah);
}

imagestring($gb,5,($k1*0.0004+$k2)+5,($k3*7+$k4)+5,"Grafik Rangkaian RLC


(Teredam Kritis)",$putih);
imagestring($gb,5,($k1*0.0005+$k2)+5,($k3*6.5+$k4)+5," Grafik I(t) vs t ",
$putih);
imagestring($gb,5,($k1*0.0003+$k2)+100,($k3*-4+$k4)+5,"Winda Kusuma Dewi
(4211412048)",$kuning);
imagestring($gb,4,($k1*0.000025+$k2)+5,($k3*$ymax+$k4)+5," I (t)",$putih);
imagestring($gb,4,($k1*0.0011+$k2)+5,($k3*-0.6+$k4)+5," t (s)",$putih);
Header("Content-Type:image/PNG");
ImagePNG($gb);
ImageDestroy($gb);
?>

91

Hasilnya :

92

Kode Program Rangkaian RLC tanpa redaman


<?php
Header("Content-Type:image/jpeg");
$a=700;
$b=300;
$img=ImageCreate($a+50,$b+50);
$xmin=-0.0001;
$xmax=0.001;
$ymin=-10;
$ymax=10;
function transformx ($x)
{
$xmin=-0.0001;
$xmax=0.001;
$a=700;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;
}
function transformy ($y)
{
$ymin=-6;
$ymax=6;
$b=300;
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;
}
//warna
$hitam=ImageColorAllocate($img,0,0,0);
$putih=ImageColorAllocate($img,255,255,255);
$merah=ImageColorAllocate($img,255,0,0);
$hijau=ImageColorAllocate($img,0,228,0);
$biru=ImageColorAllocate($img,70,150,135);

93

$abu2=ImagecolorAllocate($img,128,128,128);
$orange=ImageColorAllocate($img,255,150,40);
$kuning=imagecolorallocate($img,225,225,0);
//sumbu
//imagerectangle($img,0,0,$a+40,$b+40,$hitam);
imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$kuning);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$kuning);
//skala x
$dx=($xmax-($xmin))/5;
$x=$xmin;
while($x<=$xmax)
{
imageline($img,transformx($x),transformy(0),transformx($x),transformy(0),
$kuning);
imagestring($img,3,transformx($x),transformy(0),"$x",$kuning);
$x=$x+$dx;
imagestring($img,5,650,180,"t(sekon)",$biru);
}
//skala y
$dy=($ymax-$ymin)/4;
$y=$ymin;
while($y<=$ymax)
{

imageline($img,transformx(0),transformy($y),transformx(0),transformy($y),
$merah);
imagestring($img,3,transformx(0),transformy($y),"$y",$kuning);
$y+=$dy;
imagestring($img,5,20,100,"I(A)",$biru);
}
imagestring($img,430,320,300,"grafik rangkaian RLC (tidak teredam)",
$merah);

94

imagestring($img,430,310,320,"Oleh : Winda Kusuma Dewi (4211412048)",


$merah);
//grafik lrc
$L=0.001;
$R=0;
$c=1e-6;
$v=10;
$t=0;
$q=0;
$i=0.2;
$h=5e-7;
$q2=-($q/$c+$i*$R-$v)/$L;
$i=$i+($h/20)*$q2;
for($t=0;$t<=0.001;$t=$t+$h)
{
imagesetpixel($img,transformx($t),transformy($i*15),$hijau);
$q=$q+$i*$h;
$q2=-($q/$c+$i*$R-$v)/$L;
$i=$i+$h*$q2;
$t=$t+$h;
}
ImageJPEG($img);
?>

95

Hasilnya :

5. SISTEM TIGA BENDA


Pada bab terdahulu telah dibahas lintasan gerak partikel dalam system fisika yang terdiri satu
atau dua benda. Pada kasus tertentu system tersebut mempunyai solusi analitik, tetapi kasus
yang lain tidak ada. Pada bab ini akan dipelajari system dengan banyak benda ,sebutlahthreebody system. System yang demikian tidak mempunyai solusi analitik, sehingga penggunaan
computer mutlak esensial.
ION H2
Dalam bab ini akan digunakan teknik yang telah dijelaskan pada bab sebelumnya untuk
menguji system tiga benda(three-body sytem) yaitu molekul hydrogen yang terionisasi,ion
+ .
H 2 Diakhir bab ini metode Feyman-Newton digunakan untuk menyelesaikan persamaan
deferensiasi orde dua.
96

Molekul hydrogen yang telah kehilangan satu electronnya, disebut molekul hydrogen yang
+
H 2 . ion ini terdiri dari dua proton dan satu electron,

terionisasi dan diberi symbol

sebagaimana molekul electron. Ion

+
H 2 adalah system fisika yang stabil.Karena

kompleksitas system,kita ambil penyederhanaan dengan mengasumsikan kedua proton tidak


bergerak, sedangkan electron mengorbit pada kedua proton. Untuk tujuan yang praktis sifatsifat alami proton dapat diabaikan karena massa proton kira-kira 2000 kali dari massa
electron, sehingga pusat massa dari kedua proton berada pada titik nol pada system koordinat.
Hukum Coulomb dan hukum II Newton mendasari gerak electron pada ion

+
H 2 . Hukum

Coulomb adalah:
F=k q 1

q2
r2

r^

-2

Dimana k = 8.99 x 10 Nm C .Semua muatan didalam ion


sama(kecuali tandanya). Jadi

q1

q2

+
H 2

mempunyai nilai yang

= 1.6 x 10-19 C dan m=9.11 x 10-31kg.

Geometri dari system diilustrasikan pada gambar 7.1 yang sangat mirip dengan geometri
yang digunakan pada gerak proyektil dan gerak satelit, tetapi disini terdapat dua gaya yang
bekerja pada orbit. Dengan demikian metode Feyman-Newton akan digunakan pada banyak
bagian.

97

Jarak Gambar 7.1 Geometri dari posisi dan vektor gaya pada ion

H2

Kedua proton terletak pada titik (d, 0) dan (-d, 0) pada jarak 2d. Percepatan ax,dari elektron
karena adanya proton pada (d, 0) adalah:

ax=

F 1 cos 1
cos 1
( xd )
2
2
=k e
=k e
2
3 /2
2
m
m ( xd ) + y
m [(x d)2 + y 2 ]

Untuk mendapatkan percepatan karena gaya oleh proton pada (-d, 0), persamaan diatas
diganti bagian (x - d) dengan (x + d)
ax=

F 2 cos 2
cos 2
( x+ d )
=k e 2
=k e2
2
3 /2
2
m
m ( x +d ) + y
m [( x +d )2+ y 2 ]

Ekspresi yang sama untuk ay akan diperoleh dengan mengganti pembilang

( x y ) dengan

numerator y.
Energi pada elektron dapat dapat dihitung
U=k e2

1
1
+
2
2
(xd ) + y (x+ d)2 + y 2

]
98

1
K= m v 2 dan
2
E=( K +U )/1.6 x 1019
Pada rumus diatas U adalah energy potensial listrik, K adalah energy kinetic dan E adalah
energy total dari electron. Dengan menambah kode program untuk menghitung E, tentunya
akan diperoleh hasil bahwa nilai E adalah kekal,sementara electron mengorbit pada
proton.Hasil ini dapat digunakan untuk mengecek validitas dari program yang bersangkutan.

99

H2

ALGORITMA : ORBIT ELEKTRON PADA

STEP 1 Tentukan nilai-nilai parameter berikut :


Muatan masing-masing partikel

q1 , q2

dan e

Massa elektron
Konstanta k pada hukum Coulomb
Jarak 2d antar proton dalam molekul
Step-size h
STEP 2

Pilih kondisi awal untuk

STEP 3

Hitung komponen percepatan ax dan ay

( xd)
( xd)
( 2+ y2 )3/ 2
( x+ d )
( 2+ y 2)3 /2 +

( xd )

ax=C
( xd )
( xd )
( 2+ y 2 )3 / 2
y
3 /2
( 2+ y 2) +

ay=C
2

ke
Dengan C= m
STEP 4

Hitung nilai half-step untuk vx dan vy

STEP 5

mulai loop hingga t >

t max

100

STEP 6

Plot ( x,y ) dari electron

STEP 7

Update posisi

STEP 8

Hitung komponen- komponen percepatan dengan rumus pada STEP 3

STEP 9

Update kecepatan

STEP 10 increment waktu

STEP 11 Akhir dari loop STEP 5


STEP 12

Selesai

101

FLOWCHART ion

H2
MULAI

Inisialisasi awal

q1 , q2 ,

e, m, k, 2d dan h

Kondisi awal untuk x , y , vx , dan vy

Percepatan ax dan ay

h
vx =vx 0 + ax
2
h
vy =vy 0 + ay
2
TIDA
K
Plot (x,y)

x=x+ h vx

y= y +h vy

ax dan
ay

102

vx =vx +h ax

vy =vy +h ay

t t + h

t >=

t max

YA
Selesai

103

KODE PROGRAM LINTASAN ION

H2

PERTAMA

<?php
Header("Content-Type:image/jpeg");
$a=600;
$b=500;
$img=ImageCreate($a,$b);
$xmin=-7.5e-11;
$xmax=7.5e-11;
$ymin=-4.67e-11;
$ymax=4.67e-11;
function transformx($x){
$xmin=-7.5e-11;
$xmax=7.5e-11;
$a=600;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;}
function transformy($y){
$ymin=-4.67e-11;
$ymax=4.67e-11;
$b=500;
$k3=$b/($ymin-$ymax);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;}
//warna
$hitam=ImageColorAllocate($img,0,0,0);
$putih=ImageColorAllocate($img,255,255,255);
$merah=ImageColorAllocate($img,255,0,0);
$hijau=ImageColorAllocate($img,55,228,10);
$biru=ImageColorAllocate($img,0,0,255);
$abu2=ImagecolorAllocate($img,128,128,128);
$orange=ImageColorAllocate($img,255,150,40);
$kuning=imagecolorallocate($img,225,225,0);

104

//mengatur sumbu x dan y


//imagerectangle($img,0,0,$a-1,$b-1,$hitam);
imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$kuning);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$kuning);
$dx=($xmax-$xmin)/5;
$x=$xmin;
while($x<=$xmax){imageline($img,transformx($x),transformy(0)1,transformx($x),transformy(0)+1,$merah);
imagestring($img,3,transformx($x)+10,transformy(0)+1,$x,$putih);
$x+=$dx;
}
$dy=($ymax-$ymin)/5;
$y=$ymin;
while($y<=$ymax)
{
imageline($img,transformx(0)1,transformy($y),transformx(0)+1,transformy($y),$merah);
imagestring($img,3,transformx(0)+1,transformy($y)+1,$y,$putih);
$y+=$dy;
}
imagestring($img,430,20,480,"Winda Kusuma Dewi (4211412048)",$kuning);
imagestring($img,5,310,10,"Lintasan Elektron Ion Hidrogen 1",$hijau);
$t=0;
$tmax=1.2e-15;
$e=1.602e-19;
$m=9.11e-31;
$k=8.99e+9;
$d=5.35e-11;
$h=1e-20;
$x=0;
$y=0;
$vx=1.5e+6;
$vy=1.5e+6;

105

$a=pow($x-$d,2)+pow($y,2);
$b=pow($x+$d,2)+pow($y,2);
$c=$k*POW($e,2)/$m;
$ax=-$c*(($x-$d)/pow($a,1.5)+($x+$d)/pow($b,1.5));
$ay=-$c*($y/pow($a,1.5)+$y/pow($b,1.5));
$vx=$vx+($h/2)*$ax;
$vy=$vy+($h/2)*$ay;
do{
$x=$x+$h*$vx;
$y=$y+$h*$vy;
imagesetpixel($img,transformx($x),transformy($y),$merah);
$a=pow($x-$d,2)+pow($y,2);
$b=pow($x+$d,2)+pow($y,2);
$ax=-$c*(($x-$d)/pow($a,1.5)+($x+$d)/pow($b,1.5));
$ay=-$c*(($y/pow($a,1.5))+($y/pow($b,1.5)));
$vx=$vx+$h*$ax;
$vy=$vy+$h*$ay;
$t=$t+$h;
}
while($t<=$tmax);
ImageJPEG($img);
?>

106

Hasilnya :

107

KODE PROGRAM LINTASAN ION

H2

KEDUA

<?php
Header("Content-Type:image/jpeg");
$a=600;
$b=500;
$img=ImageCreate($a,$b);
$xmin=-4.5e-10;
$xmax=4.5e-10;
$ymin=-3e-10;
$ymax=3e-10;
function transformx($x){
$xmin=-4.5e-10;
$xmax=4.5e-10;
$a=600;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;}
function transformy($y){
$ymin=-3e-10;
$ymax=3e-10;
$b=500;
$k3=$b/($ymin-$ymax);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;}
//warna
$hitam=ImageColorAllocate($img,0,0,0);
$putih=ImageColorAllocate($img,255,255,255);
$merah=ImageColorAllocate($img,255,0,0);
$hijau=ImageColorAllocate($img,55,228,10);
$biru=ImageColorAllocate($img,0,0,255);
$abu2=ImagecolorAllocate($img,128,128,128);
$orange=ImageColorAllocate($img,255,150,40);
$kuning=imagecolorallocate($img,225,225,0);

108

//mengatur sumbu x dan y


//imagerectangle($img,0,0,$a-1,$b-1,$hitam);
imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$merah);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$merah);
$dx=($xmax-$xmin)/5;
$x=$xmin;
while($x<=$xmax){imageline($img,transformx($x),transformy(0)1,transformx($x),transformy(0)+1,$merah);
imagestring($img,3,transformx($x)+10,transformy(0)+1,$x,$putih);
$x+=$dx;
}
$dy=($ymax-$ymin)/5;
$y=$ymin;
while($y<=$ymax)
{
imageline($img,transformx(0)1,transformy($y),transformx(0)+1,transformy($y),$merah);
imagestring($img,3,transformx(0)+1,transformy($y)+1,$y,$putih);
$y+=$dy;
}
imagestring($img,430,20,480,"Winda Kusuma Dewi (4211412048)",$merah);
imagestring($img,5,310,20,"Lintasan Elektron Ion Hidrogen 2",$hijau);
$t=0;
$tmax=2e-14;
$e=1.602e-19;
$m=9.11e-31;
$k=8.99e+9;
$d=0.535e-10;
$h=5e-19;
$x=-2.4e-10;
$y=2.4e-10;
$vx=-2.8e+5;
$vy=-2.8e+5;

109

$a=pow($x-$d,2)+pow($y,2);
$b=pow($x+$d,2)+pow($y,2);
$c=$k*POW($e,2)/$m;
$ax=-$c*(($x-$d)/pow($a,1.5)+($x+$d)/pow($b,1.5));
$ay=-$c*($y/pow($a,1.5)+$y/pow($b,1.5));
$vx=$vx+($h/2)*$ax;
$vy=$vy+($h/2)*$ay;
do{
$x=$x+$h*$vx;
$y=$y+$h*$vy;
imagesetpixel($img,transformx($x),transformy($y),$kuning);
$a=pow($x-$d,2)+pow($y,2);
$b=pow($x+$d,2)+pow($y,2);
$ax=-$c*(($x-$d)/pow($a,1.5)+($x+$d)/pow($b,1.5));
$ay=-$c*(($y/pow($a,1.5))+($y/pow($b,1.5)));
$vx=$vx+$h*$ax;
$vy=$vy+$h*$ay;
$t=$t+$h;
}
while($t<=$tmax);
ImageJPEG($img);
?>

110

Hasilnya :

111

6. HAMBURAN RUTHERFORD

Sebuah eksperimen yang mendasar pada bab ini adlah eksperimen yang dilakukan oleh Lord
Rutherford (1871-1937) yang diperkenalkan oleh H. Geiger dan E. Marsden. Struktur dari
atom tetap merupakan misteri.Masalahnya adalah ukuran dari atom.

(x,
y)

Q
X,
Y

Gambar 6.1 Partikel alpha yang mendekati atom emas. Pusat atom
emas pada (X,Y) dengan muatan Q yang terdistribusi uniform pada
bola dengan radius R. Partikel alpha dengan muatan q pada (x,y)

F=
qE

r^

(x,
y)

(X,
Y)
Gambar 6.2 Geometri lokasi dari atom target (Q) dari
partikel alpha (q)

112

Di dalam atom r R pada jarak r dari pusat dan besar medan listriknya adalah
E=

r3 Q ^
k r
R3 r 2

Dengan mengacu pada gambar 6.2 kita dapatkan komponen x dan y dari percepatan
ax=

F x k Qq
( xX )
k Qq xX k
=
cos=
= Qq
2
2
3 /2
m m r
m r
r
m
[ (xX )2 +( y Y )2 ]

a y=

F y k Qq
( xX )
k Qq xY k
=
sin=
= Qq
2
2
3 /2
m m r
m r
r
m
[( xX )2+( yY )2 ]

Dimana m adalah massa dari partikel alpha. Dengan hukum ketiga Newton percepatan atom
dapat dihitung dengan persamaan :
M A x =m ax
A x=

m
a
M x

Dengan cara yang sama :


A y=

m
a
M y

113

Algoritma Hamburan Rutherford


STEP 1

Tentukan nilai-nilai parameter berikut :


-

STEP 2

Radius atom, R
Massa partikel alpha, m=6.64 x 10-27 kg
Massa atom target M (massa kelipatan A dari 1.66 x 1027 kg amu-1)
Muatan elektron e = 1.6 x 10-19 C
Ratio muatan partikel alpha terhadap muatan elektron
Ratio muatan atom target terhadap muatan elektron
Konstanta k=8,99 x 109 Nm2C-2
Parameter impak b
Kecepatan inisial partikel alpha untuk 7 MeV, v= 2x107 ms-1
Step-size h = 1x10-24 s
Pilih kondisi awal untuk

STEP 3

Partikel alpha x, y,vx dan vy


Atom target X,Y,Vx dan Vy
Definisikan konstanta
N=

STEP 4

kQe
m

Hitung komponen peercepatan partikel alpha dan atom


Pertama hitung jarak antara partikel alpha dan atom:
r= ( xX )2+( yY )2

Jika r > R maka hitung dengan persamaan:

a x =N

x X
3
r

114

dan
a y =N
-

xY
r3

Jika r > R maka hitung dengan persamaan :


x X
a x =N
3
R
dan
a y =N

xY
3
R

Hitung percepatan atom dengan persamaan:


m
A x=
a
M x
A y=

STEP 4

m
a
M y

Hitung nilai half-step kecepatan awal


h
v x =v x 0+ a x0
2
h
v y =v y 0 + a y 0
2
h
V x =V x 0 + A x0
2
dan
h
V y =V y0 + A y 0
2

STEP 5

Mulai loop partikel alpha meninggalka layar

STEP 6

Plot posisi partikel dan atom

STEP 7

Update posisi

x=x+ hv x
y= y +hv y
115

X =X +hV x
dan
Y =Y + hv y
Hitung komponen-komponen percepatan dengan rumus pada STEP 3

STEP 9

Update kecepatan

v x =v x + ha x
v y =v y +ha y
V x =V x +hA x
dan
V y =V y +hA y
STEP 10

Increment waktu:
tt+h

STEP 11

Akhir dari loop STEP 5

STEP 12

Selesai

116

Flowchart Hamburan Rutherford


MULAI

Inisilisasi awal h
Partikel alpha x,y,vx,vy
Atom target X,Y,Vx,Vy

N=

19

2 kQe 2 8,99 10 N m C 1,6 10


=
27
m
6,64 10 kg

Percepatan partikel alpha


Jika r>R

a x =N

x X
r3

a y =N

xY
r3

Jika r<R

a x =N

x X
R3

Percepatan partikel atom

A x=

m
a
M x
117

h
v x =v x 0+ a x0
2
h
v y =v y 0 + a y 0
2
h
V x =V x 0 + A x0
2

TIDA

Plot posisi
(x,y)

x=x+hvx ,
y=y+hvy

a x dan a y

v x =v x + h a x
v y =v y +h a y

t=t
+h

t >=tmax

YA

SELESAI

118

Kode Program Hamburan Rutherford


<?php
Header("Content-Type:image/PNG");
$a=500;
$b=500;
$img=ImageCreate($a+50,$b+50);
//warna
$hitam=ImageColorAllocate($img,0,0,0);
$biru=ImageColorAllocate($img,0,0,255);
$putih=ImageColorAllocate($img,255,255,255);
$merah=ImageColorAllocate($img,255,0,0);
$hijau=ImageColorAllocate($img,55,228,10);
$abu2=ImagecolorAllocate($img,128,128,128);
$orange=ImageColorAllocate($img,255,150,40);
$kuning=imagecolorallocate($img,225,225,0);
$xmin=-6e-13;
$xmax=6e-13;
$ymin=-4e-13;
$ymax=4e-13;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
function transformx ($x){
$xmin=-6e-13;

119

$xmax=6e-13;
$a=500;
$k1=$a/($xmax-$xmin);
$k2=-$a*$xmin/($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;
}
function transformy ($y){
$ymin=-4e-13;
$ymax=4e-13;
$b=500;
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;
}
//sumbu
imageline($img,transformx($xmin),transformy(0),transformx($xmax),transformy
(0),$hijau);
imageline($img,transformx(0),transformy($ymin),transformx(0),transformy($ym
ax),$hijau);
imagestring($img,5,110,510,"Winda Kusuma Dewi (4211412048)",$kuning);
imagestring($img,5,150,530,"Hamburan Rutherford",$kuning);
//skala x
$dx=($xmax-($xmin))/5;
$x=$xmin+$dx;
while($x<=$xmax){
imageline($img,transformx($x),transformy(0)2,transformx($x),transformy(0)+2,$hijau);
imagestring($img,3,transformx($x)-8,transformy(0)+1,$x,$merah);
$x=$x+$dx;
}
//skala y
$dy=($ymax-$ymin)/5;
$y=$ymin+$dy;

120

while($y<=$ymax){
imageline($img,transformx(0)1,transformy($y),transformx(0)+1,transformy($y),$hijau);
imagestring($img,3,transformx(0)-15,transformy($y),$y,$merah);
$y=$y+$dy;
}
$b=1e-12;
$rt=7.5e-14;
imageellipse($img,transformx(-$rt*$x),transformy($rt*$y),transformx($rt*$x),transformy($rt*$y),$putih);
for($i=1;$i<=8;$i+=1){
$spy=$b/pow(2,$i);
$mp=6.64e-27;
$mt=197*(1.66e-27);
$e=1.6e-19;
$q=79*$e;
$k=8.99e+9;
$spx=-5e-13;
$vpx=1e+7;
$vpy=0;
$vty=0;
$vtx=0;
$stx=0;
$sty=0;
$h=1e-22;
$n=2*$k*$q*$e/$mp;
$r=pow((pow(($spx-$stx),2)+pow(($spy-$sty),2)),0.5);
if($r>$rt){
$apx=$n*($spx-$stx)/pow($r,3);
$apy=$n*($spy-$sty)/pow($r,3);
}
else{
$apx=$n*($spx-$stx)/pow($rt,3);
$apy=$n*($spy-$sty)/pow($rt,3);
}
$atx=-$mp/$mt*$apx;
$aty=-$mp/$mt*$apy;
$vpx=$vpx+0.5*$h*$apx;

121

$vpy=$vpy+0.5*$h*$apy;
$vtx=$vtx+0.5*$h*$atx;
$vty=$vty+0.5*$h*$aty;
for($t=0;$t<=8.5e-20;$t+=$h){
$xl=$k1*$spx+$k2;
$yl=$k3*$spy+$k4;
ImageSetPixel($img,$xl,$yl,$putih);
$stx=$stx+$h*$vtx;
$sty=$sty+$h*$vty;
$spx=$spx+$h*$vpx;
$spy=$spy+$h*$vpy;
$r=pow((pow(($spx-$stx),2)+pow(($spy-$sty),2)),0.5);
if($r>$rt){
$apx=$n*($spx-$stx)/pow($r,3);
$apy=$n*($spy-$sty)/pow($r,3);
}
else{
$apx=$n*($spx-$stx)/pow($rt,3);
$apy=$n*($spy-$sty)/pow($rt,3);
}
$atx=-$mp/$mt*$apx;
$aty=-$mp/$mt*$apy;
$vpx=$vpx+$h*$apx;
$vpy=$vpy+$h*$apy;
$vtx=$vtx+$h*$atx;
$vty=$vty+$h*$aty;
}
}
ImagePNG($img);
ImageDestroy($img);
?>

122

Hasilnya :

123

7. UJIAN TENGAH SEMESTER

Soal :
Seorang penerjun payung bermassa m=68.1 kg meloncat dari balon udara yang diam, dan
meluncur di tempat pendaratan yang memenuhi persamaan:

124

Kode Program Tabel Perbandingan V analitik dan V numerik


<html>
<bodybgcolor="99bbdd">
<center>
<table>
<tr>
<td>
<align="center"><fontface="britannic
bold"color="black"size="20"><b><center><u> Tabel V numerik dan V analitik
</center></b></font></align></br></table>
<br>Winda Kusuma Dewi (4211412048) <br>
<center>
<tableborder="3">
<tr>
<td>t (s)</td>
<td>v analitik (m/s)</td>
<td>v numerik (m/s)</td>
</tr>
</center>
<?php
ini_set('display_errors',0);
define('G',9.8);//membuat konstanta G
define('h',2);//h dalam hal ini adalah delta t
$t0=0;
$m=68.1;
$e=2.72;
$c=12.5;
$v0=0;
for($t=0;$t<=40;$t+=1){
ini_set('display_error','0');
$v_anal=($m*G/$c)*(1-pow($e,(-($c/$m)*$t)));
$v=$v0+(G-(($c/$m)*$v0))*$t0;
echo"<tr>
<td>$t</td>
<td>$v_anal</td>
<td>$v</td>
</tr>";

125

$t0=h;
$v0=$v;
}
?>
</td>
</center>
</table>
<br><br><br>
</body>
</html>

126

Hasilnya

127

Kode Program s vs
t, v vs t, dan a vs t
<?php
$xmin=-5;
$xmax=60;
$ymin=-40;
$ymax=300;
function
transformx ($x)
{
$xmin=-5;
$xmax=60;
$a=800;
$k1=$a/($xmax$xmin);
$k2=-$a*$xmin/
($xmax-$xmin);
$px=$k1*$x+$k2;
return$px;}
function transformy ($y)
{
$ymin=-40;
$ymax=300;
$b=500;
$k3=-$b/($ymax-$ymin);
$k4=$b*$ymax/($ymax-$ymin);
$py=$k3*$y+$k4;
return$py;}
Header("Content-Type:image/jpeg");
$a=800;
$b=600;
$kertas=ImageCreate($a+50,$b+50);
//warna
$coklat=imagecolorallocate($kertas,195,134,116);
$putih=ImageColorAllocate($kertas,255,255,255);
$merah=ImageColorAllocate($kertas,255,0,0);
$hijau=ImageColorAllocate($kertas,55,228,10);
$hitam=ImageColorAllocate($kertas,0,0,0);
$biru=ImageColorAllocate($kertas,0,0,255);
$orange=ImageColorAllocate($kertas,255,150,40);

128

//sumbu
//imagerectangle($kertas,0,0,$a+40,$b+40,$hitam);
imageline($kertas,transformx($xmin+1),transformy(0),transformx($xmax),trans
formy(0),$hitam);
imageline($kertas,transformx(0),transformy($ymin),transformx(0),transformy(
$ymax),$hitam);
//skala x
$dx=($xmax-($xmin+1))/10;
$x=$xmin+1;
while($x<=$xmax){
imageline($kertas,transformx($x),transformy(0)2,transformx($x),transformy(0)+2,$merah);
imagestring($kertas,3,transformx($x)-8,transformy(0)+1,"$x",$hitam);
$x=$x+$dx;
imagestring($kertas,30,720,470,"t(s)",$hitam);
}
//skala y
$dy=($ymax-$ymin)/10;
$y=$ymin;
while($y<=$ymax){
imageline($kertas,transformx(0)1,transformy($y),transformx(0)+1,transformy($y),$merah);
imagestring($kertas,3,transformx(0)-15,transformy($y),"$y",$hitam);
$y+=$dy;
imagestring($kertas,30,5,120,"V(m/s)",$hitam);}
//keterangan
imagestring($kertas,5,520,220,"v(t)",$merah);
imagestring($kertas,5,560,360,"x(t)",$biru);
imagestring($kertas,5,200,480,"a(t)",$putih);
imagestring($kertas,600,120,520,"Keterangan :",$hitam);
imagestring($kertas,600,270,520,"merah:grafik kecepatan terhadap waktu",
$merah);
imagestring($kertas,600,270,540,"biru:grafik posisi terhadap waktu",$biru);
imagestring($kertas,600,270,560,"putih:grafik percepatan terhadap waktu",
$putih);
imagestring($kertas,50,180,70,"Winda Kusuma Dewi (4211412048)",$hitam);
//grafik
$m=68.1;
$t=0;
$g=9.8;

129

$c=12.5;
$h=0.2;
$e=2.72;
$v=0;
$x0=0;
do{
$a=$g-(($c/$m)*$v);
$V=$v+($g-(($c/$m)*$v)*(($t+$h)-$t));
//SOLUSI NUMERIK
$x=$x0+($V-$v)*(($t+$h)-$t);
imagesetpixel($kertas,transformx($t),transformy($a),$putih);
imagesetpixel($kertas,transformx($t),transformy($v),$merah);
imagesetpixel($kertas,transformx($t),transformy($x0/100),$biru);
$v=$V+$a*$h;
$x0=$x+$v*$h;
$t=$t+$h;}
while($t<=$xmax);
ImageJPEG($kertas);
?>

130

Hasilnya :

131

Anda mungkin juga menyukai