Konversi Masehi ke Hijriah dengan PHP dan jQuery

Posted: April 18, 2013 in Javascript, jQuery, PHP

Kalender Hijriah atau Kalender Islam merupakan kalender yang digunakan oleh umat Islam untuk menentukan tanggal atau bulan.  Kalender Hijriah terdiri dari 12 bulan antara lain :

  • Muharram
  • Shofar
  • Robi’ul Awwal
  • Robi’uts Tsani
  • Jumadil Ula
  • Jumadil Akhiroh
  • Rojab
  • Sya’ban
  • Romadhon
  • Syawwal
  • Dzulqo’dah
  • Dzulhijjah

Langkah-langkah untuk membuat aplikasi konversi masehi ke hijriah:

1.  Buat folder baru dengan nama ‘convertmasehihijri’

2.  Buat folder baru dengan nama js untuk menampung file library jquery.    Untuk library jquery bisa didapatkan di http://www.jquery.com

3.  Buat file baru di folder tersebut dengan nama index.php dan isi dengan script berikut:

<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <script type="text/javascript" src="js/jquery-1.5.2.min.js"></script> <!-- Embed Script jQuery-->
  <script type="text/javascript">
  $(document).ready(function() {
     $("#ConvertMasehi").click(function() {
        // Event yang akan dijalankan ketika tag dengan id ConvertMasehi di click
        var tglMasehi = $("#tglMasehi").val(); //Mendapatkan tanggal dari tag ber-id tglMasehi
        var blnMasehi = $("#blnMasehi").val(); //Mendapatkan bulan dari tag ber-id blnMasehi
        var thnMasehi = $("#thnMasehi").val(); //Mendapatkan tahun dari tag ber-id thnMasehi

        $.ajax({
           url: "convert.php", //url untuk eksekusi
           type: "POST", //method
           data: "tglMasehi="+tglMasehi+"&blnMasehi="+blnMasehi+"&thnMasehi="+thnMasehi, //data yang akan dikirim
           dataType: "json", //data type yang diterima JSON
           success: function(data) {
              $("#tglHijri").val(data.tanggal); //Set value untuk tag ber-id tglHijri
              $("#blnHijri").val(data.bulan); //Set value untuk tag ber-id blnHijri
              $("#thnHijri").val(data.tahun); //Set value untuk tag ber-id thnHijri
           }
        });
     });
  });
  </script>
  <title>Konversi Masehi ke Hijriah</title>
  </head>
  <body>
     <h1>Konversi Masehi ke Hijriah</h1>
     Tanggal <input type="text" id="tglMasehi" name="tglMasehi"/>
     Bulan
       <select id="blnMasehi" name="blnMasehi">
          <option value="1">Januari</option>
          <option value="2">Februari</option>
          <option value="3">Maret</option>
          <option value="4">April</option>
          <option value="5">Mei</option>
          <option value="6">Juni</option>
          <option value="7">Juli</option>
          <option value="8">Agustus</option>
          <option value="9">September</option>
          <option value="10">Oktober</option>
          <option value="11">November</option>
          <option value="12">Desember</option>
        </select>
     Tahun <input type="text" id="thnMasehi" name="thnMasehi">
     <input type="button" value="Convert to Hijri" id="ConvertMasehi">
     <br/><br/>
     Hasilnya :
        <input type="text" id="tglHijri" value="" size="5" disabled/>
        <input type="text" id="blnHijri" value="" disabled/>
        <input type="text" id="thnHijri" value="" size="9" disabled/>
  </body>
</html>

<script type=”text/javascript” src=”js/jquery-1.5.2.min.js”></script> untuk memanggil/menyisipkan file javascript dengan nama “jquery-1.5.2.min.js”.  function document.ready digunakan untuk memanggil semua code terlebih dahulu sebelum code javascrip dipanggil.   Untuk penjelasan lengkapnya silahkan lihat komentar pada script di atas.

4.  Buat file baru dengan nama convert.php dan isi dengan script berikut:

<?php

function GregorianToHijriah($GYear, $GMonth, $GDay) {
$y = $GYear;
$m = $GMonth;
$d = $GDay;
$jd = GregoriantoJD($m, $d, $y);
$l = $jd - 1948440 + 10632;
$n = (int) (( $l - 1 ) / 10631);
$l = $l - 10631 * $n + 354;
$j = ( (int) (( 10985 - $l ) / 5316)) * ( (int) (( 50 * $l) / 17719)) + (
(int) ( $l / 5670 )) * ( (int) (( 43 * $l ) / 15238 ));
$l = $l - ( (int) (( 30 - $j ) / 15 )) * ( (int) (( 17719 * $j ) / 50)) - (
(int) ( $j / 16 )) * ( (int) (( 15238 * $j ) / 43 )) + 29;
$m = (int) (( 24 * $l ) / 709 );
$d = $l - (int) (( 709 * $m ) / 24);
$y = 30 * $n + $j - 30;

$Hijriah['year'] = $y;
$Hijriah['month'] = $m;
$Hijriah['day'] = $d;

return $Hijriah;
}

$GYear = $_POST['thnMasehi'];
$GMonth = $_POST['blnMasehi'];
$GDay = $_POST['tglMasehi'];

$bulanHijriah = array(1 => "Muharram", "Shofar", "Robi'ul Awwal", "Robi'uts Tsani",
"Jumadil Ula", "Jumadil Akhiroh", "Rojab", "Sya'ban",
"Romadhon", "Syawwal", "Dzulqo'dah", "Dzulhijjah");

$Hijriah = GregorianToHijriah($GYear, $GMonth, $GDay);

$hasil = array("tanggal" => $Hijriah['day'],
"bulan" => $bulanHijriah[$Hijriah['month']],
"tahun" => $Hijriah['year']);

echo json_encode($hasil);
?>

fungsi json_encode digunakan untuk mengenerate format json secara otomatis.

5.  Ketikkan web address localhost/convertmasehihijri pada browser anda.  Jika berhasil akan terlihat seperti ini:

bila web browser anda terinstall firebug maka data json akan terlihat seperti ini:

Script dapat di download di sini.

Iklan
Komentar
  1. ruchdi berkata:

    cang, itu yang didalam function GregorianToHijriah ada baris kode kayak gini :
    $jd = GregoriantoJD($m, $d, $y);
    nah GregoriantoJD($m, $d, $y); itu apa cang? function juga ya?
    tolong dijawab yaaaa.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s