Kali ini kita akan mencoba membuat kalender hijriah berformat PNG dengan fungsi-fungsi yang telah ada di PHP. Untuk itu kita butuh beberapa persiapan dan perlengkapan yang akan diperlukan nanti.
PERLENGKAPAN:
1. Satu set computer lengkap dengan webserver-nya. Anda bisa gunakan XAMPP.
2. Satu file font untuk fontasinya, saya menggunakan Antropos Freefont (antrf.ttf).
3. Gambar/image dengan desain kalender dengan format PNG.
PERSIAPAN:
1. Beberapa cemilan penunda lapar.
2. Sebungkus rokok diganti saja dengan secangkir gahwa (hot coffe).
3. Pastikan bahwa Anda sudah mengenal dasar-dasar PHP.
Langsung aja gan…
Contoh background kalendernya:

Pertama-tama jalankan webservernya. Bagi yang belum ngerti jalanin webserver, silahkan cari tutorialnya di google.
Kemudian buat file index.php terlebih dahulu dan masukkan script dibawah ini…
<?php
// ===================================================
//
// THIS SOURCE CODE IS FREE FOR USE
// IN THE NAME OF ALLAH SUBHANAHU WA TA'ALA
//
// Author: Abu Mujahied (abumujahied@gmail.com)
// ===================================================
// Konversi masehi ke hijriyah
$tanggal = getdate();
$wday = $tanggal[wday];
$hr = $tanggal[mday];
$bln = $tanggal[mon];
$thn = $tanggal[year];
if (($thn > 1582) || (($thn == 1582) && ($bln > 10)) || (($thn == 1582) && ($bln == 10) && ($hr > 14))) {
$zjd=(int)((1461 * ($thn + 4800 + (int)(($bln - 14) / 12))) / 4) + (int)((367 * ($bln - 2 - 12 * ((int)(($bln - 14) / 12)))) / 12) - (int)((3 *
(int)((($thn + 4900 + (int)(($bln - 14) / 12)) / 100))) / 4) + $hr - 32075;
} else {
$zjd = 367 * $thn - (int)((7 * ($thn + 5001 + (int)(($bln - 9) / 7))) / 4) + (int)((275 * $bln) / 9) + $hr + 1729777;
}
$zl=$zjd-1948440+10632;
$zn=(int)(($zl-1)/10631);
$zl=$zl-10631*$zn+354;
$zj=((int)((10985-$zl)/5316))*((int)((50*$zl)/17719))+((int)($zl/5670))*((int)((43*$zl)/15238));
$zl=$zl-((int)((30-$zj)/15))*((int)((17719*$zj)/50))-((int)($zj/16))*((int)((15238*$zj)/43))+29;
$bln=(int)((24*$zl)/709);
$hari=$zl-(int)((709*$bln)/24);
$tahun=30*$zn+$zj-30;
if($bln==1){ $bulan = "Muharram";}
if($bln==2){ $bulan = "Safar";}
if($bln==3){ $bulan = "Rabiul Awal";}
if($bln==4){ $bulan = "Rabiul Akhir";}
if($bln==5){ $bulan = "Jamadil Awal";}
if($bln==6){ $bulan = "Jamadil Akhir";}
if($bln==7){ $bulan = "Rejab";}
if($bln==8){ $bulan = "Syaaban";}
if($bln==9){ $bulan = "Ramadhan";}
if($bln==10){ $bulan = "Syawal";}
if($bln==11){ $bulan = "Zulkaedah";}
if($bln==12){ $bulan = "Zulhijjah";}
if($wday==0) { $namahari = "A H A D"; }
if($wday==1) { $namahari = "I T S N A I N"; }
if($wday==2) { $namahari = "T S A L A T S A"; }
if($wday==3) { $namahari = "A R B I ' A N"; }
if($wday==4) { $namahari = "K H A M I S"; }
if($wday==5) { $namahari = "J U M U ' A H"; }
if($wday==6) { $namahari = "S A B T"; }
// Pembuatan output gambar berformat PNG
header("Content-Type: image/PNG");
$img = imagecreatefromPNG("bghijri.png");
$fontfile = "./antrf.TTF";
$putih = imagecolorallocate($img, 255, 255, 255);
imageTTFText($img, 10, 0, 5, 45, $putih, $fontfile, $namahari);
$hitam = imagecolorallocate($img, 0, 0, 0);
$batas = imageTTFbbox(40, 0, $fontfile, $hari);
$x = imageSX($img)/2 - ($batas[0] + $batas[2] + $batas[4] + $batas[6]) / 4;
imageTTFText($img, 40, 0, $x, 100, $hitam, $fontfile, $hari);
$batas = imageTTFbbox(10, 0, $fontfile, $bulan);
$x = imageSX($img)/2 - ($batas[0] + $batas[2] + $batas[4] + $batas[6]) / 4;
imageTTFText($img, 10, 0, $x, 118, $hitam, $fontfile, $bulan);
$tahun = $tahun . " H";
$batas = imageTTFbbox(10, 0, $fontfile, $tahun);
$x = imageSX($img)/2 - ($batas[0] + $batas[2] + $batas[4] + $batas[6]) / 4;
imageTTFText($img, 10, 0, $x, 133, $hitam, $fontfile, $tahun);
imagePNG($img);
imagedestroy($img);
?>
Code diatas akan menghasilkan gambar berformat PNG. Jika Anda ingin merubah formatnya, Anda bisa mengganti sebagian code diatas. Seperti contoh “Content-Type: image/PNG” diganti ke format GIF menjadi “Content-Type: image/GIF”, atau ke format JPG menjadi “Content-Type: image/JPEG”.
Dan pastikan file gambar untuk background dan fontasinya udah Anda siapkan dalam satu folder dengan file index.
Jalankan, kemudian lihat hasilnya…
![]()
Abu Mujahied
Related posts:
- Mengetahui Tipe File Di Linux Dengan Command file Assalamualaikum Cara sederhana bagi anda yang ingin mengetahui tipe file...
Related posts brought to you by Yet Another Related Posts Plugin.



Assalamualaikum. Artikel yang menarik akh abu. tetapi kalau bisa link imagenya diperbaiki karena hanya user yang diperbolehkan saja yang boleh melihat imagenya
makasih mas . . .
sudah di praktekkan, It Works!
hehehe
tq mas ini yg gw cari …nice work
gak jadi euy, blank
thx kk, sangat membantu bwt n00b13 sperti sy
Sudah ana perbaiki, semoga bermanfaat…
Subhanallah .. ilmu yang sangat bermanfaat .. semoga antum mendapat balasan kebaikan dari Allah. Ane sangat suka dengan orang-orang seperti antum.. yang suka membagikan ilmunya secara gratis yang dapat mencerdaskan Ummat Muslim. Syukron jazakallah.
subhanallah…. di tugu tuntunan yg laenya ^_^
mantaaappp…
yah ini sudah diajarkan dikampus dan buku php banyak
cuman ganti nama aja
TAPI MANTAP BACKGROUNNYA BANG
TERUSKAN JIHAD ILMUMU
Jazakalloh khoir atas script-nya.. tetapi ada syntax error di line 17 dan 20. Apakah bisa diperbaiki?? ^_^
coba sekarang di cek lagi
@fikri:
Jazakallahu khair atas infonya, ternyata ketika kami copas ada beberapa tulisan yang berubah ke format html.
insya Allah nanti ane hubungin admin biar script diatas bisa diganti….
Atau kalau mau coba ganti secara manual, berikut beberapa yang harus diganti:
& ganti dengan &
> ganti dengan >
Sekian….
antum bisa edit dashboard ga? klo ga bisa nanti ana edit
edit dari dashboard maksudnya