Pemrograman Python Analisis Data Eksperimen
Pemrograman Python Analisis Data Eksperimen
net/publication/337649120
CITATIONS READS
0 5,311
1 author:
Eko Sulistya
Universitas Gadjah Mada
5 PUBLICATIONS 0 CITATIONS
SEE PROFILE
All content following this page was uploaded by Eko Sulistya on 30 November 2019.
Pemrograman Python
Analisis Data Eksperimen Fisika
Eko Sulistya
2011
2
3 Regresi linear .................................................................................. 28
3.1 Metode kuadrat terkecil ........................................................... 28
3.2 Metode kebolehjadian maksimum ........................................... 29
3.3 Parameter a dan b .................................................................... 30
3.4 Goodness-of-fit .......................................................................... 31
3.5 Koefisien korelasi ..................................................................... 32
4 Implementasi .................................................................................. 33
4.1 Membaca file data .................................................................... 33
4.2 Memformat dan memplot data ................................................ 36
4.3 Fungsi untuk membuka file, membaca, mengolah dan
memplot data .......................................................................................... 38
4.4 Fungsi untuk regresi linear ..................................................... 41
4.5 Plot data hasil regresi linear.................................................... 42
4.6 Goodnes-of-fit, chi-kuadrat ...................................................... 45
4.7 Sedikit dekorasi ........................................................................ 46
4.8 Interaktif .................................................................................. 47
5 Penutup ........................................................................................... 49
6. Referensi/Daftar bacaan ................................................................ 50
7 Lampiran (source kode) .................................................................. 51
3
I. Pendahuluan
1.1 Latar belakang
Membuat grafik hasil praktikum merupakan tugas yang tidak
bisa dihindari oleh setiap mahasiswa yang melakukan Praktikum
Fisika Dasar, sehingga setiap praktikan selalu bisa dipastikan pernah
membuat grafik hasil praktikum. Walaupun demikian, ada keluhan
bahwa mahasiswa yang telah mengambil Praktikum Fisika Dasar
ditengarai tetap tidak bisa membuat grafik dengan benar, sehingga
perlu diadakan kuliah tambahan yang khusus membahas tentang
grafik.
4
1.3 Tujuan
Membuat program pembuat grafik regresi linear untuk
data praktikum Fisika Dasar yang : sederhana, open-
source, multi-platform
Belajar pemrograman dengan bahasa Python sebagai dasar
untuk pemrograman yang lebih lanjut dan lebih kompleks
1 2
y(t ) v0t gt (2.1)
2
1 2 1 2v0
v0t gt t v0 gt 0 t = 0 atau t
2 2 g
Jadi bola kembali ke posisi awal setelah 2v0 g detik, dan dengan
demikian masuk akal bila membatasi persamaan (2.1) hanya untuk
t 0,2v0 g . Pemrograman untuk menghitung ketinggian bola yang
dilemparkan vertikal ke atas dengan kecepatan awal v0 dibatasi untuk
t antara 0 sampai 2v0/g.
5
t 2v0 g 1 s , yang berarti kita hanya tertarik pada interval waktu 0
sampai 1 detik. Seandainya kita ingin menghitung ketinggian bola
pada waktu t = 0,6 s, maka dari persamaan (2.1)
1
y 5 0,6 9,8 0,62
2
print 5*0.6-0.5*9.8*0.6**2
6
Persepsi lain tentang “program” adalah sebuah file yang dapat
dijalankan dengan cara “dobel-klik” untuk melakukan sebuah
pekerjaan. Kadang file ini berupa file teks berisi instruksi (seperti
halnya pada Python), dan kadang file itu berupa terjemahan dari
keseluruhan teks program menjadi bahasa yang lebih dekat ke
komputer (bahasa mesin), yang lebih efisien, namun cukup sulit
dibaca oleh manusia. Semua program dalam bab ini terdiri dari teks
singkat yang tersimpan dalam satu file, sedangkan program yang
sering kita gunakan, sebagai contoh Firefox, atau Internet Explorer,
untuk membaca halaman web, terdiri dari teks program yang
didistribusikan dalam sejumlah besar file, ditulis oleh sejumlah besar
orang dan dalam waktu selama beberapa tahun. Salah satu file berisi
terjemahan dari keseluruhan program menjadi bahasa mesin, dan
inilah yang dijalankan dengan cara men”dobel klik”. Secara umum,
kata “program” dapat berarti file tunggal seperti Firefox atau yang
lain, dapat pula berarti kumpulan dari beberapa file yang berisi
instruksi-instruksi tekstual.
7
Emacs, Xemacs dan Vim adalah editor yang umum digunakan
untuk menulis program pada sistem Linux atau Unix, termasuk
komputer Mac. Dalam Windows disarankan menggunakan Notepad++,
bisa juga Emacs atau Vim versi Windows. Semua program tersebut
bukan merupakan bagian dari paket instalasi standar Windows.
Editor khusus untuk program Python yang merupakan bagian dari
software Python disebut Idle biasanya sudah ikut terinstall pada saat
menginstall Python.
Gambar 2.2 Python Shell Idle yang berisi satu baris program
8
Gambar 2.3 Jendela editor untuk menuliskan program
9
Gambar 2.4
10
diperiksa oleh komputer. Komputer hanya memperhatikan sintaks
apakah sesuai dengan aturan bahasa pemrograman, jika benar,
mengolahnya, kemudian memberikan hasil. Jika ternyata hasil yang
diberikan komputer tidak benar, maka kesalahan dalam program
harus dicari dan dibenarkan.
Pada contoh satu baris program yang telah dibuat di muka dapat
dengan mudah dicek dengan menggunakan kalkulator. Dengan v0 = 5 ,
g = 9,8 dan t = 0.6, perhitungan dengan kalkulator menghasilkan
1,236. Cocok dengan yang dihasilkan oleh program.
Jika kita ingin menghitung nilai y(t) untuk beberapa nilai t, maka
diperlukan pengubahan nilai t di dua tempat pada program satu-baris
yang telah dibuat sebelumnya. Pengubahan suatu nilai dalam suatu
program seperti itu lebih efektif dan sederhana bila instruksi
matematik dinyatakan dalam variabel, atau simbol. Hal ini berarti
bahwa kita dapat mendefinisikan v0, g, t dan y sebagai suatu variabel
dalam program, dengan cara memberikan nilai awal untuk v0, g, dan t
kemudian mengkombinasikan ketiganya sesuai dengan ruas kanan
persamaan (1.1) dan memasukkan hasil perhitungan ke variabel y.
v0=5
g=9.8
t=0.6
y=v0*t-0.5*g*t**2
print y
11
Gambar 2.7 Jendela editor berisi baris-baris program yang
menggunakan variabel
12
membedakan huruf besar dan huruf kecil, jadi v0 selalu berbeda
dengan V0.
2.1 10 Komentar
13
menampilan program yang sama dengan sebelumnya namun ditambah
dengan komentar-komentar.
14
berikutnya menyatakan format penulisan. Karakter g berarti bahwa
bilangan real harus dituliskan se-compact mungkin. Variabel
berikutnya, y, masuk ke slot kedua. Format penulisannya adalah .2f
yang berarti bilangan real dituliskan dalam 2 angka di belakang koma.
Karakter f pada spesifikasi format tersebut adalah dari kata float, dari
floating-point number. Program yang lengkap dengan format penulisan
keluaran seperti ditunjukkan berikut ini.
# program untuk menghitung tinggi bola yang dilempar ke udara
v0=5 # kecepatan awal
g=9.8 # percepatan gravitasi
t=0.6 # waktu
y=v0*t-0.5*g*t**2 # posisi vertikal
print 'Pada saat t=%g s, bola berada pada ketinggian %.2f meter.'
% (t,y)
9
F C 32 (2.2)
5
-20 -4.0
-15 5.0
-10 14.0
-5 23.0
0 32.0
5 41.0
10 50.0
15 59.0
20 68.0
25 77.0
30 86.0
35 95.0
40 104.0
15
2.2.1 Penyelesian yang sangat sederhana
Hasil program :
>>>
-20 -4.0
-15 5.0
-10 14.0
-5 23.0
0 32.0
5 41.0
10 50.0
15 59.0
20 68.0
25 77.0
30 86.0
35 95.0
40 104.0
>>>
16
2.2.2 While
C 20
while C 40 ulangi perintah berikut
9
F C 32
5
tulis C , F
tambahkan 5 ke C
Hasil program :
-20 -4.0
-15 5.0
-10 14.0
-5 23.0
0 32.0
5 41.0
10 50.0
15 59.0
20 68.0
25 77.0
30 86.0
35 95.0
40 104.0
17
Jika aturan tersebut dilanggar, pada saat dijalankan, akan
muncul peringatan :
C += dC # ekivalen dengan C = C + dC
C -= dC # ekivalen dengan C = C – dC
C *= dC # ekivalen dengan C = C*dC
C /= dC # ekivalen dengan C = C/dC
C == 40 # C sama dengan 40
C != 40 # C tidak sama dengan 40
18
C >= 40 # C lebih besar atau sama dengan 40
C > 40 # C lebih besar dari 40
C < 40 # C lebih kecil dari 40
Ekspresi boolean dapat digabung dengan and dan or. Untuk and,
kondisi gabungan bernilai True jika kedua kondisi bernilai True,
sedangkan untuk or, kondisi gabungan bernilai True jika salah satu
kondisi bernilai True.
>>> x = 0; y = 1.2
>>> x >= 0 and y <1
False
>>> x >=0 or y < 1
True
>>> x > 0 or not y > 1
False
>>> -1 < x <= 0 # sama dengan : -1 < x and x <= 0
True
>>> not (x > 0 or y > 0)
False
>>>
2.2.4 List
>>> C = [-20, -15, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35,
40]
>>> C[0]
-20
>>> C[-1]
40
>>>
19
Anggota grup yang pertama diberi indeks 0. Indeks negatif
menyatakan pengambilan mulai dari indeks terakhir.
>>> C.append(45)
>>> C
[-20, -15, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
>>> C.insert(6, 7)
>>> C
[-20, -15, -10, -5, 0, 5, 7, 10, 15, 20, 25, 30, 35, 40, 45,
50, 55]
>>>
>>> len(C)
16
>>>
>>> 20 in C
True
>>> -20 in C
True
>>> 24 in C
20
False
>>>
2.2.5 For
>>>==========================RESTART========================
==
>>>
elemen dari suhu : 0
elemen dari suhu : 20
elemen dari suhu : 40
elemen dari suhu : 60
elemen dari suhu : 80
elemen dari suhu : 100
Daftar suhu memiliki 6 elemen
>>>
suhuC = [-20, -15, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35,
40]
for C in suhuC:
F = (9.0/5)*C + 32
print C, F
>>>=========================RESTART=========================
=
>>>
-20 -4.0
-15 5.0
-10 14.0
-5 23.0
0 32.0
21
5 41.0
10 50.0
15 59.0
20 68.0
25 77.0
30 86.0
35 95.0
40 104.0
>>>
suhuC = [-20, -15, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35,
40]
for C in suhuC:
F = (9.0/5)*C + 32
print '%5d %5.1f' % (C, F)
Hasil program :
2.3 Fungsi
Sebuah fungsi, dalam bahasa pemrograman, adalah sekumpulan
perintah yang mempunyai suatu tujuan tertentu, yaitu menghasilkan
satu atau beberapa variabel, atau hanya melakukan suatu tugas tanpa
menghasilkan variabel seperti menampilkan nilai atau
menggambarkan grafik.
22
2.3.1 Fungsi dengan satu variabel
def F(C):
return (9.0/5)*C + 32
>>> a = 10
>>> F(a)
50.0
>>> temp = F(15.5)
>>> temp
59.900000000000006
>>> sum_temp = F(10) + F(20)
>>> sum_temp
118.0
>>>
>>> s1 = F2(21)
>>> s1
23
'21.0 derajat Celcius sama dengan 69.8 derajat
Fahrenheit'
>>>
>>> c1 = 37.5
>>> s2 = F2(c1)
>>> nilai_F
24
2.3.3 Fungsi dengan beberapa variabel (argumen)
1 2
y(t ) v0t gt
2
>>> y = yfunc(0.1, 6)
>>> y
0.55095
>>>
25
>>> posisi, kecepatan
(0.034199999999999786, -2.886)
>>>
n i
1 x
L( x ; n) (2.3)
i 1 i 1 x
26
def L(x, n):
jumlah = 0
for i in range(1, n+1):
jumlah += (1.0/i)*(x/(1.0+x))**i
nilai_jumlah = jumlah
suku_pertama_yg_diabaikan = (1.0/(n+1))*(x/(1.0+x))**(n+1)
exact_error = log(1+x) - nilai_jumlah
return nilai_jumlah, suku_pertama_yg_diabaikan, exact_error
tabel(10)
def tabel(x):
print '\nx=%g, ln(1+x)=%g' % (x, log(1+x))
for n in [1, 2, 10, 100, 500]:
nilai, berikutnya, error = L(x, n)
print 'n=%-4d %-10g (suku berikutnya : %8.2e '\
'error: %8.2e)' % (n, nilai, berikutnya,
error)
27
tabel(10)
Hasil program :
>>>==========================RESTART========================
==
>>>
x=10, ln(1+x)=2.3979
n=1 0.909091 (suku berikutnya : 4.13e-01 error:
1.49e+00)
n=2 1.32231 (suku berikutnya : 2.50e-01 error:
1.08e+00)
n=10 2.17907 (suku berikutnya : 3.19e-02 error: 2.19e-
01)
n=100 2.39789 (suku berikutnya : 6.53e-07 error: 6.59e-
06)
n=500 2.3979 (suku berikutnya : 3.65e-24 error: 6.22e-
15)
>>>
3 Regresi linear
Dalam eksperimen fisika, untuk menguji hubungan antara dua
variabel, y dan x, dilakukan dengan mengubah salah satu variabel,
disebut variabel bebas, biasanya x, kemudian mengukur variabel tak
bebas, y, sehingga diperoleh pasangan nilai (xi,yi) sebanyak N, yaitu
jumlah pengukuran yang telah dilakukan. Jika dari teori diketahui
bahwa hubungan antara x dan y adalah linear, maka dapat didekati
dengan persamaan
y = a + bx (3.1)
28
yi = yi – y(xi) = yi – a – bx (3.2)
1 1 y y ( x ) 2
Pi exp i 0 i
(3.4)
σi 2π 2 σi
29
N 1 1 y y ( x ) 2
P ( a0 ,b0 ) Pi
exp i 0 i
(3.5)
i 1 σi 2π 2 σi
N 1 1 y y( x ) 2
P ( a,b)
exp i i
(3.6)
i 1 σi 2π 2 σi
N 2 2
y y( xi ) N
1
χ i yi a bxi
2
(3.7)
i 1 σi i 1 σ i
30
1 xi2 y x xy
a 2 2i 2i i 2 i
σi σi σi σi
1 1 xy x y
b 2 i 2 i 2i 2i (3.8)
σi σi σi σi
2
1 x
xi2
2 2 2i
σi σi σi
1 xi2
σ a2
σ2
i
(3.9)
1 1
σb2
σi2
3.4 Goodness-of-fit
Metode kuadrat terkecil didasarkan pada hipotesis bahwa fit
(pencocokan data) yang optimum adalah yang meminimumkan jumlah
berbobot dari seluruh besar simpangan data yi terhadap nilai hasil fit
y(xi). Besar jumlahan tersebut dicirikan oleh variansi s2, yang
merupakan perkiraan terhadap variansi hasil ukur 2. Untuk fungsi
y(xi) yang linear dalam m parameter dan dicocokkan pada sejumlah N
titik data,
1 y y x 2
2 i i
s2
1 σi
(3.10)
N m 1
N
1
2
σi
1 χ2
s2
N m 1
N
1
2
σi
31
s2 χ2
σi2 ν
Nilai
χ2
χν2
ν (3.11)
32
begitu saja menyimpulkan bahwa hubungan antara x dan y adalah
linear, karena regresi linear bisa diterapkan pada sembarang set hasil
ukur, dan pasti memberikan hasil berupa paramater a dan b. Kita
memerlukan suatu tolok ukur yang lain, yang tidak bergantung pada
hasil regresi linear, namun hanya bergantung pada nilai-nilai variabel
x dan y untuk menguji apakah ada korelasi linear antara keduanya.
Tolok ukur tersebut adalah koefisien korelasi linear. Untuk sebanyak
N set data hasil ukur (xi,yi), didefinisikan koefisien korelasi linear
(Bevington, 1980) :
4 Implementasi
4.1 Membaca file data
Data-data hasil eksperimen disimpan dalam file teks yang terdiri
dari beberapa baris yang menyatakan jumlah pengukuran dan terdiri
dari 3 kolom. Kolom pertama untuk data variabel bebas (x), kolom
kedua untuk variabel terukur, atau variabel tak bebas (y) dan kolom
ketiga untuk ketidakpastian pada variabel hasil ukur (y). Ralat, atau
ketidakpastian pada variabel bebas (x) diabaikan.
Mass (kg) 200 300 400 500 600 700 800 900
Extension 5.1 5.5 5.9 6.8 7.4 7.5 8.6 9.4
(cm)
33
the unstretched length of the spring. Use these data and the
method of least squares to fing the spring constant k, and the
unstretched length of the spring L0, and their uncertainties. Find
2 for the fit and the associated probability.
Argumen string pertama adalah nama file jika file berada dalam
folder yang sama dengan IDLE. Jika berada di folder yang lain,
argumen ini berisi path yang lengkap di mana file itu berada.
Argumen string kedua adalah kode operasi terhadap file yang dibuka,
apakah akan dibaca isinya, read = 'r', atau akan ditulisi, write =
'w'.
Setelah dibuka, isi file dibaca dan ditampilkan baris per baris :
34
>>> for baris in filedata:
print baris
Perintah pertama :
adalah untuk membaca isi file baris per baris dan menyimpannya
ke dalam variabel string baris. Setelah perintah loop for harus
diakhiri dengan titik dua, kemudian tekan Enter, dan dituliskan
perintah yang dijalankan dalam loop : print baris, kemudian Enter 2
kali. Karena Python menggunakan simbol titik (.) untuk menandai
bilangan desimal (float), maka data-data juga disimpan dengan simbol
titik untuk bilangan desimal.
Tiap baris dalam file data terdiri dari tiga kolom yang
menyatakan tiga data, x, y dan e (ralat dalam y). Tiga data ini harus
dipisahkan agar diperoleh masing-masing nilai x, y dan e. Seperti telah
disinggung sebelumnya bahwa isi file data disimpan ke dalam variabel
string baris. Pada perintah yang terakhir, isi variabel ini adalah
baris terakhir dalam file, yaitu '900 9.4 0.2'.
35
Dengan perintah di atas, maka string baris dipecah dengan
karakter pemisah (whitespace) karakter kosong (spasi = spacebar), dan
disimpan ke dalam variabel datanya. Tipe dari variabel datanya
adalah list.
>>> type(datanya)
<type 'list'>
>>>
>>> datanya
['900', '9.4', '0.2']
>>> datanya[0]
'900'
>>> datanya[1]
'9.4'
>>> datanya[2]
'0.2'
>>>
>>> x = float(datanya[0])
>>> y = float(datanya[1])
>>> e = float(datanya[2])
>>> x, y, e
(900.0, 9.4, 0.2)
>>>
Pada perintah di atas hanya ada satu set data yang diperoleh
dari satu baris dalam file data. Untuk memperoleh seluruh set data
hasil pengukuran, maka perintah dijalankan dalam sebuah loop for
seperti yang telah disinggung di depan. Supaya nilai-nilai data dapat
diolah satu persatu, maka tiap set data, untuk x, y dan e disimpan
36
dalam variabel list. Isi dari varibel list, yaitu elemen di dalamnya
dapat ditambah, dengan perintah
nama_variabel_list.append(data_baru). Jadi, pertama buat
variabel list yang kosong, kemudian tiap iterasi ditambah dengan set
data baru yang dibaca dari file data.
>>> datax=[];datay=[];datae=[]
>>> filedata = open('data.txt','r')
>>> for baris in filedata:
datanya = baris.split()
x = float(datanya[0])
datax.append(x)
y = float(datanya[1])
datay.append(y)
e = float(datanya[2])
datae.append(e)
>>> datax
[200.0, 300.0, 400.0, 500.0, 600.0, 700.0, 800.0,
900.0]
>>> datay
[5.1, 5.5, 5.9, 6.8, 7.4, 7.5, 8.6, 9.4]
>>> datae
[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]
>>>
>>> plt.show()
37
Gambar 3.1 Plot titik-titik data
>>> filedata
<open file 'data.txt', mode 'r' at 0x00CA7E38>
>>> filedata.close()
>>> filedata
<closed file 'data.txt', mode 'r' at 0x00CA7E38>
>>>
38
def bacafiledata(datafile):
filedata = open(datafile,'r')
datax = []; datay = []; datae = []; i = 0
for baris in filedata:
i +=1
datanya = baris.split()
x = float(datanya[0])
datax.append(x)
y = float(datanya[1])
datay.append(y)
e = float(datanya[2])
datae.append(e)
print 'x = %5.2f y = %5.2f e = %5.2f' % (x, y,
e)
filedata.close()
jumlahdata = i
print 'Jumlah data = ', jumlahdata
plt.grid(True)
plt.plot(datax, datay, 'ko')
plt.errorbar(datax, datay, xerr=None, yerr=datae,
fmt = ' ')
plt.show()
return jumlahdata, datax, datay, datae
39
Gambar 3.2 Plot titik data dengan batang ralat
40
4.4 Fungsi untuk regresi linear
Fungsi regresi linear yang akan dibuat memerlukan parameter
masukan berupa data-data nilai x, y dan e (simbol pada persamaan 8
dan 9) dan variabel keluaran a, b, a, dan b.
Fungsi regresilinear :
41
digunakan. Modul math merupakan bawaan Python, sehingga tidak
perlu mencari dan mengunduhnya. Jadi pada baris setelah
mengimport matplotlib, dituliskan :
Garis hasil fit tidak lain adalah garis linear dari persamaan (3.1).
Nilai x dipilih dinaikkan dari nilai x minimum (atau mulai dari 0 jika
menginginkan titik potong diperlihatkan) sampai maksimum dengan
interval kenaikan yang dapat dipilih. Kemudian pada tiap nilai itu
42
dihitung nilai y dengan persamaan (3.1) dengan parameter a dan b
hasil regresi linear.
import numpy as np
43
Gambar 3.3 Garis hasil fit linear
y( x ) a σ a b σb x
y( x ) ( a σ a ) b σb x
44
hampir sama dengan fungsi plotregresi, namun dengan warna
yang beda, green = 'g', dan dengan format garis berupa garis
putus-putus. Parameter masukan juga sama, yaitu x, a, dan b. Untuk
membuat garis yang berbeda, tinggal mengganti a dan b dengan nilai
yang sesuai. Perintahnya adalah :
xfit = np.arange(0, max(datax)+100, 1)
plotregresi(xfit, a, b)
fitploterror(xfit,a-sigmaa,b+sigmab)
fitploterror(xfit,a+sigmaa,b-sigmab)
gambar(datax, datay, datae)
Hasil program :
45
Perintah untuk menjalankan fungsi chikuadrat(x,y,e,a,b) :
Hasil program :
Hasil program :
46
Gambar 3.5 Tampilan grafik dengan label dan judul
4.8 Interaktif
Gambar terakhir yang dihasilkan oleh program sudah lengkap
dengan label pada sumbu, judul grafik dan legenda. Demikian juga,
file data yang dibuka dan digambarkan hanya file yang sama, yaitu
‘data.txt’. Supaya fleksibel, ada interaksi dengan pengguna, maka
nama file, label pada sumbu dan judul grafik diisikan oleh pengguna.
def inisialisasi():
namafile = raw_input('File yang akan dibaca? ')
sumbux = raw_input('Nama sumbu X ? ')
sumbuy = raw_input('Nama sumbu Y ? ')
judul = raw_input('Judul grafik ? ')
return namafile, sumbux, sumbuy, judul
47
Gambar 3.6 Tampilan Python Shell (IDLE) saat menjalankan (run)
program bacafile.py
Ada dua tampilan hasil program, yaitu tampilan interaksi dengan
user, angka-angka data dan hasil-hasil perhitungan regresi linear, dan
tampilan grafiknya pada jendela matplotlib.
48
Gambar 3.7 Tampilan grafik
5 Penutup
Sampai dengan hasil program yang terakhir, dapat dikatakan
bahwa telah berhasil dibuat program analisis data eksperimen
(Praktikum Fisika Dasar) menggunakan bahasa pemrograman
Python. Apa yang telah dibuat ini masih bagian yang sangat kecil dari
kemampuan bahasa Python. Namun, bagi penulis merupakan langkah
awal untuk mempelajari Python, dan menggunakannya dalam skala
yang lebih besar, khususnya menyelesaikan program S3.
49
6. Referensi/Daftar bacaan
Bevington, Philip R., and D. Keith Robinson, 1980, Data Reduction and
Error Analysis for the Physical Sciences, third edition, Mc-Graw
Hill Companies, Inc, New York
50
7 Lampiran (source kode)
#=================================================================
import matplotlib.pyplot as plt
from math import sqrt
import numpy as np
def inisialisasi():
namafile = raw_input('File yang akan dibaca? ')
sumbux = raw_input('Nama sumbu X ? ')
sumbuy = raw_input('Nama sumbu Y ? ')
judul = raw_input('Judul grafik ? ')
return namafile, sumbux, sumbuy, judul
def bacafiledata(datafile):
filedata = open(datafile,'r')
datax = []; datay = []; datae = []; i = 0
for baris in filedata:
i +=1
datanya = baris.split()
x = float(datanya[0])
datax.append(x)
y = float(datanya[1])
datay.append(y)
e = float(datanya[2])
datae.append(e)
print 'x = %5.2f y = %5.2f e = %5.2f' % (x, y, e)
filedata.close()
jumlahdata = i
print 'Jumlah data = ', jumlahdata
return jumlahdata, datax, datay, datae
51
sigmaa2 = sum1/det
sigmab2 = sum5/det
sigmaa = sqrt(sigmaa2)
sigmab = sqrt(sigmab2)
def fitploterror(x,a,b):
for i in range(0, len(x)):
y = a + b*x
plt.plot(x,y,'g',linestyle='--')
r = korelasi(datax, datay)
print 'Koefisien korelasi = %.2f' % (r)
52