Table of contents
Cara Membuat Numerology Love Calculator dengan PHP : Cek Kecocokan Pasangan Berdasarkan Angka & Zodiak - Kadang, sepotong kode lama bisa punya pesona yang nggak disangka. Sebuah file sederhana yang tadinya cuma tersimpan di folder proyek lama, ternyata menyimpan ide menarik — tentang bagaimana cinta, angka, dan sedikit logika bisa berpadu jadi sesuatu yang menyenangkan.
Begitulah awalnya Numerology Love Calculator ini muncul. Sebuah skrip PHP ringan yang awalnya hanya eksperimen kecil, tapi ternyata bisa menjawab rasa penasaran banyak orang: “Seberapa cocok sih aku sama dia kalau dilihat dari numerologi dan zodiak?”
Meski sederhana, proyek ini punya kombinasi yang menarik — ada hitung-hitungan angka, sedikit astrologi, dan sentuhan fun khas aplikasi love compatibility. Dengan beberapa baris kode saja, kamu bisa membuat halaman interaktif yang terasa seperti permainan takdir digital. Nah, kali ini kita akan membuat Numerology Love Calculator menggunakan PHP dan HTML sederhana — tanpa database, tanpa framework, tapi hasilnya tetap interaktif dan seru!
Tutorial ini cocok banget buat kamu yang:
- Belajar dasar PHP dan form handling
- Ingin bikin projek iseng tapi menarik secara estetika dan SEO
- Atau sekadar penasaran seberapa cocok kamu dengan doi
Kode Lengkap Numerology Love Calculator (PHP + HTML + CSS)
Berikut contoh kode utuh yang bisa langsung kamu salin ke file love-calculator.php dan jalankan di localhost atau hosting dengan PHP aktif.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Numerology Love Calculator</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 50px;
}
input {
margin: 10px 0;
padding: 10px;
width: 80%;
}
button {
padding: 10px 20px;
background-color: #f04e6a;
color: white;
border: none;
cursor: pointer;
}
button:hover {
background-color: #c03a50;
}
.result {
margin-top: 20px;
font-size: 20px;
color: #333;
}
</style>
</head>
<body>
<h1>Numerology Love Calculator</h1>
<form method="POST">
<input type="text" name="name1" placeholder="Your Name" required>
<input type="date" name="dob1" placeholder="Your Date of Birth" required>
<input type="text" name="name2" placeholder="Partner's Name" required>
<input type="date" name="dob2" placeholder="Partner's Date of Birth" required>
<button type="submit">Calculate</button>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name1 = $_POST['name1'];
$dob1 = $_POST['dob1'];
$name2 = $_POST['name2'];
$dob2 = $_POST['dob2'];
// Fungsi untuk menghitung angka nama berdasarkan numerologi
function getNumerologyNumber($name) {
$name = strtolower(preg_replace('/[^a-z]/', '', $name)); // Hanya huruf
$letters = str_split($name);
$numerologyMap = [
'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5,
'f' => 6, 'g' => 7, 'h' => 8, 'i' => 9, 'j' => 1,
'k' => 2, 'l' => 3, 'm' => 4, 'n' => 5, 'o' => 6,
'p' => 7, 'q' => 8, 'r' => 9, 's' => 1, 't' => 2,
'u' => 3, 'v' => 4, 'w' => 5, 'x' => 6, 'y' => 7,
'z' => 8
];
$sum = 0;
foreach ($letters as $letter) {
$sum += $numerologyMap[$letter];
}
// Reduksi hingga satu digit
while ($sum > 9) {
$sum = array_sum(str_split($sum));
}
return $sum;
}
// Fungsi untuk menghitung angka dari tanggal lahir
function getBirthNumber($dob) {
$digits = str_replace('-', '', $dob); // Menghapus tanda "-"
$sum = array_sum(str_split($digits));
// Reduksi hingga satu digit
while ($sum > 9) {
$sum = array_sum(str_split($sum));
}
return $sum;
}
// Fungsi untuk mendapatkan zodiak berdasarkan tanggal lahir
function getZodiacSign($dob) {
$date = new DateTime($dob);
$day = (int)$date->format('d');
$month = (int)$date->format('m');
$zodiacSigns = [
["Capricorn", 20], ["Aquarius", 19], ["Pisces", 20], ["Aries", 20],
["Taurus", 21], ["Gemini", 21], ["Cancer", 22], ["Leo", 22],
["Virgo", 22], ["Libra", 23], ["Scorpio", 22], ["Sagittarius", 21],
["Capricorn", 31] // Untuk Capricorn akhir tahun
];
$zodiac = $zodiacSigns[$month - 1];
if ($day > $zodiac[1]) {
$zodiac = $zodiacSigns[$month % 12];
}
return $zodiac[0];
}
// Fungsi untuk memberikan plus dan minus berdasarkan zodiak
function getZodiacTraits($zodiac) {
$traits = [
"Aries" => ["+ Adventurous, energetic", "- Impatient, moody"],
"Taurus" => ["+ Reliable, patient", "- Stubborn, possessive"],
"Gemini" => ["+ Adaptable, curious", "- Inconsistent, indecisive"],
"Cancer" => ["+ Loyal, caring", "- Overly sensitive, clingy"],
"Leo" => ["+ Confident, generous", "- Arrogant, stubborn"],
"Virgo" => ["+ Analytical, practical", "- Overcritical, perfectionist"],
"Libra" => ["+ Diplomatic, charming", "- Indecisive, self-indulgent"],
"Scorpio" => ["+ Passionate, resourceful", "- Jealous, secretive"],
"Sagittarius" => ["+ Optimistic, independent", "- Impulsive, tactless"],
"Capricorn" => ["+ Disciplined, responsible", "- Pessimistic, rigid"],
"Aquarius" => ["+ Innovative, humanitarian", "- Unpredictable, aloof"],
"Pisces" => ["+ Compassionate, intuitive", "- Escapist, overly trusting"]
];
return $traits[$zodiac] ?? ["+ Traits not found", "- Traits not found"];
}
// Hitung angka numerologi untuk nama dan tanggal lahir
$numName1 = getNumerologyNumber($name1);
$numBirth1 = getBirthNumber($dob1);
$num1 = $numName1 + $numBirth1;
$numName2 = getNumerologyNumber($name2);
$numBirth2 = getBirthNumber($dob2);
$num2 = $numName2 + $numBirth2;
// Reduksi total menjadi satu digit
while ($num1 > 9) {
$num1 = array_sum(str_split($num1));
}
while ($num2 > 9) {
$num2 = array_sum(str_split($num2));
}
// Hitung kompatibilitas (selisih angka diubah menjadi persentase)
$compatibility = 100 - abs($num1 - $num2) * 10;
// Berikan arti kompatibilitas berdasarkan persentase
if ($compatibility >= 90) {
$meaning = "Perfect match! You both are made for each other.";
} elseif ($compatibility >= 70) {
$meaning = "Great compatibility! You have a strong connection.";
} elseif ($compatibility >= 50) {
$meaning = "Good compatibility. With a little effort, this can work well.";
} elseif ($compatibility >= 30) {
$meaning = "Moderate compatibility. You'll need understanding and patience.";
} else {
$meaning = "Low compatibility. This relationship might be challenging.";
}
// Hitung zodiak masing-masing
$zodiac1 = getZodiacSign($dob1);
$zodiac2 = getZodiacSign($dob2);
// Dapatkan kelebihan dan kekurangan zodiak
list($traitsPlus1, $traitsMinus1) = getZodiacTraits($zodiac1);
list($traitsPlus2, $traitsMinus2) = getZodiacTraits($zodiac2);
echo "<div class='result'>";
echo "<h2>Compatibility Results:</h2>";
echo "<p><strong>{$name1} ({$dob1}, {$zodiac1})</strong></p>";
echo "<p>Numerology Number: {$num1}</p>";
echo "<p>Strengths: {$traitsPlus1}</p>";
echo "<p>Weaknesses: {$traitsMinus1}</p>";
echo "<p><strong>{$name2} ({$dob2}, {$zodiac2})</strong></p>";
echo "<p>Numerology Number: {$num2}</p>";
echo "<p>Strengths: {$traitsPlus2}</p>";
echo "<p>Weaknesses: {$traitsMinus2}</p>";
echo "<h3>Compatibility Score: {$compatibility}%</h3>";
echo "<p>{$meaning}</p>";
echo "</div>";
}
?>
</body>
</html>
(Kode kamu sendiri — sudah lengkap dan siap digunakan. Tinggal salin-tempel seperti di atas.)
Kode ini terdiri dari tiga bagian utama:
- Frontend (HTML + CSS) — tampilan input nama, tanggal lahir, dan tombol kalkulasi dengan gaya minimalis.
- Backend (PHP) — logika perhitungan numerologi, zodiak, dan tingkat kecocokan.
- Output (Result Section) — hasil lengkap berupa angka numerologi, zodiak, sifat positif dan negatif, serta persentase kecocokan cinta
Cara Kerja Script Ini
Berikut ringkasan cara script bekerja di balik layar:
1. Menghitung Angka Numerologi dari Nama
Setiap huruf dikonversi menjadi angka berdasarkan tabel numerologi klasik (A=1, B=2, ..., Z=8).
Kemudian hasilnya dijumlahkan dan direduksi hingga tersisa satu digit.
Contoh:
ALEX → 1 + 3 + 5 + 6 = 15 → 1 + 5 = 6
2. Menghitung Angka dari Tanggal Lahir
Tanggal lahir seperti 1997-08-12 diubah menjadi deretan angka dan dijumlahkan hingga satu digit.
Contoh:
1+9+9+7+0+8+1+2 = 37 → 3+7 = 10 → 1+0 = **1**
3. Menentukan Zodiak dan Karakteristik
Script juga otomatis menentukan zodiak dari tanggal lahir, misalnya Leo, Virgo, atau Aquarius. Setiap zodiak punya kelebihan dan kekurangan yang ditampilkan dalam hasil.
4. Menghitung Kecocokan Cinta
Nilai numerologi dari kedua nama + tanggal lahir dijumlahkan, lalu dibandingkan.
Selisihnya dikonversi menjadi persentase:
compatibility = 100 - abs(num1 - num2) * 10
Kesimpulan
Dengan hanya beberapa baris kode PHP dan HTML, kamu bisa bikin kalkulator cinta berbasis numerologi dan zodiak yang interaktif, lucu, dan bisa menarik banyak traffic organik dari pencarian romantis
Proyek ini cocok banget buat:
- Belajar logika numerologi dalam pemrograman
- Menarik pengunjung blog atau landing page bertema cinta
- Atau sekadar hiburan untuk pasangan






