Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Tuesday, September 30, 2008

Perhitungan Matahari dan Bulan - Astronomical Algorithms

Astronomical algorithms are the algorithms used to calculate ephemerides, calendars, and positions (as in celestial navigation or satellite navigation). Examples of large and complex astronomical algorithms are those used to calculate the position of the Moon. A simple example is the calculation of the Julian day.

Numerical model of solar system discusses a generalized approach to local astronomical modeling. The variations séculaires des orbites planétaires describes an often used model.

========================================================

Menyambut 1 syawal 1429 H, rasanya tidak pantas, kalau tidak menyumbang sedikit pengetahuan tentang perhitungan matahari dan bulan, yang menjadi dasar hisab.

Menurut beberapa sumber, New-moon (bulan baru astronomis) atau conjuction atau ijtimak terjadi pada 29 Sept 2008, pukul 03:14 wib sore hari (15:14 wib). Hal ini menyebabkan pada esok harinya, 30 September 2008, maghrib (sunset), Bulan sudah sangat tinggi. Dan Informasi tentang posisi bulan adalah 9 der 56.075? dari horizon. Perkiraan bahwa posisi bulan yg mendahului matahari pada tanggal 29 Sept 2008 saat sunset, maka kemungkinan (hampir pasti) tak kan bisa dirukyah.

Kenapa kadang terjadi perbedaan penetapan tanggal ?

Hal ini menurutku, janganlah dijadikan perbedaan atau pertentangan bagi sesama umat Islam. Banyak hal-hal yang mempengaruhi perbedaan itu. Tapi bagi kita, orang yang bergerak dalam IT, hendaknya menelaah dan mempelajari lebih jauh tentang perhitungan astronomical algorithms, supaya tidak menjadikan kita fanatik pada golongan tertentu.

Beberapa tahun lalu, aku mencoba membuat 2 program yang berhubungan dengan perhitungan matahari dan bulan. Dan dalam pembuatan program tersebut, banyak sumber yang kupakai, antara lain :

:) kenapa kok orang barat semua ? ya ! memang itulah yang kudapat di internet, yang menjelaskan secara lengkap …. :)

MOONTOOLS for Windows

Program ini kubuat dengan dasar pemrograman Delphi.

Fitur MoonTools antara lain :

  • Tampilan posisi bulan & matahari (Azimut, Altitude, Decl, RA, Long, Lat, Paralax, Max Dist, Min Dist, Next Eclipse.
  • Perbedaan Matahari dan Bulan pada Azimuth, Decl, Long, Rise.
  • Age of Moon, Moon Distance, Moon Subtends, Sun Distance, Sun Subtends.
  • View Twilight dan MoonPass
  • View Moon Horizontal Position
  • Sholat time dan New Moon
  • Map Hijri Moon

SUNMOON for J2ME

Program ini kubuat dengan menggunakan JBuilder dengan atar muka handphone SE K750i, jadi mungkin akan ada tulisan yang “morat-marit” jika menggunakan HP dg resolusi yang berbeda (seperti yang terjadi padaku sekarang yang pakai Nokia 6210i).

Fitur SunMoon by ariefew antara lain :

  • Tampilan posisi bulan & matahari sekarang
  • Waktu dari Rise, Set, Twilight bulan & matahari hari sekarang
  • Detail matahari yaitu RA, altitude, azimut dari matahari sekarang
  • Detail bulan yaitu RA, altitude, azimut dari bulan sekarang
  • Waktu sholat

Instalasi SunMoon

  • Setting Time Zone HP pada GMT+7
  • Install SunMoon.jar
  • Running SunMoon
  • Setting Lokasi kitas berada dengan Airport Code atau memasukkan Lintang & Bujur daerah kita. misal :
    • Surabaya = WRSJ (JUANDA)
    • Madiun =WIAR (ISWAHYUDI)
    • Solo = WRSQ (ADI SUMARMO WIRYOKUSUMO)
    • Bandung = WIIB (HUSEIN SASTRANEGARA)
    • Cirebon = WIIC (PENGGUNG)
    • Jakarta = WIIH (HALIM PERDANAKUSUMA)
    • Jakarta = WIII (SOEKARNO HATTA)
    • Yogyakarta = WIIJ (ADI SUTJIPTO)
    • Cilacap = WIIL (TUNGGUL WULUNG)
    • Jakarta = WIIP (PONDOK CABE)
    • Semarang = WIIS (ACHMAD YANI)
    • Lainnya silahkan di search di GlobalAirportDatabase.txt yang kusertakan juga di download.
    • Jika tidak ada, ambil airport terdekat atau setting secara manual (Lintang & Bujur)
  • Tampilan utama menunjukkan posisi matahari dan bulan secara real time. tampilan ini juga bisa digunakan sebagai compass dengan acuan posisi matahari dan bulan secara langsung atau secara bayanganan.
  • Menu - Setting. Terdiri dari
    • Set AirportCode, untuk setting lokasi berdasarkan kode airport
    • Set Lokasi, untuk set lokasi berdasarkan Lintang dan Bujur
    • Set Time Zone untuk mengetahui setting Time zone handphone (view only).
    • Set Tampilan untuk setting tampilan warna utama
    • Set Orientasi Layaruntuk setting orientasi arah layar, arah atas, dari
      handphone
    • Set Qiblat Fokus untuk setting arah kiblat kita
    • Set Tanggal & Jam untuk mengetahui Tanggal dan jam handphone (view only)
  • Rise, set, twilight. Untuk mengetahui waktu terbit, waktu tepat diatas, waktu terbenam, start dan end di horison (civil twilight, Nautical Twilight, Astronomical Twilight) dari matahari dan bulan
  • Matahari Detail, untuk mengetahui posisi matahari (RA, Decl, Azimuth, Altitude) dan arah Qiblah Focus dari Matahari
  • Bulan Detail, untuk mengetahui posisi bulan (Decl, Azimuth, Altitude), umur bulan ( age of moon & moon phase), bulan baru (new moon), last
    phase, next phase, dan arah Qiblah Focus dari Bulan
  • Waktu Sholat untuk mengetahui waktu sholat dengan menggunakan
    Egyptian General Autority of Survey
    (Subuh -19.5°, Isya-17.5°) dan Ashar menggunakan Shafi’i
  • Keterangan, merupakan keterangan dari program ini
  • Tentang SunMoon, merupakan keterangan tentang pembuat program.

DOWNLOAD PROGRAM MOONTOOS TOR WINDOWS

DOWNLOAD SOURCE CODE MOONTOOS TOR WINDOWS

DOWNLOAD SUNMOON FOR J2ME

DOWNLOAD SOURCE CODE SUNMOON FOR J2ME ( masih hilang :) kucari dulu.. )

password rar : aew

Sekiranya, mungkin banyak kesalahan2 algoritma, dalam pembuatan program di atas. Mohon silahkan direvisi sendiri…. (source code-nya kan ada :) )

AKHIRULKALAM. MOHON MAAF LAHIR BATIN UNTUK SEMUA PEMBACA.

ARIEF EKO WAHYUDI /ariefew.co.cc

Wednesday, September 17, 2008

DASAR HYPERTEXT MARKUP LANGUAGE (HTML)

HTML (Hypert Text Markup Language) merupakan bahasa pemrograman yang digunakan dalam pembuatan halaman web. Dalam penggunaannya sebagian besar kode HTML tersebut harus terletak di antara tag kontainer. Yaitu diawali dengan dan diakhiri dengan (terdapat tanda "/").
Contoh sederhana dokumen HTML : <HTML>



Halaman pembuka


Isi dokumen

, , , harus terdapat pada sebuah dokumen HTML.

  • Sebagai tanda awal dokumen HTML.
  • Sebagai informasi page header, di dalam tag ini bisa diletakkan tag-tag TITLE, BASE, ISINDEX, LINK, SCRIPT, STYLE dan META.
  • Sebagai tanda nama halaman. Kalimat yang terletak di dalam tag ini akan muncul pada bagian paling atas browser Anda.
  • Di dalam tag ini bisa diletakkan berbagai page attribute seperti warna latar belakang, warna teks, warna link, warna visited link, warna active link. Atribut: BGCOLOR, BACKGROUND, TEXT, LINK, VLINK, ALINK, BGPROPERTIES, LEFTMARGIN dan TOPMARGIN.

PENGATURAN TEXT
LIST
GAMBAR DALAM HALAMAN WEB
LINK KE SITUS LAIN
TABEL
FORM

ariefew.co.cc

PHP

PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain.

PHP adalah sebuah bahasa yang HTML embedded, artiya perintah-perintah dalam PHP dapat menyatu dengan tag-tag HTML dalam sebuah file. Sebuah program PHP tidak lebih adalah sebuah file HTML yang didalamnya kita masukan perintah-perintah tertentu.

Sebuah program biasanya dikenali oleh web server dari eksetensinya, demikian juga dengan PHP. Ekstensi yang biasa digunakan untuk PHP adalah .php, .php3, atau .phtml. Ekstensi yang dikenali oleh sebuah web server tergantung dari konfigurasi pada web server tersebut.

Sintaks PHP

Karena PHP adalan sebuah bahasa yang HTML embedded maka harus ada sebuah cara untuk memisahkan bagian mana dari file tersebut yang merupakan PHP. Cara tersebut antara lain :




Titik-titik diisi dengan perintah-perintah PHP. Cara pertama sering dipergunakan karena paling ringkas, cara kedua dapat digunakan untuk kombinasi XML (Extended Markup Language), yaitu sebuah bahasa yang merupakan pengembangan dari HTML. Sedangkan cara yang ketiga dapat digunakan untuk mengantisipasi
editor-editor yang tidak dapat menerima tag 1 dan 2, contohnya Frontpage.

Contoh :




  1. Echo “Hello World”://perintah ini menuliskan Hello World
  2. ?>


Baris 1, 2, 6 dan 7, adalah tag-tag HTML. Baris 3 dan 5 berisi escape-characters PHP sehingga semua yang berada di dalamnya adalah perintah PHP. Baris 4 adalah perintah / statemen untuk menampilkan “Hello World”.
Perhatikan bahwa setiap perintah / statemen dalam PHP diakhiri dengan karakter titik koma (;). Baris 3,4 dan 5 sebenarnya juga dapat diletakan satu baris, karena escape-characters dan perintah pada PHP bisa diletakan satu baris. Pada baris 4 terdapat komentar yang ditandai dengan //.

Variabel

Variabel adalah sebuah tempat untuk menyimpan sebuah data yang nilainya dapat berubah-ubah. Setiap variabel dalam PHP diawali dengan karakter $. Misalnya variabel x dapat kita tuliskan di PHP dengan $x.

Nama variabel di PHP bersifat case-sensitive, artinya huruf besar dan huruf kecil berbeda. Meskipun demikian PHP bukan bahasa yang case sensitive, karena hanya nama variabel saja yang case sensitive, sedangkan kata kunci dan fungsi tidak.

Dalam PHP untuk menginisialisai / membuat sebuah variabel, cukup mengisi variabelnya dengan sebuah nilai tertentu yang diinginkan, tidak seperti pada bahasa tertentu yang mengharuskan programmer mendeklarasikan telebih dahulu variabelnya.

PHP mengenali variabel dengan berbagai macam tipe, yaitu :

  1. Skalar, yaitu variabel yang hanya memiliki sebuah nilai tunggal. Variabel
    skalar dapat bertipe :
    a. Bilanga bulat, dikenal dengan istilah integer.
    b. Bilangan real (floating point), dikenal dengan istilah double.
    c. Serangkaian karakter, dikenal dngan istilah string.
  2. Array, yaitu variabel yang memiliki sekumpulan nilai tertentu dengan
    berbagai tipe skalar dan memiliki indeks, seperti sebuah tabel.
  3. Objek, yaitu variabel yang memiliki properti dan method.

Tipe dari sebuah variabel secara otomatis akan ditentukan sesuai dengan nilai yang diisikan ketika membuat variabel tersebut. Tetapi variabel juga dapat dipaksa agar bertipe tertentu dengan menggunakan casting. Sedangkan tipe arrray dapat diinisialisasi dengan dua cara, mengisi langsung dan dengan menggunakan perintah array.

Contoh :




  1. //inisialisasi variabel integer
  2. $x=10://kita mmiliki x bertipe integer
  3. $y=15:/y juga bertipe integer
  4. $z=$x+$y://z juga integer dengan nilai 25
  5. ?>


Setiap variabel dalam sebuah bahasa selalu memiliki scope, yaitu posisi dimana sebuah variabel terdefinisi. Variabel dalam PHP terdefinisi pertama kali dibuat sampai file yang bersangkutan habis. Sehingga jika kita menuliskan sebuah perintah misalnya echo $a, sementara variabel a belum dibuat / diinisialisasi sebelumnya maka perintah tersebut tidak akan menghasilkan apa-apa.

Operator

Ada 6 macam operator dalam PHP, yaitu :

  • Operator Aritmatika

Contoh

Nama

Hasil

$a + $b

Penjumlahan

Jumlah dari $a dan $b

$a - $b

Pengurangan

$a dikurangi $b

$a*$b

Perkalian

Hasil kali $a dan $b

$a/ $b

Pembagian

$a dibagi $b

$a% $b

Modulus (sisa pembagian)

Sisi dari $a dibagi $b

Operator pembagian (“/”) menghasilkan integer jika kedua operan bertipe integer. Jika kedua atau salah satu operan bertipe real, maka hasilnya juga real.

Untuk memudahkan penulisan, beberapa penulisan ringkas dimungkinkan.

Contoh :




  1. $x=2;
  2. $x++;echo “$x
    ”; // x bernilai 3
  3. $x–; echo “$x
    ”; // x bernilai 2 lagi
  4. $x+=5; echo “$x
    ”; // x bernilai 7
  5. $x-=3; echo “$x
    ”; // x bernilai 4
  6. $x*=6; echo “$x
    ”; // x bernilai 24
  7. $x/=4; echo “$x
    ”; // x bernilai 6
  8. ?>


  • Operator String. Hanya ada satu operator string dalam PHP, yaitu penggabungan (“.”). Perhatikan contoh 2 baris 20.
  • Operator Penugasan (Assignment) Operator penugasan dalam PHP adalah “=”. Artinya operan disebelah kiri kita isi dengan operan disebelah kanan. Perhatikan contoh 2 yang penuh dengan operan ini.
  • Operator BitwiseSebuah integer sebenarnya diinterprestasikan dalam bentuk bit-bit.
    Operator Bitwise mengubah bit-bit tertentu dalam sebuah integer menjadi on atau off.

Contoh

Nama

Hasil

$a & $b

And

Bit yang on di kedua $a dan $b menjadi on

$a | $b

Or

Bit yang on di salah satu $a atau $b menjadi on

~$a

Not

Bit yang on di $a menjadi tidak on

  • Operator Logika

Contoh

Nama

Hasil

$a and $b

And

Benar jika $a dan $b benar

$a or $b

Or

Benar jika $a atau $b benar

$a xor $b

Or

Benar jika $a atau $B benar, tetapi tidak jika keduanya benar

!$a

Not

Benar jika $a tidak benar, dan kebalikannya

$a && $b

And

Sama dengan and

$a || $b

Or

Sama dengan or

  • Operator Pembandingan

Contoh

Nama

Hasil

$a = =$b

Equal

Benar jika $a sama dengan $b

$a != $b

Not equal

Benar jika $a tidak sama dengan $b

$a < $b

Less than

Benar jika $a kurang dari $b

$a > $b

Greater than

Benar jika $a lebih dari $b

$a <=$b

Less than or equal to

Benar jika $a kurang atau sama dengan $b

$a >= $b

Greter than or
equal to

Benar jika $a lebih atau sama dengan $b

Percabangan

Perintah pencabangan adalah perintah yang memungkinkan pemilihan atas perintah berikutnya yang akan dijalankan.
Ada dua macam perintah pencabangan pada PHP,
yaitu :

  • IF

  • WITCH

Perintah IF memungkinkan kita untuk memilih perintah berikutnya yang akan dijalankan sesuai dengan kondidi tertentu.
Contoh :


  1. $a = 5:
  2. $b = 6:
  3. if ($a>$b) {
  4. echo “a lebih besar dari b”:
  5. }
  6. Else {
  7. Echo “a lebih kecil atau sama dengan b”:
  8. }
  9. ?>

Baris 7 dijalankan jika kondisi pada baris 6 bernilai benar. Baris10 akan dijalankan jika kondidi pada baris 6 bernilai salah.

Perintah SWITCH dapat digunakan percabangan untuk mengevaluasi apakah sebuah variabel / ekspresi bernilai tertentu.
Contoh :


  1. $suhu = 25
  2. $b = 6:
  3. if ($a>$b) {
  4. echo “a lebih besar dari b”:
  5. }
  6. Else {
  7. Echo “a lebih kecil atau sama dengan b”:
  8. }
  9. ?>

Fungsi

Fungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa sebuah nilai ataupun sebuah hasil operasi.

Fungsi dideklarasikan dengan statemen function diikuti nama fungsi dan beberapa argumen input.

Sintak :

function ( argumen_input ) { operasi fungsi; return nilai; }

Contoh :

function kali( $bil1 ,$bil2 ) { $hasil = $bil1 * $bil2; return $hasil; }

Dalam pemberian sebuah nama fungsi, maka nama fungsi itu tidak boleh sama dengan nama fungsi yang telah disediakan oleh PHP contohnya fungsi echo, print dan lain-lain.

Argumen Fungsi secara default, argumen dikirimkan ke fungsi adalah berupa nilai saja. Jadi kita tidak bisa mengubah nilai variable yang dipakai sebagai argumen di dalam fungsi. Jika kita mengubah nilai argumen di dalam fungsi maka nilai asli pada variable tetap.

Agar kita dapat mengubah nilai asli variable di dalam fungsi maka kita harus mengirimkan argumen berdasarkan reference. Caranya dengan menambahkan tanda “&” didepan variable saat kita memanggil fungsi.

Contoh :

function tambah_satu ( $a ) { $a++ ; } $a = 10; tambah_satu ( &$a ); // tanda & digunakan untuk mereferensikan variabel echo $a ; // output 11 ?>

Kalau cuma untuk satu tahap biasanya fungsi kurang bermanfaat, tetapi kalau sudah beberapa proses yang memerlukan perhitungan yang sama, fungsi menjadi solusinya :

function tambah_satu ( $a ) { $a++ ; } for ($i=1, $i++, $i<=9) { $a= $i; tambah_satu ( &$a ) ; echo $a . ” “; }

ariefew.co.cc
Twitter Delicious Facebook Digg Favorites More