1. Kita dapat menyajikan data hasil kode Python dalam bentuk web dengan webserver Python, membuat user dapat memasukkan input saat Runtime, mengolah gambar menggunakan PILmembaca file excelmenyimpan ke format excel dan membaca file teks seperti kebanyakan output-output program semacam Fortran, C, Pascal, dll (biasanya program-program statistik)


    Jika kita punya data dalam bentuk file teks yang berisi data-data sebagai berikut

    0.010000 0.000000 -1.000000 0.000000 -2.000000
    0.020000 0.014866 -0.999889 0.014732 -1.999889
    0.030000 0.029659 -0.999560 0.029327 -1.999560
    0.040000 0.044441 -0.999012 0.043917 -1.999012
    0.050000 0.059207 -0.998246 0.058503 -1.998245
    0.060000 0.073952 -0.997262 0.073084 -1.997261
    0.070000 0.088673 -0.996061 0.087661 -1.996060
    0.080000 0.103364 -0.994644 0.102233 -1.994643

    file tersebut berasal dari output sebuah program FORTRAN yang menghitung posisi masa dari dobel pendulum dan terdiri dari beratus-ratus baris (contoh di atas adalah contoh beberapa baris awal) dan tersimpan dalam sebuah file bernama datapendulum1.txt. Kita dapat menggambarkan grafik data tersebut. Misal kita gunakan data pada kolom pertama sebagai sumbu-x dan kolom kedua sebagai sumbu-y, perintah Pythonnya adalah sebagai berikut

    from visual import *
    from visual.controls import *
    import scipy.io.array_import
    from pylab import *

    rt=177
    filename=('datapendulum1.txt')
    data=scipy.io.array_import.read_array( filename )
    t=data[:,0]
    x0=data[:,1]
    y0=data[:,2]
    x1=data[:,3]
    y1=data[:,4]

    plot(t,x0,'b-')
    show()




    From Ubuntu Karmic Koala



    From Ubuntu Karmic Koala



    Jika ingin plot lebih dari satu kurva maka kita dapat menambah item pada

    plot(t,x0,'b-')

    menjadi

    plot(t,x0,'b-',t,y0,'g-',t,x1,'r-',t,y1,'black')
    From Ubuntu Karmic Koala


    Jika ingin menambah grid, judul dan semacamnya, tambahkan

    grid(True)
    xlabel('Sumbu x')
    ylabel('Sumbu y')
    title('Jejak ')

    sebelum perintah plot()
    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala
    0

    Add a comment

  2. Some screenshoot below was taken from my Mac. You may wonder 'Hey, we render in python using Matplotlib, did'nt we?'. Yeah, pylab is part of matplotlib, so, have fun...

    from pylab import grid, xlabel, ylabel, title, plot, ylim, xlim, show, sin, cos
    r=10
    x=[]
    y=[]
    n=19
    for i in range(n):
    y.append([])
    x.append([])
    y[i].append(0)
    x[i].append(0)
    for i in range(n):
    phi=7*i
    y[i].append(r*sin(phi))
    x[i].append(r*cos(phi))
    grid(True)
    xlabel('Sumbu x')
    ylabel('Sumbu y')
    title('Jejak ')
    plot(x[0],y[0],'b-',x[1],y[1],'g-',
    x[2],y[2],'r-',x[3],y[3],'b-',x[4],y[4],'r-')
    batas=10
    ylim(-batas,batas)
    xlim(-batas,batas)
    show()


    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala


    from pylab import grid, xlabel, ylabel, title, plot, ylim, xlim, show, sin
    from visual import *
    x=[]
    x=arange(-10.,10.,0.1)
    grid(True)
    xlabel('Sumbu x')
    ylabel('Sumbu y')
    title('Jejak ')
    plot(x,sin(x),'b-')
    batas=10
    ylim(-2,2)
    xlim(-batas,batas)
    show()
    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala
    0

    Add a comment

  3. Integral suatu fungsi merupakan jumlah luasan di bawah fungsi tersebut. Berdasarkan hal tersebut, maka kita dapat membuat sebuah algoritma untuk mencari luasan sebuah fungsi tanpa perlu mengintegralkan fungsi tersebut. Metode ini memiliki bentuk sebagai berikut

    From Ubuntu Karmic Koala


    N adalah jumlah segmen Untuk mencari integral dengan cara numerik digunakan algoritma berikut:
    1. Bangkitkan x1, x2, ..., xn
    2. Masukkan nilai-nilai tersebut ke g(x)
    3. Jumlahkan nilai-nilai di langkah 2
    4. Bagi dengan N
    5. Kalikan dengan (b − a)
    Misal, untuk mencari nilai integral

    From Ubuntu Karmic Koala


    menggunakan python, gunakan perintah seperti pada gambar 1 yang hasilnya dapat dilihat pada gambar 2.

    Dapat dilihat bahwa hasil integral tersebut dengan Monte-carlo dengan 10 segmen adalah 150.36; agak jauh dari nilai secara analitis, yaitu 168.

    Agar akurat, kita perlu memperbesar nilai N. Sebagai contoh, jika nilai N kita ubah menjadi 100, maka hasil integralnya adalah 166.203, lebih mendekati
    nilai yang sebenarnya. Tentu saja dengan semakin besar nilai N maka akan (relatif) semakin lama pula penghitungannya.

    Sebagai improvisasi, kita dapat menyajikan data hasil kode Python dalam bentuk web dengan webserver python atau mengatur agar user dapat memasukkan input saat runtime. Kita juga dapat memproses grafik menggunakan PILmenyimpan hasil perhitungan ke format excel dan membaca file excel hasil penyimpanan 


    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala
    1

    View comments

  4. After having OpenSuSE 11.1 installed on my Tablet PC for about a year, I want to try installing Ubuntu 9.10 on my TX2500. I used Karmic Koala iso image for AMD64 architecture and start with liveCD choice first.

    Using LiveCD, everything is seem work without problem. When a familar exotic GNOME welcome sound is heard, I suddenly jump and think ”hooray, this cool Tablet PC is finally supported by ubuntu...”. Ridiculous, yeah, but the big problem prevent me for installing ubuntu on TX2500 is that no sound support (hey..., how we can life without music...), so, realizing that it wasn’t problem anymore (as well as my pen and eraser on touchscreen), I decided to override my SuSE 11.1 with this Koala.

    Oh yeah another pleasure is a popup offers me if I want to install Broadcom, SLModem and ATI propietary driver but, planned to install that after install to harddisk, I close that windows (uh, what the poin install something in live system?).

    After install Koala and boot into its system, I wait for popup offerring propietary driver installation but it never showed up, but everything is OK:
    1. Sound is work, that’s good
    2. Digitizer is work, I can use my pen and eraser as pointer and primary click eventhough finger-touch isn’t work.
    I, after a couple minute, finally found how to install propietary driver, using menu Hardware Driver, I installed Broadcom Wifi, SLModem and fglrx ATI propietary driver. I also want my system always updated and use newest soft- ware, so, using synaptic, I updated software and even upgraded kernel. Here the problem arise.

    After updating softwares and upgrading kernel of Karmic Koala, sound refuse to sounding (aaaaaargh..), no sound hardware detected, volume icon represent dummy hardware. I think it’s ALSA problem (like other said when i googling for solution) so I download alsa-driver, alsa-utils and alsa-... and com- piled them form source (uh). Still no sound after restarting.

    I do deep search at google again and found realy simple but powerful solution: deactivate slmodem driver from hardware driver and voilaaa...., my sound is back

    Here some note from Karmic Koala on my TabletPC tx2500 series
    1. Sound is work
    2. Pen digitizer is work out of the box
    3. Broadcom Wifi is work (propietary driver)
    4. Remote is work out of the box. It can raise volume (master volume), play next/previous song on mp3-player
    5. Webcam could be accessed through cheese
    6. My Sierra HSDPA modem was detected automagically (no need wvdial command line, heheh)
    7. Compiz-fusion run smoothly, so I can use compiz 3D effect and emerald in my desktop

    (for Oneiric Ocelot, see here)

    From Ubuntu Karmic Koala


    From Ubuntu Karmic Koala

    4

    View comments

  5. Pemetaan dari kulit bola ke bidang x-y mengikuti persamaan berikut.

    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)

    (x,y) adalah koordinat titik di bidang x-y sedangkan (x′,y′,z′) adalah koordinat titik pada permukaan bola (S2). Persamaan di atas memetakan titik (x′, y′, z′) pada permukaan bola ke bidang x-y (R2) di titik (x, y) menggunakan proyeksi stereografis.
    Jika kita ingin melakukan sebaliknya; memetakan sebuah titik di R2 ke S2, maka kita harus mendapatkan nilai x′ yang diungkapkan dalam x dan y, hal yang sama berlaku untuk y′ dan z′.
    Karena kita sudah memiliki dua persamaan (1, 2) sedangkan kita men- cari 3 variabel yang belum diketahui, maka dibutuhkan satu persamaan lagi. Syukurlah, persamaaan tersebut ada dan muncul dalam bentuk persamaan untuk kulit bola, yaitu

    From Aravir (am I Physicist?)


    sehingga kita dapat mencari x′, y′ dan z′.
    Persamaan 1 dan 2 dapat ditulis ulang sebagai

    From Aravir (am I Physicist?)


    z′ dapat dicari dengan memasukkan 4 dan 5 ke 3

    From Aravir (am I Physicist?)

    dengan memasukkan 17 ke 4 dan 5, maka didapatkan

    From Aravir (am I Physicist?)


    Persamaan 18, 19 dan 17 dapat digunakan untuk memetakan titik-titik diR2 ke S2.
    Berikut adalah contoh-contoh kurva di R2 yang dipetakan ke S2.

    Fungsi
    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)


    Fungsi
    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)
    0

    Add a comment

  6. Program berikut adalah program untuk mencari akar persamaan menggunakan metode Newton-Rhapson. Program tersebut memiliki inti di persamaan berikut:

    From Aravir (am I Physicist?)


    contoh-contoh programnya sebagai berikut:

    mencari akar dari fungsi
    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)


    Program diatas memiliki tebakan awal x=7, artinya program akan mencoba nilai f(7), jika f(7) bukan nol maka akan dicoba nilai x yang berikutnya sesuai dengan persamaan di atas, jika f(x)=0 maka program akan berhenti dan x adalah akar dari persamaan yang diberikan. Ketelitian program adalah 0.01, artinya jika f(x) bernilai kurang dari 0.01 maka x adalah akar dari persamaan yang diberikan. Ketelitian ini bisa diperkecil sesuai kebutuhan.

    From Aravir (am I Physicist?)

    dari output diatas dapat dilihat bahwa nilai x konvergen menuju ke nilai 4, sehingga dengan ketelitian 0,01 dapat simpulkan bahwa akar dari fungsi tersebut adalah 4



    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)



    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)


    Ada kalanya hasil yang kita dapatkan kurang cocok, hal ini disebabkan karena iterasi yang kita tentukan terlalu sedikit, contohnya adalah fungsi berikut

    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)


    Hasil diatas memperlihatkan bahwa x belum mencapai batas kestabilan yang telah ditentukan. Untuk itu kita harus memperbanyak iterasi

    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)
    0

    Add a comment

  7. Software yang dibuat dengan Flash ini mensimulasikan gerak vertikal dengan nilai awal kecepatan dan posisi yang dapat diubah-ubah oleh pengguna. Pengguna bisa memasukan berbagai nilai ketinggian dan kecepatan awal ke atas maupun ke bawah, atau tanpa kecepatan awal sama sekali (gerak jatuh bebas)

    From Aravir (am I Physicist?)


    Pada simulasi ini, rumus yang dipakai adalah:

    g=10
    v=v+g*dt
    h=y+v*dt
    (metode tersebut dinamakan metode Euler)

    Nilai awal yang dibutuhkan adalah v dan h.

    v adalah kecepatan awal benda; benda bisa dilempar ke atas (v positif) maupun ke bawah (v negatif)

    h adalah ketinggian benda dari titik acuan (tanah).

    Langkah-langkahnya adalah:
    Buat document Flash baru
    Buat objek
    Convert objek menjadi movie
    Pada instance, beri nama “bola”
    Buat dua text input, pada instance masing-masing, beri nama kecepatan dan posisi
    Buat tombol, pada instance, beri nama tombol
    Klik frame pertama; pada jendela action ketikkan perintah berikut

    kecepatan.text = 0;
    posisi.text = 200;
    acuan = 300;
    t = 0;
    dt = 0.01;
    g = -10;
    v = Number(kecepatan.text);
    h = Number(posisi.text);
    jalan = false;
    bola._y = acuan-h;
    _root.onEnterFrame = function() {
    if (jalan == false) {
    h = Number(posisi.text);
    bola._y = acuan-h;
    v = Number(kecepatan.text);
    }
    if (jalan == true) {
    v = v+g*dt;
    h = h+v*dt;
    kecepatan.text = v;
    posisi.text = h;
    bola._y = acuan-h;
    t+=dt;
    waktu.text=t;
    if (h<=0) { jalan = false; } } }; tombol.onRelease = function() { jalan = not (jalan); }; Untuk menjalankan program, tekan ctrl-enter Simulasi dapat langsung dijalankan dengan menekan tombol atau sebelum dijalankan, mengubah nilai-nilai awal. Kecepatan awal bisa diberikan, positif untuk kecepatan awal ke atas dan negatif untuk ke bawah). Posisi juga bisa diubah. Saat simulasi berjalan, posisi dan kecepatan tidak dapat kita ubah. Simulasi berhenti saat benda mencapai tanah (h=0) atau dapat kita hentikan dengan enekan tombol. Saat simulasi berhenti, kita dapat mengubah nilai posisi dan kecepatan kembali. Gambar-gambar Gambar. 1
    From Aravir (am I Physicist?)


    Gambar. 2

    From Aravir (am I Physicist?)


    Gambar. 3

    From Aravir (am I Physicist?)


    Gambar.4
    From Aravir (am I Physicist?)


    Gambar. 5

    From Aravir (am I Physicist?)
    0

    Add a comment

  8. 0

    Add a comment

  9. Sebuah diary dari album foto Facebook saya:

    Software ini dibuat pada jumat pon malam sabtu wage 28-8-'09 dengan menggunakan bahasa Python setelah menyadari bahwa Macbook ku ternyata memiliki accelerometer, sebuah sensor gerak.

    Software ini mensimulasikan bola-bola yang berserakan di lantai (bisa memantul) yang pergerakannya ditentukan oleh kemiringan bidang lantai. Kemiringan lantai ini diatur dengan memiringkan laptop. Detilnya agak mengerikan, tapi toh hasilnya lumayan.


    Pertama menjalankan software ini kupikir ada yang salah, kok bolanya menggelinding ke kanan terus, ternyata mejaku yang miring, hei... software ini bisa buat waterpass lho.


    From Aravir (am I Physicist?)

    Salah satu sensor di laptop Apple merupakan sensor arah gravitasi atau sensor gerakan laptop atau sensor kemiringan. Semacam mendeteksi bidang horizontal. Aku belum menemukan cara langsung mengaksesnya tetapi ada AMSTracker yang bisa menampilkan output yang akan dipakai python untuk menentukan gerakan laptop.

    Perintah untuk mengakses output sensor adalah sebagai berikut:
    From Aravir (am I Physicist?)

    Aku masih bingung, outputnya 3, kuanggap x, y, z. Mungkin masih ada output yang lain , tapi belum tahu cara mengetahuinya
    -kalo laptop kumiringkan kiri-kanan, yang berubah x
    -kalo laptop kumiringkan depan-belakang, yang berubah z
    -yang y konstan menunjuk angka -1, gak tahu kenapa
    Kayaknya aslinya memang sensor gravitasi, tujuan utamanya mendeteksi gerakan laptop; jika jatuh (gravitasi 0), maka harddisk otomatis berhenti.
    Untuk memudahkan menjalankan software, AMSTracker dan file script python sebaiknya diletakkan di folder yang sama.



    Cara menjalankannya adalah melalui perintah di console:
    From Aravir (am I Physicist?)



    atau buat sebuah file text berekstensi .sh yang berisi:
    cd "`dirname "$0"`"
    ./AMSTracker -u 0.001 -s | python sensorGravitasi.py
    Simpan di folder yang sama, dobelklik file tersebut untuk menjalankan software
    hasilnya:


    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)



    From Aravir (am I Physicist?)


    From Aravir (am I Physicist?)

    list perintah seluruhnya sebagai berikut:

    #awal list program, simpan dengan nama sensorGravitasi.py#
    ###############
    #sensor gerak
    #oleh Nugroho Adi P
    #bahasa: python
    #
    #########
    import sys, os
    from visual import *
    from random import uniform
    from visual.controls import *
    scene.x=125
    jumlah=19
    a=vector(0,-10,0)
    e=0.75
    dt=0.01
    s=17
    b=-11
    def change():
    for bola in lbola:
    bola.v=vector(0,uniform(0,23),0)
    ################
    c = controls(title='Tombol-tombol', x=0,
    y=0, width=100, height=300, range=200) # Create controls window
    # Create a button in the controls window:
    bt = toggle( pos=(0,0), width=77, height=30, text1='Jalan',
    text0='Stop' )
    br = button( pos=(0,100), width=77, height=30, text='Acak',
    action=lambda: change())
    ################
    box(pos=(0,b-0.5,0), height=1,length=37, width=37)
    lbola=[]
    for i in arange(jumlah):
    bola=sphere(color=color.green)
    bola.pos=vector(uniform(-s,s),uniform(-7,19),uniform(-s,s))
    bola.v=vector(0,0,0)
    bola.radius=uniform(1,2)
    lbola.append(bola)
    while 1:
    c.interact()
    #rate(97)
    try:
    line = sys.stdin.readline()
    x = int(line.split()[0])
    y = int(line.split()[1])
    z = int(line.split()[2])
    #print x, ' ',y,' ',z
    except KeyboardInterrupt:
    sys.exit(0)
    except:
    pass
    if (bt.value==1):
    for bola in lbola:
    if bola.y-bola.radius>b:
    a=vector(-x/5,-10,z/5)
    bola.v=bola.v+a*dt
    bola.pos=bola.pos+bola.v*dt
    #tumbukan dengan lantai
    if bola.y-bola.radius<=b:
    bola.v.y=-bola.v.y*e
    bola.pos.y=b+bola.radius+0.1
    #tumbukan dengan dinding
    if bola.x+bola.radius>=s:
    bola.v.x=-bola.v.x*e
    bola.pos.x=s-bola.radius-0.1
    if bola.x-bola.radius<=-s:
    bola.v.x=-bola.v.x*e
    bola.pos.x=-s+bola.radius+0.1
    if bola.z+bola.radius>=s:
    bola.v.z=-bola.v.z*e
    bola.pos.z=s-bola.radius-0.1
    if bola.z-bola.radius<=-s:
    bola.v.z=-bola.v.z*e
    bola.pos.z=-s+bola.radius+0.1
    ###deteksi tumbukan antar bola
    for i in arange(jumlah):
    for j in arange(i+1,jumlah):
    jarak=mag(lbola[i].pos-lbola[j].pos)
    if jarak<(lbola[i].radius+lbola[j].radius):
    arah=norm(lbola[j].pos-lbola[i].pos)
    vi=dot(lbola[i].v,arah)
    vj=dot(lbola[j].v,arah)
    tukar=vj-vi
    lbola[i].v=lbola[i].v+tukar*arah
    lbola[j].v=lbola[j].v-tukar*arah
    pantul=lbola[i].radius+lbola[j].radius-jarak
    lbola[i].pos=lbola[i].pos-pantul*arah
    lbola[j].pos=lbola[j].pos+pantul*arah
    #####akhir list program###

    3

    View comments

  10. Membaca File Excel Menggunakan Python


     


    Artikel ini membahas cara membaca data Ms Office Excel (.xls) dari Python. Hal ini berguna untuk pengolahan data mentah dari Excel sebagai input untuk Python. Untuk keperluan ini, diperlukan modul bernama xlrd.


    Kode program Python dalam artikel ini ditulis di dalam IDLE, sebuah kode editor, namun bisa ditulis di notepad, vi atau text editor yang lain.


     


    From Aravir (am I Physicist?)

     


     




    Kode programnya sebagai berikut:


    #Program bacaExcel.py


    #Nugroho AP


     


    #mengiport modul xlrd


    import xlrd





    #membuat variabel bernama wb untuk membaca file Excel, 


    #dalam contoh ini Runge-Kutta.xls


    wb=xlrd.open_workbook("Runge-Kutta.xls")





    #perintah untuk menampilkan jumlah dan nama-nama sheet


    print "Jumlah sheet",wb.nsheets


    print "Nama WorkSheet", wb.sheet_names()





    #buat variabel sh untuk membaca sheet pertama


    sh=wb.sheet_by_index(0)





    #perintah untuk menampilkan nama sheet, jumlah baris dan kolom


    print "Nama Sheet    = ", sh.name


    print "Jumlah baris  =", sh.nrows


    print "Jumlah kolom  =", sh.ncols





    #perintah untuk menampilkan isi/nilai sel B11


    print "Sel B11 berisi",sh.cell_value(rowx=10,colx=1)





    #perintah untuk menampilkan semua baris pada kolom B dan C


    for i in range(sh.nrows):


        print sh.cell_value(rowx=i,colx=1), "   ",sh.cell_value(rowx=i,colx=2) 


     


     


     


    #tekan F5 untuk menjalankan program


     


    From Aravir (am I Physicist?)

    From Aravir (am I Physicist?)

    Ket:


    -Python membaca urutan kolom A,B,C sebagai 0,1,2 


    -Baris 1,2,3,... dibaca 0,1,2,... oleh Python

    0

    Add a comment

Archive
Label
Popular Posts
Popular Posts
Loading