Pertanyaan bagaimana mengubah tanggal masehi menjadi hijrian di Google banyak menjadi pertanyaan hal ini terjadi karena ada perbedaan antara rumus di Excel dan Google Sheet.
Dalam Microsoft Excel untuk mengubah Tanggal masehi menjadi hijriah cukup menggunakan fungsi TEXT yang ditambahkan dengan LCID B2 ,06 atau 17.
Sayangnya google sheet tidak mendukung locale pada fungsi Text nya, sehingga untuk mengubah tanggal masehi ke hijriah menjadi sedikit lebih berbeda.
Dalam artikel ini, kita akan membahas cara mudah untuk mengubah tanggal Masehi ke Hijriah di Google Sheet dengan bantuan script dari Apps Script.
Menggunakan Google Apps Script
Google Sheet tidak memiliki fungsi bawaan untuk konversi tanggal ke Hijriah, tetapi kita bisa menambahkan fungsi sendiri dengan Google Apps Script.
Fungsi ini tidak melibatkan API tetapi menggunakan perhitungan manual. caranya silahkan masuk ke Appscript Editor
- Buka Google Sheet Anda.
- Klik menu Extensions > Apps Script.
- Hapus kode yang ada dan ganti dengan skrip berikut:
function ToHijri(gDate) { // arrayformula.com if (gDate.map){ return gDate.map(ToHijri); } var date = new Date(gDate); var day = date.getDate(); var month = date.getMonth() + 1; var year = date.getFullYear(); var jd = parseInt((1461 * (year + 4800 + parseInt((month - 14) / 12))) / 4) + parseInt((367 * (month - 2 - 12 * (parseInt((month - 14) / 12)))) / 12) - parseInt((3 * (parseInt((year + 4900 + parseInt((month - 14) / 12)) / 100))) / 4) + day - 32075; var l = jd - 1948440 + 10632; var n = parseInt((l - 1) / 10631); l = l - 10631 * n + 354; var j = (parseInt((10985 - l) / 5316)) * (parseInt((50 * l) / 17719)) + (parseInt(l / 5670)) * (parseInt((43 * l) / 15238)); l = l - (parseInt((30 - j) / 15)) * (parseInt((17719 * j) / 50)) - (parseInt(j / 16)) * (parseInt((15238 * j) / 43)) + 29; var m = parseInt((24 * l) / 709); var d = l - parseInt((709 * m) / 24); var y = 30 * n + j - 30; return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d); }
Setelah itu, jangan lupa klik save atau simpan.
Untuk menggunakannya sama seperti rumus pada umumnya, bisa gunakan =ToHijri(Tanggal)
untuk tanggal yang ingin diubah menjadi Hijriah
Controh :

Fungsi ini juga sudah saya tambahkan agar support dengan ARRAYFORMULA, untuk keperluan mengubah data tanggal sekaligus ke Hijriah.
Untuk contohnya tinggal tambahkan saja ARRAYFORMULA diawal rumus
=ARRAYFORMULA(tohijri(B4:B10))

Alternatif Menggunakan API pihak ketiga
Alternatif lain adalah menggunakan API konversi kalender yang tersedia secara online dengan Apps Script.
Disini saya menggunakan API dari aladhan.com
Contoh skrip:
function KeHijriah(tanggal) { var url = "https://api.aladhan.com/v1/gToH?date=" + Utilities.formatDate(new Date(tanggal), Session.getScriptTimeZone(), "dd-MM-yyyy"); var response = UrlFetchApp.fetch(url); var json = JSON.parse(response.getContentText()); return json.data.hijri.date; }
Untuk penggunaannya sama saja, tinggal gunakan =KeHijriah(Tanggal)
